irods
4.2.8
About: iRODS (the integrated Rule Oriented Data System) is a distributed data-management system for creating data grids, digital libraries, persistent archives, and real-time data systems.
![]() ![]() |
#include "rcMisc.h"
#include "dataObjOpr.hpp"
#include "specColl.hpp"
#include "collection.hpp"
#include "resource.hpp"
#include "genQuery.h"
#include "modColl.h"
#include "icatDefines.h"
#include "dataObjClose.h"
#include "objMetaOpr.hpp"
#include "rsGenQuery.hpp"
#include "rsModColl.hpp"
#include "rsDataObjClose.hpp"
#include "irods_resource_backport.hpp"
#include "irods_stacktrace.hpp"
Go to the source code of this file.
Functions | |
int | querySpecColl (rsComm_t *rsComm, char *objPath, genQueryOut_t **genQueryOut) |
int | queueSpecCollCache (rsComm_t *rsComm, genQueryOut_t *genQueryOut, char *objPath) |
int | queueSpecCollCacheWithObjStat (rodsObjStat_t *rodsObjStatOut) |
specCollCache_t * | matchSpecCollCache (char *objPath) |
int | getSpecCollCache (rsComm_t *rsComm, char *objPath, int inCachOnly, specCollCache_t **specCollCache) |
int | modCollInfo2 (rsComm_t *rsComm, specColl_t *specColl, int clearFlag) |
int | statPathInSpecColl (rsComm_t *rsComm, char *objPath, int inCachOnly, rodsObjStat_t **rodsObjStatOut) |
int | specCollSubStat (rsComm_t *rsComm, specColl_t *specColl, char *subPath, specCollPerm_t specCollPerm, dataObjInfo_t **dataObjInfo) |
int | resolvePathInSpecColl (rsComm_t *rsComm, char *objPath, specCollPerm_t specCollPerm, int inCachOnly, dataObjInfo_t **dataObjInfo) |
int | resolveLinkedPath (rsComm_t *rsComm, char *objPath, specCollCache_t **specCollCache, keyValPair_t *condInput) |
Variables | |
static int | HaveFailedSpecCollPath = 0 |
static char | FailedSpecCollPath [(1024+64)] |
int getSpecCollCache | ( | rsComm_t * | rsComm, |
char * | objPath, | ||
int | inCachOnly, | ||
specCollCache_t ** | specCollCache | ||
) |
Definition at line 255 of file specColl.cpp.
References freeGenQueryOut(), matchSpecCollCache(), NULL, querySpecColl(), queueSpecCollCache(), SpecCollCacheHead, irods.pypyodbc::status, and SYS_SPEC_COLL_NOT_IN_CACHE.
Referenced by _rsObjStat(), linkCollReg(), resolveLinkedPath(), resolvePathInSpecColl(), statPathInSpecColl(), structFileReg(), and tar_struct_file_open().
specCollCache_t* matchSpecCollCache | ( | char * | objPath | ) |
Definition at line 236 of file specColl.cpp.
References SpecColl::collection, SpecCollCache::next, NULL, SpecCollCache::specColl, and SpecCollCacheHead.
Referenced by collStat(), and getSpecCollCache().
int modCollInfo2 | ( | rsComm_t * | rsComm, |
specColl_t * | specColl, | ||
int | clearFlag | ||
) |
Definition at line 285 of file specColl.cpp.
References addKeyVal(), SpecColl::collection, COLLECTION_INFO2_KW, CollInp::collName, CollInp::condInput, LOG_NOTICE, makeCachedStructFileStr(), MAX_NAME_LEN, rodsLog(), rsModColl(), rstrcpy(), and irods.pypyodbc::status.
Referenced by stage_tar_struct_file(), tar_file_mkdir(), tar_file_rename(), tar_file_rmdir(), tar_file_sync(), tar_file_truncate(), tar_file_unlink(), and tar_file_write().
int querySpecColl | ( | rsComm_t * | rsComm, |
char * | objPath, | ||
genQueryOut_t ** | genQueryOut | ||
) |
Definition at line 33 of file specColl.cpp.
References addInxIval(), addInxVal(), CAT_NO_ROWS_FOUND, clearGenQueryInp(), COL_COLL_CREATE_TIME, COL_COLL_ID, COL_COLL_INFO1, COL_COLL_INFO2, COL_COLL_MODIFY_TIME, COL_COLL_NAME, COL_COLL_OWNER_NAME, COL_COLL_OWNER_ZONE, COL_COLL_TYPE, FailedSpecCollPath, HaveFailedSpecCollPath, MAX_NAME_LEN, MAX_SQL_ROWS, GenQueryInp::maxRows, rsGenQuery(), rstrcpy(), GenQueryInp::selectInp, GenQueryInp::sqlCondInp, and irods.pypyodbc::status.
Referenced by getSpecCollCache().
int queueSpecCollCache | ( | rsComm_t * | rsComm, |
genQueryOut_t * | genQueryOut, | ||
char * | objPath | ||
) |
Definition at line 83 of file specColl.cpp.
References SpecColl::cacheDir, CAT_NO_ROWS_FOUND, COL_COLL_CREATE_TIME, COL_COLL_ID, COL_COLL_INFO1, COL_COLL_INFO2, COL_COLL_MODIFY_TIME, COL_COLL_NAME, COL_COLL_OWNER_NAME, COL_COLL_OWNER_ZONE, COL_COLL_TYPE, SpecColl::collClass, SpecColl::collection, SpecCollCache::collId, collType(), SpecCollCache::createTime, getPhyPath(), getSqlResultByInx(), SqlResult::len, LOG_ERROR, SpecCollCache::modifyTime, NAME_LEN, SpecCollCache::next, NULL, SpecColl::objPath, SpecCollCache::ownerName, SpecCollCache::ownerZone, SpecColl::phyPath, SpecColl::rescHier, resolveSpecCollType(), SpecColl::resource, rodsLog(), GenQueryOut::rowCnt, rstrcpy(), SpecCollCache::specColl, SpecCollCacheHead, irods.pypyodbc::status, STRUCT_FILE_COLL, TAR_STRUCT_FILE_T, TIME_LEN, SpecColl::type, UNMATCHED_KEY_OR_INDEX, and SqlResult::value.
Referenced by collStat(), and getSpecCollCache().
int queueSpecCollCacheWithObjStat | ( | rodsObjStat_t * | rodsObjStatOut | ) |
Definition at line 213 of file specColl.cpp.
References SpecCollCache::collId, rodsObjStat::createTime, SpecCollCache::createTime, rodsObjStat::dataId, rodsObjStat::modifyTime, SpecCollCache::modifyTime, NAME_LEN, SpecCollCache::next, rodsObjStat::ownerName, SpecCollCache::ownerName, rodsObjStat::ownerZone, SpecCollCache::ownerZone, rstrcpy(), rodsObjStat::specColl, SpecCollCache::specColl, SpecCollCacheHead, and TIME_LEN.
Referenced by rsObjStat().
int resolveLinkedPath | ( | rsComm_t * | rsComm, |
char * | objPath, | ||
specCollCache_t ** | specCollCache, | ||
keyValPair_t * | condInput | ||
) |
Definition at line 711 of file specColl.cpp.
References addKeyVal(), SpecColl::collection, getMountedSubPhyPath(), getSpecCollCache(), getValByKey(), LINKED_COLL, LOG_ERROR, MAX_LINK_CNT, MAX_NAME_LEN, NO_TRANSLATE_LINKPT_KW, NULL, SpecColl::phyPath, rodsLog(), rstrcpy(), irods.pypyodbc::status, SYS_LINK_CNT_EXCEEDED_ERR, TRANSLATED_PATH_KW, and USER_STRLEN_TOOLONG.
Referenced by rsBulkDataObjPut(), rsCollCreate(), rsDataObjChksum(), rsDataObjCopy(), rsDataObjCreate(), rsDataObjGet(), rsDataObjLock(), rsDataObjPhymv(), rsDataObjPut(), rsDataObjRename(), rsDataObjRsync(), rsDataObjTrim(), rsDataObjUnlink(), rsDataObjUnlock(), rsModAccessControl(), rsObjStat(), rsPhyBundleColl(), rsRmColl(), rsStructFileExtAndReg(), and specCollSubStat().
int resolvePathInSpecColl | ( | rsComm_t * | rsComm, |
char * | objPath, | ||
specCollPerm_t | specCollPerm, | ||
int | inCachOnly, | ||
dataObjInfo_t ** | dataObjInfo | ||
) |
Definition at line 644 of file specColl.cpp.
References ACCESS_DELETE_OBJECT, ACCESS_READ_OBJECT, checkCollAccessPerm(), SpecColl::collection, getSpecCollCache(), LOG_ERROR, NULL, SpecCollCache::perm, rodsLog(), SpecCollCache::specColl, specCollSubStat(), irods.pypyodbc::status, SYS_INTERNAL_NULL_INPUT_ERR, SYS_SPEC_COLL_OBJ_NOT_EXIST, UNKNOWN_COLL_PERM, and WRITE_COLL_PERM.
Referenced by _rsRmColl(), _rsRmCollRecur(), getDataObjInfoIncSpecColl(), openSpecColl(), rsCollCreate(), rsDataObjRename(), rsDataObjRepl(), and specCollSubCreate().
int specCollSubStat | ( | rsComm_t * | rsComm, |
specColl_t * | specColl, | ||
char * | subPath, | ||
specCollPerm_t | specCollPerm, | ||
dataObjInfo_t ** | dataObjInfo | ||
) |
Definition at line 409 of file specColl.cpp.
References ACCESS_DELETE_OBJECT, ACCESS_READ_OBJECT, addKeyVal(), COLL_OBJ_T, SpecColl::collClass, SpecColl::collection, collStat(), DataObjInp::condInput, rodsObjStat::createTime, DATA_OBJ_T, DataObjInfo::dataCreate, rodsObjStat::dataId, DataObjInfo::dataId, DataObjInfo::dataModify, DataObjInfo::dataOwnerName, DataObjInfo::dataOwnerZone, DataObjInfo::dataType, DataObjInfo::filePath, freeAllDataObjInfo(), freeDataObjInfo(), freeRodsObjStat(), getDataObjInfo(), getMountedSubPhyPath(), getStructFileType(), irods::resource_manager::hier_to_leaf_id(), l3Stat(), LINKED_COLL, irods::log(), LOG_DEBUG, LOG_ERROR, MAX_NAME_LEN, rodsObjStat::modifyTime, MOUNTED_COLL, NAME_LEN, NULL, DataObjInp::objPath, SpecColl::objPath, DataObjInfo::objPath, irods::error::ok(), rodsObjStat::ownerName, rodsObjStat::ownerZone, PASS, SpecColl::phyPath, READ_COLL_PERM, SpecColl::replNum, DataObjInfo::replNum, replSpecColl(), requeDataObjInfoByResc(), RESC_HIER_STR_KW, resc_mgr, SpecColl::rescHier, DataObjInfo::rescHier, DataObjInfo::rescId, DataObjInfo::rescName, resolveLinkedPath(), SpecColl::resource, rodsLog(), rstrcpy(), sortObjInfoForOpen(), SpecCollCache::specColl, DataObjInfo::specColl, rodsStat::st_ctim, rodsStat::st_mode, rodsStat::st_mtim, rodsStat::st_size, irods.pypyodbc::status, DataObjInfo::subPath, SYS_CACHE_STRUCT_FILE_RESC_ERR, SYS_UNKNOWN_SPEC_COLL_CLASS, TIME_LEN, USER__NULL_INPUT_ERR, and WRITE_COLL_PERM.
Referenced by resolvePathInSpecColl(), and statPathInSpecColl().
int statPathInSpecColl | ( | rsComm_t * | rsComm, |
char * | objPath, | ||
int | inCachOnly, | ||
rodsObjStat_t ** | rodsObjStatOut | ||
) |
Definition at line 319 of file specColl.cpp.
References CAT_NO_ROWS_FOUND, SpecColl::collClass, SpecCollCache::collId, SpecCollCache::createTime, DataObjInfo::dataCreate, DataObjInfo::dataId, DataObjInfo::dataModify, DataObjInfo::dataOwnerName, DataObjInfo::dataOwnerZone, DataObjInfo::dataSize, freeAllDataObjInfo(), getSpecCollCache(), LINKED_COLL, LOG_ERROR, MAX_NAME_LEN, SpecCollCache::modifyTime, NAME_LEN, NULL, DataObjInfo::objPath, SpecCollCache::ownerName, SpecCollCache::ownerZone, replSpecColl(), rodsLog(), rstrcpy(), SpecCollCache::specColl, DataObjInfo::specColl, specCollSubStat(), irods.pypyodbc::status, SYS_SPEC_COLL_NOT_IN_CACHE, TIME_LEN, UNKNOWN_COLL_PERM, and UNKNOWN_OBJ_T.
Referenced by _rsObjStat(), and rsObjStat().
|
static |
Definition at line 24 of file specColl.cpp.
Referenced by querySpecColl().
|
static |
Definition at line 23 of file specColl.cpp.
Referenced by querySpecColl().