This repository has been archived on 2023-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
cad/fusion360/usr/Include/Core/Common/pReferencedObject.h
2022-10-15 19:16:08 +02:00

96 lines
2.3 KiB
C++

#ifndef __P_REFERENCED_OBJECT_H__
#define __P_REFERENCED_OBJECT_H__
template<class EngineObject,class ImplementationObject>class MODULE_API pStoredObjectAssociation
{
public:
//xEngineObjectAssociation() : mInternalId(-1) , mClassId(-1) {};
//xEngineObjectAssociation(EngineObject _Object,ImplementationObject _ImplObject,int _EngineObjectId) : mEngineObject(_Object) , mImplementationObject(_ImplObject) , mInternalId(_EngineObjectId) { }
//xEngineObjectAssociation< (EngineObject _Object,ImplementationObject _ImplObject,int _EngineObjectId){}
int getInternalId() const { return mInternalId; }
void setInternalId(int val) { mInternalId = val; }
int getClassId() const { return mClassId; }
void setClassId(int val) { mClassId = val; }
bool existsInCore();
virtual void onCreate(){};
virtual void onCopy(int oldId){};
virtual void onRemove(){};
virtual void onDelete(){};
virtual void onCheck(){};
//operator T(){ return mObject; }
protected:
private:
int mClassId;
int mInternalId;
EngineObject mEngineObject;
ImplementationObject mImplementationObject;
};
template<class T>class MODULE_API xImplementationObject
{
public:
//xLinkedObjectStorage() : mInternalId(-1) , mClassId(-1) {};
typedef void* xImplementationObject<T>::*StoragePtr;
xImplementationObject(){}
xImplementationObject(StoragePtr storage)
{
}
T getImpl() { return mObject; }
protected:
private:
T mObject;
StoragePtr mStorage;
};
template<class T>class MODULE_API xEngineObjectAssociation
{
public:
xEngineObjectAssociation() :
mInternalId(-1) , mClassId(-1) {};
xEngineObjectAssociation(T _Object,int _InternalId) :
mObject(_Object) , mInternalId(_InternalId) { }
int getInternalId() const { return mInternalId; }
void setInternalId(int val) { mInternalId = val; }
int getClassId() const { return mClassId; }
void setClassId(int val) { mClassId = val; }
bool existsInCore();
virtual void onCreate(){};
virtual void onCopy(int oldId){};
virtual void onRemove(){};
virtual void onDelete(){};
virtual void onCheck(){};
//operator T(){ return mObject; }
protected:
private:
int mClassId;
int mInternalId;
T mObject;
};
#endif