+};
+typedef s_container s_container_t;
+
+//--------------------------------------------------
+class paje_event;
+typedef paje_event *paje_event_t;
+
+class paje_event {
+ public:
+ double timestamp;
+ e_event_type event_type;
+ void (*print) (paje_event_t event);
+ void (*free) (paje_event_t event);
+ void *data;
+};
+typedef paje_event s_paje_event_t;
+//--------------------------------------------------
+
+typedef struct s_defineContainerType *defineContainerType_t;
+typedef struct s_defineContainerType {
+ type_t type;
+}s_defineContainerType_t;
+
+typedef struct s_defineVariableType *defineVariableType_t;
+typedef struct s_defineVariableType {
+ type_t type;
+}s_defineVariableType_t;
+
+typedef struct s_defineStateType *defineStateType_t;
+typedef struct s_defineStateType {
+ type_t type;
+}s_defineStateType_t;
+
+typedef struct s_defineEventType *defineEventType_t;
+typedef struct s_defineEventType {
+ type_t type;
+}s_defineEventType_t;
+
+typedef struct s_defineLinkType *defineLinkType_t;
+typedef struct s_defineLinkType {
+ type_t type;
+ type_t source;
+ type_t dest;
+}s_defineLinkType_t;
+
+typedef struct s_defineEntityValue *defineEntityValue_t;
+typedef struct s_defineEntityValue {
+ val_t value;
+}s_defineEntityValue_t;
+
+typedef struct s_createContainer *createContainer_t;
+typedef struct s_createContainer {
+ container_t container;
+}s_createContainer_t;
+
+typedef struct s_destroyContainer *destroyContainer_t;
+typedef struct s_destroyContainer {
+ container_t container;
+}s_destroyContainer_t;
+
+typedef struct s_setVariable *setVariable_t;
+typedef struct s_setVariable {
+ container_t container;
+ type_t type;
+ double value;
+}s_setVariable_t;
+
+typedef struct s_addVariable *addVariable_t;
+typedef struct s_addVariable {
+ container_t container;
+ type_t type;
+ double value;
+}s_addVariable_t;
+
+//--------------------------------------------------
+class s_subVariable;
+
+typedef s_subVariable *subVariable_t;
+
+class s_subVariable {
+ public:
+ container_t container;
+ type_t type;
+ double value;
+ //methods
+ XBT_PUBLIC(void) new_pajeSubVariable (double timestamp, container_t container, type_t type, double value);
+};
+typedef s_subVariable s_subVariable_t;
+//--------------------------------------------------
+
+class s_setState;
+
+typedef s_setState *setState_t;
+class s_setState {
+ public:
+ container_t container;
+ type_t type;
+ val_t value;
+ const char* filename;
+ int linenumber;
+};
+
+typedef s_setState s_setState_t;
+
+class s_pushState;
+
+typedef s_pushState *pushState_t;
+class s_pushState {
+ public:
+ container_t container;
+ type_t type;
+ val_t value;
+ int size;
+ const char* filename;
+ int linenumber;
+ void* extra;
+};