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

#ifndef TM_ENUM_H
#define TM_ENUM_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_ENUM TYPEMAKER2_ENUM;
GWEN_LIST_FUNCTION_DEFS(TYPEMAKER2_ENUM, Typemaker2_Enum)


/* post-headers */


/** Constructor. */
TYPEMAKER2_ENUM *Typemaker2_Enum_new(void);

/** Destructor. */
void Typemaker2_Enum_free(TYPEMAKER2_ENUM *p_struct);

TYPEMAKER2_ENUM *Typemaker2_Enum_dup(const TYPEMAKER2_ENUM *p_struct);

TYPEMAKER2_ENUM *Typemaker2_Enum_copy(TYPEMAKER2_ENUM *p_struct, const TYPEMAKER2_ENUM *p_src);

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

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

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

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

/** Getter.
 * Use this function to get the member "toStringFn"
*/
const char *Typemaker2_Enum_GetToStringFn(const TYPEMAKER2_ENUM *p_struct);

/** Getter.
 * Use this function to get the member "fromStringFn"
*/
const char *Typemaker2_Enum_GetFromStringFn(const TYPEMAKER2_ENUM *p_struct);

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

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

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

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

/** Setter.
 * Use this function to set the member "toStringFn"
*/
void Typemaker2_Enum_SetToStringFn(TYPEMAKER2_ENUM *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "fromStringFn"
*/
void Typemaker2_Enum_SetFromStringFn(TYPEMAKER2_ENUM *p_struct, const char *p_src);

TYPEMAKER2_ENUM_LIST *Typemaker2_Enum_List_dup(const TYPEMAKER2_ENUM_LIST *p_src);

void Typemaker2_Enum_ReadXml(TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db);

void Typemaker2_Enum_WriteXml(const TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db);

void Typemaker2_Enum_toXml(const TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db);

TYPEMAKER2_ENUM *Typemaker2_Enum_fromXml(GWEN_XMLNODE *p_db);

#ifdef __cplusplus
}
#endif

#endif

