00001
00002 #include "oprComplete.h"
00003 #include "dataObjClose.h"
00004 #include "rsGlobalExtern.h"
00005
00006 int rsOprComplete (rsComm_t *rsComm, int *retval)
00007 {
00008 openedDataObjInp_t dataObjCloseInp;
00009
00010 if (*retval >= 2) {
00011 int l1descInx = *retval;
00012
00013 if (L1desc[l1descInx].remoteZoneHost != NULL) {
00014 *retval = rcOprComplete (L1desc[l1descInx].remoteZoneHost->conn,
00015 L1desc[l1descInx].remoteL1descInx);
00016 freeL1desc (l1descInx);
00017 } else {
00018 memset (&dataObjCloseInp, 0, sizeof (dataObjCloseInp));
00019 dataObjCloseInp.l1descInx = l1descInx;
00020 if (L1desc[*retval].oprType == PUT_OPR) {
00021 dataObjCloseInp.bytesWritten = L1desc[*retval].dataSize;
00022 }
00023 *retval = rsDataObjClose (rsComm, &dataObjCloseInp);
00024 }
00025 }
00026
00027 if (*retval >= 0) {
00028 return (SYS_HANDLER_DONE_NO_ERROR);
00029 } else {
00030 return (*retval);
00031 }
00032 }
00033