Mercurial > hg > orthanc
comparison Core/DicomNetworking/DicomUserConnection.cpp @ 3705:d8b214a46b91 storage-commitment
integration mainline->storage-commitment
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 27 Feb 2020 12:07:19 +0100 |
parents | 736907ecb626 58f92b1c8061 |
children | bd34b6ac5c08 |
comparison
equal
deleted
inserted
replaced
3703:2eeaa076c8f6 | 3705:d8b214a46b91 |
---|---|
468 // Finally conduct transmission of data | 468 // Finally conduct transmission of data |
469 T_DIMSE_C_StoreRSP response; | 469 T_DIMSE_C_StoreRSP response; |
470 DcmDataset* statusDetail = NULL; | 470 DcmDataset* statusDetail = NULL; |
471 Check(DIMSE_storeUser(assoc_, presID, &request, | 471 Check(DIMSE_storeUser(assoc_, presID, &request, |
472 NULL, dcmff.getDataset(), /*progressCallback*/ NULL, NULL, | 472 NULL, dcmff.getDataset(), /*progressCallback*/ NULL, NULL, |
473 /*opt_blockMode*/ DIMSE_BLOCKING, /*opt_dimse_timeout*/ dimseTimeout_, | 473 /*opt_blockMode*/ (dimseTimeout_ ? DIMSE_NONBLOCKING : DIMSE_BLOCKING), |
474 /*opt_dimse_timeout*/ dimseTimeout_, | |
474 &response, &statusDetail, NULL), | 475 &response, &statusDetail, NULL), |
475 connection.remoteAet_, "C-STORE"); | 476 connection.remoteAet_, "C-STORE"); |
476 | 477 |
477 if (statusDetail != NULL) | 478 if (statusDetail != NULL) |
478 { | 479 { |
702 OFCondition cond = DIMSE_findUser(association, presID, &request, dataset, | 703 OFCondition cond = DIMSE_findUser(association, presID, &request, dataset, |
703 #if DCMTK_VERSION_NUMBER >= 364 | 704 #if DCMTK_VERSION_NUMBER >= 364 |
704 responseCount, | 705 responseCount, |
705 #endif | 706 #endif |
706 FindCallback, &payload, | 707 FindCallback, &payload, |
707 /*opt_blockMode*/ DIMSE_BLOCKING, | 708 /*opt_blockMode*/ (dimseTimeout ? DIMSE_NONBLOCKING : DIMSE_BLOCKING), |
708 /*opt_dimse_timeout*/ dimseTimeout, | 709 /*opt_dimse_timeout*/ dimseTimeout, |
709 &response, &statusDetail); | 710 &response, &statusDetail); |
710 | 711 |
711 if (statusDetail) | 712 if (statusDetail) |
712 { | 713 { |
900 T_DIMSE_C_MoveRSP response; | 901 T_DIMSE_C_MoveRSP response; |
901 DcmDataset* statusDetail = NULL; | 902 DcmDataset* statusDetail = NULL; |
902 DcmDataset* responseIdentifiers = NULL; | 903 DcmDataset* responseIdentifiers = NULL; |
903 OFCondition cond = DIMSE_moveUser(pimpl_->assoc_, presID, &request, dataset, | 904 OFCondition cond = DIMSE_moveUser(pimpl_->assoc_, presID, &request, dataset, |
904 NULL, NULL, | 905 NULL, NULL, |
905 /*opt_blockMode*/ DIMSE_BLOCKING, | 906 /*opt_blockMode*/ (pimpl_->dimseTimeout_ ? DIMSE_NONBLOCKING : DIMSE_BLOCKING), |
906 /*opt_dimse_timeout*/ pimpl_->dimseTimeout_, | 907 /*opt_dimse_timeout*/ pimpl_->dimseTimeout_, |
907 pimpl_->net_, NULL, NULL, | 908 pimpl_->net_, NULL, NULL, |
908 &response, &statusDetail, &responseIdentifiers); | 909 &response, &statusDetail, &responseIdentifiers); |
909 | 910 |
910 if (statusDetail) | 911 if (statusDetail) |
1210 bool DicomUserConnection::Echo() | 1211 bool DicomUserConnection::Echo() |
1211 { | 1212 { |
1212 CheckIsOpen(); | 1213 CheckIsOpen(); |
1213 DIC_US status; | 1214 DIC_US status; |
1214 Check(DIMSE_echoUser(pimpl_->assoc_, pimpl_->assoc_->nextMsgID++, | 1215 Check(DIMSE_echoUser(pimpl_->assoc_, pimpl_->assoc_->nextMsgID++, |
1215 /*opt_blockMode*/ DIMSE_BLOCKING, | 1216 /*opt_blockMode*/ (pimpl_->dimseTimeout_ ? DIMSE_NONBLOCKING : DIMSE_BLOCKING), |
1216 /*opt_dimse_timeout*/ pimpl_->dimseTimeout_, | 1217 /*opt_dimse_timeout*/ pimpl_->dimseTimeout_, |
1217 &status, NULL), remoteAet_, "C-ECHO"); | 1218 &status, NULL), remoteAet_, "C-ECHO"); |
1218 return status == STATUS_Success; | 1219 return status == STATUS_Success; |
1219 } | 1220 } |
1220 | 1221 |
1330 } | 1331 } |
1331 else | 1332 else |
1332 { | 1333 { |
1333 dcmConnectionTimeout.set(seconds); | 1334 dcmConnectionTimeout.set(seconds); |
1334 pimpl_->dimseTimeout_ = seconds; | 1335 pimpl_->dimseTimeout_ = seconds; |
1335 pimpl_->acseTimeout_ = 10; // Timeout used during association negociation | 1336 pimpl_->acseTimeout_ = seconds; // Timeout used during association negociation and ASC_releaseAssociation() |
1336 } | 1337 } |
1337 } | 1338 } |
1338 | 1339 |
1339 | 1340 |
1340 void DicomUserConnection::DisableTimeout() | 1341 void DicomUserConnection::DisableTimeout() |
1343 * Global timeout (seconds) for connecting to remote hosts. | 1344 * Global timeout (seconds) for connecting to remote hosts. |
1344 * Default value is -1 which selects infinite timeout, i.e. blocking connect(). | 1345 * Default value is -1 which selects infinite timeout, i.e. blocking connect(). |
1345 */ | 1346 */ |
1346 dcmConnectionTimeout.set(-1); | 1347 dcmConnectionTimeout.set(-1); |
1347 pimpl_->dimseTimeout_ = 0; | 1348 pimpl_->dimseTimeout_ = 0; |
1348 pimpl_->acseTimeout_ = 10; // Timeout used during association negociation | 1349 pimpl_->acseTimeout_ = 10; // Timeout used during association negociation and ASC_releaseAssociation() |
1349 } | 1350 } |
1350 | 1351 |
1351 | 1352 |
1352 void DicomUserConnection::CheckStorageSOPClassesInvariant() const | 1353 void DicomUserConnection::CheckStorageSOPClassesInvariant() const |
1353 { | 1354 { |