liblogging: namevaluetree.h Source File

Main Page | Compound List | File List | Compound Members | File Members | Related Pages

# namevaluetree.h

Go to the documentation of this file.

    00001
    00086 #ifndef __LIB3195_SBNVT_H_INCLUDED__
    00087 #define __LIB3195_SBNVT_H_INCLUDED__ 1
    00088 #include "beepsession.h"
    00089
    00090 #define sbNVTRCHECKVALIDOBJECT(x) {assert(x != NULL); assert(x->OID == OIDsbNVTR);}
    00091 #define sbNVTECHECKVALIDOBJECT(x) {assert(x != NULL); assert(x->OID == OIDsbNVTE);}
    00092
    00096 struct sbNVTEObject;
    00097 struct sbStrBObject;
    00098 struct sbNVTRObject
    00099 {
    00100         srObjID OID;
    00101         struct sbNVTEObject *pFirst;
    00102         struct sbNVTEObject *pLast;
    00103         struct sbNVTEObject *pParent;
    00104 };
    00105 typedef struct sbNVTRObject sbNVTRObj;
    00106
    00107
    00116 struct sbNVTEObject
    00117 {
    00118         srObjID OID;
    00119         struct sbNVTEObject *pNext;
    00120         sbNVTRObj *pChild;
    00121         sbNVTRObj *pXMLProps;
    00122         void *pUsr;
    00123         void (*pUsrDestroy)(void*);
    00124         char *pszKey;
    00125         unsigned uKey;
    00126         int uKeyPresent;
    00127         char *pszValue;
    00128         unsigned uValue;
    00129         int     bIsSetUValue;
    00130         char *pCDATA;
    00131 };
    00132 typedef struct sbNVTEObject sbNVTEObj;
    00133
    00134
    00142 void sbNVTRDestroy(sbNVTRObj* pThis);
    00143
    00157 void sbNVTEDestroy(sbNVTEObj* pThis);
    00158
    00166  sbNVTRObj* sbNVTRConstruct(void);
    00167
    00175  sbNVTEObj* sbNVTEConstruct(void);
    00176
    00189  sbNVTEObj* sbNVTUnlinkElement(sbNVTRObj* pRoot);
    00190
    00213 sbNVTEObj* sbNVTSearchKeySZ(sbNVTRObj* pRoot, sbNVTEObj* pStart, char* pszSearch);
    00214
    00234 sbNVTEObj* sbNVTSearchKeyU(sbNVTRObj* pRoot, sbNVTEObj* pStart, unsigned uSearch);
    00235
    00236
    00250 srRetVal sbNVTESetKeySZ(sbNVTEObj* pThis, char* pszKey, int bCopy);
    00251
    00265 srRetVal sbNVTESetValueSZ(sbNVTEObj* pThis, char* pszVal, int bCopy);
    00266
    00271 srRetVal sbNVTESetKeyU(sbNVTEObj* pThis, unsigned uKey);
    00272
    00276 srRetVal sbNVTEUnsetKeyU(sbNVTEObj* pThis);
    00277
    00282 srRetVal sbNVTESetValueU(sbNVTEObj* pThis, unsigned uVal);
    00283
    00284
    00298 srRetVal sbNVTESetUsrPtr(sbNVTEObj* pThis, void *pPtr, void(pPtrDestroy)(void*));
    00299
    00300
    00306 void sbNVTRUnlinkFromParent(sbNVTRObj *pRoot);
    00307
    00318  sbNVTEObj* sbNVTAddEntry(sbNVTRObj* pRoot);
    00319
    00320
    00329 void sbNVTEUnsetUsrPtr(sbNVTEObj *pEntry);
    00330
    00342 srRetVal sbNVTRRemoveKeyU(sbNVTRObj *pRoot, unsigned uKey);
    00343
    00344
    00358 sbNVTEObj *sbNVTRHasElement(sbNVTRObj* pRoot, char *pEltname, int bMustBeOnly);
    00359
    00360
    00367  srRetVal sbNVTESetChild(sbNVTEObj *pEntry, sbNVTRObj *pChildRoot);
    00368
    00377 void sbNVTDebugPrintTree(sbNVTRObj *pRoot, int iLevel);
    00378
    00385  srRetVal sbNVTRRemoveFirst(sbNVTRObj* pRoot);
    00386
    00435 srRetVal sbNVTRParseXML(sbNVTRObj *pRoot, char *pszXML);
    00436
    00451 srRetVal sbNVTRRemovEntryWithpUsr(sbNVTRObj *pRoot, void* pUsr);
    00452
    00464 srRetVal sbNVTRRemoveKeyU(sbNVTRObj *pRoot, unsigned uKey);
    00465
    00476 void sbNVTEUnlinkFromList(sbNVTRObj *pRoot, sbNVTEObj* pEntry, sbNVTEObj* pPrev);
    00477
    00505 sbNVTEObj* sbNVTSearchpUsrAndPrev(sbNVTRObj* pRoot, sbNVTEObj* pStart, void *pUsr, sbNVTEObj** ppPrevEntry);
    00506
    00521 sbNVTEObj* sbNVTSearchKeyUAndPrev(sbNVTRObj* pRoot, sbNVTEObj* pStart, unsigned uSearch, sbNVTEObj** ppPrevEntry);
    00522
    00537 srRetVal sbNVTEGetValueU(sbNVTEObj* pThis, unsigned* puValue);
    00538
    00552 char* sbNVTXMLEscapePCDATA(char *pszToEscape);
    00553
    00554
    00568 srRetVal sbNVTXMLEscapePCDATAintoStrB(char *pszToEscape, struct sbStrBObject *pStr);
    00569
    00577 char* sbNVTEUtilStrDup(char *pszStrToDup);
    00578
    00579 #endif