%description:
Check primitive scalar field types in cOwnedObject-rooted classes

%file: test.msg

namespace @TESTNAME@;

class MyClass extends cOwnedObject
{
    bool b;
    char c;
    short s;
    unsigned short us;
    int i;
    unsigned int ui;
    long l;
    unsigned long ul;
    double d;
};

%includes:
#include "test_m.h"

%activity:

#define PRINT(X) EV << #X << ":" << (X) << endl

MyClass x("myclass");

// test it's really subclassed from cOwnedObject
(void)(cOwnedObject *)&x;
EV << (dynamic_cast<cOwnedObject *>(&x)!=0 ? "cOwnedObject" : "generic") << endl;
EV << x.getClassName() << ":" << x.getName() << endl;

// fields must initialize to zero
PRINT(x.getB());
PRINT((int)x.getC());
PRINT(x.getS());
PRINT(x.getUs());
PRINT(x.getI());
PRINT(x.getUi());
PRINT(x.getL());
PRINT(x.getUl());
PRINT(x.getD());
EV << "--\n";

// scalar fields
x.setB(true); PRINT(x.getB());
x.setB(false); PRINT(x.getB());

x.setC('a'); PRINT(x.getC());

x.setS(10);  PRINT(x.getS());
x.setS(-10);  PRINT(x.getS());
x.setUs(10);  PRINT(x.getUs());
x.setUs(-10);  PRINT((x.getUs()>0));

x.setI(10);  PRINT(x.getI());
x.setI(-10);  PRINT(x.getI());
x.setUi(10);  PRINT(x.getUi());
x.setUi(-10);  PRINT((x.getUi()>0));

x.setL(10);  PRINT(x.getL());
x.setL(-10);  PRINT(x.getL());
x.setUl(10);  PRINT(x.getUl());
x.setUl(-10);  PRINT((x.getUl()>0));

x.setD(3.1415); PRINT(x.getD());

%contains: stdout
cOwnedObject
msg_cobject_1::MyClass:myclass
x.getB():0
(int)x.getC():0
x.getS():0
x.getUs():0
x.getI():0
x.getUi():0
x.getL():0
x.getUl():0
x.getD():0
--
x.getB():1
x.getB():0
x.getC():a
x.getS():10
x.getS():-10
x.getUs():10
(x.getUs()>0):1
x.getI():10
x.getI():-10
x.getUi():10
(x.getUi()>0):1
x.getL():10
x.getL():-10
x.getUl():10
(x.getUl()>0):1
x.getD():3.1415