mirror of
https://github.com/copyrighttxt/watrbx-game-engine.git
synced 2026-09-04 20:57:49 +00:00
49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
|
|
#ifndef _568E368F53F1431aB7D4923F6D45021A
|
|
#define _568E368F53F1431aB7D4923F6D45021A
|
|
|
|
#include "rbx/Debug.h"
|
|
|
|
#include "Util/Object.h"
|
|
#include "Util/Handle.h"
|
|
|
|
#include <list>
|
|
#include <map>
|
|
#include <set>
|
|
#include <string>
|
|
|
|
class XmlNameValuePair;
|
|
|
|
namespace RBX {
|
|
|
|
namespace Reflection
|
|
{
|
|
class DescribedBase;
|
|
}
|
|
|
|
// Used for streaming
|
|
class RBXInterface IIDREF
|
|
{
|
|
private:
|
|
friend class IReferenceBinder;
|
|
virtual void assignIDREF(Reflection::DescribedBase* propertyOwner, const InstanceHandle& handle) const = 0;
|
|
};
|
|
|
|
// Used for streaming
|
|
class RBXBaseClass IReferenceBinder
|
|
{
|
|
public:
|
|
virtual void announceID(const XmlNameValuePair* valueID, Reflection::DescribedBase* source) = 0;
|
|
virtual void announceIDREF(const XmlNameValuePair* valueIDREF, Reflection::DescribedBase* propertyOwner, const IIDREF* idref) = 0;
|
|
virtual bool resolveRefs() = 0;
|
|
virtual ~IReferenceBinder(){}
|
|
protected:
|
|
void assign(const IIDREF* idref, Reflection::DescribedBase* propertyOwner, const InstanceHandle& handle) {
|
|
idref->assignIDREF(propertyOwner, handle);
|
|
}
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|