(file) Return to readme.MemoryResidentRepository CVS log (file) (dir) Up to [Pegasus] / pegasus

 1 karl  1.1.2.1 Title: the OpenPegasus memory-resident repository
 2               Date: 1 November 2007
 3               Refernece: PEP 307
 4               
 5               Overview
 6               
 7                       The memory-resident repository is designed to be used primarily by embedded
 8                       systems.  It has the following characteristics.
 9                       
10                       1. The class repository is read-only and must be built and installed as part
11                       of the server startup.  There is no capability to add, modify, delete classes
12                       or qualifiers once the OpenPegasus server has been built.
13                       
14                       2. The instance repository is maintained in core and is fully read/write. The
15                       persistence of the instance repository is maintained through a set of callbacks
16                       that the system creator must create to save and restore the instance repository.
17               
18               How to build the memory-resident class repository
19               
20               The repository is built using the Pegasus compiler cimmofl.  Note that in the
21               memory-resident repository there is no capability to modify the class repository
22 karl  1.1.2.1 subsequent to building the system so the complete class repository must be
23               compiled prior to building the system.
24               
25               To build the memory-resident repository, first determine the CIM namespaces to be
26               used and the classes that will be included in each namespace.  
27               
28               The complete set of classes and qualifiers for a single namespace must be compiled
29               with the OpenPegasus cimmofl compiler in a single call using the -m option on the
30               compiler to generate the C++ source output that represents the classes/qualifiers
31               to be compiled into the namespace.
32               
33               Typically this means building a single mof file that represents the include of all
34               of classes and qualifiers for the target namespace.  The following is an example
35               of such a mof file, the root_PG_Internal-namespace.mof file
36               
37               #pragma include("CIM2131/Core_Qualifiers.mof")
38               #pragma include("Pegasus/Internal/VER20/PG_InternalSchema20.mof")
39               
40               The c++ source for that namespace is built with cimmofl using the -m option.
41               
42               Within a Makefile the repository compile this can be defined as:
43 karl  1.1.2.1 
44               SCHEMAS=$(PEGASUS_ROOT)/Schemas
45               CIMMOFL=cimmofl -d -W -m
46               
47               repository:
48                   @ $(CIMMOFL) root/PG_Internal -I $(SCHEMAS) root_PG_Internal_namespace.mof
49               
50                  -m - generates memory-resident repository source files for the class and
51                       qualifier definitions.
52                  -d - TBD
53                  -W - Bypass the warning that you are using the cimmofl compiler
54               
55               This builds all of the classes and qualifiers for the root/PG_Internal namespace
56               and outputs the result to the file root_PG_Internal_namespace.h and .cpp files
57               for installation into the embedded system.  
58               
59               The input mof is contained in root_PG_Interlan_namespace.mof.  It is the
60               responsibility of the developer to encapsulate all of the mof required for this
61               namespace into the single input file.
62               
63               NOTE: There is a working example of this build mechanism for VxWorks in the
64 karl  1.1.2.1 directory
65               
66                       pegasus/vxworks/cimserver
67               
68               
69               
70               

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2