ActiveLib
Loading...
Searching...
No Matches
Package.h
1
6#ifndef ACTIVE_SERIALISE_PACKAGE
7#define ACTIVE_SERIALISE_PACKAGE
8
9#include "Active/Serialise/Cargo.h"
10#include "Active/Serialise/Inventory/Inventory.h"
11
12namespace active::serialise {
13
17 class Package : public virtual Cargo {
18 public:
19
21 using Unique = std::unique_ptr<Package>;
23 using Shared = std::shared_ptr<Package>;
24
25 // MARK: - Functions (const)
26
31 bool isRoot() const { return m_isRoot; }
36 virtual bool isAttributeFirst() const { return false; }
37
38 // MARK: - Functions (mutating)
39
43 virtual void setDefault() {}
50 virtual bool insert(Cargo::Unique&& cargo, const Inventory::Item& item) { return true; }
56 virtual bool read(const utility::String& source) { return true; }
61 void setRoot(bool state) { m_isRoot = state; }
66 virtual bool finaliseAttributes() { return true; }
67
68 private:
70 bool m_isRoot = false;
71 };
72
73}
74
75#endif //ACTIVE_SERIALISE_PACKAGE
Definition Cargo.h:17
std::unique_ptr< Cargo > Unique
Unique pointer.
Definition Cargo.h:23
Definition Package.h:17
std::unique_ptr< Package > Unique
Unique pointer.
Definition Package.h:21
std::shared_ptr< Package > Shared
Shared pointer.
Definition Package.h:23
bool isRoot() const
Definition Package.h:31
virtual bool read(const utility::String &source)
Definition Package.h:56
virtual bool insert(Cargo::Unique &&cargo, const Inventory::Item &item)
Definition Package.h:50
virtual void setDefault()
Definition Package.h:43
virtual bool isAttributeFirst() const
Definition Package.h:36
void setRoot(bool state)
Definition Package.h:61
virtual bool finaliseAttributes()
Definition Package.h:66
A Unicode-aware string class.
Definition String.h:51
Definition Cargo.h:12
Definition Entry.h:20