(file) Return to MyEmbeddedServer.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / vxworks / cimserver

File: [Pegasus] / pegasus / vxworks / cimserver / Attic / MyEmbeddedServer.cpp (download)
Revision: 1.1.2.6, Sat Dec 1 18:18:25 2007 UTC (16 years, 7 months ago) by mike
Branch: TASK-PEP305_VXWORKS-branch
CVS Tags: TASK-PEP305_VXWORKS-branch-beta2
Changes since 1.1.2.5: +24 -4 lines
PEP#: 305
TITLE: VxWorks Port

DESCRIPTION: Ongoing VxWorks porting.

//%2006////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
// IBM Corp.; EMC Corporation, The Open Group.
// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
// EMC Corporation; VERITAS Software Corporation; The Open Group.
// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
// EMC Corporation; Symantec Corporation; The Open Group.
//
// 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.
//
//%/////////////////////////////////////////////////////////////////////////////

#include "MyEmbeddedServer.h"

// Header files for each of the namespaces that are to be created for this
// server. Each include statement below should define a c++ header file created
// by the compilation of a set of cim classes and qualifiers into a single
// namespace. These are the header files that are created by the compilation.
#include "root_cimv2_namespace.h"
#include "root_PG_Internal_namespace.h"
#include "root_PG_InterOp_namespace.h"

PEGASUS_NAMESPACE_BEGIN

// Define entry points for each static provider. 
extern "C" class CIMProvider* PegasusCreateProvider_Hello(const String&);
extern "C" class CIMProvider* PegasusCreateProvider_Goodbye(const String&);
extern "C" class CIMProvider* PegasusCreateProvider_Employee(const String&);

MyEmbeddedServer::MyEmbeddedServer()
{
    printf("MyEmbeddedServer::MyEmbeddedServer()\n");
}

MyEmbeddedServer::~MyEmbeddedServer()
{
    printf("MyEmbeddedServer::~MyEmbeddedServer()\n");
}

void MyEmbeddedServer::loadRepository(
    Array<Uint8>& data)
{
    printf("MyEmbeddedServer::loadRepository()\n");

    // This function is expected to acquire data from  a store (whether
    // memory-resident or persistent). This example maintains a repository
    // in memory.
    data = _repository;
}
    
void MyEmbeddedServer::saveRepository(
    const Array<Uint8>& data)
{
    printf("MyEmbeddedServer::saveRepository()\n");

    // This function is expected to save the dynamic elements of the memory
    // resident repository. It can save them in memory or on a persitent
    // device. This example saves them in memory.
    _repository = data;
}

void MyEmbeddedServer::putLog(
    int type,
    const char* system,
    int level,
    const char* message)
{
    // This function is responsible for adding a record to the log. This
    // implementation simply prints the log record to standard output.

    printf("MyEmbeddedServer::putLog():\n");
    printf("    type=%d\n", type);
    printf("    system=%s\n", system);
    printf("    level=%d\n", level);
    printf("    message=%s\n", message);
}

void MyEmbeddedServer::initialize()
{
    printf("MyEmbeddedServer::initialize()\n");

    addNameSpace(&root_PG_InterOp_namespace);
    addNameSpace(&root_cimv2_namespace);
    addNameSpace(&root_PG_Internal_namespace);

    Array<CIMNamespaceName> nameSpaces;
    nameSpaces.append("root/cimv2");

    //
    // Register "Hello" provider:
    //

    if (!registerSingletonProvider(
        nameSpaces,
        "Hello", /* classname */
        MyEmbeddedServer::PEGASUS_PROVIDER_INTERFACE,
        MyEmbeddedServer::INSTANCE_PROVIDER_TYPE))
    {
        printf("***** registerSingletonProvider() failed: Hello\n");
    }

    if (!registerPegasusProviderEntryPoint(
        "HelloProviderModule", PegasusCreateProvider_Hello))
    {
        printf("***** addSymbol() failed: Hello\n");
    }

    //
    // Register "Goodbye" provider:
    //

    if (!registerSingletonProvider(
        nameSpaces,
        "Goodbye", /* classname */
        MyEmbeddedServer::PEGASUS_PROVIDER_INTERFACE,
        MyEmbeddedServer::INSTANCE_PROVIDER_TYPE))
    {
        printf("***** registerSingletonProvider() failed: Goodbye\n");
    }

    if (!registerPegasusProviderEntryPoint(
        "GoodbyeProviderModule", PegasusCreateProvider_Goodbye))
    {
        printf("***** addSymbol() failed: Goodbye\n");
    }

    //
    // Register "Employee" provider:
    //

    if (!registerSingletonProvider(
        nameSpaces,
        "Employee", /* classname */
        MyEmbeddedServer::PEGASUS_PROVIDER_INTERFACE,
        MyEmbeddedServer::INSTANCE_PROVIDER_TYPE))
    {
        printf("***** registerSingletonProvider() failed: Employee\n");
    }

    if (!registerPegasusProviderEntryPoint(
        "Employee_Module", PegasusCreateProvider_Employee))
    {
        printf("***** addSymbol() failed: Employee\n");
    }
}

PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2