CFx SDK Documentation  2022 SP0
RxClassImpl.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, Open Design Alliance (the "Alliance").
3 // All rights reserved.
4 //
5 // This software and its documentation and related materials are owned by
6 // the Alliance. The software may only be incorporated into application
7 // programs owned by members of the Alliance, subject to a signed
8 // Membership Agreement and Supplemental Software License Agreement with the
9 // Alliance. The structure and organization of this software are the valuable
10 // trade secrets of the Alliance and its suppliers. The software is also
11 // protected by copyright law and international treaty provisions. Application
12 // programs incorporating this software must include the following statement
13 // with their copyright notices:
14 //
15 // This application incorporates Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 by Open Design Alliance.
18 // All rights reserved.
19 //
20 // By use of this software, its documentation or related materials, you
21 // acknowledge and accept the above terms.
23 
24 #ifndef _ODRXCLASSIMPL_H_INCLUDED_
25 #define _ODRXCLASSIMPL_H_INCLUDED_
26 
27 #include "RxObject.h"
28 #include "OdString.h"
29 
30 #include "TD_PackPush.h"
31 
33 {
34 public:
35  class ExtEntry
36  {
37  public:
38  ExtEntry(OdRxClass* pProtocolClass, OdRxObject* pProtocolObject);
39  static ExtEntry* find(ExtEntry* pFirstEntry, const OdRxClass* pProtocolClass);
40 
44  };
45 
46 private:
47  ExtEntry* m_pFirstEntry;
48 
49 protected:
51 public:
53 
54  OdRxObjectPtr addX(OdRxClass* pProtocolClass, OdRxObject* pProtocolObject);
55 
56  OdRxObjectPtr getX(const OdRxClass* pProtocolClass);
57 
58  OdRxObjectPtr delX(OdRxClass* pProtocolClass);
59 
61 
63 
64  const OdString dxfName() const;
65 
66  const OdString appName() const;
67 
69 
71 
73 
75 };
76 
77 class OdRxOverruleIterator;
78 
80 {
81  OdRxModule* m_pModule;
82  OdRxClass* m_pParent;
83  OdRxOverruleIterator* m_overrules[kTotalOverrules];
84  friend class OdRxOverruleInternals;
85 protected:
87 public:
89 
90  void init(OdRxClass* pParent, OdRxModule* pModule);
91 
92  OdRxClass* myParent() const;
93 
94  OdRxModule* module() const;
95 
96  virtual OdRxOverruleIterator* getOverrule(OverrulingType t) const ODRX_OVERRIDE;
97  virtual void setOverrule(OdRxOverruleIterator* pIt, OverrulingType t) ODRX_OVERRIDE;
98 };
99 
100 
102 {
103 // const OdChar* m_szName;
104  OdString m_szName;
105 
106 protected:
107  static const char* m_pStr; // To use in conversion to ANSI
109 public:
110  void init(OdRxModule* pModule, OdRxClass* pParent, const OdString& szName);
111 
112  const OdString name() const;
113 };
114 
115 
117 {
118  OdPseudoConstructorType m_pConstr;
119 protected:
121 public:
122  void init(OdRxModule* pModule, OdRxClass* pParent, OdPseudoConstructorType pConstr);
123 
125 
127 
129 };
130 
131 
133 {
134 // const OdChar* m_szName;
135  OdString m_szName;
136 
137 protected:
138  static const char* m_pStr; // To use in conversion to ANSI
139 
141 public:
142  void init(OdRxModule* pModule, OdRxClass* pParent, OdPseudoConstructorType pConstr, const OdString& szName);
143 
144  const OdString name() const;
145 };
146 
147 
149 {
150  OdString m_szDxfName;
151  OdString m_szAppName;
152  AppNameChangeFuncPtr m_appNameChangeFunc;
153  OdUInt32 m_proxyFlags;
154  OdUInt32 m_customFlags;
155  OdUInt16 m_maintVer;
156  OdUInt16 m_dwgVer;
157 protected:
159 public:
160  void init(OdRxModule* pModule, OdRxClass* pParent,
161  OdPseudoConstructorType pConstr,
162  const OdString& name,
163  const OdString& dxfName,
164  const OdString& appName,
165  AppNameChangeFuncPtr appNameChangeFunc,
167  OdDb::MaintReleaseVer maintVer,
168  OdUInt32 nProxyFlags,
169  OdUInt32 nCustomFlags
170  );
171 
172  const OdString dxfName() const;
173 
174  const OdString appName() const;
175 
177 
179 
181 
183 };
184 
185 #include "TD_PackPop.h"
186 
187 #endif // _ODRXCLASSIMPL_H_INCLUDED_
unsigned int OdUInt32
unsigned short OdUInt16
#define ODRX_OVERRIDE
#define FIRSTDLL_EXPORT
Definition: RootExport.h:39
OdRxObjectPtr(* OdPseudoConstructorType)()
Definition: RxObject.h:849
OverrulingType
Definition: RxObject.h:820
@ kTotalOverrules
Definition: RxObject.h:831
void(* AppNameChangeFuncPtr)(const OdRxClass *classObj, OdString &newAppName, int saveVer)
Definition: RxObject.h:44
OdUInt32 customFlags() const
void init(OdRxModule *pModule, OdRxClass *pParent, OdPseudoConstructorType pConstr, const OdString &name, const OdString &dxfName, const OdString &appName, AppNameChangeFuncPtr appNameChangeFunc, OdDb::DwgVersion dwgVer, OdDb::MaintReleaseVer maintVer, OdUInt32 nProxyFlags, OdUInt32 nCustomFlags)
const OdString dxfName() const
OdDb::DwgVersion getClassVersion(OdDb::MaintReleaseVer *pMaintVer=0) const
OdUInt32 proxyFlags() const
const OdString appName() const
AppNameChangeFuncPtr appNameCallbackPtr() const
OdRxClass * myParent() const
virtual OdRxOverruleIterator * getOverrule(OverrulingType t) const ODRX_OVERRIDE
virtual void setOverrule(OdRxOverruleIterator *pIt, OverrulingType t) ODRX_OVERRIDE
OdRxModule * module() const
void init(OdRxClass *pParent, OdRxModule *pModule)
static const char * m_pStr
Definition: RxClassImpl.h:107
void init(OdRxModule *pModule, OdRxClass *pParent, const OdString &szName)
const OdString name() const
void setConstructor(OdPseudoConstructorType pConstr)
OdPseudoConstructorType constructor()
OdRxObjectPtr create() const
void init(OdRxModule *pModule, OdRxClass *pParent, OdPseudoConstructorType pConstr)
Definition: RxClassImpl.h:36
OdRxObjectPtr m_pProtocolObject
Definition: RxClassImpl.h:42
OdRxClassPtr m_pProtocolClass
Definition: RxClassImpl.h:41
ExtEntry * m_pNextEntry
Definition: RxClassImpl.h:43
static ExtEntry * find(ExtEntry *pFirstEntry, const OdRxClass *pProtocolClass)
ExtEntry(OdRxClass *pProtocolClass, OdRxObject *pProtocolObject)
OdRxObjectPtr addX(OdRxClass *pProtocolClass, OdRxObject *pProtocolObject)
OdRxObjectPtr create() const
OdRxObjectPtr getX(const OdRxClass *pProtocolClass)
OdRxObjectPtr delX(OdRxClass *pProtocolClass)
OdUInt32 customFlags() const
const OdString appName() const
OdDb::DwgVersion getClassVersion(OdDb::MaintReleaseVer *pMaintVer=0) const
OdUInt32 proxyFlags() const
AppNameChangeFuncPtr appNameCallbackPtr() const
const OdString dxfName() const
void setConstructor(OdPseudoConstructorType pConstr)
static const char * m_pStr
Definition: RxClassImpl.h:138
const OdString name() const
void init(OdRxModule *pModule, OdRxClass *pParent, OdPseudoConstructorType pConstr, const OdString &szName)
GLuint const GLchar * name
Definition: gles2_ext.h:265
DwgVersion
Definition: OdaDefs.h:46
MaintReleaseVer
Definition: OdaDefs.h:107
@ dwgVer
Definition: Tf.h:363