//%/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000, 2001 BMC Software, Hewlett-Packard Company, IBM, 
// The Open Group, Tivoli Systems
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to 
// deal in the Software without restriction, including without limitation the 
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 
// sell copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN 
// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//==============================================================================
/*
    $Author:
*/
/** @name CIM Objects in Pegasus

The Common Information model (CIM) consists of a number of basic objects
defined in the CIM specification.  This includes:
<UL>
<LI>Classes \Ref{CLASS}
<LI>Instances of Classes \Rf{REFERENCE}
<LI>Qualifiers \Ref{QUALIFIER}
<LI>Properties
<LI>Methods
<LI>Arrays
</UL>
Pegasus implements representations of these objects in C++ classes and
provides methods for creation, manipulation, and deletion of the objects.


In addition, Pegasus implements a number of the key concepts built into CIM as objects including:
<UL>
<LI> Scope
<LI> Flavor
<LI>Object Path
<LI>etc.
</UL>

Much of the programming of the Pegasus object broker, clients, and in particular providers and service extensions in the Pegasus envrinment depends on the use of these C++ representations of CIM Objects and concepts.

Each Pegasus CIM C++ Object representation includes:

<UL>
<LI>TConstructors and destructors
<LI>Methods for manipulation of sub-objects.  Thus, the class and instance classes provide for manipulation of the property, qualifier, and method objects that are contained in these classes.
<LI>Methods for finding sub-objects. Thus, the class and instance classes provide for finding property, qualifier, and method objects within an instnace of a CIMClass or CIMInstance. These methods are generally built around defining the name of the object to be found and having an index to that object returned.
<LI>Methods for comparison
<LI>Methods for cloning
<LI>Methods to convert the object to XML
<LI>Methods to convert the object to MOF (Planned)
</UL>
There is a class for every major CIM object and concept as shown in the table in \Ref{CIM Object Table}
*/
