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.
  Fossies Dox: irods-4.2.8.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

rsDataObjGet.cpp
Go to the documentation of this file.
1 
3 /* This is script-generated code (for the most part). */
4 /* See dataObjGet.h for a description of this API call.*/
5 
6 #include "dataObjGet.h"
7 #include "rodsLog.h"
8 #include "dataGet.h"
9 #include "fileGet.h"
10 #include "dataObjOpen.h"
11 #include "dataObjClose.h"
12 #include "rsGlobalExtern.hpp"
13 #include "rcGlobalExtern.h"
14 #include "rsApiHandler.hpp"
15 #include "objMetaOpr.hpp"
16 #include "physPath.hpp"
17 #include "specColl.hpp"
18 #include "subStructFileGet.h"
19 #include "getRemoteZoneResc.h"
20 #include "rsDataObjGet.hpp"
21 #include "rsDataObjOpen.hpp"
22 #include "rsDataObjClose.hpp"
23 #include "rsDataGet.hpp"
24 #include "rsFileLseek.hpp"
25 #include "rsSubStructFileGet.hpp"
26 #include "rsFileGet.hpp"
27 
28 // =-=-=-=-=-=-=-
32 
33 int rsDataObjGet(rsComm_t* rsComm,
34  dataObjInp_t* dataObjInp,
36  bytesBuf_t* dataObjOutBBuf)
37 {
38  if (dataObjOutBBuf == NULL) {
39  rodsLog(LOG_ERROR, "dataObjOutBBuf was null in call to rsDataObjGet.");
41  }
42 
44 
45  int status;
46  int remoteFlag;
48  specCollCache_t *specCollCache = NULL;
49 
50  resolveLinkedPath(rsComm, dataObjInp->objPath, &specCollCache, &dataObjInp->condInput);
51  remoteFlag = getAndConnRemoteZone(rsComm, dataObjInp, &rodsServerHost, REMOTE_OPEN);
52 
53  if (remoteFlag < 0) {
54  return remoteFlag;
55  }
56 
57  if ( remoteFlag == LOCAL_HOST ) {
58  // dataObjInfo_t linked list
59  dataObjInfo_t *dataObjInfoHead = NULL;
60 
61  // resource hierarchy
62  std::string hier;
63 
64  // =-=-=-=-=-=-=-
65  // working on the "home zone", determine if we need to redirect to a different
66  // server in this zone for this operation. if there is a RESC_HIER_STR_KW then
67  // we know that the redirection decision has already been made
68  if ( getValByKey( &dataObjInp->condInput, RESC_HIER_STR_KW ) == NULL ) {
70  dataObjInp, hier, &dataObjInfoHead );
71  if ( !ret.ok() ) {
72  std::stringstream msg;
73  msg << "rsDataObjGet :: failed in irods::resolve_resource_hierarchy for [";
74  msg << dataObjInp->objPath << "]";
75  irods::log( PASSMSG( msg.str(), ret ) );
76  return ret.code();
77  }
78 
79  // =-=-=-=-=-=-=-
80  // we resolved the redirect and have a host, set the hier str for subsequent
81  // api calls, etc.
82  addKeyVal( &dataObjInp->condInput, RESC_HIER_STR_KW, hier.c_str() );
83  }
84  else {
85  // file object for file_object_factory
87 
88  // get resource hierarchy from condInput
89  hier = getValByKey( &dataObjInp->condInput, RESC_HIER_STR_KW );
90 
91  // get replicas vector populated
92  irods::error fac_err = irods::file_object_factory(rsComm, dataObjInp, file_obj, &dataObjInfoHead);
93 
94  } // if ( getValByKey( &dataObjInp->condInput, RESC_HIER_STR_KW ) == NULL )
95 
96  status = _rsDataObjGet( rsComm, dataObjInp, portalOprOut, dataObjOutBBuf, BRANCH_MSG, dataObjInfoHead );
97  }
98  else {
99  status = _rcDataObjGet(rodsServerHost->conn, dataObjInp, portalOprOut, dataObjOutBBuf);
100 
101  if ( status < 0 ) {
102  return status;
103  }
104 
105  if ( status == 0 || dataObjOutBBuf->len > 0 ) {
106  /* data included in buf */
107  return status;
108  }
109 
110  if ( !( *portalOprOut ) ) {
111  rodsLog( LOG_ERROR, "_rcDataObjGet returned a %d status code, but left portalOprOut null.", status );
112  return SYS_INVALID_PORTAL_OPR;
113  }
114 
115  /* have to allocate a local l1descInx to keep track of things
116  * since the file is in remote zone. It sets remoteL1descInx,
117  * oprType = REMOTE_ZONE_OPR and remoteZoneHost so that
118  * rsComplete knows what to do */
119  int l1descInx = allocAndSetL1descForZoneOpr((*portalOprOut)->l1descInx, dataObjInp, rodsServerHost, NULL);
120 
121  if (l1descInx < 0) {
122  return l1descInx;
123  }
124 
125  (*portalOprOut)->l1descInx = l1descInx;
126 
127  return status;
128  }
129 
130  return status;
131 }
132 
133 int
135  dataObjInp_t *dataObjInp,
137  bytesBuf_t *dataObjOutBBuf,
138  int handlerFlag,
139  dataObjInfo_t *dataObjInfoHead ) {
140 
141  int status;
142  dataObjInfo_t *dataObjInfo;
143  int l1descInx;
144  char *chksumStr = NULL;
145  int retval;
146  openedDataObjInp_t dataObjCloseInp;
147 
148  /* PHYOPEN_BY_SIZE ask it to check whether "dataInclude" should be done */
149  addKeyVal( &dataObjInp->condInput, PHYOPEN_BY_SIZE_KW, "" );
150  l1descInx = _rsDataObjOpen( rsComm, dataObjInp, dataObjInfoHead );
151 
152  if ( l1descInx < 0 ) {
153  return l1descInx;
154  }
155 
156  L1desc[l1descInx].oprType = GET_OPR;
157 
158  dataObjInfo = L1desc[l1descInx].dataObjInfo;
159  copyKeyVal(
160  &dataObjInp->condInput,
161  &dataObjInfo->condInput );
162 
163  if ( getStructFileType( dataObjInfo->specColl ) >= 0 && // JMC - backport 4682
164  L1desc[l1descInx].l3descInx > 0 ) {
165  /* l3descInx == 0 if included */
166  *portalOprOut = ( portalOprOut_t * ) malloc( sizeof( portalOprOut_t ) );
167  bzero( *portalOprOut, sizeof( portalOprOut_t ) );
168  ( *portalOprOut )->l1descInx = l1descInx;
169  return l1descInx;
170  }
171 
172  if ( getValByKey( &dataObjInp->condInput, VERIFY_CHKSUM_KW ) != NULL ) {
173  if ( strlen( dataObjInfo->chksum ) > 0 ) {
174  /* a chksum already exists */
175  chksumStr = strdup( dataObjInfo->chksum );
176  }
177  else {
178  status = dataObjChksumAndReg( rsComm, dataObjInfo, &chksumStr );
179  if ( status < 0 ) {
180  return status;
181  }
182  rstrcpy( dataObjInfo->chksum, chksumStr, NAME_LEN );
183  }
184  }
185 
186  if ( L1desc[l1descInx].l3descInx <= 2 ) {
187  /* no physical file was opened */
188  status = l3DataGetSingleBuf( rsComm, l1descInx, dataObjOutBBuf,
189  portalOprOut );
190  if ( status >= 0 ) {
191  int status2;
192  status2 = applyRuleForPostProcForRead( rsComm, dataObjOutBBuf,
193  dataObjInp->objPath );
194  if ( status2 >= 0 ) {
195  status = 0;
196  }
197  else {
198  status = status2;
199  }
200  if ( chksumStr != NULL ) {
201  rstrcpy( ( *portalOprOut )->chksum, chksumStr, NAME_LEN );
202  }
203  }
204  free( chksumStr );
205  return status;
206  }
207 
208 
209  status = preProcParaGet( rsComm, l1descInx, portalOprOut );
210 
211  if ( status < 0 ) {
212  memset( &dataObjCloseInp, 0, sizeof( dataObjCloseInp ) );
213  dataObjCloseInp.l1descInx = l1descInx;
214  rsDataObjClose( rsComm, &dataObjCloseInp );
215  free( chksumStr );
216  return status;
217  }
218 
219  status = l1descInx; /* means file not included */
220  if ( chksumStr != NULL ) {
221  rstrcpy( ( *portalOprOut )->chksum, chksumStr, NAME_LEN );
222  }
223  free( chksumStr );
224 
225  /* return portalOprOut to the client and wait for the rcOprComplete
226  * call. That is when the parallel I/O is done */
227  retval = sendAndRecvBranchMsg( rsComm, rsComm->apiInx, status,
228  ( void * ) * portalOprOut, dataObjOutBBuf );
229 
230  if ( retval < 0 ) {
231  memset( &dataObjCloseInp, 0, sizeof( dataObjCloseInp ) );
232  dataObjCloseInp.l1descInx = l1descInx;
233  rsDataObjClose( rsComm, &dataObjCloseInp );
234  }
235 
236  if ( handlerFlag & INTERNAL_SVR_CALL ) {
237  /* internal call. want to know the real status */
238  return retval;
239  }
240  else {
241  /* already send the client the status */
243  }
244 
245 }
246 
247 /* preProcParaGet - preprocessing for parallel get. Basically it calls
248  * rsDataGet to setup portalOprOut with the resource server.
249  */
250 int
251 preProcParaGet( rsComm_t *rsComm, int l1descInx, portalOprOut_t **portalOprOut ) {
252  int status;
253  dataOprInp_t dataOprInp;
254 
255  initDataOprInp( &dataOprInp, l1descInx, GET_OPR );
256  /* add RESC_HIER_STR_KW for getNumThreads */
257  if ( L1desc[l1descInx].dataObjInfo != NULL ) {
258  //addKeyVal (&dataOprInp.condInput, RESC_NAME_KW,
259  // L1desc[l1descInx].dataObjInfo->rescInfo->rescName);
260  addKeyVal( &dataOprInp.condInput, RESC_HIER_STR_KW,
261  L1desc[l1descInx].dataObjInfo->rescHier );
262  }
263  if ( L1desc[l1descInx].remoteZoneHost != NULL ) {
264  status = remoteDataGet( rsComm, &dataOprInp, portalOprOut,
265  L1desc[l1descInx].remoteZoneHost );
266  }
267  else {
268  status = rsDataGet( rsComm, &dataOprInp, portalOprOut );
269  }
270 
271  if ( status >= 0 ) {
272  ( *portalOprOut )->l1descInx = l1descInx;
273  }
274  clearKeyVal( &dataOprInp.condInput );
275  return status;
276 }
277 
278 int
279 l3DataGetSingleBuf( rsComm_t *rsComm, int l1descInx,
280  bytesBuf_t *dataObjOutBBuf, portalOprOut_t **portalOprOut ) {
281  int status = 0;
282  int bytesRead;
283  openedDataObjInp_t dataObjCloseInp;
284  dataObjInfo_t *dataObjInfo;
285 
286  /* just malloc an empty portalOprOut */
287 
288  *portalOprOut = ( portalOprOut_t* )malloc( sizeof( portalOprOut_t ) );
289  memset( *portalOprOut, 0, sizeof( portalOprOut_t ) );
290 
291  dataObjInfo = L1desc[l1descInx].dataObjInfo;
292 
293  dataObjOutBBuf->buf = malloc( dataObjInfo->dataSize );
294  bytesRead = l3FileGetSingleBuf( rsComm, l1descInx, dataObjOutBBuf );
295 
296  memset( &dataObjCloseInp, 0, sizeof( dataObjCloseInp ) );
297  dataObjCloseInp.l1descInx = l1descInx;
298  status = rsDataObjClose( rsComm, &dataObjCloseInp );
299  if ( status < 0 ) {
301  "l3DataGetSingleBuf: rsDataObjClose of %d error, status = %d",
302  l1descInx, status );
303  }
304 
305  if ( bytesRead < 0 ) {
306  return bytesRead;
307  }
308  else {
309  return status;
310  }
311 }
312 
313 /* l3FileGetSingleBuf - Get the content of a small file into a single buffer
314  * in dataObjOutBBuf->buf for an opened data obj in l1descInx.
315  * Return value - int - number of bytes read.
316  */
317 
318 int
319 l3FileGetSingleBuf( rsComm_t *rsComm, int l1descInx,
320  bytesBuf_t *dataObjOutBBuf ) {
321  dataObjInfo_t *dataObjInfo;
322  fileOpenInp_t fileGetInp;
323  int bytesRead;
324  dataObjInp_t *dataObjInp;
325 
326  dataObjInfo = L1desc[l1descInx].dataObjInfo;
327 
328  // =-=-=-=-=-=-=-
329  // extract the host location from the resource hierarchy
330  std::string location;
331  irods::error ret = irods::get_loc_for_hier_string( dataObjInfo->rescHier, location );
332  if ( !ret.ok() ) {
333  irods::log( PASSMSG( "l3FileGetSingleBuf - failed in get_loc_for_hier_string", ret ) );
334  return -1;
335  }
336 
337  if ( getStructFileType( dataObjInfo->specColl ) >= 0 ) {
338 
339 
340 
341  subFile_t subFile;
342  memset( &subFile, 0, sizeof( subFile ) );
343  rstrcpy( subFile.subFilePath, dataObjInfo->subPath,
344  MAX_NAME_LEN );
345  rstrcpy( subFile.addr.hostAddr, location.c_str(), NAME_LEN );
346 
347  subFile.specColl = dataObjInfo->specColl;
348  subFile.mode = getFileMode( L1desc[l1descInx].dataObjInp );
349  subFile.flags = O_RDONLY;
350  subFile.offset = dataObjInfo->dataSize;
351  bytesRead = rsSubStructFileGet( rsComm, &subFile, dataObjOutBBuf );
352  return bytesRead;
353  }
354 
355  memset( &fileGetInp, 0, sizeof( fileGetInp ) );
356  dataObjInp = L1desc[l1descInx].dataObjInp;
357  rstrcpy( fileGetInp.addr.hostAddr, location.c_str(), NAME_LEN );
358  rstrcpy( fileGetInp.fileName, dataObjInfo->filePath, MAX_NAME_LEN );
359  rstrcpy( fileGetInp.resc_name_, dataObjInfo->rescName, MAX_NAME_LEN );
360  rstrcpy( fileGetInp.resc_hier_, dataObjInfo->rescHier, MAX_NAME_LEN );
361  rstrcpy( fileGetInp.objPath, dataObjInfo->objPath, MAX_NAME_LEN );
362  fileGetInp.mode = getFileMode( dataObjInp );
363  fileGetInp.flags = O_RDONLY;
364  fileGetInp.dataSize = dataObjInfo->dataSize;
365 
366  copyKeyVal(
367  &dataObjInfo->condInput,
368  &fileGetInp.condInput );
369 
370  /* XXXXX need to be able to handle structured file */
371  bytesRead = rsFileGet( rsComm, &fileGetInp, dataObjOutBBuf );
372 
373  clearKeyVal( &fileGetInp.condInput );
374 
375  return bytesRead;
376 }
rodsLog
void rodsLog(int level, const char *formatStr,...)
Definition: rodsLog.cpp:86
getValByKey
char * getValByKey(const keyValPair_t *condInput, const char *keyWord)
Definition: rcMisc.cpp:675
DataObjInp::objPath
char objPath[(1024+64)]
Definition: dataObjInpOut.h:66
OpenedDataObjInp
Definition: dataObjInpOut.h:104
L1desc
l1desc_t L1desc[1026]
Definition: irods_server_globals.cpp:29
NULL
#define NULL
Definition: rodsDef.h:70
rsComm_t
Definition: rcConnect.h:145
_rcDataObjGet
int _rcDataObjGet(rcComm_t *conn, dataObjInp_t *dataObjInp, portalOprOut_t **portalOprOut, bytesBuf_t *dataObjOutBBuf)
Definition: rcDataObjGet.cpp:252
addKeyVal
int addKeyVal(keyValPair_t *condInput, const char *keyWord, const char *value)
Definition: rcMisc.cpp:789
SYS_INTERNAL_NULL_INPUT_ERR
@ SYS_INTERNAL_NULL_INPUT_ERR
Definition: rodsErrorTable.h:92
DataOprInp::condInput
keyValPair_t condInput
Definition: dataObjInpOut.h:134
getRemoteZoneResc.h
Subfile::offset
rodsLong_t offset
Definition: objInfo.h:321
rsDataGet
int rsDataGet(rsComm_t *rsComm, dataOprInp_t *dataGetInp, portalOprOut_t **portalOprOut)
Definition: rsDataGet.cpp:18
specColl.hpp
portalOprOut
Definition: dataObjInpOut.h:114
BytesBuf::buf
void * buf
Definition: rodsDef.h:199
rsDataObjOpen.hpp
rodsServerHost::conn
rcComm_t * conn
Definition: rodsConnect.h:64
fileOpenInp_t::resc_name_
char resc_name_[(1024+64)]
Definition: fileOpen.h:15
applyRuleForPostProcForRead
int applyRuleForPostProcForRead(rsComm_t *rsComm, bytesBuf_t *dataObjReadOutBBuf, char *objPath)
Definition: rsDataObjRead.cpp:21
Subfile
Definition: objInfo.h:316
PHYOPEN_BY_SIZE_KW
#define PHYOPEN_BY_SIZE_KW
Definition: rodsKeyWdDef.h:46
Subfile::subFilePath
char subFilePath[(1024+64)]
Definition: objInfo.h:318
irods::resolve_resource_hierarchy
error resolve_resource_hierarchy(const std::string &, rsComm_t *, dataObjInp_t *, std::string &, dataObjInfo_t **_data_obj_info=0)
Definition: irods_resource_redirect.cpp:505
OpenedDataObjInp::l1descInx
int l1descInx
Definition: dataObjInpOut.h:105
sendAndRecvBranchMsg
int sendAndRecvBranchMsg(rsComm_t *rsComm, int apiInx, int status, void *myOutStruct, bytesBuf_t *myOutBsBBuf)
Definition: rsApiHandler.cpp:626
allocAndSetL1descForZoneOpr
int allocAndSetL1descForZoneOpr(int l3descInx, dataObjInp_t *dataObjInp, rodsServerHost_t *remoteZoneHost, openStat_t *openStat)
Definition: objDesc.cpp:638
REMOTE_OPEN
#define REMOTE_OPEN
Definition: getRemoteZoneResc.h:5
l1desc::dataObjInfo
dataObjInfo_t * dataObjInfo
Definition: objDesc.hpp:42
DataObjInfo::rescHier
char rescHier[(1024+64)]
Definition: objInfo.h:132
getStructFileType
int getStructFileType(specColl_t *specColl)
Definition: objMetaOpr.cpp:386
LOCAL_HOST
#define LOCAL_HOST
Definition: rodsConnect.h:44
fileGet.h
rsDataGet.hpp
DataObjInfo::condInput
keyValPair_t condInput
Definition: objInfo.h:161
irods_resource_backport.hpp
Subfile::specColl
specColl_t * specColl
Definition: objInfo.h:322
fileOpenInp_t::resc_hier_
char resc_hier_[(1024+64)]
Definition: fileOpen.h:16
rsSubStructFileGet
int rsSubStructFileGet(rsComm_t *rsComm, subFile_t *subFile, bytesBuf_t *subFileGetOutBBuf)
Definition: rsSubStructFileGet.cpp:14
l1desc::oprType
int oprType
Definition: objDesc.hpp:37
l1desc::l3descInx
int l3descInx
Definition: objDesc.hpp:35
PASSMSG
#define PASSMSG(message_, prev_error_)
Definition: irods_error.hpp:119
rcGlobalExtern.h
DataObjInfo::filePath
char filePath[(1024+64)]
Definition: objInfo.h:137
LOG_ERROR
#define LOG_ERROR
Definition: rodsLog.h:43
irods_resource_redirect.hpp
fileOpenInp_t::fileName
char fileName[(1024+64)]
Definition: fileOpen.h:20
DataObjInfo::specColl
specColl_t * specColl
Definition: objInfo.h:158
GET_OPR
#define GET_OPR
Definition: dataObjInpOut.h:168
resolveLinkedPath
int resolveLinkedPath(rsComm_t *rsComm, char *objPath, specCollCache_t **specCollCache, keyValPair_t *condInput)
Definition: specColl.cpp:711
BytesBuf::len
int len
Definition: rodsDef.h:198
rsGlobalExtern.hpp
rsSubStructFileGet.hpp
irods::OPEN_OPERATION
const std::string OPEN_OPERATION("OPEN")
irods::error::code
long long code() const
Definition: irods_error.cpp:194
fileOpenInp_t::flags
int flags
Definition: fileOpen.h:21
RESC_HIER_STR_KW
#define RESC_HIER_STR_KW
Definition: rodsKeyWdDef.h:225
fileOpenInp_t::addr
rodsHostAddr_t addr
Definition: fileOpen.h:19
rsComm_t::apiInx
int apiInx
Definition: rcConnect.h:160
BRANCH_MSG
#define BRANCH_MSG
Definition: rsApiHandler.hpp:23
irods::file_object_factory
error file_object_factory(rsComm_t *, dataObjInp_t *, file_object_ptr, dataObjInfo_t **)
Definition: irods_file_object.cpp:271
fileOpenInp_t::objPath
char objPath[(1024+64)]
Definition: fileOpen.h:17
dataObjChksumAndReg
int dataObjChksumAndReg(rsComm_t *rsComm, dataObjInfo_t *dataObjInfo, char **chksumStr)
Definition: physPath.cpp:478
remove_trailing_path_separators
void remove_trailing_path_separators(char *path)
Definition: rodsPath.cpp:536
rsDataObjClose
int rsDataObjClose(rsComm_t *rsComm, openedDataObjInp_t *dataObjCloseInp)
Definition: rsDataObjClose.cpp:56
DataObjInp
Definition: dataObjInpOut.h:65
rsDataObjClose.hpp
l1desc::dataObjInp
dataObjInp_t * dataObjInp
Definition: objDesc.hpp:41
MAX_NAME_LEN
#define MAX_NAME_LEN
Definition: rodsDef.h:61
Subfile::addr
rodsHostAddr_t addr
Definition: objInfo.h:317
fileOpenInp_t::mode
int mode
Definition: fileOpen.h:22
subStructFileGet.h
INTERNAL_SVR_CALL
#define INTERNAL_SVR_CALL
Definition: rsApiHandler.hpp:24
irods.pypyodbc.status
status
Definition: pypyodbc.py:467
l3FileGetSingleBuf
int l3FileGetSingleBuf(rsComm_t *rsComm, int l1descInx, bytesBuf_t *dataObjOutBBuf)
Definition: rsDataObjGet.cpp:319
rodsLog.h
rsFileGet
int rsFileGet(rsComm_t *rsComm, fileOpenInp_t *fileGetInp, bytesBuf_t *fileGetOutBBuf)
Definition: rsFileGet.cpp:22
physPath.hpp
irods::log
void log(const error &)
Definition: irods_log.cpp:13
initDataOprInp
int initDataOprInp(dataOprInp_t *dataOprInp, int l1descInx, int oprType)
Definition: objDesc.cpp:453
SYS_NO_HANDLER_REPLY_MSG
@ SYS_NO_HANDLER_REPLY_MSG
Definition: rodsErrorTable.h:879
LOG_NOTICE
#define LOG_NOTICE
Definition: rodsLog.h:33
dataObjClose.h
BytesBuf
Definition: rodsDef.h:197
irods::error
Definition: irods_error.hpp:23
rsDataObjGet.hpp
DataObjInfo::chksum
char chksum[64]
Definition: objInfo.h:135
fileOpenInp_t::condInput
keyValPair_t condInput
Definition: fileOpen.h:24
irods_hierarchy_parser.hpp
fileOpenInp_t
Definition: fileOpen.h:14
fileOpenInp_t::dataSize
rodsLong_t dataSize
Definition: fileOpen.h:23
irods::file_object
Definition: irods_file_object.hpp:19
rodsServerHost
Definition: rodsConnect.h:62
DataObjInfo::rescName
char rescName[64]
Definition: objInfo.h:131
_rsDataObjOpen
int _rsDataObjOpen(rsComm_t *rsComm, dataObjInp_t *dataObjInp, dataObjInfo_t *dataObjInfoHead)
Definition: rsDataObjOpen.cpp:127
rodsHostAddr_t::hostAddr
char hostAddr[256]
Definition: rodsDef.h:297
VERIFY_CHKSUM_KW
#define VERIFY_CHKSUM_KW
Definition: rodsKeyWdDef.h:16
SYS_INVALID_PORTAL_OPR
@ SYS_INVALID_PORTAL_OPR
Definition: rodsErrorTable.h:101
irods::file_object_ptr
boost::shared_ptr< file_object > file_object_ptr
Definition: irods_file_object.hpp:145
rsFileGet.hpp
DataOprInp
Definition: dataObjInpOut.h:122
remoteDataGet
int remoteDataGet(rsComm_t *rsComm, dataOprInp_t *dataGetInp, portalOprOut_t **portalOprOut, rodsServerHost_t *rodsServerHost)
Definition: rsDataGet.cpp:65
getAndConnRemoteZone
int getAndConnRemoteZone(rsComm_t *rsComm, dataObjInp_t *dataObjInp, rodsServerHost_t **rodsServerHost, char *remotZoneOpr)
Definition: rodsConnect.cpp:784
getFileMode
int getFileMode(dataObjInp_t *dataObjInp)
Definition: physPath.cpp:48
preProcParaGet
int preProcParaGet(rsComm_t *rsComm, int l1descInx, portalOprOut_t **portalOprOut)
Definition: rsDataObjGet.cpp:251
dataObjOpen.h
DataObjInfo::objPath
char objPath[(1024+64)]
Definition: objInfo.h:130
l3DataGetSingleBuf
int l3DataGetSingleBuf(rsComm_t *rsComm, int l1descInx, bytesBuf_t *dataObjOutBBuf, portalOprOut_t **portalOprOut)
Definition: rsDataObjGet.cpp:279
Subfile::mode
int mode
Definition: objInfo.h:319
rstrcpy
char * rstrcpy(char *dest, const char *src, int maxLen)
Definition: stringOpr.cpp:51
rsApiHandler.hpp
DataObjInp::condInput
keyValPair_t condInput
Definition: dataObjInpOut.h:74
irods::get_loc_for_hier_string
error get_loc_for_hier_string(const std::string &_hier, std::string &_loc)
Definition: irods_resource_backport.cpp:633
NAME_LEN
#define NAME_LEN
Definition: rodsDef.h:55
Subfile::flags
int flags
Definition: objInfo.h:320
rsFileLseek.hpp
clearKeyVal
int clearKeyVal(keyValPair_t *condInput)
Definition: rcMisc.cpp:1047
irods::error::ok
bool ok()
Definition: irods_error.cpp:258
rsDataObjGet
int rsDataObjGet(rsComm_t *rsComm, dataObjInp_t *dataObjInp, portalOprOut_t **portalOprOut, bytesBuf_t *dataObjOutBBuf)
Definition: rsDataObjGet.cpp:33
_rsDataObjGet
int _rsDataObjGet(rsComm_t *rsComm, dataObjInp_t *dataObjInp, portalOprOut_t **portalOprOut, bytesBuf_t *dataObjOutBBuf, int handlerFlag, dataObjInfo_t *dataObjInfoHead)
Definition: rsDataObjGet.cpp:134
DataObjInfo
Definition: objInfo.h:129
DataObjInfo::dataSize
rodsLong_t dataSize
Definition: objInfo.h:134
dataObjGet.h
SpecCollCache
Definition: objInfo.h:102
dataGet.h
objMetaOpr.hpp
DataObjInfo::subPath
char subPath[(1024+64)]
Definition: objInfo.h:157
copyKeyVal
int copyKeyVal(const keyValPair_t *srcCondInput, keyValPair_t *destCondInput)
Definition: rcMisc.cpp:751