Mercurial > hg > orthanc-databases
comparison Framework/Plugins/DatabaseBackendAdapterV3.cpp @ 264:7ec412af11cb
implementation of "hasRevisionsSupport" primitive in database SDK
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 20 Apr 2021 15:56:22 +0200 |
parents | b0c65094b299 |
children | 16aac0287485 cd9521e04249 |
comparison
equal
deleted
inserted
replaced
263:29d2b76516f6 | 264:7ec412af11cb |
---|---|
1039 } | 1039 } |
1040 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext()); | 1040 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext()); |
1041 } | 1041 } |
1042 | 1042 |
1043 | 1043 |
1044 static OrthancPluginErrorCode HasRevisionsSupport(void* database, | |
1045 uint8_t* target) | |
1046 { | |
1047 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database); | |
1048 | |
1049 try | |
1050 { | |
1051 DatabaseBackendAdapterV3::Adapter::DatabaseAccessor accessor(*adapter); | |
1052 *target = (accessor.GetBackend().HasRevisionsSupport() ? 1 : 0); | |
1053 return OrthancPluginErrorCode_Success; | |
1054 } | |
1055 ORTHANC_PLUGINS_DATABASE_CATCH(adapter->GetContext()); | |
1056 } | |
1057 | |
1058 | |
1044 static OrthancPluginErrorCode StartTransaction(void* database, | 1059 static OrthancPluginErrorCode StartTransaction(void* database, |
1045 OrthancPluginDatabaseTransaction** target /* out */, | 1060 OrthancPluginDatabaseTransaction** target /* out */, |
1046 OrthancPluginDatabaseTransactionType type) | 1061 OrthancPluginDatabaseTransactionType type) |
1047 { | 1062 { |
1048 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database); | 1063 DatabaseBackendAdapterV3::Adapter* adapter = reinterpret_cast<DatabaseBackendAdapterV3::Adapter*>(database); |
2002 params.open = Open; | 2017 params.open = Open; |
2003 params.close = Close; | 2018 params.close = Close; |
2004 params.destructDatabase = DestructDatabase; | 2019 params.destructDatabase = DestructDatabase; |
2005 params.getDatabaseVersion = GetDatabaseVersion; | 2020 params.getDatabaseVersion = GetDatabaseVersion; |
2006 params.upgradeDatabase = UpgradeDatabase; | 2021 params.upgradeDatabase = UpgradeDatabase; |
2022 params.hasRevisionsSupport = HasRevisionsSupport; | |
2007 params.startTransaction = StartTransaction; | 2023 params.startTransaction = StartTransaction; |
2008 params.destructTransaction = DestructTransaction; | 2024 params.destructTransaction = DestructTransaction; |
2009 params.rollback = Rollback; | 2025 params.rollback = Rollback; |
2010 params.commit = Commit; | 2026 params.commit = Commit; |
2011 | 2027 |
2061 new Adapter(backend, countConnections)) != OrthancPluginErrorCode_Success) | 2077 new Adapter(backend, countConnections)) != OrthancPluginErrorCode_Success) |
2062 { | 2078 { |
2063 throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError, "Unable to register the database backend"); | 2079 throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError, "Unable to register the database backend"); |
2064 } | 2080 } |
2065 | 2081 |
2066 if (backend->HasRevisionsSupport()) | |
2067 { | |
2068 LOG(INFO) << "The database backend *has* support for revisions of metadata and attachments"; | |
2069 } | |
2070 else | |
2071 { | |
2072 LOG(WARNING) << "The database backend has *no* support for revisions of metadata and attachments"; | |
2073 } | |
2074 | |
2075 backend->SetOutputFactory(new Factory); | 2082 backend->SetOutputFactory(new Factory); |
2076 | 2083 |
2077 isBackendInUse_ = true; | 2084 isBackendInUse_ = true; |
2078 } | 2085 } |
2079 | 2086 |