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

  1 martin 1.81 //%LICENSE////////////////////////////////////////////////////////////////
  2 martin 1.82 //
  3 martin 1.81 // Licensed to The Open Group (TOG) under one or more contributor license
  4             // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5             // this work for additional information regarding copyright ownership.
  6             // Each contributor licenses this file to you under the OpenPegasus Open
  7             // Source License; you may not use this file except in compliance with the
  8             // License.
  9 martin 1.82 //
 10 martin 1.81 // Permission is hereby granted, free of charge, to any person obtaining a
 11             // copy of this software and associated documentation files (the "Software"),
 12             // to deal in the Software without restriction, including without limitation
 13             // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14             // and/or sell copies of the Software, and to permit persons to whom the
 15             // Software is furnished to do so, subject to the following conditions:
 16 martin 1.82 //
 17 martin 1.81 // The above copyright notice and this permission notice shall be included
 18             // in all copies or substantial portions of the Software.
 19 martin 1.82 //
 20 martin 1.81 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21 martin 1.82 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 martin 1.81 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23             // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24             // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25             // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26             // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27 martin 1.82 //
 28 martin 1.81 //////////////////////////////////////////////////////////////////////////
 29 mike   1.25 //
 30             //%/////////////////////////////////////////////////////////////////////////////
 31             
 32 kumpf  1.72 #ifndef Pegasus_Repository_h
 33             #define Pegasus_Repository_h
 34 mike   1.25 
 35             #include <Pegasus/Common/Config.h>
 36             #include <Pegasus/Common/CIMClass.h>
 37 mike   1.27 #include <Pegasus/Common/CIMObject.h>
 38 mike   1.25 #include <Pegasus/Common/CIMInstance.h>
 39 mike   1.27 #include <Pegasus/Common/CIMPropertyList.h>
 40 mike   1.25 #include <Pegasus/Common/CIMQualifierDecl.h>
 41 thilo.boehm 1.84 #include <Pegasus/Common/ReadWriteSem.h>
 42                  
 43 mike        1.27 #include <Pegasus/Config/ConfigManager.h>
 44 thilo.boehm 1.84 
 45                  #include <Pegasus/Repository/Linkage.h>
 46 mike        1.25 #include <Pegasus/Repository/NameSpaceManager.h>
 47 thilo.boehm 1.84 #include <Pegasus/Repository/ObjectStreamer.h>
 48 schuur      1.54 
 49 mike        1.25 PEGASUS_NAMESPACE_BEGIN
 50                  
 51                  class RepositoryDeclContext;
 52 kumpf       1.51 class compilerDeclContext;
 53 mike        1.25 
 54 mike        1.27 /** This class provides a simple implementation of a CIM repository.
 55 kumpf       1.50     Concurrent access is controlled by an internal lock.
 56 mike        1.25 */
 57 kumpf       1.72 class PEGASUS_REPOSITORY_LINKAGE CIMRepository
 58 mike        1.25 {
 59                  public:
 60                  
 61 kumpf       1.69     enum CIMRepositoryMode
 62                      {
 63                          MODE_DEFAULT = 0,
 64                          MODE_XML = 1,
 65                          MODE_BIN = 2,
 66                          MODE_COMPRESSED = 4
 67                      };
 68                  
 69 mike        1.25     /// Constructor
 70 kumpf       1.69     CIMRepository(
 71                          const String& repositoryRoot,
 72 dmitry.mikulin 1.75         Uint32 mode = CIMRepository::MODE_DEFAULT,
 73                             RepositoryDeclContext* declContext = 0);
 74 mike           1.25 
 75                         /// Descructor
 76 mike           1.76     ~CIMRepository();
 77 mike           1.25 
 78 kumpf          1.50     /// getClass
 79 mike           1.76     CIMClass getClass(
 80 kumpf          1.41         const CIMNamespaceName& nameSpace,
 81                             const CIMName& className,
 82 mike           1.27         Boolean localOnly = true,
 83                             Boolean includeQualifiers = true,
 84                             Boolean includeClassOrigin = false,
 85                             const CIMPropertyList& propertyList = CIMPropertyList());
 86 mike           1.25 
 87 mike           1.80     // getFullConstClass
 88                         CIMConstClass getFullConstClass(
 89                             const CIMNamespaceName& nameSpace,
 90                             const CIMName& className);
 91                     
 92 mike           1.25     /// getInstance
 93 mike           1.76     CIMInstance getInstance(
 94 kumpf          1.41         const CIMNamespaceName& nameSpace,
 95 kumpf          1.34         const CIMObjectPath& instanceName,
 96 mike           1.27         Boolean includeQualifiers = false,
 97                             Boolean includeClassOrigin = false,
 98 mike           1.31         const CIMPropertyList& propertyList = CIMPropertyList());
 99 mike           1.25 
100                         /// deleteClass
101 mike           1.76     void deleteClass(
102 kumpf          1.41         const CIMNamespaceName& nameSpace,
103                             const CIMName& className);
104 mike           1.25 
105                         /// deleteInstance
106 mike           1.76     void deleteInstance(
107 kumpf          1.41         const CIMNamespaceName& nameSpace,
108 kumpf          1.34         const CIMObjectPath& instanceName);
109 mike           1.25 
110                         /// createClass
111 mike           1.76     void createClass(
112 kumpf          1.41         const CIMNamespaceName& nameSpace,
113 kumpf          1.79         const CIMClass& newClass);
114 mike           1.25 
115                         /// createInstance
116 mike           1.76     CIMObjectPath createInstance(
117 kumpf          1.41         const CIMNamespaceName& nameSpace,
118 kumpf          1.79         const CIMInstance& newInstance);
119 mike           1.25 
120                         /// modifyClass
121 mike           1.76     void modifyClass(
122 kumpf          1.41         const CIMNamespaceName& nameSpace,
123 kumpf          1.79         const CIMClass& modifiedClass);
124 mike           1.25 
125                         /// modifyInstance
126 mike           1.76     void modifyInstance(
127 kumpf          1.41         const CIMNamespaceName& nameSpace,
128 kumpf          1.36         const CIMInstance& modifiedInstance,
129 mike           1.27         Boolean includeQualifiers = true,
130 kumpf          1.79         const CIMPropertyList& propertyList = CIMPropertyList());
131 mike           1.25 
132                         /// enumerateClasses
133 mike           1.76     Array<CIMClass> enumerateClasses(
134 kumpf          1.41         const CIMNamespaceName& nameSpace,
135                             const CIMName& className = CIMName(),
136 mike           1.27         Boolean deepInheritance = false,
137                             Boolean localOnly = true,
138                             Boolean includeQualifiers = true,
139                             Boolean includeClassOrigin = false);
140 mike           1.25 
141                         /// enumerateClassNames
142 mike           1.76     Array<CIMName> enumerateClassNames(
143 kumpf          1.41         const CIMNamespaceName& nameSpace,
144                             const CIMName& className = CIMName(),
145 mike           1.27         Boolean deepInheritance = false);
146 mike           1.25 
147 kumpf          1.68     /**
148                             Enumerates the instances of the specified class and its subclasses.
149                             This method mimics the client behavior for the EnumerateInstances
150                             operation, but of course it can only return the instances that reside
151                             in the repository.  This method does not perform deepInheritance
152 karl           1.86         filtering.
153 kumpf          1.68 
154                             This method is useful mainly for testing purposes, and should not be
155                             relied upon for complete results in a CIM Server environment.
156                         */
157 mike           1.76     Array<CIMInstance> enumerateInstancesForSubtree(
158 kumpf          1.41         const CIMNamespaceName& nameSpace,
159                             const CIMName& className,
160 mike           1.27         Boolean includeQualifiers = false,
161                             Boolean includeClassOrigin = false,
162 kumpf          1.71         const CIMPropertyList& propertyList = CIMPropertyList());
163 mike           1.25 
164 kumpf          1.68     /**
165                             Enumerates the instances of just the specified class.
166                             This method mimics the provider behavior for the EnumerateInstances
167                             operation.
168 karl           1.35     */
169 mike           1.76     Array<CIMInstance> enumerateInstancesForClass(
170 kumpf          1.41         const CIMNamespaceName& nameSpace,
171                             const CIMName& className,
172 karl           1.35         Boolean includeQualifiers = false,
173                             Boolean includeClassOrigin = false,
174                             const CIMPropertyList& propertyList = CIMPropertyList());
175                     
176                     
177 kumpf          1.68     /**
178                             Enumerates the names of the instances of the specified class and its
179                             subclasses.  This method mimics the client behavior for the
180                             EnumerateInstanceNames operation, but of course it can only return
181                             the names of the instances that reside in the repository.
182                     
183                             This method is useful mainly for testing purposes, and should not be
184                             relied upon for complete results in a CIM Server environment.
185                     
186                             @param nameSpace The namespace in which className resides.
187                             @param className The name the class for which to retrieve the instance
188                                 names.
189                             @return An Array of CIMObjectPath objects containing the names of the
190                                 instances of the specified class in the specified namespace.
191 karl           1.42     */
192 mike           1.76     Array<CIMObjectPath> enumerateInstanceNamesForSubtree(
193 kumpf          1.41         const CIMNamespaceName& nameSpace,
194                             const CIMName& className);
195 karl           1.35 
196 kumpf          1.68     /**
197                             Enumerates the names of the instances of just the specified class.
198                             This method mimics the provider behavior for the EnumerateInstanceNames
199                             operation.
200                     
201                             @param nameSpace The namespace in which className resides.
202                             @param className The name the class for which to retrieve the instance
203                                 names.
204                             @return An Array of CIMObjectPath objects containing the names of the
205                                 instances of the specified class in the specified namespace.
206 karl           1.35     */
207 mike           1.76     Array<CIMObjectPath> enumerateInstanceNamesForClass(
208 kumpf          1.41         const CIMNamespaceName& nameSpace,
209 kumpf          1.68         const CIMName& className);
210 karl           1.35 
211 karl           1.87     /**
212                             Get the associated(reference) classes or instances for the
213                             input ObjectName filtered by the assocClass,resultClass,
214                             role and result role parameters. This is analogous to the
215                             operation defined in the DMTF spec DSP200.
216                             @param nameSpace CIMNamespaceName for the operation
217                             @param objectName CIMObjectPath for the operation.  If this includes
218                             ONLY a class in the object with no keys the return is CIMClasses. Else
219                             it is CIMInstances. See bug 3302
220                             @param assocClass CIMName with name of association class for which this
221                             is to be filtered or Null if no filtering
222                             @param resultClass CIMName with name of associated class for which
223                             response is to be filtered or Null of no filtering.
224                             @param role String defining role parameter from association class to
225                             objectName
226                             @param resultRole String defining role between association and
227                             associated classes.
228                             @param includeQualifiers Boolean to force inclusion of Qualifiers if
229                             true and if this is a class request.
230                             @param includeClassOrigin Boolean to force inclusion of ClassOrigin
231                             information if true
232 karl           1.87         @param propertyList CIMPropertyList (optional). if Null,
233                             return all properties. If empty but not Null, return no
234                             properties. Else return only properties in the list.
235                             @return Array<CIMObject> containing either the classes or
236                                     instances requested.
237                             @exception CIMException Error code CIM_ERR_INVALID_CLASS if the class
238                                 does not exist.
239                             @exception - Throws NoSuchDirectory if the Namespace
240                                            does not exist.
241                         */
242 mike           1.76     Array<CIMObject> associators(
243 kumpf          1.41         const CIMNamespaceName& nameSpace,
244 kumpf          1.34         const CIMObjectPath& objectName,
245 kumpf          1.41         const CIMName& assocClass = CIMName(),
246                             const CIMName& resultClass = CIMName(),
247 mike           1.27         const String& role = String::EMPTY,
248                             const String& resultRole = String::EMPTY,
249                             Boolean includeQualifiers = false,
250                             Boolean includeClassOrigin = false,
251                             const CIMPropertyList& propertyList = CIMPropertyList());
252 mike           1.25 
253 karl           1.87     /**
254                             Get the associated class or instance object paths for the
255                             input ObjectName filtered by the assocClass,resultClass,
256                             role and result role parameters. This is analogous to the
257                             operation defined in the DMTF spec DSP200.
258                             @param nameSpace CIMNamespaceName for the operation
259                             @param objectName CIMObjectPath for the operation.  If this includes
260                             ONLY a class in the object with no keys the return is CIMClasses. Else
261                             it is CIMInstances. See bug 3302
262                             @param assocClass CIMName with name of association class for which this
263                             is to be filtered or Null if no filtering
264                             @param resultClass CIMName with name of associated class for which
265                             response is to be filtered or Null of no filtering.
266                             @param role String defining role parameter from association class to
267                             objectName
268                             @param resultRole String defining role between association and
269                             associated classes.
270                             @return Array<CIMObjectPath> containing  the path of either
271                                     classes or instances requested.
272                             @exception CIMException Error code CIM_ERR_INVALID_CLASS if the class
273                                 does not exist.
274 karl           1.87         @exception - Throws NoSuchDirectory if the Namespace
275                                            does not exist.        
276                         */
277 mike           1.76     Array<CIMObjectPath> associatorNames(
278 kumpf          1.41         const CIMNamespaceName& nameSpace,
279 kumpf          1.34         const CIMObjectPath& objectName,
280 kumpf          1.41         const CIMName& assocClass = CIMName(),
281                             const CIMName& resultClass = CIMName(),
282 mike           1.27         const String& role = String::EMPTY,
283                             const String& resultRole = String::EMPTY);
284 mike           1.25 
285 karl           1.87     /**
286                             Get the association classes or instances for the input
287                             ObjectName filtered by the resultClass and role parameters.
288                             This is analogous to the operation defined in the DMTF spec
289                             DSP200.
290                             @param nameSpace CIMNamespaceName for the operation
291                             @param objectName CIMObjectPath for the operation.  If this includes
292                             ONLY a class in the object with no keys the return is CIMClasses. Else
293                             it is CIMInstances. See bug 3302
294                             @param role String defining role parameter from association class to
295                             objectName
296                             @param resultRole String defining role between association and
297                             associated classes.
298                             @param includeQualifiers Boolean to force inclusion of Qualifiers if
299                             true and if this is a class request.
300                             @param includeClassOrigin Boolean to force inclusion of ClassOrigin
301                             information if true
302                             @param propertyList CIMPropertyList (optional). if Null,
303                             return all properties. If empty but not Null, return no
304                             properties. Else return only properties in the list.
305                             @return Array<CIMObject> containing either the classes or
306 karl           1.87                 instances requested.
307                             @exception CIMException Error code CIM_ERR_INVALID_CLASS if the class
308                                 does not exist.
309                             @exception - Throws NoSuchDirectory if the Namespace does
310                                 not exist. 
311                         */
312 mike           1.76     Array<CIMObject> references(
313 kumpf          1.41         const CIMNamespaceName& nameSpace,
314 kumpf          1.34         const CIMObjectPath& objectName,
315 kumpf          1.41         const CIMName& resultClass = CIMName(),
316 mike           1.27         const String& role = String::EMPTY,
317                             Boolean includeQualifiers = false,
318                             Boolean includeClassOrigin = false,
319                             const CIMPropertyList& propertyList = CIMPropertyList());
320 mike           1.25 
321 karl           1.87     /**
322                             Get the association class or instance object paths for the
323                             input ObjectName filtered by the assocClass,resultClass,
324                             role and result role parameters. This is analogous to the
325                             operation defined in the DMTF spec DSP200.
326                             @param nameSpace CIMNamespaceName for the operation
327                             @param objectName CIMObjectPath for the operation.  If this includes
328                             ONLY a class in the object with no keys the return is CIMClasses. Else
329                             it is CIMInstances. See bug 3302
330                             @param role String defining role parameter from association class to
331                             objectName
332                             @param resultRole String defining role between association and
333                             associated classes.
334                             @return Array<CIMObjectPath> containing  the path of either
335                                     classes or instances requested.
336                             @exception CIMException Error code CIM_ERR_INVALID_CLASS if the class
337                                 does not exist.
338                             @exception - Throws NoSuchDirectory if the Namespace
339                                            does not exist.        
340                         */
341 mike           1.76     Array<CIMObjectPath> referenceNames(
342 kumpf          1.41         const CIMNamespaceName& nameSpace,
343 kumpf          1.34         const CIMObjectPath& objectName,
344 karl           1.42         const CIMName& resultClass = CIMName(),
345                             const String& role = String::EMPTY);
346                     
347 mike           1.25     /// getProperty
348 mike           1.76     CIMValue getProperty(
349 kumpf          1.41         const CIMNamespaceName& nameSpace,
350 kumpf          1.34         const CIMObjectPath& instanceName,
351 kumpf          1.41         const CIMName& propertyName);
352 mike           1.25 
353                         /// setProperty
354 mike           1.76     void setProperty(
355 kumpf          1.41         const CIMNamespaceName& nameSpace,
356 kumpf          1.34         const CIMObjectPath& instanceName,
357 kumpf          1.41         const CIMName& propertyName,
358 kumpf          1.79         const CIMValue& newValue = CIMValue());
359 mike           1.25 
360                         /// getQualifier
361 mike           1.76     CIMQualifierDecl getQualifier(
362 kumpf          1.41         const CIMNamespaceName& nameSpace,
363                             const CIMName& qualifierName);
364 mike           1.25 
365                         /// setQualifier
366 mike           1.76     void setQualifier(
367 kumpf          1.41         const CIMNamespaceName& nameSpace,
368 kumpf          1.79         const CIMQualifierDecl& qualifierDecl);
369 mike           1.25 
370 kumpf          1.50     /// deleteQualifier
371 mike           1.76     void deleteQualifier(
372 kumpf          1.41         const CIMNamespaceName& nameSpace,
373                             const CIMName& qualifierName);
374 mike           1.25 
375                         /// enumerateQualifiers
376 mike           1.76     Array<CIMQualifierDecl> enumerateQualifiers(
377 kumpf          1.71         const CIMNamespaceName& nameSpace);
378 mike           1.25 
379 kumpf          1.72     typedef HashTable <String, String, EqualNoCaseFunc, HashLowerCaseFunc>
380                             NameSpaceAttributes;
381                     
382 mike           1.76     void createNameSpace(const CIMNamespaceName& nameSpace,
383 kumpf          1.71         const NameSpaceAttributes& attributes = NameSpaceAttributes());
384 schuur         1.53 
385 mike           1.76     void modifyNameSpace(const CIMNamespaceName& nameSpace,
386 kumpf          1.71         const NameSpaceAttributes& attributes = NameSpaceAttributes());
387 mike           1.25 
388 rohini.deshpande 1.88     void modifyNameSpaceName(const CIMNamespaceName& nameSpace,
389                               const CIMNamespaceName& newNameSpaceName);
390                       
391 mike             1.76     Array<CIMNamespaceName> enumerateNameSpaces() const;
392 mike             1.25 
393 kumpf            1.77     /** Deletes a namespace in the repository.
394 mike             1.27         The deleteNameSpace method will only delete a namespace if there are
395                               no classed defined in the namespace.  Today this is a Pegasus
396                               characteristics and not defined as part of the DMTF standards.
397                               @param String with the name of the namespace
398                               @exception - Throws NoSuchDirectory if the Namespace does not exist.
399 mike             1.25     */
400 mike             1.76     void deleteNameSpace(const CIMNamespaceName& nameSpace);
401 mike             1.31 
402 mike             1.76     Boolean getNameSpaceAttributes(
403 kumpf            1.71         const CIMNamespaceName& nameSpace,
404                               NameSpaceAttributes& attributes);
405 schuur           1.53 
406 sahana.prabhakar 1.85     Boolean nameSpaceExists(const CIMNamespaceName& nameSpaceName);
407                       
408 mike             1.31     ////////////////////////////////////////////////////////////////////////////
409 mike             1.25 
410 mike             1.27     /** Indicates whether instance operations that do not have a provider
411                               registered should be served by this repository.
412                           */
413 mike             1.76     Boolean isDefaultInstanceProvider();
414 mike             1.27 
415 mike             1.31     /** Get subclass names of the given class in the given namespace.
416 sage             1.28         @param nameSpaceName
417                               @param className - class whose subclass names will be gotten. If
418                                   className is empty, all classnames are returned.
419                               @param deepInheritance - if true all descendent classes of class
420 karl             1.33             are returned. If className is empty, only root classes are returned.
421                               @param subClassNames - output argument to hold subclass names.
422 sage             1.28         @exception CIMException(CIM_ERR_INVALID_CLASS)
423                           */
424 mike             1.76     void getSubClassNames(
425 kumpf            1.41         const CIMNamespaceName& nameSpaceName,
426                               const CIMName& className,
427 sage             1.28         Boolean deepInheritance,
428 mike             1.76         Array<CIMName>& subClassNames) const;
429 sage             1.28 
430                           /** Get the names of all superclasses (direct and indirect) of this
431                               class.
432                           */
433 mike             1.76     void getSuperClassNames(
434 kumpf            1.41         const CIMNamespaceName& nameSpaceName,
435                               const CIMName& className,
436 mike             1.76         Array<CIMName>& subClassNames) const;
437 sage             1.28 
438 mike             1.76     Boolean isRemoteNameSpace(
439 schuur           1.55         const CIMNamespaceName& nameSpaceName,
440 kumpf            1.71         String& remoteInfo);
441 dave.sudlik      1.61 
442                       #ifdef PEGASUS_DEBUG
443 kumpf            1.71     void DisplayCacheStatistics();
444 dave.sudlik      1.61 #endif
445                       
446 kumpf            1.50 protected:
447                       
448                           // Internal getClass implementation that does not do access control
449 mike             1.80     // If readOnlyClass is true, then the caller ensures that the returned
450                           // class, will never be modified, which allows returning a reference to
451                           // the one that is in the cache.
452 kumpf            1.50     CIMClass _getClass(
453                               const CIMNamespaceName& nameSpace,
454                               const CIMName& className,
455                               Boolean localOnly,
456                               Boolean includeQualifiers,
457                               Boolean includeClassOrigin,
458 mike             1.80         const CIMPropertyList& propertyList,
459                               Boolean clone = true);
460 kumpf            1.50 
461                           /// Internal getInstance implementation that does not do access control
462                           CIMInstance _getInstance(
463                               const CIMNamespaceName& nameSpace,
464                               const CIMObjectPath& instanceName,
465                               Boolean includeQualifiers,
466                               Boolean includeClassOrigin,
467 kumpf            1.78         const CIMPropertyList& propertyList,
468                               Boolean resolveInstance);
469 kumpf            1.50 
470                           /// Internal createClass implementation that does not do access control
471                           void _createClass(
472                               const CIMNamespaceName& nameSpace,
473                               const CIMClass& newClass);
474                       
475                           /// Internal createInstance implementation that does not do access control
476                           CIMObjectPath _createInstance(
477                               const CIMNamespaceName& nameSpace,
478                               const CIMInstance& newInstance);
479                       
480                           /// Internal modifyClass implementation that does not do access control
481                           void _modifyClass(
482                               const CIMNamespaceName& nameSpace,
483                               const CIMClass& modifiedClass);
484                       
485                           /// Internal associatorNames implementation that does not do access control
486                           Array<CIMObjectPath> _associatorNames(
487                               const CIMNamespaceName& nameSpace,
488                               const CIMObjectPath& objectName,
489                               const CIMName& assocClass,
490 kumpf            1.50         const CIMName& resultClass,
491                               const String& role,
492                               const String& resultRole);
493                       
494                           /// Internal referenceNames implementation that does not do access control
495                           Array<CIMObjectPath> _referenceNames(
496                               const CIMNamespaceName& nameSpace,
497                               const CIMObjectPath& objectName,
498                               const CIMName& resultClass,
499                               const String& role);
500                       
501                           /// Internal getQualifier implementation that does not do access control
502                           CIMQualifierDecl _getQualifier(
503                               const CIMNamespaceName& nameSpace,
504                               const CIMName& qualifierName);
505                       
506                           /// Internal setQualifier implementation that does not do access control
507                           void _setQualifier(
508                               const CIMNamespaceName& nameSpace,
509                               const CIMQualifierDecl& qualifierDecl);
510                       
511 mike             1.25 private:
512                       
513 mike             1.76     class CIMRepositoryRep* _rep;
514 kumpf            1.50     friend class compilerDeclContext;
515                           friend class RepositoryDeclContext;
516 mike             1.25 };
517                       
518                       PEGASUS_NAMESPACE_END
519                       
520 kumpf            1.72 #endif /* Pegasus_Repository_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2