31 #ifndef OPAL_OPAL_CONSOLE_MGR_H
32 #define OPAL_OPAL_CONSOLE_MGR_H
39 #include <ptclib/cli.h>
46 class OpalCapiEndPoint;
61 virtual PString GetArgumentSpec()
const;
62 virtual void Usage(ostream & strm,
const PArgList & args);
64 virtual bool Initialise(
67 const PString & defaultRoute = PString::Empty()
70 virtual void EndRun(
bool interrupt =
false);
89 OpalCapiEndPoint * CreateCapiEndPoint();
104 class OpalManagerCLI :
public OpalManagerConsole
106 PCLASSINFO(OpalManagerCLI, OpalManagerConsole);
112 virtual PString GetArgumentSpec()
const;
113 virtual bool Initialise(
116 const PString & defaultRoute = PString::Empty()
119 virtual void EndRun(
bool interrupt);
129 PDECLARE_NOTIFIER(PCLI::Arguments, OpalManagerCLI, CmdRegister);
133 PDECLARE_NOTIFIER(PCLI::Arguments, OpalManagerCLI, CmdNat);
137 PDECLARE_NOTIFIER(PCLI::Arguments, OpalManagerCLI, CmdTrace);
140 PDECLARE_NOTIFIER(PCLI::Arguments, OpalManagerCLI, CmdListCodecs);
141 PDECLARE_NOTIFIER(PCLI::Arguments, OpalManagerCLI, CmdDelay);
142 PDECLARE_NOTIFIER(PCLI::Arguments, OpalManagerCLI, CmdVersion);
143 PDECLARE_NOTIFIER(PCLI::Arguments, OpalManagerCLI, CmdQuit);
144 PDECLARE_NOTIFIER(PCLI::Arguments, OpalManagerCLI, CmdShutDown);
152 template <
class Manager,
157 PProcess::CodeStatus Status = PProcess::ReleaseCode,
160 class OpalConsoleProcess :
public PProcess
162 PCLASSINFO(OpalConsoleProcess, PProcess)
165 : PProcess(Manuf, Name, MajorVersion, MinorVersion, Status, BuildNumber)
170 ~OpalConsoleProcess()
172 delete this->m_manager;
177 this->SetTerminationValue(1);
178 this->m_manager =
new Manager;
179 if (this->m_manager->Initialise(this->GetArguments(), Verbose)) {
180 this->SetTerminationValue(0);
181 this->m_manager->Run();
185 virtual bool OnInterrupt(
bool)
187 if (this->m_manager == NULL)
190 this->m_manager->EndRun(
true);
201 #endif // OPAL_OPAL_CONSOLE_MGR_H