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