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
/////////////////////////////////////////////////////////////////////////////// 
// 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 _DBOBJECTCONTEXTINTERFACE_H_INCLUDED_
#define _DBOBJECTCONTEXTINTERFACE_H_INCLUDED_
 
#include "RxObject.h"
 
class OdDbObjectContext;
class OdDbObject;
 
/** \details
    This class is the Protocol Extension class for OdDbObjectContext objects.
    
    \remarks
    Implement this interface to use OdDbObjectContext objects, which can determine 
    the properties and behaviors that are available for custom objects.
        
    \sa
    TD_Db
 
    <group OdDb_Classes> 
*/
class TOOLKIT_EXPORT OdDbObjectContextInterface : public OdRxObject
{
public:
 
  ODRX_DECLARE_MEMBERS(OdDbObjectContextInterface);
 
   /** \details
    Returns whether a context collection is supported by a specified object.
  
    \param pObject [in]  Pointer to the object.
    \param collectionName [in]  Name of the context collection.
 
    \remarks
    Returns True if the object supports the named context collection, or returns
    False if it does not.
   */
      virtual bool supportsCollection( 
    const OdDbObject* pObject,
    const OdString&   collectionName ) const = 0;
 
   /** \details
    Returns whether a context is used by a specified object.
  
    \param pObject [in]  Pointer to the object.
    \param context [in]  Name of the context.
 
    \remarks
    Returns True if the object uses the named context, or returns
    False if it does not.
   */
      virtual bool hasContext ( 
    const OdDbObject*        pObject,
    const OdDbObjectContext& context ) const = 0;
 
   /** \details
    Adds a context to the specified object.
  
    \param pObject [in]  Pointer to the object.
    \param context [in]  Name of the context to add.
 
    \remarks
    Returns eOk if successful, or an appropriate error code if not.
   */
      virtual OdResult addContext ( 
    OdDbObject*              pObject,
    const OdDbObjectContext& context ) const = 0;
 
  /** \details
    Removes a context from the specified object.
  
    \param pObject [in]  Pointer to the object.
    \param context [in]  Name of the context to remove.
 
    \remarks
    Returns eOk if successful, or an appropriate error code if not.
  */
      virtual OdResult removeContext ( 
    OdDbObject*              pObject,
    const OdDbObjectContext& context ) const = 0;
};
 
typedef OdSmartPtr<OdDbObjectContextInterface> OdDbObjectContextInterfacePtr;
 
#endif //_DBOBJECTCONTEXTINTERFACE_H_INCLUDED_