예제 #1
0
/*)))
 |||
 +++    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 () */
예제 #2
0
파일: karts.c 프로젝트: ImAWolf/ncbi-vdb
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 () */
예제 #3
0
파일: gapk.c 프로젝트: binlu1981/ncbi-vdb
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 () */
예제 #4
0
파일: readme.c 프로젝트: binlu1981/ncbi-vdb
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 () */