# Standard_DefineHandle.hxx File Reference

## Defines

#define | DEFINE_STANDARD_HANDLE(C1, C2)
#define | IMPLEMENT_STANDARD_HANDLE(C1, C2)
#define | DEFINE_STANDARD_PHANDLE(C1, C2)
#define | IMPLEMENT_STANDARD_PHANDLE(C1, C2)
#define | DEFINE_STANDARD_RTTI(C1) Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
#define | IMPLEMENT_STANDARD_RTTI(C1, C2)
#define | IMPLEMENT_STANDARD_TYPE(C1) Handle_Standard_Type& C1##_Type_() {
#define | IMPLEMENT_STANDARD_SUPERTYPE(C1) static Handle_Standard_Type aType##C1 = C1##_Type_();
#define | IMPLEMENT_STANDARD_SUPERTYPE_ARRAY() static Handle_Standard_Transient _Ancestors[]= {
#define | IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_ENTRY(C1) aType##C1,
#define | IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_END()
#define | IMPLEMENT_STANDARD_TYPE_END(C1)
#define | IMPLEMENT_STANDARD_RTTIEXT(C1, C2)

## Define Documentation

#define DEFINE_STANDARD_HANDLE | ( | C1,
|  | C2 |  | ) |

#define DEFINE_STANDARD_PHANDLE | ( | C1,
|  | C2 |  | ) |

#define DEFINE_STANDARD_RTTI | ( | C1 |  | ) | Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;

#define IMPLEMENT_STANDARD_HANDLE | ( | C1,
|  | C2 |  | ) |

Value:

    const Handle_##C1 Handle_##C1::DownCast(const Handle(Standard_Transient)& AnObject)  \
    { \
      Handle_##C1 _anOtherObject; \
     \
      if (!AnObject.IsNull()) { \
         if (AnObject->IsKind(C1##_Type_())) { \
           _anOtherObject = Handle_##C1((Handle_##C1&)AnObject); \
         } \
      } \
     \
      return _anOtherObject ; \
    }

#define IMPLEMENT_STANDARD_PHANDLE | ( | C1,
|  | C2 |  | ) |

Value:

    const Handle_##C1 Handle_##C1::DownCast(const Handle(Standard_Persistent)& AnObject)  \
    { \
      Handle_##C1 _anOtherObject; \
     \
      if (!AnObject.IsNull()) { \
         if (AnObject->IsKind(C1##_Type_())) { \
           _anOtherObject = Handle_##C1((Handle_##C1&)AnObject); \
         } \
      } \
     \
      return _anOtherObject ; \
    }

#define IMPLEMENT_STANDARD_RTTI | ( | C1,
|  | C2 |  | ) |

Value:

    const Handle_Standard_Type& C1::DynamicType() const  \
    {  \
            return C1##_Type_();  \
    }

#define IMPLEMENT_STANDARD_RTTIEXT | ( | C1,
|  | C2 |  | ) |

Value:

    const Handle_Standard_Type& C1::DynamicType() const  \
       {  \
             return C1##_Type_();  \
       } \
       \
       Handle_Standard_Type& C1##_Type_() { \
         static Handle_Standard_Type aType##C2 = C2##_Type_();\
         static Handle_Standard_Transient _Ancestors[]= {aType##C2,NULL}; \
         static Handle_Standard_Type _aType = new Standard_Type(#C1,sizeof(C1),1, \
                                                             (Standard_Address)_Ancestors, \
                                                             (Standard_Address)NULL); \
         return _aType; \
       }

#define IMPLEMENT_STANDARD_SUPERTYPE | ( | C1 |  | ) | static Handle_Standard_Type aType##C1 = C1##_Type_();

#define IMPLEMENT_STANDARD_SUPERTYPE_ARRAY | (

)

static Handle_Standard_Transient _Ancestors[]= {

#define IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_END | (

)

Value:

    NULL \
      };

#define IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_ENTRY | ( | C1 |  | ) | aType##C1,

#define IMPLEMENT_STANDARD_TYPE | ( | C1 |  | ) | Handle_Standard_Type& C1##_Type_() {

#define IMPLEMENT_STANDARD_TYPE_END | ( | C1 |  | ) |

Value:

    static Handle_Standard_Type _aType = new Standard_Type(#C1,sizeof(C1),1, \
                                                             (Standard_Address)_Ancestors, \
                                                             (Standard_Address)NULL); \
      return _aType; \
    }