// SrmRequestStatus_t.cxx #include "dial_ws_srm/SrmRequestStatus.h" #include "../gsoap/dial_ws_srmH.h" #include #include #include using std::string; using std::cout; using std::endl; using std::vector; using dial::SrmRequestFileStatus; using dial::SrmRequestStatus; typedef SrmRequestStatus::Name Name; typedef SrmRequestStatus::State State; typedef SrmRequestStatus::Id Id; typedef SrmRequestStatus::Time Time; typedef SrmRequestStatus::FileStatusList FileStatusList; typedef SrmRequestFileStatus::GsoapRequestFileStatus GsoapRequestFileStatus; typedef vector GsoapFileStatusList; void msg(string txt) { cout << "--- "; cout << txt; cout << " ---" << endl; } int SrmRequestStatus_t() { msg("Create file request status"); string surl1 = "srm://srm.bnl.gov/dial/test/testfile1.dat"; string owner = "me"; string group = "us"; string cktype = "MD5"; string cksum1 = "123456789abcdef"; string state = "Pending"; string turl1 = "gsiftp://aftpexp.bnl.gov/dial/test/testfile1.dat"; string srcname = "MySourceFile.dat"; string destname = "MyDestFile.dat"; SrmRequestFileStatus::GsoapRequestFileStatus gfs1; gfs1.SURL = &surl1; gfs1.size = 1234566789L; gfs1.owner = &owner; gfs1.group = &group; gfs1.permMode = 1234; gfs1.checksumType = &cktype; gfs1.checksumValue = &cksum1; gfs1.isPinned = true; gfs1.isPermanent = false; gfs1.isCached = true; gfs1.state = &state; gfs1.fileId = 201; gfs1.TURL = &turl1; gfs1.estSecondsToStart = 300; gfs1.sourceFilename = &srcname; gfs1.destFilename = &destname; gfs1.queueOrder = 3; gfs1.soap = 0; SrmRequestFileStatus fs1(gfs1); cout << fs1 << endl; msg("Create second file request status"); string surl2 = "srm://srm.bnl.gov/dial/test/testfile2.dat"; string cksum2 = "2468ace13579bdf"; string turl2 = "gsiftp://aftpexp.bnl.gov/dial/test/testfile2.dat"; SrmRequestFileStatus::GsoapRequestFileStatus gfs2; gfs2.SURL = &surl2; gfs2.size = 1234566789L; gfs2.owner = &owner; gfs2.group = &group; gfs2.permMode = 1234; gfs2.checksumType = &cktype; gfs2.checksumValue = &cksum2; gfs2.isPinned = true; gfs2.isPermanent = false; gfs2.isCached = true; gfs2.state = &state; gfs2.fileId = 202; gfs2.TURL = &turl2; gfs2.estSecondsToStart = 600; gfs2.sourceFilename = &srcname; gfs2.destFilename = &destname; gfs2.queueOrder = 3; gfs2.soap = 0; SrmRequestFileStatus fs2(gfs2); cout << fs2 << endl; msg("Create file status lists"); GsoapFileStatusList gstats; gstats.push_back(&gfs1); gstats.push_back(&gfs2); FileStatusList fstats; fstats.push_back(fs1); fstats.push_back(fs2); msg("Create gsoap request status"); string rtype = "Get"; string rstate = "Pending"; Time now; time(&now); Time tsubmit = now - 1200; Time tstart = 0; Time tfinish = 0; string emsg = "Just checking..."; SrmRequestStatus::GsoapRequestStatus grs; grs.requestId = 12; grs.type = &rtype; grs.state = &rstate; grs.submitTime = &tsubmit; grs.startTime = &tstart; grs.finishTime = &tfinish; grs.estTimeToStart = 300; grs.fileStatuses = gstats; grs.errorMessage = &emsg; grs.retryDeltaTime = 3600; grs.soap = 0; msg("Create request status"); SrmRequestStatus rs(grs); cout << rs << endl; assert( rs.is_valid() ); assert( rs.id() == 12 ); assert( rs.type() == rtype ); assert( rs.state() == state ); assert( rs.is_pending() ); assert( ! rs.is_done() ); assert( ! rs.is_active() ); assert( ! rs.is_failed() ); assert( rs.update_time() == now ); assert( rs.submit_time() == tsubmit ); assert( rs.start_time() == tstart ); assert( rs.finish_time() == tfinish ); assert( rs.cancel_time() == now + 3600 ); assert( rs.ready_time() == now + 300 ); assert( rs.error_message() == emsg ); FileStatusList fss = rs.file_statuses(); assert( fss.size() == 2 ); assert( fss.front().surl() == surl1 ); assert( fss.back().surl() == surl2 ); return 0; } #ifdef CTEST_MAIN int main() { return SrmRequestStatus_t(); } #endif