00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef __SR_NAMETAGS_H
00021 #define __SR_NAMETAGS_H
00022 
00023 
00024 
00025 #include "SR_NametagsPrefix.h"
00026 #include "ptypes.h"
00027 #include "pstdio.h"
00028 
00029 #include "SR_NametagDefs.h"
00030 #include "ESR_ReturnCode.h"
00031 
00032 
00043 typedef struct SR_Nametags_t
00044 {
00051   ESR_ReturnCode(*load)(struct SR_Nametags_t* self, const LCHAR* filename);
00052   
00059   ESR_ReturnCode(*save)(struct SR_Nametags_t* self, const LCHAR* filename);
00060   
00067   ESR_ReturnCode(*add)(struct SR_Nametags_t* self, SR_Nametag* nametag);
00068   
00075   ESR_ReturnCode(*remove)(struct SR_Nametags_t* self, const LCHAR* id);
00076   
00083   ESR_ReturnCode(*getSize)(struct SR_Nametags_t* self, size_t* result);
00084   
00093   ESR_ReturnCode(*get)(struct SR_Nametags_t* self, const LCHAR* id, SR_Nametag** nametag);
00094   
00103   ESR_ReturnCode(*getAtIndex)(struct SR_Nametags_t* self, size_t index, SR_Nametag** nametag);
00104   
00112   ESR_ReturnCode(*contains)(struct SR_Nametags_t* self, const LCHAR* id, ESR_BOOL* result);
00113   
00119   ESR_ReturnCode(*destroy)(struct SR_Nametags_t* self);
00120 }
00121 SR_Nametags;
00122 
00134 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsCreate(SR_Nametags** self);
00135 
00142 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsLoad(SR_Nametags* self, const LCHAR* filename);
00143 
00150 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsSave(SR_Nametags* self, const LCHAR* filename);
00151 
00158 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsAdd(SR_Nametags* self, SR_Nametag* nametag);
00159 
00166 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsRemove(SR_Nametags* self, const LCHAR* id);
00167 
00174 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsGetSize(SR_Nametags* self, size_t* result);
00175 
00184 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsGet(SR_Nametags* self, const LCHAR* id, SR_Nametag** nametag);
00185 
00194 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsGetAtIndex(SR_Nametags* self, size_t index, SR_Nametag** nametag);
00195 
00203 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsContains(SR_Nametags* self, const LCHAR* id, ESR_BOOL* result);
00204 
00210 SREC_NAMETAG_API ESR_ReturnCode SR_NametagsDestroy(SR_Nametags* self);
00211 
00220 #endif