ActiveLib
Loading...
Searching...
No Matches
PackageWrap.h
1
6#ifndef ACTIVE_SERIALISE_PACKAGE_WRAP
7#define ACTIVE_SERIALISE_PACKAGE_WRAP
8
9#include "Active/Serialise/Package/Package.h"
10
11namespace active::serialise {
12
16 class PackageWrap : public Package, public std::reference_wrapper<Package> {
17 public:
18
19 // MARK: - Types
20
22 using base = std::reference_wrapper<Package>;
23
24 // MARK: - Constructors
25
30 PackageWrap(Package& source) : base(source) {}
35 //NB: Value is only mutated within import processes, in which case the object must be mutable (i.e. const discard is safe)
36 PackageWrap(const Package& source) : base(const_cast<Package&>(source)) {}
41 PackageWrap(const PackageWrap& source) : base(source) {}
45 virtual ~PackageWrap() = default;
46
47 // MARK: - Functions (const)
48
54 virtual bool fillInventory(Inventory& inventory) const override { return get().fillInventory(inventory); }
60 virtual Cargo::Unique getCargo(const Inventory::Item& item) const override { return get().getCargo(item); }
61
62 // MARK: - Functions (mutating)
63
67 virtual void clear() override { get().clear(); }
71 virtual void setDefault() override { get().setDefault(); }
76 virtual bool validate() override { return get().validate(); }
82 virtual bool read(const utility::String& source) override { return get().read(source); }
88 virtual bool insert(Cargo::Unique&& cargo, const Inventory::Item& item) override { return get().insert(std::move(cargo), item); }
89 };
90
91}
92
93#endif //ACTIVE_SERIALISE_PACKAGE_WRAP
std::unique_ptr< Cargo > Unique
Unique pointer.
Definition Cargo.h:23
Definition Inventory.h:19
Definition Package.h:17
Definition PackageWrap.h:16
PackageWrap(Package &source)
Definition PackageWrap.h:30
virtual bool fillInventory(Inventory &inventory) const override
Definition PackageWrap.h:54
virtual Cargo::Unique getCargo(const Inventory::Item &item) const override
Definition PackageWrap.h:60
virtual void setDefault() override
Definition PackageWrap.h:71
virtual bool insert(Cargo::Unique &&cargo, const Inventory::Item &item) override
Definition PackageWrap.h:88
PackageWrap(const PackageWrap &source)
Definition PackageWrap.h:41
virtual ~PackageWrap()=default
virtual void clear() override
Definition PackageWrap.h:67
PackageWrap(const Package &source)
Definition PackageWrap.h:36
virtual bool validate() override
Definition PackageWrap.h:76
virtual bool read(const utility::String &source) override
Definition PackageWrap.h:82
std::reference_wrapper< Package > base
Item reference base.
Definition PackageWrap.h:22
A Unicode-aware string class.
Definition String.h:51
Definition Cargo.h:12
Definition Entry.h:20