4 virtual bool ForceProperty(){
10 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override{
13 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override{}
14 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override{}
17extern APICALL Delimiter& GDLM();
30 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override;
31 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override;
32 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override;
33 virtual void UpdateHash(HashSummator& H,
void* data =
nullptr,
void* extra =
nullptr)
override;
37reg_auto_specialisation_template(_cStr, comms::cStr);
43 comms::cStr* elem(
int idx);
44 const comms::cStr* elem(
int idx)
const;
52 int GetAmount()
const;
53 const comms::cStr& operator[](
int pos)
const ;
54 comms::cStr& operator[](
int pos);
57 int Add(
const char* str);
59 void RemoveAt(
int pos,
int num = 1);
60 int IndexOf(
const char* str)
const;
61 void Split(
const char* WhatToSplit,
const char* delimiters =
" ,;\t");
62 const char* GetLast()
const;
63 comms::cStr& GetLast();
64 comms::cStr& GetAt(
int idx);
65 const comms::cStr& GetAt(
int idx)
const;
66 void Insert(
int pos,
const char* str);
67 bool IsEmpty()
const ;
68 const char* GetFirst()
const;
69 comms::cStr& GetFirst();
71 int AddOnce(
const char* str);
73 void Sort(
const cList<comms::cStr>::CompareFunctor& F);
75 void Sort(
int Index,
int Count,
const cList<comms::cStr>::CompareFunctor& F);
77 comms::cList<comms::cStr> ToList()
const ;
85 return "ClassArray._str";
88 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override;
89 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override;
90 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override;
91 virtual void UpdateHash(HashSummator& H,
void* data =
nullptr,
void* extra =
nullptr)
override;
96 virtual void CountObjects(
int& required_index,
int* counter, HashSummator* hash, BaseClassElement* result,
97 const std::function<
bool(BaseClassElement*)>* ForEachElem,
bool OnlyPointersMode)
override;
111 bool operator != (
const iterator& itr)
const {
112 return pos != itr.pos;
114 const char* operator*() {
115 return (*array)[pos];
122 return { Count(),
this };
124 iterator begin()
const {
127 iterator end()
const {
128 return { Count(),
this };
140 return TypeSize == 4;
142 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override {
143 *((
int*)DestData) = *((
int*)SrcData);
146 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override;
147 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override;
148 virtual void UpdateHash(HashSummator& H,
void* data =
nullptr,
void* extra =
nullptr)
override;
151reg_auto_specialisation_template(_int,
int);
155 static bool DontUseInHash;
160 *((
float*)ptr) = 0.0f;
163 return !strcmp(TypeName,
"float");
165 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override {
166 *((
int*)DestData) = *((
int*)SrcData);
169 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override;
170 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override;
171 virtual void UpdateHash(HashSummator& H,
void* data =
nullptr,
void* extra =
nullptr)
override;
174reg_auto_specialisation_template(_float,
float);
178class APICALL CtrlISlider :
public _int {
180 static bool ZeroHash;
181 virtual void UpdateHash(HashSummator& H,
void* data =
nullptr,
void* extra =
nullptr)
override {
184 virtual const char*
GetClassName()
const override {
return "CtrlISlider"; }
185 AUTONEW(CtrlISlider);
195struct CtrlISliderArgs {
204class APICALL CtrlFSlider :
public _float {
206 static bool ZeroHash;
207 virtual void UpdateHash(HashSummator& H,
void* data =
nullptr,
void* extra =
nullptr)
override {
210 virtual const char*
GetClassName()
const override {
return "CtrlFSlider"; }
211 AUTONEW(CtrlFSlider);
216struct CtrlFSliderArgs {
232struct __slider_container {
233 __slider_container();
234 __slider_container(
BaseClass* _b,
void* _p) {
242__slider_container GetSliderContainer(tp minvalue, tp maxvalue)
245 return __slider_container(
nullptr,
nullptr);
248inline __slider_container GetSliderContainer(
float minvalue,
float maxvalue)
250 CtrlFSliderArgs* arg =
new CtrlFSliderArgs;
251 arg->MinValue = minvalue;
252 arg->MaxValue = maxvalue;
253 return __slider_container(CGARB().GetClass(
"CtrlFSlider")->OneMemb, (
void*)arg);
256inline __slider_container GetSliderContainer(
int minvalue,
int maxvalue)
258 CtrlISliderArgs* arg =
new CtrlISliderArgs;
259 arg->MinValue = minvalue;
260 arg->MaxValue = maxvalue;
261 return __slider_container(CGARB().GetClass(
"CtrlISlider")->OneMemb, (
void*)arg);
269 *((
bool*)ptr) =
false;
272 return TypeSize == 1;
274 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override {
275 *((BYTE*)DestData) = *((BYTE*)SrcData);
278 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override;
279 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override;
280 virtual void UpdateHash(HashSummator& H,
void* data =
nullptr,
void* extra =
nullptr)
override;
284reg_auto_specialisation_template(_bool,
bool);
289 return TypeSize == 4;
293 Enumerator* E = (Enumerator*)Extra;
299 Enumerator* E = (Enumerator*)Extra;
325 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override {
326 *((
int*)DestData) = *((
int*)SrcData);
329 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override;
330 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override;
331 virtual void UpdateHash(HashSummator& H,
void* data =
nullptr,
void* extra =
nullptr)
override;
352 for (
int i = 0; i < CA->Count(); i++)
if ((*CA)[i]) {
357 CA->ToPtr()[i] = NULL;
365 static char N[64] =
"";
368 sprintf_s(N,
sizeof(N),
"ClassArray.%s", x->GetClassName());
374 return comms::cList<X*>::Count();
376 virtual void CountObjects(
int& required_index,
int* counter, HashSummator* hash, BaseClassElement* result,
const std::function<
bool(BaseClassElement*)>* ForEachElem,
bool OnlyPointersMode)
override {
379 bool pa = MayBeParent();
384 if(pa && B->UsePointerInHashCalculation())(*hash) << cPtrDiff(B);
392 if(!OnlyPointersMode)result->ID = elm ? elm->
GetClassName() : NULL;
394 if ((*ForEachElem)(result))
return;
398 BaseClass* elm = (*this)[required_index];
400 if (!OnlyPointersMode)result->ID = elm ? elm->
GetClassName() : NULL;
407 const int n = comms::cList<X*>::Count();
410 return comms::cList<X*>::m_Container->List[0];
413 return comms::cList<X*>::m_Container->List[n - 1];
416 inline int Add(X* V) {
417 if (V)V->SimplySetParent(
this);
418 return comms::cList<X*>::Add(V);
420 inline int Add(X* V,
int N) {
421 int p = comms::cList<X*>::Add(V, N);
422 if (V)V->SetParent(
this);
425 inline bool Insert(
int pos, X* V) {
427 if (!(pos<0 || pos>comms::cList<X*>::Count())) {
428 comms::cList<X*>::Insert(pos, V);
431 if (V)V->SetParent(
this);
438 virtual bool IsArray()
const override {
442 if(ElmName && ElmName[0]) {
444 OneClassStorage* OCS = CGARB().GetClass(ElmName);
451 return BC->Count() - 1;
466 return BC->Count() - 1;
470 if (index >= 0 && index < comms::cList<X*>::Count()) {
471 if ((*
this)[index])
delete((*this)[index]);
472 comms::cList<X*>::RemoveAt(index, 1);
479 void Del(
int index,
int n) {
482 comms::cList<X*>::RemoveAt(index, n);
488 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override {
492 for (
int i = 0; i < SA->Count(); i++)
if ((*SA)[i]) {
493 X* E = (X*)(*SA)[i]->new_element();
495 (*SA)[i]->FullCopy((*SA)[i], SrcDataExtra, E, E, DestExtraPtr, C);
499 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override {
500 Out->WriteDWORD(comms::cList<X*>::Count());
502 for (
int i = 0; i < comms::cList<X*>::Count(); i++) {
506 sc.
SaveBin(&s, NULL, Out, ExDictionary, SkipList);
507 BC->
SaveBin(BC, Extra, Out, ExDictionary, SkipList);
510 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override {
512 int N = In->ReadDWORD();
514 for (
int i = 0; i < N; i++) {
516 sc.
LoadBin(&s, NULL, In, ExDictionary);
520 BC->
LoadBin(BC, Extra, In, ExDictionary);
525 if (In->GetReadPos() >= In->Size()) {
531 if (comms::cList<X*>::Count() == 0)
return NULL;
532 return comms::cList<X*>::m_Container->List[comms::cList<X*>::m_Container->Count - 1];
545 for (
int i = 0; i < src.Count(); i++) {
553template<
class X>
class ClonesArray :
public ClassArray<X> {
555 virtual int GetExpansionRules() {
568 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override {
570 X* x = (X*)ptr->new_element();
573 ptr->FullCopy(ptr, SrcDataExtra, x, x, DestExtraPtr, C);
577 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override {
579 Out->WriteBYTE(BC ? 1 : 0);
583 sc.
SaveBin(&s, Extra, Out, ExDictionary, SkipList);
584 BC->
SaveBin(BC, Extra, Out, ExDictionary, SkipList);
587 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override {
588 int N = In->ReadBYTE();
592 sc.
LoadBin(&s, Extra, In, ExDictionary);
596 BC->
LoadBin(BC, Extra, In, ExDictionary);
607 if (ptr)ptr->SetParent(
this);
619 if (cp->ptr)
delete(cp->ptr);
626 static char N[64] =
"";
629 sprintf(N,
"ClassPtr.%s", x->GetClassName());
637 virtual bool GetElement(BaseClassElement& res,
int idx,
const void* Ptr,
const void* Extra)
override {
638 if (idx == 0 && ptr) {
640 res.ID = ptr->GetClassName();
649 OneClassStorage* OCS = CGARB().GetClass(ElmName);
654 BC->ptr->SetParent(
this);
669 virtual bool ForceProperty() {
return true; }
670 virtual void CountObjects(
int& required_index,
int* counter, HashSummator* hash, BaseClassElement* result,
const std::function<
bool(BaseClassElement*)>* ForEachElem,
bool OnlyPointersMode)
override {
671 if (counter && ptr)* counter ++;
674 ptr->UpdateHash(*hash, ptr,
nullptr);
682 if (!OnlyPointersMode) {
683 result->ID = ptr->GetClassName();
686 (*ForEachElem)(result);
687 }
else ptr =
nullptr;
691 if (result && required_index == 0 && ptr) {
693 if (!OnlyPointersMode) {
694 result->ID = ptr->GetClassName();
709 virtual bool FullCopy(
const void* SrcData,
const void* SrcDataExtra,
BaseClass* Dest,
void* DestData,
void* DestExtraPtr, CECopyContext* C)
override {
712 virtual void SaveBin(
void* Data,
void* Extra, BinStream* Out, Enumerator* ExDictionary, Enumerator* SkipList)
override {
714 virtual void LoadBin(
void* Data,
void* Extra, BinStream* In, Enumerator* ExDictionary)
override {
738 static char N[64] =
"";
741 sprintf(N,
"ClassRef.%s", x->GetClassName());
749 virtual bool GetElement(BaseClassElement& res,
int idx,
const void* Ptr,
const void* Extra)
override {
750 if (idx == 0 && ptr) {
752 res.ID = ptr->GetClassName();
769 virtual bool MayBeParent()
override {
772 virtual bool ForceProperty() {
return true; }
773 virtual void CountObjects(
int& required_index,
int* counter, HashSummator* hash, BaseClassElement* result,
const std::function<
bool(BaseClassElement*)>* ForEachElem,
bool OnlyPointersMode)
override {
774 if (counter && ptr)* counter++;
777 ptr->UpdateHash(*hash, ptr,
nullptr);
784 if (!OnlyPointersMode) {
785 result->ID = ptr->GetClassName();
788 (*ForEachElem)(result);
792 if (result && required_index == 0 && ptr) {
794 if (!OnlyPointersMode) {
795 result->ID = ptr->GetClassName();
802template<
class X,
class BaseForX>
class LinearArray :
public BaseClass,
public comms::cList<X> {
806 virtual ~LinearArray() {
810 LinearArray* LA = (LinearArray*)DataPtr;
814 ((LinearArray<X, BaseForX>*)
ClassPtr)->Clear();
818 static char N[64] =
"";
820 BaseForX* x =
new BaseForX;
821 sprintf(N,
"LinearArray.%s", x->GetClassName());
827 return comms::cList<X>::Count();
829 virtual void CountObjects(
int& required_index,
int* counter, HashSummator* hash, BaseClassElement* result,
const std::function<
bool(BaseClassElement*)>* ForEachElem,
bool OnlyPointersMode)
override {
833 B.UpdateHash(*hash, &(*
this)[i],
nullptr);
839 if (!OnlyPointersMode) {
840 static char temp[16] =
"";
841 sprintf(temp,
"e%d", i);
844 result->Ptr = &(*this)[i];
845 if ((*ForEachElem)(result))
return;
851 if (!OnlyPointersMode){
852 static char temp[16] =
"";
853 sprintf(temp,
"e%d", required_index);
856 result->Ptr = &(*this)[required_index];
859 virtual int ExpandWith(
const char* ElmName,
void* base) {
860 LinearArray<X, BaseForX>* BC = (LinearArray<X, BaseForX>*)base;
862 return BC->Count() - 1;
865 if (index >= 0 && index < comms::cList<X>::Count()) {
866 comms::cList<X>::RemoveAt(index, 1);
871 typedef LinearArray<X, BaseForX> LA;
Definition classlist.h:189
virtual BaseWidget * OnCreateControlFromScratch(const ClassEditorContext &Context, Rct &Rect)
Create completely own control for ClassEditor.
Use this class for build a class for UI or serialization. see class_reg.h for details about the class...
Definition BaseClass.h:91
virtual void LoadBin(void *Data, void *Extra, BinStream *In, Enumerator *ExDictionary)
Load the class from the memory. Use only for temporary storage in memory!!!
virtual bool CopyBaseClass(BaseClass *Dest, bool Add=false)
Copy base class to other class uning names correspondence.
virtual BaseWidget * OnCreateControlFromScratch(const ClassEditorContext &Context, Rct &Rect)
Create completely own control for ClassEditor.
Definition BaseClass.h:379
virtual bool CheckCompartabilityWith(const char *TypeName, int TypeSize)
Checking for errors of registration.
Definition BaseClass.h:339
virtual bool DelElement(int Index)
removes element if the operation supported
Definition BaseClass.h:272
virtual BaseClass * new_element() const
construct pointer to class of the same type like this. Elements will not be copied into the new place
virtual bool Load(TagsList &xml, void *ClassPtr, void *Extra=NULL)
Load the class from the XML structure.
virtual void reset_class(void *DataPtr=nullptr)
Clearing all registered content of the class. If DataPtr is nullptr, this class will be cleared.
virtual void SetParent(BaseClass *Parent)
set parent recursively
virtual const char * GetClassName() const
return class name there if need. Usually you don't need, if you are using AUTONEW or SERIALIZE
virtual void SaveBin(void *Data, void *Extra, BinStream *Out, Enumerator *ExDictionary, Enumerator *SkipList)
Save in binaly form. Use only for temporary storage in memory!!!
virtual int GetAmountOfElements()
return complete amount of elements. Even invisible, masked and non-serialized elements will be counte...
virtual void Save(TagsList &xml, void *ClassPtr, void *Extra=NULL)
Save class to the XML structure.
virtual void CountObjects(int &required_index, int *counter, HashSummator *hash, BaseClassElement *result, const std::function< bool(BaseClassElement *)> *ForEachElem=nullptr, bool OnlyPointersMode=false)
This is the main function used for the access to class members. Each class that has SERIALIZE section...
Definition BaseClass.h:134
virtual bool FullCopy(const void *SrcData, const void *SrcDataExtra, BaseClass *Dest, void *DestData, void *DstDataExtra, CECopyContext *C)
Fast copy from one BaseClass to another. Names and types correspondence used to copy.
virtual bool CheckDirectCasting() const
Definition BaseClass.h:227
virtual int ExpandWith(const char *ElmName, void *base)
Expand array with class ElmName.
Definition BaseClass.h:270
virtual void UpdateHash(HashSummator &S, void *data=nullptr, void *extra=nullptr)
returns hash value dependent on data fields of this class
The array of elements derived from the BaseClass. If you create ClassArray and register if with the R...
Definition classlist.h:340
virtual bool DelElement(int index)
removes element if the operation supported
Definition classlist.h:469
virtual void reset_class(void *ptr)
Clearing all registered content of the class. If DataPtr is nullptr, this class will be cleared.
Definition classlist.h:350
virtual void SaveBin(void *Data, void *Extra, BinStream *Out, Enumerator *ExDictionary, Enumerator *SkipList) override
Save in binaly form. Use only for temporary storage in memory!!!
Definition classlist.h:499
int GetAmountOfElements() override
return complete amount of elements. Even invisible, masked and non-serialized elements will be counte...
Definition classlist.h:373
const char * GetClassName() const override
return class name there if need. Usually you don't need, if you are using AUTONEW or SERIALIZE
Definition classlist.h:364
virtual void LoadBin(void *Data, void *Extra, BinStream *In, Enumerator *ExDictionary) override
Load the class from the memory. Use only for temporary storage in memory!!!
Definition classlist.h:510
virtual bool CheckDirectCasting() const override
Definition classlist.h:485
virtual void CountObjects(int &required_index, int *counter, HashSummator *hash, BaseClassElement *result, const std::function< bool(BaseClassElement *)> *ForEachElem, bool OnlyPointersMode) override
This is the main function used for the access to class members. Each class that has SERIALIZE section...
Definition classlist.h:376
virtual int ExpandWith(const char *ElmName, void *base)
Expand array with class ElmName.
Definition classlist.h:441
virtual bool Load(TagsList &xml, void *ClassPtr, void *Extra=NULL) override
Load the class from the XML structure.
Definition classlist.h:434
virtual bool FullCopy(const void *SrcData, const void *SrcDataExtra, BaseClass *Dest, void *DestData, void *DestExtraPtr, CECopyContext *C) override
Fast copy from one BaseClass to another. Names and types correspondence used to copy.
Definition classlist.h:488
The pointer to the allocated class derived from the BaseClass. It allows serialization/presentation i...
Definition classlist.h:565
virtual bool FullCopy(const void *SrcData, const void *SrcDataExtra, BaseClass *Dest, void *DestData, void *DestExtraPtr, CECopyContext *C) override
Fast copy from one BaseClass to another. Names and types correspondence used to copy.
Definition classlist.h:568
virtual void SaveBin(void *Data, void *Extra, BinStream *Out, Enumerator *ExDictionary, Enumerator *SkipList) override
Save in binaly form. Use only for temporary storage in memory!!!
Definition classlist.h:577
virtual void LoadBin(void *Data, void *Extra, BinStream *In, Enumerator *ExDictionary) override
Load the class from the memory. Use only for temporary storage in memory!!!
Definition classlist.h:587
const char * GetClassName() const override
return class name there if need. Usually you don't need, if you are using AUTONEW or SERIALIZE
Definition classlist.h:625
virtual bool GetElement(BaseClassElement &res, int idx, const void *Ptr, const void *Extra) override
Definition classlist.h:637
virtual bool DelElement(int index)
removes element if the operation supported
Definition classlist.h:662
virtual int ExpandWith(const char *ElmName, void *base)
Expand array with class ElmName.
Definition classlist.h:646
virtual void CountObjects(int &required_index, int *counter, HashSummator *hash, BaseClassElement *result, const std::function< bool(BaseClassElement *)> *ForEachElem, bool OnlyPointersMode) override
This is the main function used for the access to class members. Each class that has SERIALIZE section...
Definition classlist.h:670
virtual void reset_class(void *p)
Clearing all registered content of the class. If DataPtr is nullptr, this class will be cleared.
Definition classlist.h:617
virtual bool CheckDirectCasting() const override
Definition classlist.h:666
int GetAmountOfElements() override
return complete amount of elements. Even invisible, masked and non-serialized elements will be counte...
Definition classlist.h:634
The reference to the element derived from the BaseClass. This is the reference, element should be all...
Definition classlist.h:706
const char * GetClassName() const override
return class name there if need. Usually you don't need, if you are using AUTONEW or SERIALIZE
Definition classlist.h:737
virtual void reset_class(void *p)
Clearing all registered content of the class. If DataPtr is nullptr, this class will be cleared.
Definition classlist.h:731
virtual void LoadBin(void *Data, void *Extra, BinStream *In, Enumerator *ExDictionary) override
Load the class from the memory. Use only for temporary storage in memory!!!
Definition classlist.h:714
virtual bool DelElement(int index)
removes element if the operation supported
Definition classlist.h:762
int GetAmountOfElements() override
return complete amount of elements. Even invisible, masked and non-serialized elements will be counte...
Definition classlist.h:746
virtual void SaveBin(void *Data, void *Extra, BinStream *Out, Enumerator *ExDictionary, Enumerator *SkipList) override
Save in binaly form. Use only for temporary storage in memory!!!
Definition classlist.h:712
virtual bool GetElement(BaseClassElement &res, int idx, const void *Ptr, const void *Extra) override
Definition classlist.h:749
virtual int ExpandWith(const char *ElmName, void *base)
Expand array with class ElmName.
Definition classlist.h:758
virtual void CountObjects(int &required_index, int *counter, HashSummator *hash, BaseClassElement *result, const std::function< bool(BaseClassElement *)> *ForEachElem, bool OnlyPointersMode) override
This is the main function used for the access to class members. Each class that has SERIALIZE section...
Definition classlist.h:773
virtual bool FullCopy(const void *SrcData, const void *SrcDataExtra, BaseClass *Dest, void *DestData, void *DestExtraPtr, CECopyContext *C) override
Fast copy from one BaseClass to another. Names and types correspondence used to copy.
Definition classlist.h:709
virtual bool CheckDirectCasting() const override
Definition classlist.h:766
StringsList is the main container used as array of strings.
Definition classlist.h:42
virtual void LoadBin(void *Data, void *Extra, BinStream *In, Enumerator *ExDictionary) override
Load the class from the memory. Use only for temporary storage in memory!!!
virtual void SaveBin(void *Data, void *Extra, BinStream *Out, Enumerator *ExDictionary, Enumerator *SkipList) override
Save in binaly form. Use only for temporary storage in memory!!!
virtual bool CheckDirectCasting() const override
Definition classlist.h:92
virtual bool FullCopy(const void *SrcData, const void *SrcDataExtra, BaseClass *Dest, void *DestData, void *DestExtraPtr, CECopyContext *C) override
Fast copy from one BaseClass to another. Names and types correspondence used to copy.
virtual bool DelElement(int Index) override
removes element if the operation supported
virtual bool Load(TagsList &xml, void *ClassPtr, void *Extra=NULL) override
Load the class from the XML structure.
virtual void CountObjects(int &required_index, int *counter, HashSummator *hash, BaseClassElement *result, const std::function< bool(BaseClassElement *)> *ForEachElem, bool OnlyPointersMode) override
This is the main function used for the access to class members. Each class that has SERIALIZE section...
virtual void Save(TagsList &xml, void *ClassPtr, void *Extra=NULL) override
Save class to the XML structure.
virtual const char * GetClassName() const override
return class name there if need. Usually you don't need, if you are using AUTONEW or SERIALIZE
Definition classlist.h:84
virtual void reset_class(void *ptr)
Clearing all registered content of the class. If DataPtr is nullptr, this class will be cleared.
virtual void UpdateHash(HashSummator &H, void *data=nullptr, void *extra=nullptr) override
returns hash value dependent on data fields of this class
The array template, refer it as coat::list <...> if you are using the Core API.
Definition cList.h:133
Definition classlist.h:101