static rc_t CC XFSDocNodeDispose ( const struct XFSDocNode * self ) { struct XFSDocNode * Node = ( struct XFSDocNode * ) self; /* printf ( "XFSDocNodeDispose ( 0x%p ) [%p]\n", ( void * ) Node, ( void * ) Node -> doc ); */ if ( Node == 0 ) { return 0; } if ( Node -> perm != NULL ) { free ( ( char * ) Node -> perm ); Node -> perm = NULL; } if ( Node -> doc != NULL ) { XFSDocRelease ( Node -> doc ); Node -> doc = NULL; } free ( Node ); return 0; } /* XFSDocNodeDispose () */
static rc_t CC XFSDocNodeDispose ( const struct XFSDocNode * self ) { struct XFSDocNode * Node = ( struct XFSDocNode * ) self; /* pLogMsg ( klogDebug, "XFSDocNodeDispose ( $(node) ) [$(doc)]", "node=%p,doc=%p", ( void * ) Node, ( void * ) Node -> doc ); */ if ( Node == 0 ) { return 0; } if ( Node -> perm != NULL ) { free ( ( char * ) Node -> perm ); Node -> perm = NULL; } if ( Node -> doc != NULL ) { XFSDocRelease ( Node -> doc ); Node -> doc = NULL; } free ( Node ); return 0; } /* XFSDocNodeDispose () */
static rc_t CC _AddSignatureFile ( struct XFSKartNode * Node ) { rc_t RCt; struct XFSDoc * Doc; struct XFSNode * Sign; RCt = 0; Doc = NULL; Sign = NULL; XFS_CAN ( Node ) RCt = XFSTextDocMake ( & Doc ); if ( RCt == 0 ) { RCt = XFSTextDocAppend ( Doc, "%d\n", Node -> project_id ); if ( RCt == 0 ) { RCt = XFSDocNodeMakeWithFlavor ( & Sign, Doc, ".#dbgap-mount-tool#", XFSPermRODefNodeChar (), _sFlavorOfFoo ); if ( RCt == 0 ) { RCt = XFSContNodeAddChild ( & ( Node -> node . node ), Sign ); } } XFSDocRelease ( Doc ); } if ( RCt != 0 ) { if ( Sign != NULL ) { XFSNodeDispose ( Sign ); Sign = NULL; } } return RCt; } /* _AddSignatureFile () */
static rc_t CC _ReadMeNodeConstructor ( const struct XFSModel * Model, const struct XFSModelNode * Template, const char * Alias, const struct XFSNode ** Node ) { rc_t RCt; struct XFSNode * TheNode; const char * NodeName; const char * TextOrSource; struct XFSDoc * ReadMe; RCt = 0; TheNode = NULL; NodeName = NULL; TextOrSource = NULL; ReadMe = NULL; if ( Node != NULL ) { * Node = NULL; } if ( Model == NULL || Template == NULL || Node == NULL ) { return XFS_RC ( rcNull ); } NodeName = Alias == NULL ? XFSModelNodeName ( Template ) : Alias; /*) There could be "text" and "source" parameters, we will leave | source for a future development then, and will use it as text (*/ TextOrSource = XFSModelNodeProperty ( Template, XFS_MODEL_TEXT ); if ( TextOrSource == NULL ) { TextOrSource = XFSModelNodeProperty ( Template, XFS_MODEL_SOURCE ); } if ( TextOrSource == NULL ) { return XFS_RC ( rcInvalid ); } RCt = XFSTextDocMake ( & ReadMe ); if ( RCt == 0 ) { RCt = XFSTextDocAppend ( ReadMe, "README:\n%s\n", TextOrSource ); if ( RCt == 0 ) { RCt = XFSDocNodeMakeWithFlavor ( & TheNode, ReadMe, NodeName, XFSModelNodeSecurity ( Template ), _sFlavorOfReadMe ); if ( RCt == 0 ) { * Node = TheNode; } else { if ( TheNode != NULL ) { XFSNodeDispose ( TheNode ); } } } XFSDocRelease ( ReadMe ); } return RCt; } /* _ReadMeNodeConstructor () */