/** @name Pegasus API Documentation
This document was produced on \date .
This is a working document that contains the interfaces for the Pegasus CIM Server implementation. This is created by the OpenGroup Enterprise Management Program Group.
Within this document, you will find the following:
In addition to this documentation, Pegasus has a Users' Guide that specifies overview information and how to set up and install Pegasus. In addition to the manual, the README files contain specific information to aide you in when working with Pegasus and its documentation.
@memo Public API reference document for the Pegasus CIM Object Manager implementation. */ /* api.dxx - Top Level file for Developer api Documentation. This file defines the document strucuture and provides the introduction */ //@{ /** @name Introduction The APIs documented here are those that are considered frozen and that we expect not to change within minor releases of Pegasus. It is an objective of Pegasus to keep these APIs frozen as long as Pegasus remains at the version 2.x revision level so that providers written for any 2.x Pegasus will run in environments that use the same or higher level revisions. Note that Pegasus does extend and add new APIs to the publically available API set most releases as new functionality is defined. Typically these are marked experimental for the first release so that developers can be made aware that they may change. Once they have been tested and used, the experimental qualifications will be removed and they become part of the Pegasus public API set. REVIEWERS: more on versions. */ //@{ /// @name Common API Characteristics //@{ /** @name Shared Classes. A shared class consists of a pointer to a shared data block that contains a reference count and the data. When a shared object is created, it sets the reference count to 1. The reference count is incremented whenever a new object references the shared data, and decremented when the object dereferences the shared data. The shared data is deleted when the reference count becomes zero. When dealing with shared objects, there are two ways of copying an object. We usually speak about deep and shallow copies. A deep copy implies duplicating an object. A shallow copy is a reference copy, i.e. just a pointer to a shared data block. Making a deep copy can be expensive in terms of memory and CPU. Making a shallow copy is very fast, because it only involves setting a pointer and incrementing the reference count. Object assignment (with operator=()) for implicitly and explicitly shared objects is implemented using shallow copies. A deep copy can be made by calling a copy() function. The benefit of sharing is that a program does not need to duplicate data unnecessarily, which results in lower memory use and less copying of data. Objects can easily be assigned, sent as function arguments, and returned from functions. Now comes the distinction between explicit and implicit sharing. Explicit sharing means that the programmer must be aware of the fact that objects share common data. Implicit sharing means that the sharing mechanism takes place behind the scenes and the programmer does not need to worry about it. All of the shared classes in Pegasus are explicitly shared. These classes have a clone() function that returns a deep copy with a reference count of 1. */ /** @name Encapsulation REVIEWERS: To be completed */ /** @name Error Handling REVIEWERS: TO Be completed */ /** @name Threading REVIEWERS: To be completed */ /** @name Memory Ownership REVIEWERS: */ //@} //@} /*The following are interfaces that are frozen with the 2.3 release of Pegasus: CONNIE: we will go nuts if we try to do the lists this way. We need to mark them in the classes and methods themselves, not in this list. In reality all interfaces that are not explicitly marked experimental are frozen. We should state that. Need to reference PEP 57 as the authority for this release.
The following are interfaces that are experimental: CONNIE: We might get by with this experimental list but it will change for each version of the document.
The following is the complete file hiearchy for this document. We have tried to keep all file references in only this one place to make modification easier. In the future, please keep the references here and text in the individual files.
TODO: We should be getting Pegasus Version information directly from Pegasus, not just in this text file. */ /** @name Pegasus CIM Objects and Common Function APIs. This section defines the Pegasus C++ Classes that represent the CIM objects and the common functions used by Pegasus */ //@{ /// @name Classes for CIM Objects and Containers //@{ //@Include: ../../src/Pegasus/Common/Array.h //@Include: ../../src/Pegasus/Common/ArrayInter.h //@Include: ../../src/Pegasus/Common/Boolean.h //@Include: ../../src/Pegasus/Common/CIMClass.h //@Include: ../../src/Pegasus/Common/CIMDateTime.h //@Include: ../../src/Pegasus/Common/CIMFlavor.h //@Include: ../../src/Pegasus/Common/CIMIndication.h //@Include: ../../src/Pegasus/Common/CIMInstance.h //@Include: ../../src/Pegasus/Common/CIMMethod.h //@Include: ../../src/Pegasus/Common/CIMName.h //@Include: ../../src/Pegasus/Common/CIMObject.h //@Include: ../../src/Pegasus/Common/CIMObjectPath.h //@Include: ../../src/Pegasus/Common/CIMParamValue.h //@Include: ../../src/Pegasus/Common/CIMParameter.h //@Include: ../../src/Pegasus/Common/CIMProperty.h //@Include: ../../src/Pegasus/Common/CIMPropertyList.h //@Include: ../../src/Pegasus/Common/CIMQualifier.h //@Include: ../../src/Pegasus/Common/CIMQualifierDecl.h //@Include: ../../src/Pegasus/Common/CIMQualifierList.h //@Include: ../../src/Pegasus/Common/CIMScope.h //@Include: ../../src/Pegasus/Common/CIMStatusCode.h //@Include: ../../src/Pegasus/Common/CIMType.h //@Include: ../../src/Pegasus/Common/CIMValue.h //@Include: ../../src/Pegasus/Common/Char16.h //@Include: ../../src/Pegasus/Common/Config.h //@Include: ../../src/Pegasus/Common/String.h //@Include: ../../src/Pegasus/Common/CIMIndication.h //@} /// @name General Server Functionality Classes //@{ //@Include: ../../src/Pegasus/Common/OperationContext.h //@Include: ../../src/Pegasus/Common/ResponseHandler.h //@Include: ../../src/Pegasus/Common/SSLContext.h //@} /// @name CIM Object Exceptions //@{ //@Include: ../../src/Pegasus/Common/Exception.h //@} //@} /// @name Client Interfaces //@{ /// @name Pegasus Client CIM Operation and Connection Interfaces //@{ //@Include: ../../src/Pegasus/Client/CIMClient.h //@Include: ../../src/Pegasus/Client/CIMClientException.h //@} /// @name Pegasus Client SLP interfaces //@{ //@Include: ../../src/Pegasus/Client/CIMServerDiscovery.h //@Include: ../../src/Pegasus/Common/CIMServerDescription.h //@Include: ../../src/Pegasus/Common/Attribute.h //@} /// @name Pegasus Listener Interfaces //@{ //@Include: ../../src/Pegasus/Listener/CIMListener.h //@} //@} /// @name C++ Provider Interfaces //@{ /// Pegasus CIM Provider Types and Interfaces //@{ //@Include: ../../src/Pegasus/Provider/CIMProvider.h //@Include: ../../src/Pegasus/Provider/CIMAssociationProvider.h //@Include: ../../src/Pegasus/Consumer/CIMIndicationConsumer.h //@Include: ../../src/Pegasus/Provider/CIMIndicationProvider.h //@Include: ../../src/Pegasus/Provider/CIMInstanceProvider.h //@Include: ../../src/Pegasus/Provider/CIMMethodProvider.h //@} /// Pegasus CIM Provider CIMOM Handle Callback //@{ //@Include: ../../src/Pegasus/Provider/CIMOMHandle.h //@} /// Pegasus CIM Provider Exceptions //@{ //@Include: ../../src/Pegasus/Provider/ProviderException.h //@} //@} /// @name Pegasus Server Indication Consumer //@{ //@Include: ../../src/Pegasus/Consumer/CIMIndicationConsumer.h //@} //@Include: ..\DevManual\definitions.dxx /** @name Document References This section will contain references to external documents. NOTE: Documents we must reference include: