gwenhywfar 5.14.1
tm_group.c
Go to the documentation of this file.
1/***************************************************************************
2 begin : Thu Jul 02 2009
3 copyright : (C) 2009 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10#ifdef HAVE_CONFIG_H
11# include <config.h>
12#endif
13
14
15#include "tm_group_p.h"
16
17
18#include <gwenhywfar/debug.h>
19#include <gwenhywfar/misc.h>
20
21#include <assert.h>
22
23
24
26
27
28
30{
32
34 gr->refCount=1;
36
37 return gr;
38}
39
40
41
43{
44 if (gr) {
45 assert(gr->refCount);
46 if (gr->refCount==1) {
48 free(gr->title);
49 free(gr->description);
50 gr->refCount=0;
52 }
53 else
54 gr->refCount++;
55 }
56}
57
58
59
61{
62 assert(gr);
63 assert(gr->refCount);
64 gr->refCount++;
65}
66
67
68
70{
71 assert(gr);
72 assert(gr->refCount);
73
74 return gr->title;
75}
76
77
78
80{
81 assert(gr);
82 assert(gr->refCount);
83
84 free(gr->title);
85 if (s && *s)
86 gr->title=strdup(s);
87 else
88 gr->title=NULL;
89}
90
91
92
94{
95 assert(gr);
96 assert(gr->refCount);
97
98 return gr->description;
99}
100
101
102
104{
105 assert(gr);
106 assert(gr->refCount);
107
108 free(gr->description);
109 if (s && *s)
110 gr->description=strdup(s);
111 else
112 gr->description=NULL;
113}
114
115
116
118{
119 const char *s;
120 GWEN_XMLNODE *n;
121
122 assert(gr);
123 assert(gr->refCount);
124
125 /* read title */
126 s=GWEN_XMLNode_GetProperty(node, "title", NULL);
127 if (s && *s)
129
130 /* read descr */
131 n=GWEN_XMLNode_FindFirstTag(node, "descr", NULL, NULL);
132 if (n) {
133 GWEN_BUFFER *tbuf;
134 int rv;
135
136 tbuf=GWEN_Buffer_new(0, 256, 0, 1);
138 if (rv<0) {
139 DBG_ERROR(0, "here (%d)", rv);
140 }
141 else {
143 }
144 GWEN_Buffer_free(tbuf);
145 }
146
147 return 0;
148}
149
150
151
152
153
154
155
#define NULL
Definition binreloc.c:300
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
Definition buffer.c:42
void GWEN_Buffer_free(GWEN_BUFFER *bf)
Definition buffer.c:89
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
Definition buffer.c:235
#define DBG_ERROR(dbg_logger, format,...)
Definition debug.h:97
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition buffer.h:38
#define GWEN_UNUSED
#define GWEN_FREE_OBJECT(varname)
Definition memory.h:61
#define GWEN_NEW_OBJECT(typ, varname)
Definition memory.h:55
const char * Typemaker2_Group_GetTitle(TYPEMAKER2_GROUP *gr)
Definition tm_group.c:69
const char * Typemaker2_Group_GetDescription(TYPEMAKER2_GROUP *gr)
Definition tm_group.c:93
void Typemaker2_Group_free(TYPEMAKER2_GROUP *gr)
Definition tm_group.c:42
int Typemaker2_Group_readXml(TYPEMAKER2_GROUP *gr, GWEN_XMLNODE *node, GWEN_UNUSED const char *wantedLang)
Definition tm_group.c:117
void Typemaker2_Group_Attach(TYPEMAKER2_GROUP *gr)
Definition tm_group.c:60
void Typemaker2_Group_SetTitle(TYPEMAKER2_GROUP *gr, const char *s)
Definition tm_group.c:79
TYPEMAKER2_GROUP * Typemaker2_Group_new()
Definition tm_group.c:29
void Typemaker2_Group_SetDescription(TYPEMAKER2_GROUP *gr, const char *s)
Definition tm_group.c:103
struct TYPEMAKER2_GROUP TYPEMAKER2_GROUP
Definition tm_group.h:19
#define GWEN_TREE_FINI(t, element)
Definition tree.h:571
#define GWEN_TREE_FUNCTIONS(t, pr)
Definition tree.h:402
#define GWEN_TREE_INIT(t, element)
Definition tree.h:562
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
Definition xml.c:239
GWEN_XMLNODE * GWEN_XMLNode_FindFirstTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
Definition xml.c:776
GWENHYWFAR_API int GWEN_XMLNode_toBuffer(const GWEN_XMLNODE *n, GWEN_BUFFER *buf, uint32_t flags)
Definition xmlrw.c:627
#define GWEN_XML_FLAGS_HANDLE_COMMENTS
Definition xml.h:60
struct GWEN__XMLNODE GWEN_XMLNODE
Definition xml.h:156
#define GWEN_XML_FLAGS_SIMPLE
Definition xml.h:89