EHS
BaseObj.h
Go to the documentation of this file.
1#pragma once
2
3#include "Types.h"
4#include "Type.h"
5
6namespace ehs
7{
8 class EHS_LIB_IO BaseObj
9 {
10 private:
11 Type* hierarchy;
12 UInt_64 hierarchySize;
13
14 public:
15 virtual ~BaseObj();
16
17 BaseObj();
18
19 BaseObj(BaseObj&& base) noexcept;
20
21 BaseObj(const BaseObj& base);
22
23 BaseObj& operator=(BaseObj&& base) noexcept;
24
25 BaseObj& operator=(const BaseObj& base);
26
27 bool operator==(const BaseObj& base) const;
28
29 bool operator!=(const BaseObj& base) const;
30
33 const Type* GetHierarchy() const;
34
37 UInt_64 GetHierarchySize() const;
38
42 bool HasType(UInt_64 typeHashId) const;
43
47 bool HasType(const Char_8* typeId) const;
48
51 Type GetType() const;
52
55 UInt_64 GetTypeIdSize() const;
56
59 const Char_8* GetTypeId() const;
60
63 UInt_64 GetTypeHashId() const;
64
67 virtual BaseObj* Clone() const;
68
69 protected:
72 void AddType(const Char_8* id);
73 };
74}
bool operator!=(const T *const first, const ehs::Str< T, N > &second)
Definition: Str.h:1916
bool operator==(const T *const first, const ehs::Str< T, N > &second)
Definition: Str.h:1906
Definition: BaseObj.h:9
Definition: Type.h:9
Definition: Anchor.h:6
char Char_8
Definition: Types.h:40