(file) Return to MetaRepository.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Repository

  1 mike  1.1.2.1 //%2006////////////////////////////////////////////////////////////////////////
  2               //
  3               // 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               // IBM Corp.; EMC Corporation, The Open Group.
  7               // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8               // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9               // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10               // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11               // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12               // EMC Corporation; Symantec Corporation; The Open Group.
 13               //
 14               // Permission is hereby granted, free of charge, to any person obtaining a copy
 15               // of this software and associated documentation files (the "Software"), to
 16               // deal in the Software without restriction, including without limitation the
 17               // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 18               // sell copies of the Software, and to permit persons to whom the Software is
 19               // furnished to do so, subject to the following conditions:
 20               //
 21               // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22 mike  1.1.2.1 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 23               // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 24               // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 25               // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 26               // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 27               // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 28               // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 29               //
 30               //==============================================================================
 31               //
 32               //%/////////////////////////////////////////////////////////////////////////////
 33               
 34               #ifndef Pegasus_MetaRepository_h
 35               #define Pegasus_MetaRepository_h
 36               
 37               #include <Pegasus/Common/Config.h>
 38               #include <Pegasus/Common/CIMClass.h>
 39 mike  1.1.2.2 #include <Pegasus/Common/CIMQualifierDecl.h>
 40               #include <Pegasus/Common/HashTable.h>
 41 mike  1.1.2.1 #include "Linkage.h"
 42               #include "MetaTypes.h"
 43               
 44               PEGASUS_NAMESPACE_BEGIN
 45               
 46               class PEGASUS_REPOSITORY_LINKAGE MetaRepository
 47               {
 48               public:
 49               
 50 mike  1.1.2.2     typedef HashTable <String, String, EqualNoCaseFunc, HashLowerCaseFunc>
 51                       NameSpaceAttributes;
 52 mike  1.1.2.1 
 53 mike  1.1.2.2     // Class operations:
 54 mike  1.1.2.1 
 55                   static CIMClass getClass(
 56                       const CIMNamespaceName& nameSpace,
 57                       const CIMName& className,
 58                       Boolean localOnly,
 59                       Boolean includeQualifiers,
 60                       Boolean includeClassOrigin,
 61                       const CIMPropertyList& propertyList);
 62               
 63                   static Array<CIMClass> enumerateClasses(
 64                       const CIMNamespaceName& nameSpace,
 65                       const CIMName& className,
 66                       Boolean deepInheritance,
 67                       Boolean localOnly,
 68                       Boolean includeQualifiers,
 69                       Boolean includeClassOrigin);
 70               
 71                   static Array<CIMName> enumerateClassNames(
 72                       const CIMNamespaceName& nameSpace,
 73                       const CIMName& className,
 74                       Boolean deepInheritance);
 75 mike  1.1.2.1 
 76                   static void deleteClass(
 77                       const CIMNamespaceName& nameSpace,
 78                       const CIMName& className);
 79               
 80                   static void createClass(
 81                       const CIMNamespaceName& nameSpace,
 82                       const CIMClass& newClass);
 83               
 84                   static void modifyClass(
 85                       const CIMNamespaceName& nameSpace,
 86                       const CIMClass& modifiedClass);
 87 mike  1.1.2.2 
 88                   static void getSubClassNames(
 89                       const CIMNamespaceName& nameSpace,
 90                       const CIMName& className,
 91                       Boolean deepInheritance,
 92                       Array<CIMName>& subClassNames);
 93               
 94                   static void getSuperClassNames(
 95                       const CIMNamespaceName& nameSpace,
 96                       const CIMName& className,
 97                       Array<CIMName>& superClassNames);
 98               
 99                   // Namespace operations:
100               
101                   static bool addNameSpace(
102                       const MetaNameSpace* nameSpace);
103               
104                   static void createNameSpace(
105                       const CIMNamespaceName& nameSpace,
106                       const NameSpaceAttributes& attributes);
107               
108 mike  1.1.2.2     static void modifyNameSpace(
109                       const CIMNamespaceName& nameSpace,
110                       const NameSpaceAttributes& attributes);
111               
112                   static Array<CIMNamespaceName> enumerateNameSpaces();
113               
114                   static void deleteNameSpace(
115                       const CIMNamespaceName& nameSpace);
116               
117                   static Boolean getNameSpaceAttributes(
118                       const CIMNamespaceName& nameSpace,
119                       NameSpaceAttributes& attributes);
120               
121                   static Boolean isRemoteNameSpace(
122                       const CIMNamespaceName& nameSpace,
123                       String& remoteInfo);
124               
125                   // Qualifier operations:
126               
127                   static CIMQualifierDecl getQualifier(
128                       const CIMNamespaceName& nameSpace,
129 mike  1.1.2.2         const CIMName& qualifierName);
130               
131                   static void setQualifier(
132                       const CIMNamespaceName& nameSpace,
133                       const CIMQualifierDecl& qualifierDecl);
134               
135                   static void deleteQualifier(
136                       const CIMNamespaceName& nameSpace,
137                       const CIMName& qualifierName);
138               
139                   static Array<CIMQualifierDecl> enumerateQualifiers(
140                       const CIMNamespaceName& nameSpace);
141               
142 mike  1.1.2.3     static Array<CIMObject> associatorClasses(
143                       const CIMNamespaceName& nameSpace,
144                       const CIMName& className,
145                       const CIMName& assocClass,
146                       const CIMName& resultClass,
147                       const String& role,
148                       const String& resultRole,
149                       Boolean includeQualifiers,
150                       Boolean includeClassOrigin,
151                       const CIMPropertyList& propertyList);
152               
153                   static Array<CIMObjectPath> associatorClassPaths(
154                       const CIMNamespaceName& nameSpace,
155                       const CIMName& className,
156                       const CIMName& assocClass,
157                       const CIMName& resultClass,
158                       const String& role,
159                       const String& resultRole);
160               
161                   static Array<CIMObject> referenceClasses(
162                       const CIMNamespaceName& nameSpace,
163 mike  1.1.2.3         const CIMName& className,
164                       const CIMName& resultClass,
165                       const String& role,
166                       Boolean includeQualifiers,
167                       Boolean includeClassOrigin,
168                       const CIMPropertyList& propertyList);
169               
170                   static Array<CIMObjectPath> referenceClassPaths(
171                       const CIMNamespaceName& nameSpace,
172                       const CIMName& className,
173                       const CIMName& resultClass,
174                       const String& role);
175               
176 mike  1.1.2.4     static const MetaClass* findMetaClass(
177                       const char* nameSpace,
178                       const char* className);
179               
180 mike  1.1.2.2 private:
181               
182                   MetaRepository();
183               
184                   ~MetaRepository();
185 mike  1.1.2.1 };
186               
187               PEGASUS_NAMESPACE_END
188               
189               #endif /* Pegasus_MetaRepository_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2