FUtils/FUObjectType.h File Reference

This file contains the FUObjectType class. More...

Go to the source code of this file.

Classes

class  FUObjectType
 An object type. More...

Defines

#define DeclareObjectType(_ParentClass)
 Declares the object type for an object class.
#define ImplementObjectType(ClassName)
 Implements the object type for an object class.
#define ImplementObjectTypeT(ClassName)
 See above.
#define ImplementObjectType_NoDefaultRelease(ClassName)   FUObjectType ClassName::__classType(Parent::GetClassType(), #ClassName);
 Implements the object type for an object class, but without the Release() function.


Detailed Description

This file contains the FUObjectType class.


Define Documentation

#define DeclareObjectType _ParentClass   ) 
 

Value:

private: \
    static class FUObjectType __classType; \
    typedef _ParentClass Parent; \
public: \
    static const FUObjectType& GetClassType() { return __classType; } \
    virtual const FUObjectType& GetObjectType() const { return __classType; } \
    virtual void Release(); \
private:
Declares the object type for an object class.

Use this macro inside the class declarations of up-classes of the FUObject class to easily implement RTTI.

Parameters:
_ParentClass The class name for the parent class.

#define ImplementObjectType ClassName   ) 
 

Value:

FUObjectType ClassName::__classType(Parent::GetClassType(), #ClassName); \
    void ClassName::Release() { Detach(); delete this; }
Implements the object type for an object class.

Use this macro inside your code files only to create the objects necessary to support RTTI in your up-classes of the FUObject class.

Parameters:
ClassName The name of the class.

#define ImplementObjectType_NoDefaultRelease ClassName   )     FUObjectType ClassName::__classType(Parent::GetClassType(), #ClassName);
 

Implements the object type for an object class, but without the Release() function.

Use this macro inside your code files only to create the objects necessary to support RTTI in your up-classes of the FUObject class. You will need to manually implement the Release() function, without declaring it. The default implementation of the Release() function is the following: Release() { delete this; }.

Parameters:
ClassName The name of the class.

#define ImplementObjectTypeT ClassName   ) 
 

Value:

template <> \
    FUObjectType ClassName::__classType(Parent::GetClassType(), #ClassName); \
    template <> \
    void ClassName::Release() { Detach(); delete this; }
See above.


Generated on Thu Feb 14 16:58:36 2008 for FCollada by  doxygen 1.4.6-NO