comparison Framework/Plugins/DatabaseBackendAdapterV3.cpp @ 256:e184dcadf163

handling of revisions in metadata
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 16 Apr 2021 17:13:33 +0200
parents d663d9e44f8d
children 793bbbe11287
comparison
equal deleted inserted replaced
255:d663d9e44f8d 256:e184dcadf163
1705 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext()); 1705 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext());
1706 } 1706 }
1707 1707
1708 1708
1709 static OrthancPluginErrorCode LookupMetadata(OrthancPluginDatabaseTransaction* transaction, 1709 static OrthancPluginErrorCode LookupMetadata(OrthancPluginDatabaseTransaction* transaction,
1710 int64_t* revision /* out */,
1710 int64_t id, 1711 int64_t id,
1711 int32_t metadata) 1712 int32_t metadata)
1712 { 1713 {
1713 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction); 1714 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction);
1714 1715
1715 try 1716 try
1716 { 1717 {
1717 t->GetOutput().Clear(); 1718 t->GetOutput().Clear();
1718 1719
1719 std::string s; 1720 std::string s;
1720 if (t->GetBackend().LookupMetadata(s, t->GetManager(), id, metadata)) 1721 if (t->GetBackend().LookupMetadata(s, *revision, t->GetManager(), id, metadata))
1721 { 1722 {
1722 t->GetOutput().AnswerString(s); 1723 t->GetOutput().AnswerString(s);
1723 } 1724 }
1724 1725
1725 return OrthancPluginErrorCode_Success; 1726 return OrthancPluginErrorCode_Success;
1911 1912
1912 1913
1913 static OrthancPluginErrorCode SetMetadata(OrthancPluginDatabaseTransaction* transaction, 1914 static OrthancPluginErrorCode SetMetadata(OrthancPluginDatabaseTransaction* transaction,
1914 int64_t id, 1915 int64_t id,
1915 int32_t metadata, 1916 int32_t metadata,
1916 const char* value) 1917 const char* value,
1917 { 1918 int64_t revision)
1918 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction); 1919 {
1919 1920 DatabaseBackendAdapterV3::Transaction* t = reinterpret_cast<DatabaseBackendAdapterV3::Transaction*>(transaction);
1920 try 1921
1921 { 1922 try
1922 t->GetOutput().Clear(); 1923 {
1923 t->GetBackend().SetMetadata(t->GetManager(), id, metadata, value); 1924 t->GetOutput().Clear();
1925 t->GetBackend().SetMetadata(t->GetManager(), id, metadata, value, revision);
1924 return OrthancPluginErrorCode_Success; 1926 return OrthancPluginErrorCode_Success;
1925 } 1927 }
1926 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext()); 1928 ORTHANC_PLUGINS_DATABASE_CATCH(t->GetBackend().GetContext());
1927 } 1929 }
1928 1930