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

#ifndef TM_SLOT_H
#define TM_SLOT_H


#ifdef __cplusplus
extern "C" {
#endif

/* define TYPEMAKER2_SLOT_FLAGS */
#define TYPEMAKER2_SLOT_FLAGS_USE_PARAM3 0x00000001
#define TYPEMAKER2_SLOT_FLAGS_USE_PARAM4 0x00000002


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

typedef struct TYPEMAKER2_SLOT TYPEMAKER2_SLOT;
GWEN_LIST_FUNCTION_DEFS(TYPEMAKER2_SLOT, Typemaker2_Slot)
GWEN_LIST2_FUNCTION_DEFS(TYPEMAKER2_SLOT, Typemaker2_Slot)




/** Constructor. */
TYPEMAKER2_SLOT *Typemaker2_Slot_new(void);

/** Destructor. */
void Typemaker2_Slot_free(TYPEMAKER2_SLOT *p_struct);

TYPEMAKER2_SLOT *Typemaker2_Slot_dup(const TYPEMAKER2_SLOT *p_struct);

TYPEMAKER2_SLOT *Typemaker2_Slot_copy(TYPEMAKER2_SLOT *p_struct, const TYPEMAKER2_SLOT *p_src);

/** Getter.
 * Use this function to get the member "name"
*/
const char *Typemaker2_Slot_GetName(const TYPEMAKER2_SLOT *p_struct);

/** Getter.
 * Use this function to get the member "paramType1"
*/
const char *Typemaker2_Slot_GetParamType1(const TYPEMAKER2_SLOT *p_struct);

/** Getter.
 * Use this function to get the member "paramType2"
*/
const char *Typemaker2_Slot_GetParamType2(const TYPEMAKER2_SLOT *p_struct);

/** Getter.
 * Use this function to get the member "flags"
*/
uint32_t Typemaker2_Slot_GetFlags(const TYPEMAKER2_SLOT *p_struct);

/** Setter.
 * Use this function to set the member "name"
*/
void Typemaker2_Slot_SetName(TYPEMAKER2_SLOT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "paramType1"
*/
void Typemaker2_Slot_SetParamType1(TYPEMAKER2_SLOT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "paramType2"
*/
void Typemaker2_Slot_SetParamType2(TYPEMAKER2_SLOT *p_struct, const char *p_src);

/** Setter.
 * Use this function to set the member "flags"
*/
void Typemaker2_Slot_SetFlags(TYPEMAKER2_SLOT *p_struct, uint32_t p_src);

/** Add flags.
 * Use this function to add flags to the member "flags"
*/
void Typemaker2_Slot_AddFlags(TYPEMAKER2_SLOT *p_struct, uint32_t p_src);

/** Sub flags.
 * Use this function to sub flags to the member "flags"
*/
void Typemaker2_Slot_SubFlags(TYPEMAKER2_SLOT *p_struct, uint32_t p_src);

TYPEMAKER2_SLOT_LIST *Typemaker2_Slot_List_dup(const TYPEMAKER2_SLOT_LIST *p_src);

void Typemaker2_Slot_ReadXml(TYPEMAKER2_SLOT *p_struct, GWEN_XMLNODE *p_db);

void Typemaker2_Slot_WriteXml(const TYPEMAKER2_SLOT *p_struct, GWEN_XMLNODE *p_db);

void Typemaker2_Slot_toXml(const TYPEMAKER2_SLOT *p_struct, GWEN_XMLNODE *p_db);

TYPEMAKER2_SLOT *Typemaker2_Slot_fromXml(GWEN_XMLNODE *p_db);

#ifdef __cplusplus
}
#endif

#endif

