(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.11, Wed Sep 24 22:34:11 2008 UTC (15 years, 9 months ago) by mike
Branch: TASK-PEP305_VXWORKS-branch
CVS Tags: TASK-PEP305_VXWORKS-2008-10-23
Changes since 1.1.2.10: +11 -0 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"
#include <Pegasus/Common/String.h>
#include <Pegasus/Provider/CIMProvider.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"

// Uncomment this to register the singleton CIMPLE provider module.
// #define INCLUDE_CIMPLE_PROVIDERS

PEGASUS_NAMESPACE_BEGIN

#if defined(INCLUDE_CIMPLE_PROVIDERS)
extern "C" class CIMProvider* PegasusCreateProvider(const String&);
#endif

extern "C" class CIMProvider* PegasusCreateProviderMain(
    const String& providerName)
{
    CString cstr(providerName.getCString());
    printf("PegasusCreateProviderMain(): %s\n", (const char*)cstr);

#if defined(INCLUDE_CIMPLE_PROVIDERS)
    return PegasusCreateProvider(providerName);
#else
    return 0;
#endif

}

MyEmbeddedServer::MyEmbeddedServer()
{
}

MyEmbeddedServer::~MyEmbeddedServer()
{
}

void MyEmbeddedServer::loadRepository(
    Array<Uint8>& data)
{
    // 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)
{
    // 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("LOG[%d:%s:%d:%s]\n", type, system, level, message);
}

void MyEmbeddedServer::initialize()
{
    addNameSpace(&root_PG_InterOp_namespace);
    addNameSpace(&root_cimv2_namespace);
    addNameSpace(&root_PG_Internal_namespace);

    // Build list of registration namespaces.

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

    //
    // Register the PegasusCreateProvider entry point (there can be only
    // one of these).
    //

    if (!registerPegasusCreateProviderEntryPoint(PegasusCreateProviderMain))
    {
        fprintf(stderr, "***** addSymbol() failed: Employee\n");
    }

#if defined(INCLUDE_CIMPLE_PROVIDERS)

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

    if (!registerProvider(
        nameSpaces,
        "Employee", /* classname */
        MyEmbeddedServer::INSTANCE_PROVIDER_TYPE))
    {
        fprintf(stderr, "***** registerProvider() failed: Employee\n");
    }

    if (!registerProvider(
        nameSpaces,
        "EmployeeLink", /* classname */
        MyEmbeddedServer::INSTANCE_PROVIDER_TYPE))
    {
        fprintf(stderr, "***** registerProvider() failed: Employee\n");
    }

    if (!registerProvider(
        nameSpaces,
        "Alert", /* classname */
        MyEmbeddedServer::INDICATION_PROVIDER_TYPE))
    {
        fprintf(stderr, "***** registerProvider() failed: Alert\n");
    }

    printf("==== Registered providers\n");

#endif /* defined(INCLUDE_CIMPLE_PROVIDERS) */
}

bool MyEmbeddedServer::authenticate(const char* user, const char* pass)
{
    if (strcmp(user, "guest") == 0 && strcmp(pass, "changeme") == 0)
        return true;
    else
        return false;
}

PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2