summaryrefslogtreecommitdiffhomepage
path: root/inc
diff options
context:
space:
mode:
authorAmlal <amlal@zka.com>2024-09-20 15:50:58 +0200
committerAmlal <amlal@zka.com>2024-09-20 15:50:58 +0200
commite59596db6f3e92098fdc0c3715f0a41cd10a0333 (patch)
treed2d126ce86f452add889df780897a2242de73e0e /inc
parent602a5b177636ed55e950b239eedfc0d3217b97e1 (diff)
Add new contract for buildable manifests.
Signed-off-by: Amlal <amlal@zka.com>
Diffstat (limited to 'inc')
-rw-r--r--inc/IManifestBuilder.hxx19
-rw-r--r--inc/JSONManifestBuilder.hxx22
-rw-r--r--inc/manifest_builder.hxx22
3 files changed, 41 insertions, 22 deletions
diff --git a/inc/IManifestBuilder.hxx b/inc/IManifestBuilder.hxx
new file mode 100644
index 0000000..404f8b2
--- /dev/null
+++ b/inc/IManifestBuilder.hxx
@@ -0,0 +1,19 @@
+#pragma once
+
+/// @brief Builder interface
+class IManifestBuilder
+{
+public:
+ explicit IManifestBuilder() = default;
+ virtual ~IManifestBuilder() = default;
+
+ IManifestBuilder& operator=(const IManifestBuilder&) = default;
+ IManifestBuilder(const IManifestBuilder&) = default;
+
+ /// @brief Builds a target.
+ /// @param arg_sz filename size
+ /// @param arg_val filename path.
+ /// @retval true succeeded.
+ /// @retval false failed.
+ virtual bool Build(int arg_sz, const char* arg_val) = 0;
+};
diff --git a/inc/JSONManifestBuilder.hxx b/inc/JSONManifestBuilder.hxx
new file mode 100644
index 0000000..5e29a96
--- /dev/null
+++ b/inc/JSONManifestBuilder.hxx
@@ -0,0 +1,22 @@
+#pragma once
+
+#include <IManifestBuilder.hxx>
+
+/// @brief JSON builder
+class JSONManifestBuilder final : public IManifestBuilder
+{
+public:
+ explicit JSONManifestBuilder() = default;
+ virtual ~JSONManifestBuilder() override = default;
+
+ JSONManifestBuilder& operator=(const JSONManifestBuilder&) = default;
+ JSONManifestBuilder(const JSONManifestBuilder&) = default;
+
+public:
+ /// @brief Builds a JSON target.
+ /// @param arg_sz filename size
+ /// @param arg_val filename path.
+ /// @retval true succeeded.
+ /// @retval false failed.
+ virtual bool Build(int arg_sz, const char* arg_val) override;
+};
diff --git a/inc/manifest_builder.hxx b/inc/manifest_builder.hxx
deleted file mode 100644
index 5d882ff..0000000
--- a/inc/manifest_builder.hxx
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-
-class ManifestBuilder;
-
-/// @brief JSON builder
-class ManifestBuilder final
-{
-public:
- explicit ManifestBuilder() = default;
- ~ManifestBuilder() = default;
-
- ManifestBuilder& operator=(const ManifestBuilder&) = default;
- ManifestBuilder(const ManifestBuilder&) = default;
-
-public:
- /// @brief Builds a JSON target.
- /// @param arg_sz filename size
- /// @param arg_val filename path.
- /// @retval true succeeded.
- /// @retval false failed.
- bool buildJson(int arg_sz, const char* arg_val);
-};