CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
RxClassImpl.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, 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 Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2024 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#include "RxMember.h"
30#include "RxAttribute.h"
31#include "TD_PackPush.h"
32
33class OdRxOverruleIterator;
34
36{
37 friend class OdRxClass;
41 class ExtEntry
42 {
43 public:
44 ExtEntry(OdRxClass* pProtocolClass, OdRxObject* pProtocolObject);
45 static ExtEntry* find(ExtEntry* pFirstEntry, const OdRxClass* pProtocolClass);
46
47 OdRxClassPtr m_pProtocolClass;
48 OdRxObjectPtr m_pProtocolObject;
49 ExtEntry* m_pNextEntry;
50 };
51protected:
52 ExtEntry* m_pFirstEntry;
55 OdRxOverruleIterator* m_overrules[kTotalOverrules];
57 static const char* m_pStr; // To use in conversion to ANSI
70public:
73
74 void reset();
75 void init(OdRxModule* pModule, OdRxClass* pParent,
77 const OdString& name,
78 const OdString& dxfName = OdString::kEmpty,
79 const OdString& appName = OdString::kEmpty,
80 AppNameChangeFuncPtr appNameChangeFunc = 0,
83 OdUInt32 nProxyFlags = 0,
84 OdUInt32 nCustomFlags = 0,
85 OdRxMemberCollectionConstructorPtr memberConstruct = 0,
86 void* userData = 0
87 );
88 static OdRxClassImpl* getImpl(OdRxClass* pClass) { return pClass->m_pImpl; }
89 static const OdRxClassImpl* getImpl(const OdRxClass* pClass) { return pClass->m_pImpl; }
90 void setDxfName(const OdString& classDxfName) { m_szDxfName = classDxfName; }
91 void setName(const OdString& className) { m_szName = className; }
92 void setAppName(const OdString& appName) { m_szAppName = appName; }
94 void setClassVersion(int DwgVer, int MaintVer)
95 {
96 m_dwgVer = OdDb::DwgVersion(DwgVer);
98 }
99 OdRxOverruleIterator* getOverrule(OverrulingType t) const
100 {
101 return m_overrules[t];
102 }
103 void setOverrule(OdRxOverruleIterator* pIt, OverrulingType t)
104 {
105 m_overrules[t] = pIt;
106 }
108};
109
110#include "TD_PackPop.h"
111
112#endif // _ODRXCLASSIMPL_H_INCLUDED_
unsigned int OdUInt32
unsigned short OdUInt16
#define FIRSTDLL_EXPORT
Definition RootExport.h:39
OdRxObjectPtr(* OdPseudoConstructorType)()
Definition RxObject.h:848
OdSmartPtr< OdRxClass > OdRxClassPtr
Definition RxObject.h:1107
OverrulingType
Definition RxObject.h:819
@ kTotalOverrules
Definition RxObject.h:830
void(* OdRxMemberCollectionConstructorPtr)(OdRxMemberCollectionBuilder &, void *)
Definition RxObject.h:837
void(* AppNameChangeFuncPtr)(const OdRxClass *classObj, OdString &newAppName, int saveVer)
Definition RxObject.h:44
OdRxClassImpl * m_pImpl
Definition RxObject.h:868
static const char * m_pStr
Definition RxClassImpl.h:57
void * m_userdata
Definition RxClassImpl.h:67
static OdRxClassImpl * getImpl(OdRxClass *pClass)
Definition RxClassImpl.h:88
ExtEntry * m_pFirstEntry
Definition RxClassImpl.h:52
friend class OdRxMemberCollectionImpl
Definition RxClassImpl.h:39
OdString m_szAppName
Definition RxClassImpl.h:60
OdRxMemberCollection * m_members
Definition RxClassImpl.h:68
void setClassVersion(int DwgVer, int MaintVer)
Definition RxClassImpl.h:94
void setAppName(const OdString &appName)
Definition RxClassImpl.h:92
OdString m_szName
Definition RxClassImpl.h:56
OdRxClass * m_pParent
Definition RxClassImpl.h:54
OdUInt32 m_customFlags
Definition RxClassImpl.h:63
OdUInt16 m_dwgVer
Definition RxClassImpl.h:65
OdUInt16 m_maintVer
Definition RxClassImpl.h:64
void deleteMember(const OdRxMember *)
friend class OdRxOverruleInternals
Definition RxClassImpl.h:38
OdRxModule * m_pModule
Definition RxClassImpl.h:53
void setDxfName(const OdString &classDxfName)
Definition RxClassImpl.h:90
OdRxOverruleIterator * m_overrules[kTotalOverrules]
Definition RxClassImpl.h:55
OdUInt32 m_proxyFlags
Definition RxClassImpl.h:62
void setOverrule(OdRxOverruleIterator *pIt, OverrulingType t)
void setName(const OdString &className)
Definition RxClassImpl.h:91
OdPseudoConstructorType m_pConstr
Definition RxClassImpl.h:58
void setProxyFlags(OdUInt32 value)
Definition RxClassImpl.h:93
friend class OdRxClass
Definition RxClassImpl.h:37
OdRxMemberCollectionConstructorPtr m_pMembersConstr
Definition RxClassImpl.h:66
OdRxAttributeCollection m_attributes
Definition RxClassImpl.h:69
static const OdRxClassImpl * getImpl(const OdRxClass *pClass)
Definition RxClassImpl.h:89
void init(OdRxModule *pModule, OdRxClass *pParent, OdPseudoConstructorType pConstr, const OdString &name, const OdString &dxfName=OdString::kEmpty, const OdString &appName=OdString::kEmpty, AppNameChangeFuncPtr appNameChangeFunc=0, OdDb::DwgVersion dwgVer=(OdDb::DwgVersion) 0, OdDb::MaintReleaseVer maintVer=OdDb::kMRelease0, OdUInt32 nProxyFlags=0, OdUInt32 nCustomFlags=0, OdRxMemberCollectionConstructorPtr memberConstruct=0, void *userData=0)
OdString m_szDxfName
Definition RxClassImpl.h:59
OdRxOverruleIterator * getOverrule(OverrulingType t) const
Definition RxClassImpl.h:99
friend FIRSTDLL_EXPORT void odrxSetMemberConstructor(OdRxClass *, OdRxMemberCollectionConstructorPtr, void *)
AppNameChangeFuncPtr m_appNameChangeFunc
Definition RxClassImpl.h:61
FIRSTDLL_EXPORT_STATIC static const OdString kEmpty
Definition OdString.h:100
GLuint const GLchar * name
Definition gles2_ext.h:265
GLsizei const GLfloat * value
Definition gles2_ext.h:302
DwgVersion
Definition OdaDefs.h:47
MaintReleaseVer
Definition OdaDefs.h:109
@ kMRelease0
Definition OdaDefs.h:110