Interface.h (1302B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #pragma once 4 #include "Microsoft/Schema/ISQLiteIndex.h" 5 #include "Microsoft/Schema/1_2/Interface.h" 6 7 8 namespace AppInstaller::Repository::Microsoft::Schema::V1_3 9 { 10 // Interface to this schema version exposed through ISQLiteIndex. 11 struct Interface : public V1_2::Interface 12 { 13 Interface(Utility::NormalizationVersion normVersion = Utility::NormalizationVersion::Initial); 14 15 // Version 1.0 16 SQLite::Version GetVersion() const override; 17 void CreateTables(SQLite::Connection& connection, CreateOptions options) override; 18 SQLite::rowid_t AddManifest(SQLite::Connection& connection, const Manifest::Manifest& manifest, const std::optional<std::filesystem::path>& relativePath) override; 19 std::pair<bool, SQLite::rowid_t> UpdateManifest(SQLite::Connection& connection, const Manifest::Manifest& manifest, const std::optional<std::filesystem::path>& relativePath) override; 20 21 protected: 22 // Gets a property already knowing that the manifest id is valid. 23 std::optional<std::string> GetPropertyByManifestIdInternal(const SQLite::Connection& connection, SQLite::rowid_t manifestId, PackageVersionProperty property) const override; 24 }; 25 }