35#include <gwenhywfar/debug.h>
36#include <gwenhywfar/text.h>
37#include <gwenhywfar/gwendate.h>
102 if (strcasecmp(name,
"DbEnter")==0)
104 else if (strcasecmp(name,
"DbForEvery")==0)
106 else if (strcasecmp(name,
"XmlCreateAndEnterElement")==0)
108 else if (strcasecmp(name,
"XmlSetCharValue")==0)
110 else if (strcasecmp(name,
"DbIfCharDataMatches")==0)
112 else if (strcasecmp(name,
"DbIfNotCharDataMatches")==0)
114 else if (strcasecmp(name,
"DbIfHasCharData")==0)
116 else if (strcasecmp(name,
"DbIfNotHasCharData")==0)
118 else if (strcasecmp(name,
"DbIfPathExists")==0)
120 else if (strcasecmp(name,
"DbIfNotPathExists")==0)
147 if (!(name && *name)) {
175 if (!(name && *name)) {
204 if (!(name && *name)) {
246 if (!(name && *name)) {
284 if (!(name && *name)) {
290 if (!(pattern && *pattern)) {
319 if (!(name && *name)) {
325 if (!(pattern && *pattern)) {
353 if (!(name && *name)) {
381 if (!(name && *name)) {
387 if (val==
NULL || *val==0) {
444 if (!(path && *path)) {
468 if (!(name && *name)) {
474 if (value && *value) {
512 cpyOfPath=strdup(path);
515 property=cpyOfPath+idx+1;
550 if (value && *value) {
561 if (!(name && *name)) {
568 if (!(typ && *typ)) {
574 if (strcasecmp(typ,
"string")==0) {
580 else if (strcasecmp(typ,
"date")==0) {
585 if (!(tmpl && *tmpl)) {
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
GWEN_DB_NODE * GWEN_DB_FindNextGroup(GWEN_DB_NODE *n, const char *name)
GWEN_DB_NODE * GWEN_DB_GetGroup(GWEN_DB_NODE *n, uint32_t flags, const char *path)
GWEN_DB_NODE * GWEN_DB_FindFirstGroup(GWEN_DB_NODE *n, const char *name)
int GWEN_DB_ReplaceVars(GWEN_DB_NODE *db, const char *s, GWEN_BUFFER *dbuf)
struct GWEN_DB_NODE GWEN_DB_NODE
#define DBG_INFO(dbg_logger, format, args...)
#define DBG_ERROR(dbg_logger, format, args...)
#define GWEN_ERROR_INVALID
#define GWEN_ERROR_GENERIC
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
GWEN_DATE * GWEN_Date_fromString(const char *s)
int GWEN_Date_toStringWithTemplate(const GWEN_DATE *t, const char *tmpl, GWEN_BUFFER *buf)
void GWEN_Date_free(GWEN_DATE *gd)
struct GWEN_DATE GWEN_DATE
#define GWEN_PATH_FLAGS_CREATE_GROUP
#define GWEN_PATH_FLAGS_CREATE_VAR
#define GWEN_PATH_FLAGS_NAMEMUSTEXIST
void GWEN_Text_CondenseBuffer(GWEN_BUFFER *buf)
int GWEN_Text_EscapeXmlToBuffer(const char *src, GWEN_BUFFER *buf)
int GWEN_Text_ComparePattern(const char *w, const char *p, int sensecase)
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
GWEN_XMLNODE * GWEN_XMLNode_GetFirstTag(const GWEN_XMLNODE *n)
void GWEN_XMLNode_SetProperty(GWEN_XMLNODE *n, const char *name, const char *value)
GWEN_XMLNODE * GWEN_XMLNode_GetNextTag(const GWEN_XMLNODE *n)
int GWEN_XMLNode_GetXPath(const GWEN_XMLNODE *n1, const GWEN_XMLNODE *n2, GWEN_BUFFER *nbuf)
GWEN_XMLNODE * GWEN_XMLNode_GetNodeByXPath(GWEN_XMLNODE *n, const char *path, uint32_t flags)
const char * GWEN_XMLNode_GetData(const GWEN_XMLNODE *n)
int GWEN_XMLNode_SetCharValueByPath(GWEN_XMLNODE *n, uint32_t flags, const char *name, const char *value)
int GWEN_XMLNode_GetIntProperty(const GWEN_XMLNODE *n, const char *name, int defaultValue)
struct GWEN__XMLNODE GWEN_XMLNODE
GWEN_XMLCMD_HANDLECHILDREN_FN GWEN_XmlCommander_SetHandleChildrenFn(GWEN_XMLCOMMANDER *cmd, GWEN_XMLCMD_HANDLECHILDREN_FN f)
int GWEN_XmlCommander_HandleChildren(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
struct GWEN_XMLCOMMANDER GWEN_XMLCOMMANDER
GWEN_DB_NODE * GWEN_XmlCommanderGwenXml_GetCurrentDbGroup(const GWEN_XMLCOMMANDER *cmd)
GWEN_XMLNODE * GWEN_XmlCommanderGwenXml_GetCurrentDocNode(const GWEN_XMLCOMMANDER *cmd)
void GWEN_XmlCommanderGwenXml_LeaveDocNode(GWEN_XMLCOMMANDER *cmd)
GWEN_XMLCOMMANDER * GWEN_XmlCommanderGwenXml_new(GWEN_XMLNODE *documentRoot, GWEN_DB_NODE *dbRoot)
void GWEN_XmlCommanderGwenXml_EnterDocNode(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
void GWEN_XmlCommanderGwenXml_SetCurrentDbGroup(GWEN_XMLCOMMANDER *cmd, GWEN_DB_NODE *db)
GWEN_XMLCOMMANDER * GWEN_XmlCommanderGwenXml_fromDb_new(GWEN_XMLNODE *xmlNodeDestination, GWEN_DB_NODE *dbSource)
static int _dbIfNotHasCharData(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _dbForEvery(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _dbIfNotCharDataMatches(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _xmlCreateAndEnterElement(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _handleChildren_fromDb(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _dbEnter(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _xmlSetCharValue(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _setCharValueByPath(GWEN_XMLNODE *xmlNode, const char *path, const char *value)
static int _dbIfCharDataMatches(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _convertAndSetCharValue(GWEN_XMLNODE *xmlDocNode, GWEN_XMLNODE *xmlSchemaNode, const char *value)
static int _dbIfHasCharData(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _dbIfPathExists(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)
static int _dbIfNotPathExists(GWEN_XMLCOMMANDER *cmd, GWEN_XMLNODE *xmlNode)