zjf
2023-03-06 392b76515f40376b6d36f40a114850ef63650384
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
/////////////////////////////////////////////////////////////////////////////// 
// Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). 
// All rights reserved. 
// 
// This software and its documentation and related materials are owned by 
// the Alliance. The software may only be incorporated into application 
// programs owned by members of the Alliance, subject to a signed 
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable  
// trade secrets of the Alliance and its suppliers. The software is also 
// protected by copyright law and international treaty provisions. Application  
// programs incorporating this software must include the following statement 
// with their copyright notices:
//   
//   This application incorporates Teigha(R) software pursuant to a license 
//   agreement with Open Design Alliance.
//   Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. 
//   All rights reserved.
//
// By use of this software, its documentation or related materials, you 
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
 
#ifndef _ODGSDBROOTLINKAGE_H_INCLUDED_
#define _ODGSDBROOTLINKAGE_H_INCLUDED_
 
#include "OdaCommon.h"
#include "RxObject.h"
#include "Gs/GsExport.h"
#include "Gi/GiDrawable.h"
#include "DbBaseHostAppServices.h"
#include "DbBaseDatabase.h"
#include "AbstractViewPE.h"
 
#include "TD_PackPush.h"
 
/** \details
    Provides connection between Gs module and DbRoot module export classes.
 
    Library: TD_Gs
 
    <group OdGs_Classes>
*/
class GS_TOOLKIT_EXPORT OdGsDbRootLinkage
{
  public:
    OdGsDbRootLinkage() {}
 
    /** \details
        Initialize DbRoot link classes.
    */
    static void initialize();
    /** \details
        Uninitialize DbRoot link classes.
    */
    static void uninitialize();
    /** \details
        Returns true if and only if DbRoot link classes initialized.
    */
    static bool isInitialized();
    /** \details
        Checks does initialized at least one DbRoot link class.
    */
    static bool isInitializedAny();
 
    /** \details
        Returns OdDbBaseDatabasePE class descriptor.
    */
    static OdRxClass *getDbBaseDatabasePEClass();
    /** \details
        Returns OdDbBaseDatabasePE protocol extension linked with database object.
        \param pDb [in]  Database object pointer.
    */
    static OdDbBaseDatabasePE *getDbBaseDatabasePE(const OdDbBaseDatabase *pDb);
    /** \details
        Returns OdDbBaseDatabasePE protocol extension linked with drawable database object.
        \param pDrw [in]  Drawable pointer.
    */
    static OdDbBaseDatabasePE *getDbBaseDatabasePEForDrawable(const OdGiDrawable *pDrw, OdDbBaseDatabase *&pDb);
 
    /** \details
        Returns OdDbBaseHostAppServices class descriptor.
    */
    static OdRxClass *getDbBaseHostAppServicesClass();
    /** \details
        Returns OdDbBaseHostAppServices class pointer linked with host application services object.
        \param pServices [in]  Host application services object pointer.
    */
    static OdDbBaseHostAppServices *getDbBaseHostAppServices(const OdRxObject *pServices);
    /** \details
        Returns OdDbBaseHostAppServices class pointer linked with database object.
        \param pDb [in]  Database object pointer.
    */
    static OdDbBaseHostAppServices *getDatabaseDbBaseHostAppServices(const OdDbBaseDatabase *pDb);
    /** \details
        Displays warning message for specified database object.
        \param pDb [in]  Database object pointer.
        \param message [in]  Warning message.
    */
    static bool displayWarning(const OdDbBaseDatabase *pDb, const OdString &message);
 
    /** \details
        Returns OdDbBaseLayerPE class descriptor.
    */
    static OdRxClass *getDbBaseLayerPEClass();
    /** \details
        Returns OdDbBaseLayerPE protocol extension linked with layer object.
        \param pLayer [in]  Layer object pointer.
    */
    static OdDbBaseLayerPE *getDbBaseLayerPE(const OdRxObject *pLayer);
 
    /** \details
        Returns OdDbBaseVisualStylePE class descriptor.
    */
    static OdRxClass *getDbBaseVisualStylePEClass();
    /** \details
        Returns OdDbBaseVisualStylePE protocol extension linked with visual style object.
        \param pVisualStyle [in]  Visual Style object pointer.
    */
    static OdDbBaseVisualStylePE *getDbBaseVisualStylePE(const OdRxObject *pVisualStyle);
 
    /** \details
        Returns OdDbBaseLayoutPE class descriptor.
    */
    static OdRxClass *getDbBaseLayoutPEClass();
    /** \details
        Returns OdDbBaseLayoutPE protocol extension linked with layout object.
        \param pLayout [in]  Layout object pointer.
    */
    static OdDbBaseLayoutPE *getDbBaseLayoutPE(const OdRxObject *pLayout);
    /** \details
        Checks that specified object is a paper layout drawable which is not combined with block table.
        \param pLayout [in]  Layout object pointer.
    */
    static bool isLayoutDrawable(const OdGiDrawable *pLayout);
 
