blob: ab07af89b2f0a39d4461997266b6cbc9565b2fa0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
// File: NCollection_DefineHSet.hxx
// Created: Mon Apr 29 12:34:55 2002
// Author: Alexander KARTOMIN (akm)
// <a-kartomin@opencascade.com>
#ifndef NCollection_DefineHSet_HeaderFile
#define NCollection_DefineHSet_HeaderFile
#include <Standard_DefineHandle.hxx>
#include <NCollection_DefineSet.hxx>
#include <MMgt_TShared.hxx>
// Declaration of Set class managed by Handle
#define DEFINE_HSET(HClassName, _SetType_) \
\
class HClassName : public _SetType_, \
public MMgt_TShared { \
public: \
inline HClassName (); \
inline HClassName (const _SetType_& anOther); \
inline const _SetType_& Set () const; \
inline _SetType_& ChangeSet (); \
DEFINE_STANDARD_RTTI (HClassName) \
}; \
\
DEFINE_STANDARD_HANDLE (HClassName, MMgt_TShared) \
\
inline HClassName::HClassName () : \
_SetType_(), \
MMgt_TShared() {} \
\
inline HClassName::HClassName (const _SetType_& anOther) : \
_SetType_(anOther), \
MMgt_TShared() {} \
\
inline const _SetType_& HClassName::Set () const \
{ return * (const _SetType_ *) this; } \
\
inline _SetType_& HClassName::ChangeSet () \
{ return * (_SetType_ *) this; } \
#define IMPLEMENT_HSET(HClassName) \
IMPLEMENT_STANDARD_HANDLE (HClassName, MMgt_TShared) \
IMPLEMENT_STANDARD_RTTIEXT (HClassName, MMgt_TShared)
#endif
|