[go: up one dir, main page]

Menu

[r1133]: / clp / trunk / src / omcclpdenv.h  Maximize  Restore  History

Download this file

101 lines (80 with data), 2.8 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
/****************************************************************************
|
| Copyright (c) 2006 Novell, Inc.
| All Rights Reserved.
|
| This program is free software; you can redistribute it and/or
| modify it under the terms of version 2 of the GNU General Public License as
| published by the Free Software Foundation.
|
| This program is distributed in the hope that it will be useful,
| but WITHOUT ANY WARRANTY; without even the implied warranty of
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
| GNU General Public License for more details.
|
| You should have received a copy of the GNU General Public License
| along with this program; if not, contact Novell, Inc.
|
| To contact Novell about this file by physical or electronic mail,
| you may find current contact information at www.novell.com
|
|***************************************************************************
/**
@author Jon Carey
*/
#ifndef OMCCLPDENV_HPP_GUARD
#define OMCCLPDENV_HPP_GUARD
#include "config.h"
#include <openwbem/OW_Logger.hpp>
#include <openwbem/OW_IfcsFwd.hpp>
#include <openwbem/OW_Array.hpp>
#include <openwbem/OW_Mutex.hpp>
#include <openwbem/OW_PosixUnnamedPipe.hpp>
#include <openwbem/OW_Reference.hpp>
#include "omcclpdconfig.h"
using namespace OW_NAMESPACE;
class OMCClpdEnv;
typedef IntrusiveReference<OMCClpdEnv> OMCClpdEnvRef;
class OMCClpdServer;
typedef IntrusiveReference<OMCClpdServer> OMCClpdServerRef;
class OMCClpdEnv : public IntrusiveCountableBase
{
public:
OMCClpdEnv();
~OMCClpdEnv();
bool debugOn() const { return m_debugFlag; }
void setDebug(bool debug);
LoggerRef getLogger(const String& componentName) const;
LoggerRef getLogger() const;
void init();
void shutdown();
void startServices();
String getConfigItem(
const String& itemName,
const String& defaultReturnVal="") const;
StringArray getMultiConfigItem(
const String &itemName,
const char* tokenizeSeparator = " \n\r\t\v") const;
void runSelectEngine() const;
UnnamedPipeRef getSigPipe() const { return m_sigPipe; }
void setConfigItem(const String &item, const String &value,
bool overwritePrevious=true);
void addSelectable(const SelectableIFCRef& obj,
const SelectableCallbackIFCRef& cb);
void removeSelectable(const SelectableIFCRef& obj);
static OMCClpdEnvRef& instance();
static String COMPONENT_NAME;
private:
void createLogger();
void clearSelectables();
void loadConfigItemsFromFile(const String& filename);
bool m_isRunning;
bool m_debugFlag;
LoggerRef m_logger;
Array<SelectableIFCRef> m_selectables;
Array<SelectableCallbackIFCRef> m_selectableCallbacks;
mutable Mutex m_selectableGuard;
UnnamedPipeRef m_sigPipe;
OMCClpdServerRef m_clpServer;
};
#endif // OMCCLPDENV_HPP_GUARD