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)  

xmsgMS.cpp
Go to the documentation of this file.
1 
6 
8 //#include "reGlobalsExtern.hpp"
10 #include "rodsXmsg.h"
11 #include "getXmsgTicket.h"
12 #include "sendXmsg.h"
13 #include "rcvXmsg.h"
14 
15 #if defined(_LP64) || defined(__LP64__)
16 #define CAST_PTR_INT (long int)
17 #else
18 #define CAST_PTR_INT (uint)
19 #endif
20 
23 
53 int msiXmsgServerConnect( msParam_t* outConnParam, ruleExecInfo_t *rei ) {
54 
55  rcComm_t *conn;
56  rodsEnv myRodsEnv;
57  rErrMsg_t errMsg;
58  int status;
59 
60  RE_TEST_MACRO( " Calling msiXmsgServerConnect" );
61 
62  status = getRodsEnv( &myRodsEnv );
63  if ( status < 0 ) {
64  rodsLog( LOG_ERROR, "msiXmsgServerConnect: getRodsEnv failed:%i", status );
65  return status;
66  }
67  conn = rcConnectXmsg( &myRodsEnv, &errMsg );
68  if ( conn == NULL ) {
70  "msiXmsgServerConnect: rcConnectXmsg failed:%i :%s\n", errMsg.status, errMsg.msg );
71  return errMsg.status;
72  }
73  status = clientLogin( conn );
74  if ( status != 0 ) {
75  rodsLog( LOG_ERROR, "msiXmsgServerConnect: clientLogin failed:%i", status );
76  return status;
77  }
78 
79  outConnParam->inOutStruct = ( void * ) conn;
80  outConnParam->type = strdup( "RcComm_MS_T" );
81 
82  return 0;
83 
84 }
85 
117 int msiXmsgCreateStream( msParam_t* inConnParam,
118  msParam_t* inGgetXmsgTicketInpParam,
119  msParam_t* outXmsgTicketInfoParam,
120  ruleExecInfo_t *rei ) {
121 
122  rcComm_t *conn;
123  getXmsgTicketInp_t *getXmsgTicketInp;
124  xmsgTicketInfo_t *outXmsgTicketInfo = NULL;
125  int status;
126  int allocFlag = 0;
127 
128  RE_TEST_MACRO( " Calling msiXmsgCreateStream" );
129 
130  if ( inConnParam->inOutStruct == NULL ) {
132  "msiXmsgCreateStream: input inConnParam is NULL" );
134  }
135  conn = ( rcComm_t * ) inConnParam->inOutStruct;
136 
137  if ( inGgetXmsgTicketInpParam->inOutStruct != NULL && !( strcmp( inGgetXmsgTicketInpParam->type, STR_MS_T ) == 0 && strcmp( ( char * )inGgetXmsgTicketInpParam->inOutStruct, "" ) == 0 ) ) {
138  getXmsgTicketInp = ( getXmsgTicketInp_t * ) inGgetXmsgTicketInpParam->inOutStruct;
139  }
140  else {
141  getXmsgTicketInp = ( getXmsgTicketInp_t * ) malloc( sizeof( getXmsgTicketInp_t ) );
142  memset( getXmsgTicketInp, 0, sizeof( getXmsgTicketInp_t ) );
143  allocFlag = 1;
144  }
145 
146  status = rcGetXmsgTicket( conn, getXmsgTicketInp, &outXmsgTicketInfo );
147  if ( status != 0 ) {
148  rodsLog( LOG_ERROR, "msiXmsgCreateStream: rcGetXmsgTicket failed:%i", status );
149  free( getXmsgTicketInp );
150  return status;
151  }
152 
153  outXmsgTicketInfoParam->inOutStruct = ( void * ) outXmsgTicketInfo;
154  outXmsgTicketInfoParam->type = strdup( XmsgTicketInfo_MS_T );
155  if ( allocFlag == 1 ) {
156  free( getXmsgTicketInp );
157  }
158  return 0;
159 
160 }
161 
202 int msiCreateXmsgInp( msParam_t* inMsgNumber,
203  msParam_t* inMsgType,
204  msParam_t* inNumberOfReceivers,
205  msParam_t* inMsg,
206  msParam_t* inNumberOfDeliverySites,
207  msParam_t* inDeliveryAddressList,
208  msParam_t* inDeliveryPortList,
209  msParam_t* inMiscInfo,
210  msParam_t* inXmsgTicketInfoParam,
211  msParam_t* outSendXmsgInpParam,
212  ruleExecInfo_t* ) {
213 
214 
215  sendXmsgInp_t *sendXmsgInp;
216  xmsgTicketInfo_t *xmsgTicketInfo;
217 
218  if ( inXmsgTicketInfoParam == NULL ) {
219  rodsLog( LOG_ERROR, "msiSendXmsg: input inXmsgTicketInfoParam is NULL" );
221  }
222  xmsgTicketInfo = ( xmsgTicketInfo_t * ) inXmsgTicketInfoParam->inOutStruct;
223 
224  sendXmsgInp = ( sendXmsgInp_t * ) malloc( sizeof( sendXmsgInp_t ) );
225  /* memset (&sendXmsgInp, 0, sizeof (sendXmsgInp_t));*/
226 
227  sendXmsgInp->ticket.sendTicket = xmsgTicketInfo->sendTicket;
228  sendXmsgInp->ticket.rcvTicket = xmsgTicketInfo->rcvTicket;
229  sendXmsgInp->ticket.expireTime = xmsgTicketInfo->expireTime;
230  sendXmsgInp->ticket.flag = xmsgTicketInfo->flag;
231  if ( !strcmp( inMsgNumber->type, STR_MS_T ) ) {
232  sendXmsgInp->sendXmsgInfo.msgNumber = ( uint ) atoi( ( char* )inMsgNumber->inOutStruct );
233  }
234  else {
235  sendXmsgInp->sendXmsgInfo.msgNumber = CAST_PTR_INT inMsgNumber->inOutStruct;
236  }
237  snprintf( sendXmsgInp->sendXmsgInfo.msgType, sizeof( sendXmsgInp->sendXmsgInfo.msgType ), "%s", ( char* )inMsgType->inOutStruct );
238  if ( !strcmp( inNumberOfReceivers->type, STR_MS_T ) ) {
239  sendXmsgInp->sendXmsgInfo.numRcv = ( uint ) atoi( ( char* )inNumberOfReceivers->inOutStruct );
240  }
241  else {
242  sendXmsgInp->sendXmsgInfo.numRcv = CAST_PTR_INT inNumberOfReceivers->inOutStruct;
243  }
244  sendXmsgInp->sendXmsgInfo.msg = strdup( ( char * ) inMsg->inOutStruct );
245  if ( !strcmp( inNumberOfDeliverySites->type, STR_MS_T ) ) {
246  sendXmsgInp->sendXmsgInfo.numDeli = ( int ) atoi( ( char* )inNumberOfDeliverySites->inOutStruct );
247  }
248  else {
249  sendXmsgInp->sendXmsgInfo.numDeli = CAST_PTR_INT inNumberOfDeliverySites->inOutStruct;
250  }
251  if ( sendXmsgInp->sendXmsgInfo.numDeli == 0 ) {
252  sendXmsgInp->sendXmsgInfo.deliAddress = NULL;
253  sendXmsgInp->sendXmsgInfo.deliPort = NULL;
254  }
255  else {
256  sendXmsgInp->sendXmsgInfo.deliAddress = ( char** )inDeliveryAddressList->inOutStruct;
257  sendXmsgInp->sendXmsgInfo.deliPort = ( uint* )inDeliveryPortList->inOutStruct;
258  }
259  sendXmsgInp->sendXmsgInfo.miscInfo = strdup( ( char * ) inMiscInfo->inOutStruct );
260 
261  outSendXmsgInpParam->inOutStruct = ( void * ) sendXmsgInp;
262  outSendXmsgInpParam->type = strdup( SendXmsgInp_MS_T );
263  return 0;
264 
265 
266 }
267 
268 
301 int msiSendXmsg( msParam_t* inConnParam,
302  msParam_t* inSendXmsgInpParam,
303  ruleExecInfo_t *rei ) {
304 
305  rcComm_t *conn;
306  sendXmsgInp_t *sendXmsgInp;
307  int status;
308 
309 
310 
311  RE_TEST_MACRO( " Calling msiSendXmsg" );
312 
313  if ( inConnParam->inOutStruct == NULL ) {
314  rodsLog( LOG_ERROR, "msiSendXmsg: input inConnParam is NULL" );
316  }
317  conn = ( rcComm_t * ) inConnParam->inOutStruct;
318 
319  if ( inSendXmsgInpParam == NULL ) {
320  rodsLog( LOG_ERROR, "msiSendXmsg: input inSendXmsgInpParam is NULL" );
322  }
323  sendXmsgInp = ( sendXmsgInp_t * ) inSendXmsgInpParam->inOutStruct;
324 
325 
326  status = rcSendXmsg( conn, sendXmsgInp );
327  if ( status < 0 ) {
328  rodsLog( LOG_ERROR, "msiSendXmsg: rcSendXmsg failed:%i", status );
329  return status;
330  }
331  return status;
332 }
333 
334 
335 
373 int msiRcvXmsg( msParam_t* inConnParam,
374  msParam_t* inTicketNumber,
375  msParam_t* inMsgNumber,
376  msParam_t* outMsgType,
377  msParam_t* outMsg,
378  msParam_t* outSendUser,
379  ruleExecInfo_t *rei ) {
380 
381  rcComm_t *conn;
382  rcvXmsgInp_t rcvXmsgInp;
383  rcvXmsgOut_t *rcvXmsgOut = NULL;
384  xmsgTicketInfo_t *xmsgTicketInfo = NULL;
385  int status;
386 
387 
388  RE_TEST_MACRO( " Calling msiRcvXmsg" );
389 
390  if ( inConnParam->inOutStruct == NULL ) {
391  rodsLog( LOG_ERROR, "msiRcvXmsg: input inConnParam is NULL" );
393  }
394  conn = ( rcComm_t * ) inConnParam->inOutStruct;
395 
396  memset( &rcvXmsgInp, 0, sizeof( rcvXmsgInp ) );
397  if ( !strcmp( inTicketNumber->type, XmsgTicketInfo_MS_T ) ) {
398  xmsgTicketInfo = ( xmsgTicketInfo_t * ) inTicketNumber->inOutStruct;
399  rcvXmsgInp.rcvTicket = xmsgTicketInfo->rcvTicket;
400  }
401  else if ( !strcmp( inTicketNumber->type, STR_MS_T ) ) {
402  rcvXmsgInp.rcvTicket = ( uint ) atoi( ( char* )inTicketNumber->inOutStruct );
403  }
404  else {
405  rcvXmsgInp.rcvTicket = CAST_PTR_INT inTicketNumber->inOutStruct;
406  }
407  if ( !strcmp( inMsgNumber->type, STR_MS_T ) ) {
408  rcvXmsgInp.msgNumber = ( uint ) atoi( ( char* )inMsgNumber->inOutStruct );
409  }
410  else {
411  rcvXmsgInp.msgNumber = CAST_PTR_INT inMsgNumber->inOutStruct;
412  }
413 
414  status = rcRcvXmsg( conn, &rcvXmsgInp, &rcvXmsgOut );
415  if ( status < 0 || rcvXmsgOut == NULL ) { // JMC cppcheck
416  rodsLog( LOG_ERROR, "msiRcvXmsg: rcRcvXmsg failed:%i", status );
417  return status;
418  }
419 
420  outMsgType->inOutStruct = ( void * ) strdup( rcvXmsgOut->msgType );
421  outMsgType->type = strdup( STR_MS_T );
422  outMsg->inOutStruct = ( void * ) rcvXmsgOut->msg;
423  outMsg->type = strdup( STR_MS_T );
424  outSendUser->inOutStruct = ( void * ) strdup( rcvXmsgOut->sendUserName );
425  outSendUser->type = strdup( STR_MS_T );
426  return status;
427 }
428 
459 
460  rcComm_t *conn;
461  int status;
462 
463  RE_TEST_MACRO( " Calling msiXmsgServerDisConnect" );
464 
465  if ( inConnParam->inOutStruct == NULL ) {
466  rodsLog( LOG_ERROR, "msiSendXmsg: input inConnParam is NULL" );
468  }
469  conn = ( rcComm_t * ) inConnParam->inOutStruct;
470  status = rcDisconnect( conn );
471  if ( status == 0 ) {
472  inConnParam->inOutStruct = NULL;
473  }
474  return status;
475 
476 }
477 
478 
479 int _writeXMsg( int streamId, char *hdr, char *msg ) {
480  int i;
481  xmsgTicketInfo_t xmsgTicketInfo;
482  sendXmsgInp_t sendXmsgInp;
483  rcComm_t *conn;
484  rErrMsg_t errMsg;
485  char myHostName[MAX_NAME_LEN];
486 
487 
488  if ( xmsgServerConn == NULL ) {
489  i = getRodsEnv( &myRodsXmsgEnv );
490  if ( i < 0 ) {
491  rodsLog( LOG_ERROR, "_writeXMsg: getRodsEnv failed:%i", i );
492  return i;
493  }
494  conn = rcConnectXmsg( &myRodsXmsgEnv, &errMsg );
495  if ( conn == NULL ) {
496  rodsLog( LOG_ERROR, "_writeXMsg: rcConnectXmsg failed:%i:%s", errMsg.status, errMsg.msg );
497  return errMsg.status;
498  }
499  i = clientLogin( conn );
500  if ( i != 0 ) {
501  rodsLog( LOG_ERROR, "msiXmsgServerConnect: clientLogin failed:%i", i );
502  rcDisconnect( conn );
503  return i;
504  }
505  xmsgServerConn = conn;
506  }
507  else {
508  conn = xmsgServerConn;
509  }
510  myHostName[0] = '\0';
511  gethostname( myHostName, MAX_NAME_LEN );
512 
513  memset( &xmsgTicketInfo, 0, sizeof( xmsgTicketInfo ) );
514  memset( &sendXmsgInp, 0, sizeof( sendXmsgInp ) );
515  xmsgTicketInfo.sendTicket = streamId;
516  xmsgTicketInfo.rcvTicket = streamId;
517  xmsgTicketInfo.flag = 1;
518  sendXmsgInp.ticket = xmsgTicketInfo;
519  sendXmsgInp.sendXmsgInfo.numRcv = 1;
520  sendXmsgInp.sendXmsgInfo.msgNumber = 0;
521  snprintf( sendXmsgInp.sendXmsgInfo.msgType, HEADER_TYPE_LEN, "%s", hdr );
522  snprintf( sendXmsgInp.sendAddr, NAME_LEN, "%s:%i", myHostName, getpid() );
523  sendXmsgInp.sendXmsgInfo.msg = msg;
524  i = rcSendXmsg( conn, &sendXmsgInp );
525  if ( i < 0 ) {
526  rodsLog( LOG_NOTICE, "_writeXmsg: Unable to send message to stream %i\n", streamId );
527  }
528  /* rcDisconnect(conn); */
529  return i;
530 }
531 
532 int _readXMsg( int streamId, char *condRead, int *msgNum, int *seqNum,
533  char **hdr, char **msg, char **user, char **addr ) {
534  int i;
535  rcvXmsgInp_t rcvXmsgInp;
536  rcvXmsgOut_t *rcvXmsgOut = NULL;
537  rcComm_t *conn;
538  rErrMsg_t errMsg;
539 
540  if ( xmsgServerConn == NULL ) {
541  i = getRodsEnv( &myRodsXmsgEnv );
542  if ( i < 0 ) {
543  rodsLog( LOG_ERROR, "_readXMsg: getRodsEnv failed:%i", i );
544  return i;
545  }
546  conn = rcConnectXmsg( &myRodsXmsgEnv, &errMsg );
547  if ( conn == NULL ) {
548  rodsLog( LOG_ERROR, "_readXMsg: rcConnectXmsg failed:%i:%s", errMsg.status, errMsg.msg );
549  return errMsg.status;
550  }
551  i = clientLogin( conn );
552  if ( i != 0 ) {
553  rodsLog( LOG_ERROR, "msiXmsgServerConnect: clientLogin failed:%i", i );
554  rcDisconnect( conn );
555  return i;
556  }
557  xmsgServerConn = conn;
558  }
559  else {
560  conn = xmsgServerConn;
561  }
562  memset( &rcvXmsgInp, 0, sizeof( rcvXmsgInp ) );
563  rcvXmsgInp.rcvTicket = streamId;
564  rcvXmsgInp.msgNumber = 0;
565  snprintf( rcvXmsgInp.msgCondition, MAX_NAME_LEN, "%s", condRead );
566  i = rcRcvXmsg( conn, &rcvXmsgInp, &rcvXmsgOut );
567  if ( i < 0 || rcvXmsgOut == NULL ) { // JMC cppcheck
568  /* rcDisconnect(conn); */
569  rodsLog( LOG_NOTICE, "_readXmsg: Unable to receive message from stream %i\n", streamId );
570  return i;
571  }
572  *msgNum = rcvXmsgOut->msgNumber;
573  *seqNum = rcvXmsgOut->seqNumber;
574  *hdr = strdup( rcvXmsgOut->msgType );
575  *msg = strdup( rcvXmsgOut->msg );
576  *user = strdup( rcvXmsgOut->sendUserName );
577  *addr = strdup( rcvXmsgOut->sendAddr );
578  /* rcDisconnect(conn);*/
579  return i;
580 }
rodsLog
void rodsLog(int level, const char *formatStr,...)
Definition: rodsLog.cpp:86
rcComm_t
Definition: rcConnect.h:95
NULL
#define NULL
Definition: rodsDef.h:70
rcGetXmsgTicket
int rcGetXmsgTicket(rcComm_t *conn, getXmsgTicketInp_t *getXmsgTicketInp, xmsgTicketInfo_t **outXmsgTicketInfo)
Definition: rcGetXmsgTicket.cpp:34
SYS_INTERNAL_NULL_INPUT_ERR
@ SYS_INTERNAL_NULL_INPUT_ERR
Definition: rodsErrorTable.h:92
getRodsEnv
int getRodsEnv(rodsEnv *myRodsEnv)
Definition: getRodsEnv.cpp:112
rErrMsg_t
Definition: rodsError.h:19
SendXmsgInfo::numRcv
uint numRcv
Definition: rodsXmsg.h:33
myHostName
char myHostName[(1024+64)]
Definition: nre.reHelpers1.cpp:45
rcvXmsg.h
sendXmsgInp_t::sendXmsgInfo
sendXmsgInfo_t sendXmsgInfo
Definition: rodsXmsg.h:45
RcvXmsgInp
Definition: rodsXmsg.h:88
msiXmsgServerDisConnect
int msiXmsgServerDisConnect(msParam_t *inConnParam, ruleExecInfo_t *rei)
Definition: xmsgMS.cpp:458
HEADER_TYPE_LEN
#define HEADER_TYPE_LEN
Definition: rodsDef.h:53
SendXmsgInfo::deliPort
uint * deliPort
Definition: rodsXmsg.h:38
sendXmsg.h
SendXmsgInp_MS_T
#define SendXmsgInp_MS_T
Definition: msParam.h:51
rErrMsg_t::status
int status
Definition: rodsError.h:20
XmsgTicketInfo::flag
uint flag
Definition: rodsXmsg.h:27
RcvXmsgOut::sendUserName
char sendUserName[NAME_LEN]
Definition: rodsXmsg.h:97
RcvXmsgOut
Definition: rodsXmsg.h:95
XmsgTicketInfo::expireTime
uint expireTime
Definition: rodsXmsg.h:26
LOG_ERROR
#define LOG_ERROR
Definition: rodsLog.h:43
RcvXmsgOut::msgType
char msgType[HEADER_TYPE_LEN]
Definition: rodsXmsg.h:96
MsParam::type
char * type
Definition: msParam.h:78
STR_MS_T
#define STR_MS_T
Definition: msParam.h:21
rodsXmsg.h
SendXmsgInfo::miscInfo
char * miscInfo
Definition: rodsXmsg.h:39
rcRcvXmsg
int rcRcvXmsg(rcComm_t *conn, rcvXmsgInp_t *rcvXmsgInp, rcvXmsgOut_t **rcvXmsgOut)
Definition: rcRcvXmsg.cpp:34
msiXmsgServerConnect
int msiXmsgServerConnect(msParam_t *outConnParam, ruleExecInfo_t *rei)
Definition: xmsgMS.cpp:53
SendXmsgInfo::msgNumber
uint msgNumber
Definition: rodsXmsg.h:31
SendXmsgInfo::msg
char * msg
Definition: rodsXmsg.h:35
msiRcvXmsg
int msiRcvXmsg(msParam_t *inConnParam, msParam_t *inTicketNumber, msParam_t *inMsgNumber, msParam_t *outMsgType, msParam_t *outMsg, msParam_t *outSendUser, ruleExecInfo_t *rei)
Definition: xmsgMS.cpp:373
msiXmsgCreateStream
int msiXmsgCreateStream(msParam_t *inConnParam, msParam_t *inGgetXmsgTicketInpParam, msParam_t *outXmsgTicketInfoParam, ruleExecInfo_t *rei)
Definition: xmsgMS.cpp:117
XmsgTicketInfo::sendTicket
uint sendTicket
Definition: rodsXmsg.h:24
msiCreateXmsgInp
int msiCreateXmsgInp(msParam_t *inMsgNumber, msParam_t *inMsgType, msParam_t *inNumberOfReceivers, msParam_t *inMsg, msParam_t *inNumberOfDeliverySites, msParam_t *inDeliveryAddressList, msParam_t *inDeliveryPortList, msParam_t *inMiscInfo, msParam_t *inXmsgTicketInfoParam, msParam_t *outSendXmsgInpParam, ruleExecInfo_t *)
Definition: xmsgMS.cpp:202
myRodsXmsgEnv
static rodsEnv myRodsXmsgEnv
Definition: xmsgMS.cpp:22
_readXMsg
int _readXMsg(int streamId, char *condRead, int *msgNum, int *seqNum, char **hdr, char **msg, char **user, char **addr)
Definition: xmsgMS.cpp:532
getXmsgTicketInp_t
Definition: rodsXmsg.h:14
xmsgServerConn
static rcComm_t * xmsgServerConn
Definition: xmsgMS.cpp:21
MAX_NAME_LEN
#define MAX_NAME_LEN
Definition: rodsDef.h:61
sendXmsgInp_t::sendAddr
char sendAddr[NAME_LEN]
Definition: rodsXmsg.h:44
sendXmsgInp_t::ticket
xmsgTicketInfo_t ticket
Definition: rodsXmsg.h:43
rErrMsg_t::msg
char msg[1024]
Definition: rodsError.h:21
irods.pypyodbc.status
status
Definition: pypyodbc.py:467
MsParam
Definition: msParam.h:76
CAST_PTR_INT
#define CAST_PTR_INT
Definition: xmsgMS.cpp:18
LOG_NOTICE
#define LOG_NOTICE
Definition: rodsLog.h:33
SendXmsgInfo::deliAddress
char ** deliAddress
Definition: rodsXmsg.h:37
sendXmsgInp_t
Definition: rodsXmsg.h:42
int
typedef int((*funcPtr)())
SendXmsgInfo::msgType
char msgType[HEADER_TYPE_LEN]
Definition: rodsXmsg.h:32
RcvXmsgOut::msgNumber
uint msgNumber
Definition: rodsXmsg.h:99
XmsgTicketInfo
Definition: rodsXmsg.h:23
XmsgTicketInfo::rcvTicket
uint rcvTicket
Definition: rodsXmsg.h:25
getXmsgTicket.h
RcvXmsgInp::msgNumber
uint msgNumber
Definition: rodsXmsg.h:90
rcDisconnect
int rcDisconnect(rcComm_t *conn)
Definition: rcConnect.cpp:246
RuleExecInfo
Definition: irods_re_structs.hpp:18
XmsgTicketInfo_MS_T
#define XmsgTicketInfo_MS_T
Definition: msParam.h:48
RE_TEST_MACRO
#define RE_TEST_MACRO(msg)
Definition: reDefines.h:58
rcSendXmsg
int rcSendXmsg(rcComm_t *conn, sendXmsgInp_t *sendXmsgInp)
Definition: rcSendXmsg.cpp:33
icatHighLevelRoutines.hpp
RcvXmsgOut::msg
char * msg
Definition: rodsXmsg.h:101
rcConnectXmsg
rcComm_t * rcConnectXmsg(rodsEnv *myRodsEnv, rErrMsg_t *errMsg)
Definition: rcConnect.cpp:362
MsParam::inOutStruct
void * inOutStruct
Definition: msParam.h:80
clientLogin
int clientLogin(rcComm_t *conn, const char *_context, const char *_scheme_override)
Definition: clientLogin.cpp:222
rodsEnv
Definition: getRodsEnv.h:8
NAME_LEN
#define NAME_LEN
Definition: rodsDef.h:55
RcvXmsgOut::seqNumber
uint seqNumber
Definition: rodsXmsg.h:100
_writeXMsg
int _writeXMsg(int streamId, char *hdr, char *msg)
Definition: xmsgMS.cpp:479
RcvXmsgOut::sendAddr
char sendAddr[NAME_LEN]
Definition: rodsXmsg.h:98
RcvXmsgInp::rcvTicket
uint rcvTicket
Definition: rodsXmsg.h:89
msiSendXmsg
int msiSendXmsg(msParam_t *inConnParam, msParam_t *inSendXmsgInpParam, ruleExecInfo_t *rei)
Definition: xmsgMS.cpp:301
RcvXmsgInp::msgCondition
char msgCondition[MAX_NAME_LEN]
Definition: rodsXmsg.h:92
SendXmsgInfo::numDeli
int numDeli
Definition: rodsXmsg.h:36