/**********************************************************
 * This file has been automatically created by "typemaker2"
 * from the file "tm_define.xml".
 * Please do not edit this file, all changes will be lost.
 * Better edit the mentioned source file instead.
 **********************************************************/

#ifndef TM_DEFINE_H
#define TM_DEFINE_H


#ifdef __cplusplus
extern "C" {
#endif

/* needed system headers */
#include <gwenhywfar/types.h>
#include <gwenhywfar/list1.h>
#include <gwenhywfar/xml.h>

/* pre-headers */
#include "tm_item.h"

typedef struct TYPEMAKER2_DEFINE TYPEMAKER2_DEFINE;
GWEN_LIST_FUNCTION_DEFS(TYPEMAKER2_DEFINE, Typemaker2_Define)


enum {
  Typemaker2_Define_Mode_Unknown = -1,
  Typemaker2_Define_Mode_Sequence = 1,
  Typemaker2_Define_Mode_BitField
};


/* post-headers */


int Typemaker2_Define_Mode_fromString(const char *p_s);

const char *Typemaker2_Define_Mode_toString(int p_i);

/** Constructor. */
TYPEMAKER2_DEFINE *Typemaker2_Define_new(void);

/** Destructor. */
void Typemaker2_Define_free(TYPEMAKER2_DEFINE *p_struct);

TYPEMAKER2_DEFINE *Typemaker2_Define_dup(const TYPEMAKER2_DEFINE *p_struct);

TYPEMAKER2_DEFINE *Typemaker2_Define_copy(TYPEMAKER2_DEFINE *p_struct, const TYPEMAKER2_DEFINE *p_src);

/** Getter.
 * Use this function to get the member "id"
*/
const char *Typemaker2_Define_GetId(const TYPEMAKER2_DEFINE *p_struct);

/** Getter.
 * Use this function to get the member "prefix"
*/
const char *Typemaker2_Define_GetPrefix(const TYPEMAKER2_DEFINE *p_struct);

/** Getter.
 * Use this function to get the member "type"
*/
const char *Typemaker2_Define_GetType(const TYPEMAKER2_DEFINE *p_struct);

/** Getter.
 * Use this function to get the member "items"
*/
TYPEMAKER2_ITEM_LIST *Typemaker2_Define_GetItems(const TYPEMAKER2_DEFINE *p_struct);

/** Getter.
 * Use this function to get the member "mode"
*/
int Typemaker2_Define_GetMode(const TYPEMAKER2_DEFINE *p_struct);

/** Getter.
 * Use this function to get the member "startValue"
*/
int Typemaker2_Define_GetStartValue(const TYPEMAKER2_DEFINE *p_struct);

/** Getter.
 * Use this function to get the member "lastValue"
*/
int Typemaker2_Define_GetLastValue(const TYPEMAKER2_DEFINE *p_struct);

/** Setter.
 * Use this function to set the member "id"
*/
void Typemaker2_Define_SetId(TYPEMAKER2_DEFINE *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "prefix"
*/
void Typemaker2_Define_SetPrefix(TYPEMAKER2_DEFINE *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "type"
*/
void Typemaker2_Define_SetType(TYPEMAKER2_DEFINE *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "items"
*/
void Typemaker2_Define_SetItems(TYPEMAKER2_DEFINE *p_struct, const TYPEMAKER2_ITEM_LIST *p_src);

/** Setter.
 * Use this function to set the member "mode"
*/
void Typemaker2_Define_SetMode(TYPEMAKER2_DEFINE *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "startValue"
*/
void Typemaker2_Define_SetStartValue(TYPEMAKER2_DEFINE *p_struct, int p_src);

/** Setter.
 * Use this function to set the member "lastValue"
*/
void Typemaker2_Define_SetLastValue(TYPEMAKER2_DEFINE *p_struct, int p_src);

TYPEMAKER2_DEFINE_LIST *Typemaker2_Define_List_dup(const TYPEMAKER2_DEFINE_LIST *p_src);

void Typemaker2_Define_ReadXml(TYPEMAKER2_DEFINE *p_struct, GWEN_XMLNODE *p_db);

void Typemaker2_Define_WriteXml(const TYPEMAKER2_DEFINE *p_struct, GWEN_XMLNODE *p_db);

void Typemaker2_Define_toXml(const TYPEMAKER2_DEFINE *p_struct, GWEN_XMLNODE *p_db);

TYPEMAKER2_DEFINE *Typemaker2_Define_fromXml(GWEN_XMLNODE *p_db);

#ifdef __cplusplus
}
#endif

#endif

