code brush

This commit is contained in:
2020-10-02 11:11:55 +03:00
parent 298765b7d8
commit f3d6739869
4 changed files with 24 additions and 30 deletions

View File

@@ -36,7 +36,7 @@ public:
virtual uint hash() const {return 0;}
virtual void newT(void *& ptr, const void * value) {;}
virtual void newNullT(void *& ptr) {;}
virtual void equalT(void *& ptr, const void * value) {;}
virtual void assignT(void *& ptr, const void * value) {;}
virtual void deleteT(void *& ptr) {;}
//virtual PIByteArray toData(const void * ptr) const {return PIByteArray();}
//virtual void fromData(void *& ptr, PIByteArray ba) {;}
@@ -47,15 +47,15 @@ public:
template<typename T>
class __VariantFunctions__: public __VariantFunctionsBase__ {
public:
__VariantFunctionsBase__ * instance() override {static __VariantFunctions__<T> ret; return &ret;}
PIString typeName() const override {static PIString ret(typeid(T).name()); return ret;}
uint hash() const override {static uint ret = typeName().hash(); return ret;}
void newT(void *& ptr, const void * value) override {ptr = (void*)(new T(*(const T*)value)); /*printf(" * new\n")*/;}
void newNullT(void *& ptr) override {ptr = (void*)(new T());/* printf(" * new null\n")*/;}
void equalT(void *& ptr, const void * value) override {*(T*)ptr = *(const T*)value; /*printf(" * =\n")*/;}
void deleteT(void *& ptr) override {delete (T*)(ptr); /*printf(" * del\n")*/;}
//PIByteArray toData(const void * ptr) const override {PIByteArray ret; ret << (*(const T* &)ptr); return ret;}
//void fromData(void *& ptr, PIByteArray ba) override {ba >> *(T*)ptr;}
__VariantFunctionsBase__ * instance() final {static __VariantFunctions__<T> ret; return &ret;}
PIString typeName() const final {static PIString ret(typeid(T).name()); return ret;}
uint hash() const final {static uint ret = typeName().hash(); return ret;}
void newT(void *& ptr, const void * value) final {ptr = (void*)(new T(*(const T*)value)); /*printf(" * new\n")*/;}
void newNullT(void *& ptr) final {ptr = (void*)(new T());/* printf(" * new null\n")*/;}
void assignT(void *& ptr, const void * value) final {*(T*)ptr = *(const T*)value; /*printf(" * =\n")*/;}
void deleteT(void *& ptr) final {delete (T*)(ptr); /*printf(" * del\n")*/;}
//PIByteArray toData(const void * ptr) const final {PIByteArray ret; ret << (*(const T* &)ptr); return ret;}
//void fromData(void *& ptr, PIByteArray ba) final {ba >> *(T*)ptr;}
};
class PIVariantSimple {
@@ -81,7 +81,7 @@ public:
void setValue(const T & v) {
if (f) {
if (isMyType<T>()) {
f->equalT(ptr, (const void *)&v);
f->assignT(ptr, (const void *)&v);
return;
}
}