예제 #1
0
int _rsSubStructFileOpendir( rsComm_t*  _comm,
                             subFile_t* _sub_file ) {
    // =-=-=-=-=-=-=-
    // create first class structured object
    irods::structured_object_ptr struct_obj(
        new irods::structured_object(
            *_sub_file ) );
    struct_obj->comm( _comm );
    struct_obj->resc_hier( _sub_file->specColl->rescHier );

    // =-=-=-=-=-=-=-
    // call abstrcated interface to open a file
    irods::error opendir_err = fileOpendir( _comm, struct_obj );
    if ( !opendir_err.ok() ) {
        std::stringstream msg;
        msg << "failed on call to fileOpendir for [";
        msg << struct_obj->physical_path();
        msg << "]";
        irods::log( PASSMSG( msg.str(), opendir_err ) );
        return opendir_err.code();

    }
    else {
        return opendir_err.code();

    }
}
예제 #2
0
// =-=-=-=-=-=-=-
// local function to handle sub file creation
int _rsSubStructFileCreate(
    rsComm_t*  _comm,
    subFile_t* _sub_file ) {

    irods::structured_object_ptr struct_obj(
        new irods::structured_object(
            *_sub_file ) );
    struct_obj->comm( _comm );
    struct_obj->resc_hier( _sub_file->specColl->rescHier );

    irods::error err = fileCreate( _comm, struct_obj );
    if ( !err.ok() ) {
        std::stringstream msg;
        msg << "failed on call to fileCreate for [";
        msg << struct_obj->sub_file_path();
        irods::log( PASSMSG( msg.str(), err ) );
        return 0;

    }
    else {
        return err.code();

    }

} // _rsSubStructFileCreate
예제 #3
0
int _rsSubStructFileClose(
    rsComm_t*                _comm,
    subStructFileFdOprInp_t* _close_inp ) {
    // =-=-=-=-=-=-=-
    // create first class structured object
    irods::structured_object_ptr struct_obj(
        new irods::structured_object( *_close_inp ) );
    struct_obj->comm( _comm );
    struct_obj->resc_hier( _close_inp->resc_hier );
    struct_obj->file_descriptor( _close_inp->fd );

    // =-=-=-=-=-=-=-
    // call abstrcated interface to open a file
    irods::error close_err = fileClose( _comm, struct_obj );
    if ( !close_err.ok() ) {
        std::stringstream msg;
        msg << "failed on call to fileClose for fd [ ";
        msg << struct_obj->file_descriptor();
        msg << " ]";
        irods::log( PASSMSG( msg.str(), close_err ) );
        return close_err.code();

    }
    else {
        return close_err.code();

    }

}