Face Engine SDK  5.21.0
A face detection, recognition and tracking engine.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
IObject.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include <fsdk/IRefCounted.h>
11 #include <fsdk/Types.h>
12 
13 namespace fsdk {
14 
21  struct ISettingsProvider;
22 
38  struct IArchive {
39 
46  virtual bool write(const void* data, size_t size) = 0;
47 
54  virtual bool read(void* data, size_t size) = 0;
55 
60  virtual void setSizeHint(size_t hint) {
61  ((void)hint);
62  }
63 
64  virtual ~IArchive() = default;
65  };
66 
72 
76  enum class Error : uint32_t {
77  Ok,
78  Size,
79  Signature,
80  ArchiveRead,
81  InputArchive,
82  ArchiveWrite,
83  };
84 
91  enum Flags {
92 
94  Default = 0,
95 
104  };
105 
111  virtual void getSize(Sizer& sizer, uint32_t flags = Default) const noexcept = 0;
112 
121  virtual Result<Error> load(IArchive* archive, uint32_t flags = Default) = 0;
122 
131  virtual Result<Error> save(IArchive* archive, uint32_t flags = Default) const = 0;
132  };
133 
137  template <>
139 
140  static bool isOk(ISerializableObject::Error error) noexcept {
141  return error == ISerializableObject::Error::Ok;
142  }
143 
144  static const char* toString(ISerializableObject::Error error) noexcept {
145  switch(error) {
147  return "Ok";
149  return "Size error";
151  return "Signature error";
153  return "Error during archive reading";
155  return "Input archive is nullptr";
157  return "Error during archive writing";
158  default:
159  return "Unknown error";
160  }
161  }
162  };
163 
168 
174  virtual void clear() noexcept = 0;
175 
183  virtual IRefCounted* getParentObject() const noexcept = 0;
184  };
185 
187 } // namespace fsdk
Error during archive writing,.
virtual bool write(const void *data, size_t size)=0
Write bytes to archive.
virtual Result< Error > save(IArchive *archive, uint32_t flags=Default) const =0
Save object to archive.
A structure that encapsulates an action result enumeration.
Definition: Result.h:27
Common data types and structures.
virtual Result< Error > load(IArchive *archive, uint32_t flags=Default)=0
Load object from archive.
Error during archive reading,.
Serializable object interface.
Definition: IObject.h:71
Definition: Result.h:8
Base strong reference counted object interface.
Definition: IRefCounted.h:37
virtual void getSize(Sizer &sizer, uint32_t flags=Default) const noexcept=0
Estimate size of this object binary data.
Default serialization mode.
Definition: IObject.h:94
virtual void setSizeHint(size_t hint)
Set size hint.
Definition: IObject.h:60
Error
Serialization nerror codes.
Definition: IObject.h:76
Flags
Serialization flags.
Definition: IObject.h:91
Omit object signature.
Definition: IObject.h:103
Data storage object interface helper.
Definition: IObject.h:167
Archive interface.
Definition: IObject.h:38
virtual bool read(void *data, size_t size)=0
Read bytes from archive.
Helper entity to measure size of dynamic objects in memory.
Definition: Sizer.h:9
Reference counted object interface.