[go: up one dir, main page]

Menu

[r463]: / clp / trunk / src / omcclp.h  Maximize  Restore  History

Download this file

148 lines (124 with data), 4.3 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/****************************************************************************
|
| 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 Brad Nicholes
*/
#ifndef OMC_OMCCLP_H_INCLUDE_GUARD_
#define OMC_OMCCLP_H_INCLUDE_GUARD_
#include "omcclpcommon.h"
#include "omcclpprogram.h"
#include "version.h"
#include <openwbem/OW_Reference.hpp>
#include <openwbem/OW_Thread.hpp>
#include <openwbem/OW_ThreadBarrier.hpp>
#include <openwbem/OW_NonRecursiveMutexLock.hpp>
#include <openwbem/OW_UnnamedPipe.hpp>
namespace OMCCLP {
class OMCCLPApplication;
typedef Reference<OMCCLPApplication> OMCCLPApplicationRef;
/**
* This class is the main program class. It starts the initializs the readline
* library, opens the configuration files, creates the initial CIMClient object
* and then enters the run() method.
*
*/
class OMCCLPServerThread;
typedef Reference<OMCCLPServerThread> OMCCLPServerThreadRef;
/**
* This class is the clp server thread class. It starts the
* initializs the clp server.
*
*/
class OMCCLPServerThread : public Thread {
public:
/**
* Create a OMCCLPProgram object. This represents the main running
* program.
*/
OMCCLPServerThread(Condition& cond, NonRecursiveMutex& lock)
: m_running(false)
, m_shuttingDown(false)
, m_debugMode(false)
, m_logger(0)
, m_condition(cond)
, m_threadBarrier(2)
, m_guard(lock)
, m_sigPipe(0)
, m_data_filename()
{}
~OMCCLPServerThread(){}
virtual void shutdown();
virtual Int32 run ();
bool running() {return m_running;}
void setDebugMode(bool debug) {m_debugMode = debug;}
void setConfFilename (const String filename) {m_data_filename = filename;}
private:
bool m_running;
bool m_shuttingDown;
bool m_debugMode;
LoggerRef m_logger;
Condition& m_condition;
ThreadBarrier m_threadBarrier;
NonRecursiveMutex& m_guard;
UnnamedPipeRef m_sigPipe;
String m_data_filename; // Configuration data file name
};
class OMCCLPClientThread;
typedef Reference<OMCCLPClientThread> OMCCLPClientThreadRef;
/**
* This class is the clp client thread class. It starts the
* initializs the clp client.
*
*/
class OMCCLPClientThread : public Thread {
public:
/**
* Create a OMCCLPProgram object. This represents the main running
* program.
*/
OMCCLPClientThread()
: m_running(false)
, m_shuttingDown(false)
, m_debugMode(false)
, m_logger(0) {}
~OMCCLPClientThread(){}
virtual void shutdown();
virtual Int32 run ();
void setDebugMode(bool debug) {m_debugMode = debug;}
void setConfFilename (const String filename) {m_data_filename = filename;}
void setScriptFilenames (const StringArray filenames) {m_script_filenames = filenames;}
void setCIMURL (const String cimURL) {m_CIMURL = cimURL;}
void setCIMNamespace (const String cimNamespace) {m_CIMNamespace = cimNamespace;}
void setExecCmd (const String execCmd) {m_exec_cmd = execCmd;}
private:
bool m_running;
bool m_shuttingDown;
bool m_debugMode;
LoggerRef m_logger;
String m_CIMURL; // Override CIM URL
String m_CIMNamespace; // Override CIM namespace
String m_data_filename; // Configuration data file name
String m_exec_cmd; // Override CIM namespace
StringArray m_script_filenames; // Scripted command file
};
}
#endif