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(); } }
// =-=-=-=-=-=-=- // 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
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(); } }