1 mike 1.16 //%/////////////////////////////////////////////////////////////////////////////
2 //
|
3 kumpf 1.28 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,
4 // The Open Group, Tivoli Systems
|
5 mike 1.16 //
6 // Permission is hereby granted, free of charge, to any person obtaining a copy
|
7 chip 1.20 // of this software and associated documentation files (the "Software"), to
8 // deal in the Software without restriction, including without limitation the
9 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
10 mike 1.16 // sell copies of the Software, and to permit persons to whom the Software is
11 // furnished to do so, subject to the following conditions:
|
12 kumpf 1.28 //
|
13 chip 1.20 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
|
14 mike 1.16 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15 // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
16 chip 1.20 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
17 // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
18 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
19 mike 1.16 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 //
22 //==============================================================================
23 //
24 // Author: Mike Brasher (mbrasher@bmc.com)
25 //
|
26 kumpf 1.29 // Modified By: Carol Ann Krug Graves, Hewlett-Packard Company
27 // (carolann_graves@hp.com)
|
28 mike 1.16 //
29 //%/////////////////////////////////////////////////////////////////////////////
30
31 #ifndef Pegasus_CIMClassRep_h
32 #define Pegasus_CIMClassRep_h
33
34 #include <Pegasus/Common/Config.h>
|
35 kumpf 1.33 #include <Pegasus/Common/InternalException.h>
|
36 kumpf 1.31 #include <Pegasus/Common/CIMName.h>
|
37 mike 1.18 #include <Pegasus/Common/CIMObjectRep.h>
|
38 mike 1.16 #include <Pegasus/Common/CIMMethod.h>
|
39 kumpf 1.30 #include <Pegasus/Common/Linkage.h>
|
40 mike 1.16
41 PEGASUS_NAMESPACE_BEGIN
42
43 class DeclContext;
44 class CIMClass;
45 class CIMConstClass;
46 class CIMInstanceRep;
47
|
48 karl 1.21 // ATTN: KS P3 -document the CIMClass and CIMObjectRep classes.
|
49 mike 1.19
|
50 mike 1.18 class PEGASUS_COMMON_LINKAGE CIMClassRep : public CIMObjectRep
|
51 mike 1.16 {
52 public:
53
54 CIMClassRep(
|
55 kumpf 1.31 const CIMName& className,
56 const CIMName& superClassName);
|
57 mike 1.16
|
58 mike 1.18 virtual ~CIMClassRep();
|
59 mike 1.16
60 Boolean isAssociation() const;
61
62 Boolean isAbstract() const;
|
63 karl 1.21
|
64 kumpf 1.31 const CIMName& getSuperClassName() const { return _superClassName; }
|
65 mike 1.16
|
66 kumpf 1.31 void setSuperClassName(const CIMName& superClassName);
|
67 mike 1.16
|
68 mike 1.18 virtual void addProperty(const CIMProperty& x);
|
69 mike 1.16
70 void addMethod(const CIMMethod& x);
71
|
72 kumpf 1.31 Uint32 findMethod(const CIMName& name) const;
|
73 mike 1.16
|
74 kumpf 1.34 CIMMethod getMethod(Uint32 index);
|
75 mike 1.16
|
76 kumpf 1.34 CIMConstMethod getMethod(Uint32 index) const
|
77 mike 1.16 {
|
78 kumpf 1.34 return ((CIMClassRep*)this)->getMethod(index);
|
79 mike 1.16 }
80
|
81 kumpf 1.34 void removeMethod(Uint32 index);
|
82 mike 1.16
83 Uint32 getMethodCount() const;
84
85 void resolve(
86 DeclContext* context,
|
87 kumpf 1.31 const CIMNamespaceName& nameSpace);
|
88 mike 1.16
|
89 kumpf 1.23 virtual Boolean identical(const CIMObjectRep* x) const;
|
90 mike 1.18
|
91 mike 1.16 void toXml(Array<Sint8>& out) const;
92
|
93 mike 1.17 void toMof(Array<Sint8>& out) const;
94
|
95 mike 1.18 virtual CIMObjectRep* clone() const
|
96 mike 1.16 {
97 return new CIMClassRep(*this);
98 }
99
|
100 kumpf 1.31 void getKeyNames(Array<CIMName>& keyNames) const;
|
101 mike 1.16
102 Boolean hasKeys() const;
103
104 private:
105
106 CIMClassRep();
107
108 CIMClassRep(const CIMClassRep& x);
109
|
110 kumpf 1.22 // This method is declared and made private so that the compiler does
111 // not implicitly define a default copy constructor.
|
112 mike 1.18 CIMClassRep& operator=(const CIMClassRep& x)
113 {
|
114 kumpf 1.27 //PEGASUS_ASSERT(0);
|
115 kumpf 1.22 return *this;
|
116 mike 1.18 }
|
117 mike 1.16
|
118 kumpf 1.31 CIMName _superClassName;
|
119 mike 1.16 Array<CIMMethod> _methods;
120
121 friend class CIMClass;
122 friend class CIMInstanceRep;
123 };
124
125 PEGASUS_NAMESPACE_END
126
127 #endif /* Pegasus_CIMClassRep_h */
|