    /** \details
        Returns OdAbstractViewPE class descriptor.
    */
    static OdRxClass *getAbstractViewPEClass();
    /** \details
        Returns OdAbstractViewPE protocol extension linked with layout object.
        \param pViewport [in]  Viewport object pointer.
    */
    static OdAbstractViewPE *getAbstractViewPE(const OdRxObject *pViewport);
 
    /** \details
        Returns OdDbBaseBlockPE class descriptor.
    */
    static OdRxClass *getDbBaseBlockPEClass();
    /** \details
        Returns OdDbBaseBlockPE protocol extension linked with block object.
        \param pBlock [in]  Block object pointer.
    */
    static OdDbBaseBlockPE *getDbBaseBlockPE(const OdRxObject *pBlock);
 
    /** \details
        Returns OdDbBaseBlockRefPE class descriptor.
    */
    static OdRxClass *getDbBaseBlockRefPEClass();
    /** \details
        Returns OdDbBaseBlockRefPE protocol extension linked with block reference object.
        \param pBlockRef [in]  Block reference object pointer.
    */
    static OdDbBaseBlockRefPE *getDbBaseBlockRefPE(const OdRxObject *pBlockRef);
    /** \details
        Returns true if drawable is a block reference.
        \param pBlockRef [in]  Block reference object pointer.
        \param bMInsert [out]  Set to true if drawable is MInsert.
    */
    static bool isBlockRefDrawable(const OdGiDrawable *pBlockRef, bool *bMInsert = NULL);
 
    /** \details
        Returns OdDbBaseSortEntsPE class descriptor.
    */
    static OdRxClass *getDbBaseSortEntsPEClass();
    /** \details
        Returns OdDbBaseSortEntsPE protocol extension linked with entity sorting object.
        \param pSortEnts [in]  Entity sorting object pointer.
    */
    static OdDbBaseSortEntsPE *getDbBaseSortEntsPE(const OdRxObject *pSortents);
 
    /** \details
        Returns OdDbBaseLongTransactionPE class descriptor.
    */
    static OdRxClass *getDbBaseLongTransactionPEClass();
    /** \details
        Returns OdDbBaseLongTransactionPE protocol extension linked with long transaction object.
        \param pLT [in]  Long transaction object pointer.
    */
    static OdDbBaseLongTransactionPE *getDbBaseLongTransactionPE(const OdRxObject *pLT);
 
    /** \details
    Returns OdDbBaseHatchPE class descriptor.
    */
    static OdRxClass *getDbBaseHatchPEClass();
    /** \details
    Returns OdDbBaseHatchPE protocol extension linked with hatch object.
    \param pHatch [in]  hatch object pointer.
    */
    static OdDbBaseHatchPE *getDbBaseHatchPE(const OdRxObject *pHatch);
    /** \details
    Returns true if drawable is a hatch.
    \param pHatch [in]  Hatch object pointer.
    */
    static bool isHatchDrawable(const OdGiDrawable *pHatch);
};
 
// OdDbStub helpers
 
/** \details
    Returns database for Object ID.
    \param pId [in]  Object persistent ID.
*/
GS_TOOLKIT_EXPORT OdDbBaseDatabase *odgsDbGetDatabase(OdDbStub *pId);
 
/** \details
    Returns owner for Object ID.
    \param pId [in]  Object persistent ID.
*/
GS_TOOLKIT_EXPORT OdDbStub *odgsDbGetOwner(OdDbStub *pId);
 
/** \details
    Returns redirected Object ID.
    \param pId [out]  Object persistent ID.
*/
GS_TOOLKIT_EXPORT OdDbStub *odgsDbRedirectID(OdDbStub *&pId);
 
/** \details
    Checks does Object ID is redirected.
    \param pId [in]  Object persistent ID.
*/
GS_TOOLKIT_EXPORT bool odgsDbObjectIDRedirected(OdDbStub *pId);
 
/** \details
    Resets Object ID redirection state.
    \param pId [in]  Object persistent ID.
    \param bSet [in]  New redirection state.
*/
GS_TOOLKIT_EXPORT void odgsDbObjectIDSetRedirected(OdDbStub *pId, bool bSet);
 
/** \details
    Resets Object ID locking state.
    \param pId [in]  Object persistent ID.
    \param bSet [in]  New locking state.
*/
GS_TOOLKIT_EXPORT void odgsDbObjectIDSetLockingFlag(OdDbStub *pId, bool bSet);
 
/** \details
    Returns database for redirected Object ID.
    \param pId [in]  Object persistent ID.
*/
GS_TOOLKIT_EXPORT OdDbBaseDatabase *odgsDbObjectIDRedirectedDatabase(OdDbStub *pId);
 
/** \details
    Checks that Object ID is erased.
    \param pId [in]  Object persistent ID.
*/
GS_TOOLKIT_EXPORT bool odgsDbObjectIDErased(OdDbStub *pId);
 
#include "TD_PackPop.h"
 
#endif // _ODGSDBROOTLINKAGE_H_INCLUDED_