CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
RxClassImpl.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, 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-2022 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;
38 friend class OdRxOverruleInternals;
39 friend class OdRxMemberCollectionImpl;
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; }
93 void setProxyFlags(OdUInt32 value) { m_proxyFlags = value; }
94 void setClassVersion(int DwgVer, int MaintVer)
95 {
96 m_dwgVer = OdDb::DwgVersion(DwgVer);
97 m_maintVer = OdDb::MaintReleaseVer(MaintVer);
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:843
OverrulingType
Definition: RxObject.h:814
@ kTotalOverrules
Definition: RxObject.h:825
void(* OdRxMemberCollectionConstructorPtr)(OdRxMemberCollectionBuilder &, void *)
Definition: RxObject.h:832
void(* AppNameChangeFuncPtr)(const OdRxClass *classObj, OdString &newAppName, int saveVer)
Definition: RxObject.h:44
OdRxClassImpl * m_pImpl
Definition: RxObject.h:863
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
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 *)
OdRxModule * m_pModule
Definition: RxClassImpl.h:53
void setDxfName(const OdString &classDxfName)
Definition: RxClassImpl.h:90
OdUInt32 m_proxyFlags
Definition: RxClassImpl.h:62
void setOverrule(OdRxOverruleIterator *pIt, OverrulingType t)
Definition: RxClassImpl.h:103
void setName(const OdString &className)
Definition: RxClassImpl.h:91
OdPseudoConstructorType m_pConstr
Definition: RxClassImpl.h:58
void setProxyFlags(OdUInt32 value)
Definition: RxClassImpl.h:93
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:98
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