Pegasus Enhancement Proposal (PEP)
347
PEP#: 347
PEP Type: Functional
Title: Separate internal modules from current libpegcommon library
Version: 1.1
Created: 2nd March 2009
Authors: Thilo Boehm
Status: Approved
Version History:
Version | Date | Author | Change Description |
---|---|---|---|
0.1 | 18 March 2009 | Thilo Boehm | Initial Submission |
0.2 | 20 March 2009 |
Thilo Boehm |
Discussion Arch Call 03/19
|
1.0 |
27 March 2009 |
Thilo Boehm |
Final version for ballot |
1.1 |
16 April 2009 |
Thilo Boehm |
Approved version, including final comments. |
Abstract:
This PEP proposes to separate internal used modules, not using the
external interface or dependent modules, from the current libpegcommon
library in to a new separate library to reduce the size of the
libpegcommon, allow to add internal only classes with out interfering
the external interface, and moderate the degree to which internal
classes are included in an SDK library.
Historically the Pegasus common library libpegcommon has become the home of all kinds of commonly used functions and classes in OpenPegasus. This includes classes which are part of the external interface defined in PEP#344 as well as classes used internally for the implementation of the cimserver, not meant for usage by any external project.
The mixture of internal and external interfaces as well as the
overall size of the common library has become a major concern. Keep on
adding new function to libpegcommon unnecessarily grows the size of
client applications and further raises the risk of breaking the
external interfaces or unintended use of internal only functions by
exploiting client applications or C++ CIM Providers.
CIMError.cpp | SetFileDescriptorToEBCDICEncoding.h | IndicationFormatter.h |
CIMError.h | MofWriter.cpp | IndicationFormatter.cpp |
DynamicLibrary.cpp | MofWriter.h | SSLContextManager.cpp |
DynamicLibrary.h | OptionManager.cpp | SSLContextManager.h |
DynamicLibraryPOSIX.cpp | OptionManager.h | Stopwatch.cpp |
DynamicLibraryWindows.cpp | PropertyAccessor.cpp | Stopwatch.h |
PropertyAccessor.h |
CIMError |
DynamicLibrary |
IndicationFormatter |
OptionManager |
Stopwatch |
ToMof |
OpenPegasus
2.10
AutoStreamer.cpp | AutoStreamer.h | BinaryStreamer.cpp | BinaryStreamer.h |
Packer.cpp | Packer.h | XmlStreamer.cpp | XmlStreamer.h |
ObjectStreamer.h |
Licensed to The Open Group (TOG) under one or more contributor license
agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
this work for additional information regarding copyright ownership.
Each contributor licenses this file to you under the OpenPegasus Open
Source License; you may not use this file except in compliance with the
License.
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: December 18th 2008 by Martin Kirk
Template version: 1.12