Mercurial > hg > orthanc-databases
comparison Framework/Plugins/DatabaseBackendAdapterV4.cpp @ 377:02fe4606f5e4 db-protobuf
simplification
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 29 Mar 2023 07:57:49 +0200 |
parents | 59bba5fbb425 |
children | 9db9e0275ec0 |
comparison
equal
deleted
inserted
replaced
376:59bba5fbb425 | 377:02fe4606f5e4 |
---|---|
91 | 91 |
92 | 92 |
93 class Output : public IDatabaseBackendOutput | 93 class Output : public IDatabaseBackendOutput |
94 { | 94 { |
95 private: | 95 private: |
96 Orthanc::DatabasePluginMessages::DeleteAttachment::Response* deleteAttachment_; | 96 Orthanc::DatabasePluginMessages::DeleteAttachment::Response* deleteAttachment_; |
97 Orthanc::DatabasePluginMessages::DeleteResource::Response* deleteResource_; | 97 Orthanc::DatabasePluginMessages::DeleteResource::Response* deleteResource_; |
98 Orthanc::DatabasePluginMessages::GetChanges::Response* getChanges_; | 98 Orthanc::DatabasePluginMessages::GetChanges::Response* getChanges_; |
99 Orthanc::DatabasePluginMessages::GetExportedResources::Response* getExportedResources_; | 99 Orthanc::DatabasePluginMessages::GetExportedResources::Response* getExportedResources_; |
100 Orthanc::DatabasePluginMessages::GetLastChange::Response* getLastChange_; | 100 Orthanc::DatabasePluginMessages::GetLastChange::Response* getLastChange_; |
101 Orthanc::DatabasePluginMessages::GetLastExportedResource::Response* getLastExportedResource_; | |
102 Orthanc::DatabasePluginMessages::GetMainDicomTags::Response* getMainDicomTags_; | |
101 | 103 |
102 void Clear() | 104 void Clear() |
103 { | 105 { |
104 deleteAttachment_ = NULL; | 106 deleteAttachment_ = NULL; |
105 deleteResource_ = NULL; | 107 deleteResource_ = NULL; |
106 getChanges_ = NULL; | 108 getChanges_ = NULL; |
107 getExportedResources_ = NULL; | 109 getExportedResources_ = NULL; |
108 getLastChange_ = NULL; | 110 getLastChange_ = NULL; |
111 getLastExportedResource_ = NULL; | |
109 } | 112 } |
110 | 113 |
111 public: | 114 public: |
112 Output(Orthanc::DatabasePluginMessages::DeleteAttachment::Response& deleteAttachment) | 115 Output(Orthanc::DatabasePluginMessages::DeleteAttachment::Response& deleteAttachment) |
113 { | 116 { |
135 | 138 |
136 Output(Orthanc::DatabasePluginMessages::GetLastChange::Response& getLastChange) | 139 Output(Orthanc::DatabasePluginMessages::GetLastChange::Response& getLastChange) |
137 { | 140 { |
138 Clear(); | 141 Clear(); |
139 getLastChange_ = &getLastChange; | 142 getLastChange_ = &getLastChange; |
143 } | |
144 | |
145 Output(Orthanc::DatabasePluginMessages::GetLastExportedResource::Response& getLastExportedResource) | |
146 { | |
147 Clear(); | |
148 getLastExportedResource_ = &getLastExportedResource; | |
149 } | |
150 | |
151 Output(Orthanc::DatabasePluginMessages::GetMainDicomTags::Response& getMainDicomTags) | |
152 { | |
153 Clear(); | |
154 getMainDicomTags_ = &getMainDicomTags; | |
140 } | 155 } |
141 | 156 |
142 virtual void SignalDeletedAttachment(const std::string& uuid, | 157 virtual void SignalDeletedAttachment(const std::string& uuid, |
143 int32_t contentType, | 158 int32_t contentType, |
144 uint64_t uncompressedSize, | 159 uint64_t uncompressedSize, |
260 | 275 |
261 virtual void AnswerDicomTag(uint16_t group, | 276 virtual void AnswerDicomTag(uint16_t group, |
262 uint16_t element, | 277 uint16_t element, |
263 const std::string& value) ORTHANC_OVERRIDE | 278 const std::string& value) ORTHANC_OVERRIDE |
264 { | 279 { |
265 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | 280 if (getMainDicomTags_ != NULL) |
281 { | |
282 Orthanc::DatabasePluginMessages::GetMainDicomTags_Response_Tag* tag = getMainDicomTags_->add_tags(); | |
283 tag->set_key((static_cast<uint32_t>(group) << 16) + static_cast<uint32_t>(element)); | |
284 tag->set_value(value); | |
285 } | |
286 else | |
287 { | |
288 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | |
289 } | |
266 } | 290 } |
267 | 291 |
268 virtual void AnswerExportedResource(int64_t seq, | 292 virtual void AnswerExportedResource(int64_t seq, |
269 OrthancPluginResourceType resourceType, | 293 OrthancPluginResourceType resourceType, |
270 const std::string& publicId, | 294 const std::string& publicId, |
273 const std::string& patientId, | 297 const std::string& patientId, |
274 const std::string& studyInstanceUid, | 298 const std::string& studyInstanceUid, |
275 const std::string& seriesInstanceUid, | 299 const std::string& seriesInstanceUid, |
276 const std::string& sopInstanceUid) ORTHANC_OVERRIDE | 300 const std::string& sopInstanceUid) ORTHANC_OVERRIDE |
277 { | 301 { |
302 Orthanc::DatabasePluginMessages::ExportedResource* resource; | |
303 | |
278 if (getExportedResources_ != NULL) | 304 if (getExportedResources_ != NULL) |
279 { | 305 { |
280 Orthanc::DatabasePluginMessages::ExportedResource* resource = getExportedResources_->add_resources(); | 306 resource = getExportedResources_->add_resources(); |
281 resource->set_seq(seq); | 307 } |
282 resource->set_resource_type(Convert(resourceType)); | 308 else if (getLastExportedResource_ != NULL) |
283 resource->set_public_id(publicId); | 309 { |
284 resource->set_modality(modality); | 310 if (getLastExportedResource_->exists()) |
285 resource->set_date(date); | 311 { |
286 resource->set_patient_id(patientId); | 312 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); |
287 resource->set_study_instance_uid(studyInstanceUid); | 313 } |
288 resource->set_series_instance_uid(seriesInstanceUid); | 314 |
289 resource->set_sop_instance_uid(sopInstanceUid); | 315 getLastExportedResource_->set_exists(true); |
316 resource = getLastExportedResource_->mutable_resource(); | |
290 } | 317 } |
291 else | 318 else |
292 { | 319 { |
293 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | 320 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); |
294 } | 321 } |
322 | |
323 resource->set_seq(seq); | |
324 resource->set_resource_type(Convert(resourceType)); | |
325 resource->set_public_id(publicId); | |
326 resource->set_modality(modality); | |
327 resource->set_date(date); | |
328 resource->set_patient_id(patientId); | |
329 resource->set_study_instance_uid(studyInstanceUid); | |
330 resource->set_series_instance_uid(seriesInstanceUid); | |
331 resource->set_sop_instance_uid(sopInstanceUid); | |
295 } | 332 } |
296 | 333 |
297 virtual void AnswerMatchingResource(const std::string& resourceId) ORTHANC_OVERRIDE | 334 virtual void AnswerMatchingResource(const std::string& resourceId) ORTHANC_OVERRIDE |
298 { | 335 { |
299 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); | 336 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); |
377 } | 414 } |
378 | 415 |
379 | 416 |
380 static void ProcessTransactionOperation(Orthanc::DatabasePluginMessages::TransactionResponse& response, | 417 static void ProcessTransactionOperation(Orthanc::DatabasePluginMessages::TransactionResponse& response, |
381 const Orthanc::DatabasePluginMessages::TransactionRequest& request, | 418 const Orthanc::DatabasePluginMessages::TransactionRequest& request, |
382 IndexConnectionsPool::Accessor& transaction) | 419 IndexBackend& backend, |
420 DatabaseManager& manager) | |
383 { | 421 { |
384 switch (request.operation()) | 422 switch (request.operation()) |
385 { | 423 { |
386 case Orthanc::DatabasePluginMessages::OPERATION_ROLLBACK: | 424 case Orthanc::DatabasePluginMessages::OPERATION_ROLLBACK: |
387 { | 425 { |
388 transaction.GetManager().RollbackTransaction(); | 426 manager.RollbackTransaction(); |
389 break; | 427 break; |
390 } | 428 } |
391 | 429 |
392 case Orthanc::DatabasePluginMessages::OPERATION_COMMIT: | 430 case Orthanc::DatabasePluginMessages::OPERATION_COMMIT: |
393 { | 431 { |
394 transaction.GetManager().CommitTransaction(); | 432 manager.CommitTransaction(); |
395 break; | 433 break; |
396 } | 434 } |
397 | 435 |
398 case Orthanc::DatabasePluginMessages::OPERATION_ADD_ATTACHMENT: | 436 case Orthanc::DatabasePluginMessages::OPERATION_ADD_ATTACHMENT: |
399 { | 437 { |
404 attachment.uncompressedHash = request.add_attachment().attachment().uncompressed_hash().c_str(); | 442 attachment.uncompressedHash = request.add_attachment().attachment().uncompressed_hash().c_str(); |
405 attachment.compressionType = request.add_attachment().attachment().compression_type(); | 443 attachment.compressionType = request.add_attachment().attachment().compression_type(); |
406 attachment.compressedSize = request.add_attachment().attachment().compressed_size(); | 444 attachment.compressedSize = request.add_attachment().attachment().compressed_size(); |
407 attachment.compressedHash = request.add_attachment().attachment().compressed_hash().c_str(); | 445 attachment.compressedHash = request.add_attachment().attachment().compressed_hash().c_str(); |
408 | 446 |
409 transaction.GetBackend().AddAttachment(transaction.GetManager(), request.add_attachment().id(), attachment, | 447 backend.AddAttachment(manager, request.add_attachment().id(), attachment, request.add_attachment().revision()); |
410 request.add_attachment().revision()); | |
411 break; | 448 break; |
412 } | 449 } |
413 | 450 |
414 case Orthanc::DatabasePluginMessages::OPERATION_CLEAR_CHANGES: | 451 case Orthanc::DatabasePluginMessages::OPERATION_CLEAR_CHANGES: |
415 { | 452 { |
416 transaction.GetBackend().ClearChanges(transaction.GetManager()); | 453 backend.ClearChanges(manager); |
417 break; | 454 break; |
418 } | 455 } |
419 | 456 |
420 case Orthanc::DatabasePluginMessages::OPERATION_CLEAR_EXPORTED_RESOURCES: | 457 case Orthanc::DatabasePluginMessages::OPERATION_CLEAR_EXPORTED_RESOURCES: |
421 { | 458 { |
422 transaction.GetBackend().ClearExportedResources(transaction.GetManager()); | 459 backend.ClearExportedResources(manager); |
423 break; | 460 break; |
424 } | 461 } |
425 | 462 |
426 case Orthanc::DatabasePluginMessages::OPERATION_DELETE_ATTACHMENT: | 463 case Orthanc::DatabasePluginMessages::OPERATION_DELETE_ATTACHMENT: |
427 { | 464 { |
428 Output output(*response.mutable_delete_attachment()); | 465 Output output(*response.mutable_delete_attachment()); |
429 transaction.GetBackend().DeleteAttachment( | 466 backend.DeleteAttachment(output, manager, request.delete_attachment().id(), request.delete_attachment().type()); |
430 output, transaction.GetManager(), request.delete_attachment().id(), request.delete_attachment().type()); | |
431 break; | 467 break; |
432 } | 468 } |
433 | 469 |
434 case Orthanc::DatabasePluginMessages::OPERATION_DELETE_METADATA: | 470 case Orthanc::DatabasePluginMessages::OPERATION_DELETE_METADATA: |
435 { | 471 { |
436 transaction.GetBackend().DeleteMetadata( | 472 backend.DeleteMetadata(manager, request.delete_metadata().id(), request.delete_metadata().type()); |
437 transaction.GetManager(), request.delete_metadata().id(), request.delete_metadata().type()); | |
438 break; | 473 break; |
439 } | 474 } |
440 | 475 |
441 case Orthanc::DatabasePluginMessages::OPERATION_DELETE_RESOURCE: | 476 case Orthanc::DatabasePluginMessages::OPERATION_DELETE_RESOURCE: |
442 { | 477 { |
443 response.mutable_delete_resource()->set_is_remaining_ancestor(false); | 478 response.mutable_delete_resource()->set_is_remaining_ancestor(false); |
444 | 479 |
445 Output output(*response.mutable_delete_resource()); | 480 Output output(*response.mutable_delete_resource()); |
446 transaction.GetBackend().DeleteResource(output, transaction.GetManager(), request.delete_resource().id()); | 481 backend.DeleteResource(output, manager, request.delete_resource().id()); |
447 break; | 482 break; |
448 } | 483 } |
449 | 484 |
450 case Orthanc::DatabasePluginMessages::OPERATION_GET_ALL_METADATA: | 485 case Orthanc::DatabasePluginMessages::OPERATION_GET_ALL_METADATA: |
451 { | 486 { |
452 typedef std::map<int32_t, std::string> Values; | 487 typedef std::map<int32_t, std::string> Values; |
453 | 488 |
454 Values values; | 489 Values values; |
455 transaction.GetBackend().GetAllMetadata(values, transaction.GetManager(), request.get_all_metadata().id()); | 490 backend.GetAllMetadata(values, manager, request.get_all_metadata().id()); |
456 | 491 |
457 for (Values::const_iterator it = values.begin(); it != values.end(); ++it) | 492 for (Values::const_iterator it = values.begin(); it != values.end(); ++it) |
458 { | 493 { |
459 Orthanc::DatabasePluginMessages::GetAllMetadata_Response_Metadata* metadata = response.mutable_get_all_metadata()->add_metadata(); | 494 Orthanc::DatabasePluginMessages::GetAllMetadata_Response_Metadata* metadata = |
495 response.mutable_get_all_metadata()->add_metadata(); | |
460 metadata->set_type(it->first); | 496 metadata->set_type(it->first); |
461 metadata->set_value(it->second); | 497 metadata->set_value(it->second); |
462 } | 498 } |
463 | 499 |
464 break; | 500 break; |
465 } | 501 } |
466 | 502 |
467 case Orthanc::DatabasePluginMessages::OPERATION_GET_ALL_PUBLIC_IDS: | 503 case Orthanc::DatabasePluginMessages::OPERATION_GET_ALL_PUBLIC_IDS: |
468 { | 504 { |
469 std::list<std::string> values; | 505 std::list<std::string> values; |
470 transaction.GetBackend().GetAllPublicIds(values, transaction.GetManager(), Convert(request.get_all_public_ids().resource_type())); | 506 backend.GetAllPublicIds(values, manager, Convert(request.get_all_public_ids().resource_type())); |
471 | 507 |
472 for (std::list<std::string>::const_iterator it = values.begin(); it != values.end(); ++it) | 508 for (std::list<std::string>::const_iterator it = values.begin(); it != values.end(); ++it) |
473 { | 509 { |
474 response.mutable_get_all_public_ids()->add_ids(*it); | 510 response.mutable_get_all_public_ids()->add_ids(*it); |
475 } | 511 } |
478 } | 514 } |
479 | 515 |
480 case Orthanc::DatabasePluginMessages::OPERATION_GET_ALL_PUBLIC_IDS_WITH_LIMITS: | 516 case Orthanc::DatabasePluginMessages::OPERATION_GET_ALL_PUBLIC_IDS_WITH_LIMITS: |
481 { | 517 { |
482 std::list<std::string> values; | 518 std::list<std::string> values; |
483 transaction.GetBackend().GetAllPublicIds(values, transaction.GetManager(), | 519 backend.GetAllPublicIds(values, manager, Convert(request.get_all_public_ids_with_limits().resource_type()), |
484 Convert(request.get_all_public_ids_with_limits().resource_type()), | 520 request.get_all_public_ids_with_limits().since(), |
485 request.get_all_public_ids_with_limits().since(), | 521 request.get_all_public_ids_with_limits().limit()); |
486 request.get_all_public_ids_with_limits().limit()); | |
487 | 522 |
488 for (std::list<std::string>::const_iterator it = values.begin(); it != values.end(); ++it) | 523 for (std::list<std::string>::const_iterator it = values.begin(); it != values.end(); ++it) |
489 { | 524 { |
490 response.mutable_get_all_public_ids_with_limits()->add_ids(*it); | 525 response.mutable_get_all_public_ids_with_limits()->add_ids(*it); |
491 } | 526 } |
496 case Orthanc::DatabasePluginMessages::OPERATION_GET_CHANGES: | 531 case Orthanc::DatabasePluginMessages::OPERATION_GET_CHANGES: |
497 { | 532 { |
498 Output output(*response.mutable_get_changes()); | 533 Output output(*response.mutable_get_changes()); |
499 | 534 |
500 bool done; | 535 bool done; |
501 transaction.GetBackend().GetChanges(output, done, transaction.GetManager(), | 536 backend.GetChanges(output, done, manager, request.get_changes().since(), request.get_changes().limit()); |
502 request.get_changes().since(), | |
503 request.get_changes().limit()); | |
504 | 537 |
505 response.mutable_get_changes()->set_done(done); | 538 response.mutable_get_changes()->set_done(done); |
506 break; | 539 break; |
507 } | 540 } |
508 | 541 |
509 case Orthanc::DatabasePluginMessages::OPERATION_GET_CHILDREN_INTERNAL_ID: | 542 case Orthanc::DatabasePluginMessages::OPERATION_GET_CHILDREN_INTERNAL_ID: |
510 { | 543 { |
511 std::list<int64_t> values; | 544 std::list<int64_t> values; |
512 transaction.GetBackend().GetChildrenInternalId(values, transaction.GetManager(), request.get_children_internal_id().id()); | 545 backend.GetChildrenInternalId(values, manager, request.get_children_internal_id().id()); |
513 | 546 |
514 for (std::list<int64_t>::const_iterator it = values.begin(); it != values.end(); ++it) | 547 for (std::list<int64_t>::const_iterator it = values.begin(); it != values.end(); ++it) |
515 { | 548 { |
516 response.mutable_get_children_internal_id()->add_ids(*it); | 549 response.mutable_get_children_internal_id()->add_ids(*it); |
517 } | 550 } |
520 } | 553 } |
521 | 554 |
522 case Orthanc::DatabasePluginMessages::OPERATION_GET_CHILDREN_PUBLIC_ID: | 555 case Orthanc::DatabasePluginMessages::OPERATION_GET_CHILDREN_PUBLIC_ID: |
523 { | 556 { |
524 std::list<std::string> values; | 557 std::list<std::string> values; |
525 transaction.GetBackend().GetChildrenPublicId(values, transaction.GetManager(), request.get_children_public_id().id()); | 558 backend.GetChildrenPublicId(values, manager, request.get_children_public_id().id()); |
526 | 559 |
527 for (std::list<std::string>::const_iterator it = values.begin(); it != values.end(); ++it) | 560 for (std::list<std::string>::const_iterator it = values.begin(); it != values.end(); ++it) |
528 { | 561 { |
529 response.mutable_get_children_public_id()->add_ids(*it); | 562 response.mutable_get_children_public_id()->add_ids(*it); |
530 } | 563 } |
535 case Orthanc::DatabasePluginMessages::OPERATION_GET_EXPORTED_RESOURCES: | 568 case Orthanc::DatabasePluginMessages::OPERATION_GET_EXPORTED_RESOURCES: |
536 { | 569 { |
537 Output output(*response.mutable_get_exported_resources()); | 570 Output output(*response.mutable_get_exported_resources()); |
538 | 571 |
539 bool done; | 572 bool done; |
540 transaction.GetBackend().GetExportedResources(output, done, transaction.GetManager(), | 573 backend.GetExportedResources(output, done, manager, request.get_exported_resources().since(), |
541 request.get_exported_resources().since(), | 574 request.get_exported_resources().limit()); |
542 request.get_exported_resources().limit()); | |
543 | 575 |
544 response.mutable_get_exported_resources()->set_done(done); | 576 response.mutable_get_exported_resources()->set_done(done); |
545 break; | 577 break; |
546 } | 578 } |
547 | 579 |
548 case Orthanc::DatabasePluginMessages::OPERATION_GET_LAST_CHANGE: | 580 case Orthanc::DatabasePluginMessages::OPERATION_GET_LAST_CHANGE: |
549 { | 581 { |
550 response.mutable_get_last_change()->set_exists(false); | 582 response.mutable_get_last_change()->set_exists(false); |
551 | 583 |
552 Output output(*response.mutable_get_last_change()); | 584 Output output(*response.mutable_get_last_change()); |
553 transaction.GetBackend().GetLastChange(output, transaction.GetManager()); | 585 backend.GetLastChange(output, manager); |
554 break; | 586 break; |
555 } | 587 } |
556 | 588 |
589 case Orthanc::DatabasePluginMessages::OPERATION_GET_LAST_EXPORTED_RESOURCE: | |
590 { | |
591 response.mutable_get_last_exported_resource()->set_exists(false); | |
592 | |
593 Output output(*response.mutable_get_last_exported_resource()); | |
594 backend.GetLastExportedResource(output, manager); | |
595 break; | |
596 } | |
597 | |
598 case Orthanc::DatabasePluginMessages::OPERATION_GET_MAIN_DICOM_TAGS: | |
599 { | |
600 Output output(*response.mutable_get_main_dicom_tags()); | |
601 backend.GetMainDicomTags(output, manager, request.get_main_dicom_tags().id()); | |
602 break; | |
603 } | |
604 | |
605 case Orthanc::DatabasePluginMessages::OPERATION_GET_PUBLIC_ID: | |
606 { | |
607 const std::string id = backend.GetPublicId(manager, request.get_public_id().id()); | |
608 response.mutable_get_public_id()->set_id(id); | |
609 break; | |
610 } | |
611 | |
612 case Orthanc::DatabasePluginMessages::OPERATION_GET_RESOURCES_COUNT: | |
613 { | |
614 OrthancPluginResourceType type = Convert(request.get_resources_count().type()); | |
615 uint64_t count = backend.GetResourcesCount(manager, type); | |
616 response.mutable_get_resources_count()->set_count(count); | |
617 break; | |
618 } | |
619 | |
620 case Orthanc::DatabasePluginMessages::OPERATION_GET_RESOURCE_TYPE: | |
621 { | |
622 OrthancPluginResourceType type = backend.GetResourceType(manager, request.get_public_id().id()); | |
623 response.mutable_get_resource_type()->set_type(Convert(type)); | |
624 break; | |
625 } | |
626 | |
627 case Orthanc::DatabasePluginMessages::OPERATION_GET_TOTAL_COMPRESSED_SIZE: | |
628 { | |
629 response.mutable_get_total_compressed_size()->set_size(backend.GetTotalCompressedSize(manager)); | |
630 break; | |
631 } | |
632 | |
633 case Orthanc::DatabasePluginMessages::OPERATION_GET_TOTAL_UNCOMPRESSED_SIZE: | |
634 { | |
635 response.mutable_get_total_uncompressed_size()->set_size(backend.GetTotalUncompressedSize(manager)); | |
636 break; | |
637 } | |
638 | |
557 default: | 639 default: |
558 LOG(ERROR) << "Not implemented transaction operation from protobuf: " << request.operation(); | 640 LOG(ERROR) << "Not implemented transaction operation from protobuf: " << request.operation(); |
559 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); | 641 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); |
560 } | 642 } |
561 } | 643 } |
592 break; | 674 break; |
593 | 675 |
594 case Orthanc::DatabasePluginMessages::REQUEST_TRANSACTION: | 676 case Orthanc::DatabasePluginMessages::REQUEST_TRANSACTION: |
595 { | 677 { |
596 IndexConnectionsPool::Accessor& transaction = *reinterpret_cast<IndexConnectionsPool::Accessor*>(request.transaction_request().transaction()); | 678 IndexConnectionsPool::Accessor& transaction = *reinterpret_cast<IndexConnectionsPool::Accessor*>(request.transaction_request().transaction()); |
597 ProcessTransactionOperation(*response.mutable_transaction_response(), request.transaction_request(), transaction); | 679 ProcessTransactionOperation(*response.mutable_transaction_response(), request.transaction_request(), |
680 transaction.GetBackend(), transaction.GetManager()); | |
598 break; | 681 break; |
599 } | 682 } |
600 | 683 |
601 default: | 684 default: |
602 LOG(ERROR) << "Not implemented request type from protobuf: " << request.type(); | 685 LOG(ERROR) << "Not implemented request type from protobuf: " << request.type(); |