Pegasus Enhancement Proposal (PEP)
PEP #: 210
Title: OpenPegasus 2.5 SDK (Software Developer Kit) Packaging Definition
Version: 1.4
Created: 29 October 2004
Authors: Denise Eckstein
Status: Approved (Ballot 99)
Version History:
Version | Date | Author | Change Description |
---|---|---|---|
1.0 | 29 Oct 2004 | Denise Eckstein | Initial Submission based on PEP 181. |
1.1 | 11 June 2005 | Denise Eckstein |
|
1.2 | 23 June 2005 | Denise Eckstein |
|
1.3 | 14 July 2005 | Denise Eckstein |
|
1.4 | 17 July 2005 |
Denise Eckstein |
|
Abstract: This PEP defines the recommended set of files for inclusion in the OpenPegasus 2.5 SDK.
Note 1: The recommendations defined in this PEP are not intended to document the feature set included in any vendor's OpenPegasus-based product. Rather, the purpose of this PEP is to provide input to vendors when making product decisions.
Note 2: This PEP DOES NOT define the OpenPegasus 2.5 External Interface. For example, there are include files packaged in the OpenPegasus SDK which include experimental interfaces that are NOT part of the External Interface Definition and subject to change in the next release. Refer to PEP 209 for the OpenPegasus 2.5 External Interface Definition.
#ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES /** Experimental Interface
Initialize from a plain C-String that allows UTF-8: @param str Specifies the name of the String instance. @param utfFlag Specifies the name of the character constructor. */ String(const char* str, const char* utfFlag); #endif
This section documents the recommended set of include files to be included in the OpenPegasus 2.5 SDK. Files in this section are expected to be rooted in a single directory $(PEGASUS_INCLUDE_DIR.)
Platform | $(PEGASUS_INCLUDE_DIR) |
---|---|
Linux | /opt/tog-pegasus/include |
HP-UX | /opt/wbem/include |
Source Location: $(PEGASUS_ROOT)/pegasus/src/Pegasus/Client
Staging Location: $(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_INCLUDE_DIR)/Pegasus/Client
Target Location: $(PEGASUS_INCLUDE_DIR)/Pegasus/Client
ClientOpPerformanceDataHandler.h
Linkage.h
Source Location: $(PEGASUS_ROOT)/pegasus/src/Pegasus/Common
Staging Location: $(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_INCLUDE_DIR)/Pegasus/Common
Target Location: $(PEGASUS_INCLUDE_DIR)/Pegasus/Common
AcceptLanguages.h
Array.h
ArrayInter.h
Char16.h
CIMClass.h
CIMDateTime.h
CIMFlavor.h
CIMIndication.h
CIMInstance.h
CIMMethod.h
CIMName.h
CIMObject.h
CIMObjectPath.h
CIMOperationType.h
CIMParameter.h
CIMParamValue.h
CIMProperty.h
CIMPropertyList.h
CIMQualifierDecl.h
CIMQualifier.h
CIMScope.h
CIMStatusCode.h
CIMType.h
CIMValue.h
Config.h
ContentLanguageElement.h
ContentLanguages.h
Exception.h
Formatter.h
LanguageElement.h
LanguageElementContainer.h
Linkage.h
MessageLoader.h
OperationContext.h
Platform_$(PEGASUS_PLATFORM).h
ResponseHandler.h
SSLContext.h
String.h
Source Location: $(PEGASUS_ROOT)/pegasus/src/Pegasus/Consumer
Staging Location: $(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_INCLUDE_DIR)/Pegasus/Consumer
Target Location: $(PEGASUS_INCLUDE_DIR)/Pegasus/Consumer
These include files are used to build OpenPegasus 2.5 C++ Providers.
Source Location: $(PEGASUS_ROOT)/pegasus/src/Pegasus/Provider
Staging Location: $(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_INCLUDE_DIR)/Pegasus/Provider
Target Location: $(PEGASUS_INCLUDE_DIR)/Pegasus/Provider
These include files are used to build OpenPegasus 2.5 CMPI C Providers.
Source Location: $(PEGASUS_ROOT)/pegasus/src/Pegasus/Provider/CMPI
Staging Location:
$(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_INCLUDE_DIR)/Pegasus/Provider/CMPI
Target Location: $(PEGASUS_INCLUDE_DIR)/Pegasus/Provider/CMPI
This section documents the recommended set of documentation files to be included in the OpenPegasus 2.5 SDK.
The following files are used by DOC++ to generate documentation that describes the C++ Client, Common, Consumer and Provider Interfaces. The DOC++ files are rooted in a single directory.
Platform | $(PEGASUS_HTML_DIR) |
---|---|
Linux | /opt/tog-pegasus/share/html |
HP-UX | /opt/wbem/html |
Note: Because of the number and dynamic nature of the doc++ generated files, the actual list of files packaged in the SDK is not included in this PEP.
The list of files required to build the API documentation include:
Source Location: $(PEGASUS_ROOT)/pegasus/doc/SDK
Generated HTML Staging Location:
$(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_HTML_DIR)
Generated HTML Target Location:
$(PEGASUS_HTML_DIR)
Makefile PageFooter.html PageHeader.html doc++.conf index.html
Source Location: $(PEGASUS_ROOT)/pegasus/doc/SDK/DefaultC++
Generated HTML Staging Location:
$(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_HTML_DIR)/DefaultC++
Generated HTML Target Location:
$(PEGASUS_HTML_DIR)/DefaultC++
ProviderInterface.dxx ClientInterface.dxx IndicationConsumerInterface.dxx CommonInterface.dxx ClassHier.html
Source Location: $(PEGASUS_ROOT)/pegasus/doc/SDK/CMPI
Generated HTML Staging Location:
$(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_HTML_DIR)/CMPI
Generated HTML Target Location:
$(PEGASUS_HTML_DIR)/CMPI
Interface.dxx
Files in this section are expected to be rooted in a single directory $(PEGASUS_DOC_DIR).
Platform | $(PEGASUS_DOC_DIR) |
---|---|
Linux | /opt/tog-pegasus/share/doc |
HP-UX | /opt/wbem/doc |
The following documents are included as part of the SDK.
Staging Location: $(PEGASUS_HOME)/$(PEGASUS_STAGING_DIR)/$(PEGASUS_DOC_DIR)
Target Location: $(PEGASUS_DOC_DIR)
File Name | Source Location |
---|---|
SecurityGuidelinesForDevelopers.html | pegasus/doc |
This section documents the recommended set of sample programs to be included in the OpenPegasus 2.5 SDK. Files in this section are expected to be rooted in a single directory $(PEGASUS_SAMPLES_DIR).
Platform | $(PEGASUS_SAMPLES_DIR) |
---|---|
Linux | /opt/tog-pegasus/samples |
HP-UX | /opt/wbem/samples |
The OpenPegasus SDK includes both Client and Provider sample programs.
The $(PEGASUS_SAMPLES_DIR) directory contains the master makefile and configuration file for building and testing the sample Clients and Providers.
Target Location: $(PEGASUS_SAMPLES_DIR)
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples |
Target Location: $(PEGASUS_SAMPLES_DIR)/mak
File Name | Source Location |
---|---|
config.mak | pegasus/src/SDK/samples/mak |
common.mak | pegasus/src/SDK/samples/mak |
library.mak | pegasus/src/SDK/samples/mak |
recurse.mak | pegasus/src/SDK/samples/mak |
program.mak | pegasus/src/SDK/samples/mak |
$(PEGASUS_PLATFORM).mak | pegasus/src/SDK/samples/mak |
Target Location: $(PEGASUS_SAMPLES_DIR)/Clients
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples/Clients |
There are three C++ CIM Client examples are package with the OpenPegasus SDK.
Target Location: $(PEGASUS_SAMPLES_DIR)/Clients/DefaultC++
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples/Clients/DefaultC++ |
Target Location: $(PEGASUS_SAMPLES_DIR)/Clients/DefaultC++/EnumInstances
File Name | Source Location |
---|---|
EnumInstances.cpp | pegasus/InterfaceArchive/v002001/tests/Clients/EnumInstances |
Makefile | pegasus/src/SDK/samples/Clients/EnumInstances |
Target Location: $(PEGASUS_SAMPLES_DIR)/Clients/DefaultC++/InvokeMethod
File Name | Source Location |
---|---|
InvokeMethod.cpp | pegasus/InterfaceArchive/v002001/tests/Clients/InvokeMethod |
Makefile | pegasus/src/SDK/samples/Clients/DefaultC++/InvokeMethod |
Target Location: $(PEGASUS_SAMPLES_DIR)/Clients/DefaultC++/SendTestIndications
File Name | Source Location |
---|---|
SendTestIndications.cpp | pegasus/src/Clients/SendTestIndications |
Makefile | pegasus/src/SDK/samples/Clients/DefaultC++/SendTestIndications |
Target Location: $(PEGASUS_SAMPLES_DIR)/Clients/DefaultC++/Associations
File Name | Source Location |
---|---|
AssociationTestClient.cpp | pegasus/src/Providers/sample/AssociationProvider/testclient |
Makefile | pegasus/src/SDK/samples/Clients/DefaultC++/Associations |
Target Location: $(PEGASUS_SAMPLES_DIR)/Providers
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples/Providers |
Target Location: $(PEGASUS_SAMPLES_DIR)/Providers/Load
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples/Providers/Load |
IndicationProviderR.mof | pegasus/src/SDK/samples/Providers/Load |
InstanceProviderR.mof | pegasus/src/Providers/sample/Load |
MethodProviderR.mof | pegasus/src/Providers/sample/Load |
SimpleDisplayConsumerR.mof | pegasus/src/Providers/sample/Load |
SampleProviderSchema.mof | pegasus/src/SDK/samples/Providers/Load |
AssociationProvider.mof | pegasus/src/Providers/sample/Load |
AssociationProviderR.mof | pegasus/src/Providers/sample/Load |
CWS_FilesAndDir.mof | pegasus/src/Providers/sample/Load |
CWS_FilesAndDirR.mof | pegasus/src/Providers/sample/Load |
The target destination directory for the C++ Provider sample programs is $(SAMPLE_DESTPATH)/Providers/DefaultC++.
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples/Providers/DefaultC++ |
Target Location: $(PEGASUS_SAMPLES_DIR)/Providers/DefaultC++/InstanceProvider
File Name | Source Location |
---|---|
EnumerateInstancesrspgood.xml | pegasus/InterfaceArchive/v002001/tests/Providers/InstanceProvider |
EnumerateInstances.xml | pegasus/InterfaceArchive/v002001/tests/Providers/InstanceProvider |
InstanceProvider.cpp | pegasus/InterfaceArchive/v002001/tests/Providers/InstanceProvider |
InstanceProvider.h | pegasus/InterfaceArchive/v002001/tests/Providers/InstanceProvider |
InstanceProviderMain.cpp | pegasus/InterfaceArchive/v002001/tests/Providers/InstanceProvider |
Makefile | pegasus/src/SDK/samples/Providers/DefaultC++/InstanceProvider |
Target Location: $(PEGASUS_SAMPLES_DIR)/Providers/DefaultC++/MethodProvider
File Name | Source Location |
---|---|
InvokeMethodrspgood.xml | pegasus/InterfaceArchive/v002001/tests/Providers/MethodProvider |
InvokeMethod.xml | pegasus/InterfaceArchive/v002001/tests/Providers/MethodProvider |
MethodProviderMain.cpp | pegasus/InterfaceArchive/v002001/tests/Providers/MethodProvider |
MethodProvider.cpp | pegasus/InterfaceArchive/v002001/tests/Providers/MethodProvider |
MethodProvider.h | pegasus/InterfaceArchive/v002001/tests/Providers/MethodProvider |
Makefile | pegasus/src/SDK/samples/Providers/DefaultC++/MethodProvider |
Target Location: $(PEGASUS_SAMPLES_DIR)/Providers/DefaultC++/IndicationProvider
File Name | Source Location |
---|---|
IndicationProvider.cpp | pegasus/src/SDK/samples/Providers/DefaultC++/IndicationProvider |
IndicationProvider.h | pegasus/src/SDK/samples/Providers/DefaultC++/IndicationProvider |
IndicationProviderMain.cpp | pegasus/src/SDK/samples/Providers/DefaultC++/IndicationProvider |
Makefile | pegasus/src/SDK/samples/Providers/DefaultC++/IndicationProvider |
Target Location: $(PEGASUS_SAMPLES_DIR)/Providers/DefaultC++/AssociationProvider
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples/Providers/DefaultC++/AssociationProvider |
AssociationProvider.cpp | pegasus/src/Providers/sample/AssociationProvider |
AssociationProvider.h | pegasus/src/Providers/sample/AssociationProvider |
AssociationProviderMain.cpp | pegasus/src/Providers/sample/AssociationProvider |
Target Location: $(PEGASUS_SAMPLES_DIR)/Providers/DefaultC++/SimpleDisplayConsumer
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples/Providers/DefaultC++/SimpleDisplayConsumer |
SimpleDisplayConsumer.cpp | pegasus/src/Providers/IndicationConsumer/SimpleDisplayConsumer |
SimpleDisplayConsumer.h | pegasus/src/Providers/IndicationConsumer/SimpleDisplayConsumer |
SimpleDisplayConsumerMain.cpp | pegasus/src/Providers/IndicationConsumer/SimpleDisplayConsumer |
The target destination directory for the CMPI C Provider sample programs is $(SAMPLE_DESTPATH)/Providers/CMPI.
File Name | Source Location |
---|---|
Makefile | pegasus/src/SDK/samples/Providers/CMPI |
Target Location: $(PEGASUS_SAMPLES_DIR)/Providers/CMPI/FilesAndDirectories
File Name | Source Location |
---|---|
CWS_Directory.c | pegasus/src/Providers/sample/CMPI/FilesAndDirectories |
CWS_DirectoryContainsFile.c | pegasus/src/Providers/sample/CMPI/FilesAndDirectories |
CWS_FileUtils.c | pegasus/src/Providers/sample/CMPI/FilesAndDirectories |
CWS_FileUtils.h | pegasus/src/Providers/sample/CMPI/FilesAndDirectories |
CWS_PlainFile.c | pegasus/src/Providers/sample/CMPI/FilesAndDirectories |
cwssimdata.c | pegasus/src/Providers/sample/CMPI/FilesAndDirectories |
cwsutil.c | pegasus/src/Providers/sample/CMPI/FilesAndDirectories |
cwsutil.h | pegasus/src/Providers/sample/CMPI/FilesAndDirectories |
Makefile | pegasus/src/SDK/samples/Providers/CMPI/FilesAndDirectories |
The makefile pegasus/mak/SDKMakefile can be used to stage the OpenPegasus SDK.
This command will create three master SDK directories.
The makefile pegasus/mak/SDKMakefile can be used to build (compiler and link) the "staged" version of the OpenPegasus SDK samples. This option is designed to allow testing of the sample programs prior to packaging.
$(MAKE) -f pegasus/mak/SDKMakefile buildSDK
The makefile pegasus/mak/SDKMakefile can be used to test the "staged" version of the OpenPegasus SDK samples. The cimserver MUST be started prior to running this option.
$(MAKE) -f pegasus/mak/SDKMakefile testSDK
To run the SDK samples successfully the root/SampleProvider namespace MUST exist. This namespace is populated as part of the standard OpenPegasus tests. In addition, it can be populated using the Makefile in the samples/Providers/Load directory.
$(MAKE) -f Makefile createrespository
Both pegasus/mak/SDKMakefile and samples/Providers/Load/Makefile can be used to register and deregister the "staged" SDK sample providers.
$(MAKE) -f pegasus/mak/SDKMakefile deregisterproviders
$(MAKE) -f pegasus/mak/SDKMakefile registerproviders
$(MAKE) -f samples/Providers/Load/Makefile deregisterproviders
$(MAKE) -f samples/Providers/Load/Makefile registerproviders
Copyright (c) 2004 EMC Corporation; Hewlett-Packard Development Company, L.P.; IBM Corp.; The Open Group;
VERITAS Software Corporation
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.
Template last modified: January 20th 2004 by Martin Kirk
Template version: 1.6