/*))) ||| +++ EncNode has a Teleport, and it is HERE ||| (((*/ static rc_t CC _EncryptedFileNodeConstructor ( const struct XFSModel * Model, const struct XFSModelNode * Template, const char * Alias, const struct XFSNode ** Node ) { rc_t RCt; struct XFSNode * TheNode; const char * NodeName; RCt = 0; TheNode = NULL; NodeName = NULL; if ( Node != NULL ) { * Node = NULL; } if ( Model == NULL || Template == NULL || Node == NULL ) { return XFS_RC ( rcNull ); } NodeName = Alias == NULL ? XFSModelNodeName ( Template ) : Alias; RCt = XFSEncryptedFileNodeMake ( NodeName, XFSModelNodeProperty ( Template, XFS_MODEL_SOURCE ), XFSModelNodeProperty ( Template, XFS_MODEL_PASSWD ), XFSModelNodeProperty ( Template, XFS_MODEL_ENCTYPE ), & TheNode ); if ( RCt == 0 ) { * Node = ( struct XFSNode * ) TheNode; } if ( RCt != 0 ) { * Node = NULL; if ( TheNode != NULL ) { XFSEncNodeDispose ( ( const struct XFSEncNode * ) TheNode ); } } return RCt; } /* _EncryptedFileNodeConstructor () */
static rc_t CC _KartCollectionNodeConstructorEx ( const struct XFSModel * Model, const struct XFSModelNode * Template, const char * Alias, XFSNType Type, const struct XFSNode ** Node ) { rc_t RCt; struct XFSNode * TheNode; const char * NodeName; const char * Path; RCt = 0; TheNode = NULL; NodeName = NULL; Path = NULL; if ( Model == NULL || Template == NULL || Node == NULL ) { return XFS_RC ( rcNull ); } * Node = NULL; NodeName = Alias == NULL ? XFSModelNodeName ( Template ) : Alias; Path = XFSModelNodeProperty ( Template, XFS_MODEL_SOURCE ); if ( Path != NULL ) { RCt = XFSKartCollectionNodeMake ( NodeName, Path, XFSModelNodeSecurity ( Template ), & TheNode ); } else { RCt = _KartCollectionNodeMakeFromModel ( NodeName, Model, Template, & TheNode ); } if ( RCt == 0 ) { * Node = TheNode; } else { * Node = NULL; if ( TheNode != NULL ) { XFSNodeDispose ( TheNode ); } } return RCt; } /* _KartCollectionNodeConstructorEx () */
static rc_t CC _KartNodeConstructorEx ( const struct XFSModel * Model, const struct XFSModelNode * Template, const char * Alias, XFSNType Type, const struct XFSNode ** Node ) { rc_t RCt; struct XFSNode * TheNode; const char * NodeName; uint32_t ProjectId; const char * Var; RCt = 0; TheNode = NULL; NodeName = NULL; ProjectId = 0; Var = NULL; XFS_CSAN ( Node ) XFS_CAN ( Model ) XFS_CAN ( Template ) XFS_CAN ( Node ) NodeName = Alias == NULL ? XFSModelNodeName ( Template ) : Alias; Var = XFSModelNodeProperty ( Template, XFS_MODEL_PROJECTID ); if ( Var == NULL ) { return XFS_RC ( rcInvalid ); } ProjectId = atol ( Var ); RCt = XFSGapKartNodeMake ( & TheNode, NodeName, ProjectId, XFSModelNodeSecurity ( Template ) ); if ( RCt == 0 ) { * Node = TheNode; } else { * Node = NULL; if ( TheNode != NULL ) { XFSNodeDispose ( TheNode ); } } return RCt; } /* _KartNodeConstructorEx () */
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 () */