dropped "c" prefix from class names

This commit is contained in:
Nick Bolton 2014-11-11 13:51:47 +00:00
parent f6c05e7635
commit e8e156f0e2
382 changed files with 7430 additions and 7423 deletions

View File

@ -43,8 +43,8 @@ const UINT CMSWindowsClientTaskBarReceiver::s_stateToIconID[kMaxState] =
};
CMSWindowsClientTaskBarReceiver::CMSWindowsClientTaskBarReceiver(
HINSTANCE appInstance, const CBufferedLogOutputter* logBuffer, IEventQueue* events) :
CClientTaskBarReceiver(events),
HINSTANCE appInstance, const BufferedLogOutputter* logBuffer, IEventQueue* events) :
ClientTaskBarReceiver(events),
m_appInstance(appInstance),
m_window(NULL),
m_logBuffer(logBuffer)
@ -229,8 +229,8 @@ CMSWindowsClientTaskBarReceiver::copyLog() const
{
if (m_logBuffer != NULL) {
// collect log buffer
CString data;
for (CBufferedLogOutputter::const_iterator index = m_logBuffer->begin();
String data;
for (BufferedLogOutputter::const_iterator index = m_logBuffer->begin();
index != m_logBuffer->end(); ++index) {
data += *index;
data += "\n";
@ -297,14 +297,14 @@ CMSWindowsClientTaskBarReceiver::createWindow()
SetWindowLongPtr(m_window, GWL_EXSTYLE, style);
// tell the task bar about this dialog
CArchTaskBarWindows::addDialog(m_window);
ArchTaskBarWindows::addDialog(m_window);
}
void
CMSWindowsClientTaskBarReceiver::destroyWindow()
{
if (m_window != NULL) {
CArchTaskBarWindows::removeDialog(m_window);
ArchTaskBarWindows::removeDialog(m_window);
DestroyWindow(m_window);
m_window = NULL;
}
@ -359,14 +359,14 @@ CMSWindowsClientTaskBarReceiver::staticDlgProc(HWND hwnd,
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer, IEventQueue* events)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer, IEventQueue* events)
{
CArchMiscWindows::setIcons(
(HICON)LoadImage(CArchMiscWindows::instanceWin32(),
ArchMiscWindows::setIcons(
(HICON)LoadImage(ArchMiscWindows::instanceWin32(),
MAKEINTRESOURCE(IDI_SYNERGY),
IMAGE_ICON,
32, 32, LR_SHARED),
(HICON)LoadImage(CArchMiscWindows::instanceWin32(),
(HICON)LoadImage(ArchMiscWindows::instanceWin32(),
MAKEINTRESOURCE(IDI_SYNERGY),
IMAGE_ICON,
16, 16, LR_SHARED));

View File

@ -23,13 +23,13 @@
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
class CBufferedLogOutputter;
class BufferedLogOutputter;
class IEventQueue;
//! Implementation of CClientTaskBarReceiver for Microsoft Windows
class CMSWindowsClientTaskBarReceiver : public CClientTaskBarReceiver {
//! Implementation of ClientTaskBarReceiver for Microsoft Windows
class CMSWindowsClientTaskBarReceiver : public ClientTaskBarReceiver {
public:
CMSWindowsClientTaskBarReceiver(HINSTANCE, const CBufferedLogOutputter*, IEventQueue* events);
CMSWindowsClientTaskBarReceiver(HINSTANCE, const BufferedLogOutputter*, IEventQueue* events);
virtual ~CMSWindowsClientTaskBarReceiver();
// IArchTaskBarReceiver overrides
@ -42,7 +42,7 @@ public:
protected:
void copyLog() const;
// CClientTaskBarReceiver overrides
// ClientTaskBarReceiver overrides
virtual void onStatusChanged();
private:
@ -62,7 +62,7 @@ private:
HWND m_window;
HMENU m_menu;
HICON m_icon[kMaxState];
const CBufferedLogOutputter* m_logBuffer;
const BufferedLogOutputter* m_logBuffer;
static const UINT s_stateToIconID[];
};

View File

@ -20,50 +20,50 @@
#include "arch/Arch.h"
//
// COSXClientTaskBarReceiver
// OSXClientTaskBarReceiver
//
COSXClientTaskBarReceiver::COSXClientTaskBarReceiver(
const CBufferedLogOutputter*,
OSXClientTaskBarReceiver::OSXClientTaskBarReceiver(
const BufferedLogOutputter*,
IEventQueue* events) :
CClientTaskBarReceiver(events)
ClientTaskBarReceiver(events)
{
// add ourself to the task bar
ARCH->addReceiver(this);
}
COSXClientTaskBarReceiver::~COSXClientTaskBarReceiver()
OSXClientTaskBarReceiver::~OSXClientTaskBarReceiver()
{
ARCH->removeReceiver(this);
}
void
COSXClientTaskBarReceiver::showStatus()
OSXClientTaskBarReceiver::showStatus()
{
// do nothing
}
void
COSXClientTaskBarReceiver::runMenu(int, int)
OSXClientTaskBarReceiver::runMenu(int, int)
{
// do nothing
}
void
COSXClientTaskBarReceiver::primaryAction()
OSXClientTaskBarReceiver::primaryAction()
{
// do nothing
}
const IArchTaskBarReceiver::Icon
COSXClientTaskBarReceiver::getIcon() const
OSXClientTaskBarReceiver::getIcon() const
{
return NULL;
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer, IEventQueue* events)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer, IEventQueue* events)
{
return new COSXClientTaskBarReceiver(logBuffer, events);
return new OSXClientTaskBarReceiver(logBuffer, events);
}

View File

@ -20,14 +20,14 @@
#include "synergy/ClientTaskBarReceiver.h"
class CBufferedLogOutputter;
class BufferedLogOutputter;
class IEventQueue;
//! Implementation of CClientTaskBarReceiver for OS X
class COSXClientTaskBarReceiver : public CClientTaskBarReceiver {
//! Implementation of ClientTaskBarReceiver for OS X
class OSXClientTaskBarReceiver : public ClientTaskBarReceiver {
public:
COSXClientTaskBarReceiver(const CBufferedLogOutputter*, IEventQueue* events);
virtual ~COSXClientTaskBarReceiver();
OSXClientTaskBarReceiver(const BufferedLogOutputter*, IEventQueue* events);
virtual ~OSXClientTaskBarReceiver();
// IArchTaskBarReceiver overrides
virtual void showStatus();

View File

@ -24,9 +24,9 @@
//
CXWindowsClientTaskBarReceiver::CXWindowsClientTaskBarReceiver(
const CBufferedLogOutputter*,
const BufferedLogOutputter*,
IEventQueue* events) :
CClientTaskBarReceiver(events)
ClientTaskBarReceiver(events)
{
// add ourself to the task bar
ARCH->addReceiver(this);
@ -62,7 +62,7 @@ CXWindowsClientTaskBarReceiver::getIcon() const
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer, IEventQueue* events)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer, IEventQueue* events)
{
return new CXWindowsClientTaskBarReceiver(logBuffer, events);
}

View File

@ -20,14 +20,14 @@
#include "synergy/ClientTaskBarReceiver.h"
class CBufferedLogOutputter;
class BufferedLogOutputter;
class IEventQueue;
//! Implementation of CClientTaskBarReceiver for X Windows
class CXWindowsClientTaskBarReceiver : public CClientTaskBarReceiver {
//! Implementation of ClientTaskBarReceiver for X Windows
class CXWindowsClientTaskBarReceiver : public ClientTaskBarReceiver {
public:
CXWindowsClientTaskBarReceiver(
const CBufferedLogOutputter*, IEventQueue* events);
const BufferedLogOutputter*, IEventQueue* events);
virtual ~CXWindowsClientTaskBarReceiver();
// IArchTaskBarReceiver overrides

View File

@ -36,15 +36,15 @@ main(int argc, char** argv)
{
#if SYSAPI_WIN32
// record window instance for tray icon, etc
CArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL));
ArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL));
#endif
CArch arch;
Arch arch;
arch.init();
CLog log;
CEventQueue events;
Log log;
EventQueue events;
CClientApp app(&events, createTaskBarReceiver);
ClientApp app(&events, createTaskBarReceiver);
return app.run(argc, argv);
}

View File

@ -25,7 +25,7 @@
int
main(int argc, char** argv)
{
CDaemonApp app;
DaemonApp app;
return app.run(argc, argv);
}
@ -37,7 +37,7 @@ main(int argc, char** argv)
int WINAPI
WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
CDaemonApp app;
DaemonApp app;
return app.run(__argc, __argv);
}

View File

@ -42,8 +42,8 @@ const UINT CMSWindowsPortableTaskBarReceiver::s_stateToIconID[kMaxState] =
};
CMSWindowsPortableTaskBarReceiver::CMSWindowsPortableTaskBarReceiver(
HINSTANCE appInstance, const CBufferedLogOutputter* logBuffer, IEventQueue* events) :
CPortableTaskBarReceiver(events),
HINSTANCE appInstance, const BufferedLogOutputter* logBuffer, IEventQueue* events) :
PortableTaskBarReceiver(events),
m_events(events),
m_appInstance(appInstance),
m_window(NULL),
@ -181,17 +181,17 @@ CMSWindowsPortableTaskBarReceiver::runMenu(int x, int y)
break;
case IDC_RELOAD_CONFIG:
m_events->addEvent(CEvent(m_events->forCServerApp().reloadConfig(),
m_events->addEvent(Event(m_events->forCServerApp().reloadConfig(),
m_events->getSystemTarget()));
break;
case IDC_FORCE_RECONNECT:
m_events->addEvent(CEvent(m_events->forCServerApp().forceReconnect(),
m_events->addEvent(Event(m_events->forCServerApp().forceReconnect(),
m_events->getSystemTarget()));
break;
case ID_SYNERGY_RESETSERVER:
m_events->addEvent(CEvent(m_events->forCServerApp().resetServer(),
m_events->addEvent(Event(m_events->forCServerApp().resetServer(),
m_events->getSystemTarget()));
break;
@ -246,8 +246,8 @@ CMSWindowsPortableTaskBarReceiver::copyLog() const
{
if (m_logBuffer != NULL) {
// collect log buffer
CString data;
for (CBufferedLogOutputter::const_iterator index = m_logBuffer->begin();
String data;
for (BufferedLogOutputter::const_iterator index = m_logBuffer->begin();
index != m_logBuffer->end(); ++index) {
data += *index;
data += "\n";
@ -314,14 +314,14 @@ CMSWindowsPortableTaskBarReceiver::createWindow()
SetWindowLongPtr(m_window, GWL_EXSTYLE, style);
// tell the task bar about this dialog
CArchTaskBarWindows::addDialog(m_window);
ArchTaskBarWindows::addDialog(m_window);
}
void
CMSWindowsPortableTaskBarReceiver::destroyWindow()
{
if (m_window != NULL) {
CArchTaskBarWindows::removeDialog(m_window);
ArchTaskBarWindows::removeDialog(m_window);
DestroyWindow(m_window);
m_window = NULL;
}
@ -377,14 +377,14 @@ CMSWindowsPortableTaskBarReceiver::staticDlgProc(HWND hwnd,
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer, IEventQueue* events)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer, IEventQueue* events)
{
CArchMiscWindows::setIcons(
(HICON)LoadImage(CArchMiscWindows::instanceWin32(),
ArchMiscWindows::setIcons(
(HICON)LoadImage(ArchMiscWindows::instanceWin32(),
MAKEINTRESOURCE(IDI_SYNERGY),
IMAGE_ICON,
32, 32, LR_SHARED),
(HICON)LoadImage(CArchMiscWindows::instanceWin32(),
(HICON)LoadImage(ArchMiscWindows::instanceWin32(),
MAKEINTRESOURCE(IDI_SYNERGY),
IMAGE_ICON,
16, 16, LR_SHARED));

View File

@ -23,13 +23,13 @@
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
class CBufferedLogOutputter;
class BufferedLogOutputter;
class IEventQueue;
//! Implementation of CPortableTaskBarReceiver for Microsoft Windows
class CMSWindowsPortableTaskBarReceiver : public CPortableTaskBarReceiver {
//! Implementation of PortableTaskBarReceiver for Microsoft Windows
class CMSWindowsPortableTaskBarReceiver : public PortableTaskBarReceiver {
public:
CMSWindowsPortableTaskBarReceiver(HINSTANCE, const CBufferedLogOutputter*, IEventQueue* events);
CMSWindowsPortableTaskBarReceiver(HINSTANCE, const BufferedLogOutputter*, IEventQueue* events);
virtual ~CMSWindowsPortableTaskBarReceiver();
// IArchTaskBarReceiver overrides
@ -42,7 +42,7 @@ public:
protected:
void copyLog() const;
// CPortableTaskBarReceiver overrides
// PortableTaskBarReceiver overrides
virtual void onStatusChanged();
private:
@ -62,7 +62,7 @@ private:
HWND m_window;
HMENU m_menu;
HICON m_icon[kMaxState];
const CBufferedLogOutputter* m_logBuffer;
const BufferedLogOutputter* m_logBuffer;
IEventQueue* m_events;
static const UINT s_stateToIconID[];

View File

@ -20,47 +20,47 @@
#include "arch/Arch.h"
//
// COSXServerTaskBarReceiver
// OSXServerTaskBarReceiver
//
COSXServerTaskBarReceiver::COSXServerTaskBarReceiver(
const CBufferedLogOutputter*)
OSXServerTaskBarReceiver::OSXServerTaskBarReceiver(
const BufferedLogOutputter*)
{
// add ourself to the task bar
ARCH->addReceiver(this);
}
COSXServerTaskBarReceiver::~COSXServerTaskBarReceiver()
OSXServerTaskBarReceiver::~OSXServerTaskBarReceiver()
{
ARCH->removeReceiver(this);
}
void
COSXServerTaskBarReceiver::showStatus()
OSXServerTaskBarReceiver::showStatus()
{
// do nothing
}
void
COSXServerTaskBarReceiver::runMenu(int, int)
OSXServerTaskBarReceiver::runMenu(int, int)
{
// do nothing
}
void
COSXServerTaskBarReceiver::primaryAction()
OSXServerTaskBarReceiver::primaryAction()
{
// do nothing
}
const IArchTaskBarReceiver::Icon
COSXServerTaskBarReceiver::getIcon() const
OSXServerTaskBarReceiver::getIcon() const
{
return NULL;
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer)
{
return new COSXServerTaskBarReceiver(logBuffer);
return new OSXServerTaskBarReceiver(logBuffer);
}

View File

@ -20,13 +20,13 @@
#include "synergyp/PortableTaskBarReceiver.h"
class CBufferedLogOutputter;
class BufferedLogOutputter;
//! Implementation of CPortableTaskBarReceiver for OS X
class COSXServerTaskBarReceiver : public CPortableTaskBarReceiver {
//! Implementation of PortableTaskBarReceiver for OS X
class OSXServerTaskBarReceiver : public PortableTaskBarReceiver {
public:
COSXServerTaskBarReceiver(const CBufferedLogOutputter*);
virtual ~COSXServerTaskBarReceiver();
OSXServerTaskBarReceiver(const BufferedLogOutputter*);
virtual ~OSXServerTaskBarReceiver();
// IArchTaskBarReceiver overrides
virtual void showStatus();

View File

@ -24,7 +24,7 @@
//
CXWindowsServerTaskBarReceiver::CXWindowsServerTaskBarReceiver(
const CBufferedLogOutputter*)
const BufferedLogOutputter*)
{
// add ourself to the task bar
ARCH->addReceiver(this);
@ -60,7 +60,7 @@ CXWindowsServerTaskBarReceiver::getIcon() const
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer)
{
return new CXWindowsServerTaskBarReceiver(logBuffer);
}

View File

@ -20,12 +20,12 @@
#include "synergyp/PortableTaskBarReceiver.h"
class CBufferedLogOutputter;
class BufferedLogOutputter;
//! Implementation of CPortableTaskBarReceiver for X Windows
class CXWindowsServerTaskBarReceiver : public CPortableTaskBarReceiver {
//! Implementation of PortableTaskBarReceiver for X Windows
class CXWindowsServerTaskBarReceiver : public PortableTaskBarReceiver {
public:
CXWindowsServerTaskBarReceiver(const CBufferedLogOutputter*);
CXWindowsServerTaskBarReceiver(const BufferedLogOutputter*);
virtual ~CXWindowsServerTaskBarReceiver();
// IArchTaskBarReceiver overrides

View File

@ -39,16 +39,16 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, INT nCmdSh
{
#if SYSAPI_WIN32
// record window instance for tray icon, etc
CArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL));
ArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL));
#endif
CArch arch;
Arch arch;
arch.init();
CLog log;
CEventQueue events;
Log log;
EventQueue events;
CLOG->insert(new CMesssageBoxLogOutputter());
CLOG->insert(new MesssageBoxLogOutputter());
int argc = __argc;
char** argv = __argv;
@ -79,11 +79,11 @@ WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, INT nCmdSh
}
if (server) {
CServerApp app(&events, createTaskBarReceiver);
ServerApp app(&events, createTaskBarReceiver);
return app.run(argc, argv);
}
else if (client) {
CClientApp app(&events, createTaskBarReceiver);
ClientApp app(&events, createTaskBarReceiver);
return app.run(argc, argv);
}

View File

@ -43,8 +43,8 @@ const UINT CMSWindowsServerTaskBarReceiver::s_stateToIconID[kMaxState] =
};
CMSWindowsServerTaskBarReceiver::CMSWindowsServerTaskBarReceiver(
HINSTANCE appInstance, const CBufferedLogOutputter* logBuffer, IEventQueue* events) :
CServerTaskBarReceiver(events),
HINSTANCE appInstance, const BufferedLogOutputter* logBuffer, IEventQueue* events) :
ServerTaskBarReceiver(events),
m_events(events),
m_appInstance(appInstance),
m_window(NULL),
@ -93,7 +93,7 @@ CMSWindowsServerTaskBarReceiver::showStatus()
std::string status = getToolTip();
// get the connect clients, if any
const CClients& clients = getClients();
const Clients& clients = getClients();
// done getting status
unlock();
@ -103,7 +103,7 @@ CMSWindowsServerTaskBarReceiver::showStatus()
SendMessage(child, WM_SETTEXT, 0, (LPARAM)status.c_str());
child = GetDlgItem(m_window, IDC_TASKBAR_STATUS_CLIENTS);
SendMessage(child, LB_RESETCONTENT, 0, 0);
for (CClients::const_iterator index = clients.begin();
for (Clients::const_iterator index = clients.begin();
index != clients.end(); ) {
const char* client = index->c_str();
if (++index == clients.end()) {
@ -195,17 +195,17 @@ CMSWindowsServerTaskBarReceiver::runMenu(int x, int y)
break;
case IDC_RELOAD_CONFIG:
m_events->addEvent(CEvent(m_events->forCServerApp().reloadConfig(),
m_events->addEvent(Event(m_events->forCServerApp().reloadConfig(),
m_events->getSystemTarget()));
break;
case IDC_FORCE_RECONNECT:
m_events->addEvent(CEvent(m_events->forCServerApp().forceReconnect(),
m_events->addEvent(Event(m_events->forCServerApp().forceReconnect(),
m_events->getSystemTarget()));
break;
case ID_SYNERGY_RESETSERVER:
m_events->addEvent(CEvent(m_events->forCServerApp().resetServer(),
m_events->addEvent(Event(m_events->forCServerApp().resetServer(),
m_events->getSystemTarget()));
break;
@ -260,8 +260,8 @@ CMSWindowsServerTaskBarReceiver::copyLog() const
{
if (m_logBuffer != NULL) {
// collect log buffer
CString data;
for (CBufferedLogOutputter::const_iterator index = m_logBuffer->begin();
String data;
for (BufferedLogOutputter::const_iterator index = m_logBuffer->begin();
index != m_logBuffer->end(); ++index) {
data += *index;
data += "\n";
@ -328,14 +328,14 @@ CMSWindowsServerTaskBarReceiver::createWindow()
SetWindowLongPtr(m_window, GWL_EXSTYLE, style);
// tell the task bar about this dialog
CArchTaskBarWindows::addDialog(m_window);
ArchTaskBarWindows::addDialog(m_window);
}
void
CMSWindowsServerTaskBarReceiver::destroyWindow()
{
if (m_window != NULL) {
CArchTaskBarWindows::removeDialog(m_window);
ArchTaskBarWindows::removeDialog(m_window);
DestroyWindow(m_window);
m_window = NULL;
}
@ -391,14 +391,14 @@ CMSWindowsServerTaskBarReceiver::staticDlgProc(HWND hwnd,
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer, IEventQueue* events)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer, IEventQueue* events)
{
CArchMiscWindows::setIcons(
(HICON)LoadImage(CArchMiscWindows::instanceWin32(),
ArchMiscWindows::setIcons(
(HICON)LoadImage(ArchMiscWindows::instanceWin32(),
MAKEINTRESOURCE(IDI_SYNERGY),
IMAGE_ICON,
32, 32, LR_SHARED),
(HICON)LoadImage(CArchMiscWindows::instanceWin32(),
(HICON)LoadImage(ArchMiscWindows::instanceWin32(),
MAKEINTRESOURCE(IDI_SYNERGY),
IMAGE_ICON,
16, 16, LR_SHARED));

View File

@ -23,13 +23,13 @@
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
class CBufferedLogOutputter;
class BufferedLogOutputter;
class IEventQueue;
//! Implementation of CServerTaskBarReceiver for Microsoft Windows
class CMSWindowsServerTaskBarReceiver : public CServerTaskBarReceiver {
//! Implementation of ServerTaskBarReceiver for Microsoft Windows
class CMSWindowsServerTaskBarReceiver : public ServerTaskBarReceiver {
public:
CMSWindowsServerTaskBarReceiver(HINSTANCE, const CBufferedLogOutputter*, IEventQueue* events);
CMSWindowsServerTaskBarReceiver(HINSTANCE, const BufferedLogOutputter*, IEventQueue* events);
virtual ~CMSWindowsServerTaskBarReceiver();
// IArchTaskBarReceiver overrides
@ -42,7 +42,7 @@ public:
protected:
void copyLog() const;
// CServerTaskBarReceiver overrides
// ServerTaskBarReceiver overrides
virtual void onStatusChanged();
private:
@ -62,7 +62,7 @@ private:
HWND m_window;
HMENU m_menu;
HICON m_icon[kMaxState];
const CBufferedLogOutputter* m_logBuffer;
const BufferedLogOutputter* m_logBuffer;
IEventQueue* m_events;
static const UINT s_stateToIconID[];

View File

@ -20,48 +20,48 @@
#include "arch/Arch.h"
//
// COSXServerTaskBarReceiver
// OSXServerTaskBarReceiver
//
COSXServerTaskBarReceiver::COSXServerTaskBarReceiver(
const CBufferedLogOutputter*, IEventQueue* events) :
CServerTaskBarReceiver(events)
OSXServerTaskBarReceiver::OSXServerTaskBarReceiver(
const BufferedLogOutputter*, IEventQueue* events) :
ServerTaskBarReceiver(events)
{
// add ourself to the task bar
ARCH->addReceiver(this);
}
COSXServerTaskBarReceiver::~COSXServerTaskBarReceiver()
OSXServerTaskBarReceiver::~OSXServerTaskBarReceiver()
{
ARCH->removeReceiver(this);
}
void
COSXServerTaskBarReceiver::showStatus()
OSXServerTaskBarReceiver::showStatus()
{
// do nothing
}
void
COSXServerTaskBarReceiver::runMenu(int, int)
OSXServerTaskBarReceiver::runMenu(int, int)
{
// do nothing
}
void
COSXServerTaskBarReceiver::primaryAction()
OSXServerTaskBarReceiver::primaryAction()
{
// do nothing
}
const IArchTaskBarReceiver::Icon
COSXServerTaskBarReceiver::getIcon() const
OSXServerTaskBarReceiver::getIcon() const
{
return NULL;
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer, IEventQueue* events)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer, IEventQueue* events)
{
return new COSXServerTaskBarReceiver(logBuffer, events);
return new OSXServerTaskBarReceiver(logBuffer, events);
}

View File

@ -20,13 +20,13 @@
#include "synergy/ServerTaskBarReceiver.h"
class CBufferedLogOutputter;
class BufferedLogOutputter;
//! Implementation of CServerTaskBarReceiver for OS X
class COSXServerTaskBarReceiver : public CServerTaskBarReceiver {
//! Implementation of ServerTaskBarReceiver for OS X
class OSXServerTaskBarReceiver : public ServerTaskBarReceiver {
public:
COSXServerTaskBarReceiver(const CBufferedLogOutputter*, IEventQueue* events);
virtual ~COSXServerTaskBarReceiver();
OSXServerTaskBarReceiver(const BufferedLogOutputter*, IEventQueue* events);
virtual ~OSXServerTaskBarReceiver();
// IArchTaskBarReceiver overrides
virtual void showStatus();

View File

@ -24,8 +24,8 @@
//
CXWindowsServerTaskBarReceiver::CXWindowsServerTaskBarReceiver(
const CBufferedLogOutputter*, IEventQueue* events) :
CServerTaskBarReceiver(events)
const BufferedLogOutputter*, IEventQueue* events) :
ServerTaskBarReceiver(events)
{
// add ourself to the task bar
ARCH->addReceiver(this);
@ -61,7 +61,7 @@ CXWindowsServerTaskBarReceiver::getIcon() const
}
IArchTaskBarReceiver*
createTaskBarReceiver(const CBufferedLogOutputter* logBuffer, IEventQueue* events)
createTaskBarReceiver(const BufferedLogOutputter* logBuffer, IEventQueue* events)
{
return new CXWindowsServerTaskBarReceiver(logBuffer, events);
}

View File

@ -20,14 +20,14 @@
#include "synergy/ServerTaskBarReceiver.h"
class CBufferedLogOutputter;
class BufferedLogOutputter;
class IEventQueue;
//! Implementation of CServerTaskBarReceiver for X Windows
class CXWindowsServerTaskBarReceiver : public CServerTaskBarReceiver {
//! Implementation of ServerTaskBarReceiver for X Windows
class CXWindowsServerTaskBarReceiver : public ServerTaskBarReceiver {
public:
CXWindowsServerTaskBarReceiver(
const CBufferedLogOutputter*, IEventQueue* events);
const BufferedLogOutputter*, IEventQueue* events);
virtual ~CXWindowsServerTaskBarReceiver();
// IArchTaskBarReceiver overrides

View File

@ -36,15 +36,15 @@ main(int argc, char** argv)
{
#if SYSAPI_WIN32
// record window instance for tray icon, etc
CArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL));
ArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL));
#endif
CArch arch;
Arch arch;
arch.init();
CLog log;
CEventQueue events;
Log log;
EventQueue events;
CServerApp app(&events, createTaskBarReceiver);
ServerApp app(&events, createTaskBarReceiver);
return app.run(argc, argv);
}

View File

@ -23,12 +23,12 @@ main(int argc, char** argv)
{
#if SYSAPI_WIN32
// record window instance for tray icon, etc
CArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL));
ArchMiscWindows::setInstanceWin32(GetModuleHandle(NULL));
#endif
CArch arch;
Arch arch;
arch.init();
CToolApp app;
ToolApp app;
return app.run(argc, argv);
}

View File

@ -19,36 +19,36 @@
#include "arch/Arch.h"
//
// CArch
// Arch
//
CArch* CArch::s_instance = NULL;
Arch* Arch::s_instance = NULL;
CArch::CArch()
Arch::Arch()
{
assert(s_instance == NULL);
s_instance = this;
}
CArch::~CArch()
Arch::~Arch()
{
#if SYSAPI_WIN32
CArchMiscWindows::cleanup();
ArchMiscWindows::cleanup();
#endif
}
void
CArch::init()
Arch::init()
{
ARCH_NETWORK::init();
#if SYSAPI_WIN32
ARCH_TASKBAR::init();
CArchMiscWindows::init();
ArchMiscWindows::init();
#endif
}
CArch*
CArch::getInstance()
Arch*
Arch::getInstance()
{
assert(s_instance != NULL);
return s_instance;

View File

@ -72,9 +72,9 @@
/*!
\def ARCH
This macro evaluates to the singleton CArch object.
This macro evaluates to the singleton Arch object.
*/
#define ARCH (CArch::getInstance())
#define ARCH (Arch::getInstance())
//! Delegating implementation of architecture dependent interfaces
/*!
@ -86,7 +86,7 @@ to each method to those implementations. Clients should use the
exactly one of these objects before attempting to call any method,
typically at the beginning of \c main().
*/
class CArch : public ARCH_CONSOLE,
class Arch : public ARCH_CONSOLE,
public ARCH_DAEMON,
public ARCH_FILE,
public ARCH_LOG,
@ -98,8 +98,8 @@ class CArch : public ARCH_CONSOLE,
public ARCH_TASKBAR,
public ARCH_TIME {
public:
CArch();
virtual ~CArch();
Arch();
virtual ~Arch();
//! Call init on other arch classes.
/*!
@ -114,32 +114,32 @@ public:
//! Return the singleton instance
/*!
The client must have instantiated exactly once CArch object before
The client must have instantiated exactly once Arch object before
calling this function.
*/
static CArch* getInstance();
static Arch* getInstance();
ARCH_PLUGIN& plugin() const { return (ARCH_PLUGIN&)m_plugin; }
ARCH_INTERNET& internet() const { return (ARCH_INTERNET&)m_internet; }
private:
static CArch* s_instance;
static Arch* s_instance;
ARCH_PLUGIN m_plugin;
ARCH_INTERNET m_internet;
};
//! Convenience object to lock/unlock an arch mutex
class CArchMutexLock {
class ArchMutexLock {
public:
CArchMutexLock(CArchMutex mutex) : m_mutex(mutex)
ArchMutexLock(ArchMutex mutex) : m_mutex(mutex)
{
ARCH->lockMutex(m_mutex);
}
~CArchMutexLock()
~ArchMutexLock()
{
ARCH->unlockMutex(m_mutex);
}
private:
CArchMutex m_mutex;
ArchMutex m_mutex;
};

View File

@ -22,7 +22,7 @@
#include <iostream>
void
CArchConsoleStd::writeConsole(ELevel level, const char* str)
ArchConsoleStd::writeConsole(ELevel level, const char* str)
{
if ((level >= kFATAL) && (level <= kWARNING))
std::cerr << str << std::endl;

View File

@ -21,10 +21,10 @@
#include "arch/IArchConsole.h"
//! Cross platform implementation of IArchConsole
class CArchConsoleStd : public IArchConsole {
class ArchConsoleStd : public IArchConsole {
public:
CArchConsoleStd() { }
virtual ~CArchConsoleStd() { }
ArchConsoleStd() { }
virtual ~ArchConsoleStd() { }
// IArchConsole overrides
virtual void openConsole(const char* title) { }

View File

@ -19,21 +19,21 @@
#include "arch/ArchDaemonNone.h"
//
// CArchDaemonNone
// ArchDaemonNone
//
CArchDaemonNone::CArchDaemonNone()
ArchDaemonNone::ArchDaemonNone()
{
// do nothing
}
CArchDaemonNone::~CArchDaemonNone()
ArchDaemonNone::~ArchDaemonNone()
{
// do nothing
}
void
CArchDaemonNone::installDaemon(const char*,
ArchDaemonNone::installDaemon(const char*,
const char*,
const char*,
const char*,
@ -43,13 +43,13 @@ CArchDaemonNone::installDaemon(const char*,
}
void
CArchDaemonNone::uninstallDaemon(const char*)
ArchDaemonNone::uninstallDaemon(const char*)
{
// do nothing
}
int
CArchDaemonNone::daemonize(const char* name, DaemonFunc func)
ArchDaemonNone::daemonize(const char* name, DaemonFunc func)
{
// simply forward the call to func. obviously, this doesn't
// do any daemonizing.
@ -57,29 +57,29 @@ CArchDaemonNone::daemonize(const char* name, DaemonFunc func)
}
bool
CArchDaemonNone::canInstallDaemon(const char*)
ArchDaemonNone::canInstallDaemon(const char*)
{
return false;
}
bool
CArchDaemonNone::isDaemonInstalled(const char*)
ArchDaemonNone::isDaemonInstalled(const char*)
{
return false;
}
void
CArchDaemonNone::installDaemon()
ArchDaemonNone::installDaemon()
{
}
void
CArchDaemonNone::uninstallDaemon()
ArchDaemonNone::uninstallDaemon()
{
}
std::string
CArchDaemonNone::commandLine() const
ArchDaemonNone::commandLine() const
{
return "";
}

View File

@ -20,7 +20,7 @@
#include "arch/IArchDaemon.h"
#define ARCH_DAEMON CArchDaemonNone
#define ARCH_DAEMON ArchDaemonNone
//! Dummy implementation of IArchDaemon
/*!
@ -29,10 +29,10 @@ daemons. The install and uninstall functions do nothing, the query
functions return false, and \c daemonize() simply calls the passed
function and returns its result.
*/
class CArchDaemonNone : public IArchDaemon {
class ArchDaemonNone : public IArchDaemon {
public:
CArchDaemonNone();
virtual ~CArchDaemonNone();
ArchDaemonNone();
virtual ~ArchDaemonNone();
// IArchDaemon overrides
virtual void installDaemon(const char* name,

View File

@ -86,16 +86,16 @@ public:
Becomes a service. Argument 0 is the name of the service
and the rest are the arguments passed to StartService().
\c func is only called when the service is actually started.
\c func must call \c CArchMiscWindows::runDaemon() to finally
\c func must call \c ArchMiscWindows::runDaemon() to finally
becoming a service. The \c runFunc function passed to \c runDaemon()
must call \c CArchMiscWindows::daemonRunning(true) when it
must call \c ArchMiscWindows::daemonRunning(true) when it
enters the main loop (i.e. after initialization) and
\c CArchMiscWindows::daemonRunning(false) when it leaves
\c ArchMiscWindows::daemonRunning(false) when it leaves
the main loop. The \c stopFunc function passed to \c runDaemon()
is called when the daemon must exit the main loop and it must cause
\c runFunc to return. \c func should return what \c runDaemon()
returns. \c func or \c runFunc can call
\c CArchMiscWindows::daemonFailed() to indicate startup failure.
\c ArchMiscWindows::daemonFailed() to indicate startup failure.
</ul>
*/
virtual int daemonize(const char* name, DaemonFunc func) = 0;

View File

@ -21,47 +21,47 @@
#include "common/IInterface.h"
/*!
\class CArchCondImpl
\class ArchCondImpl
\brief Internal condition variable data.
An architecture dependent type holding the necessary data for a
condition variable.
*/
class CArchCondImpl;
class ArchCondImpl;
/*!
\var CArchCond
\var ArchCond
\brief Opaque condition variable type.
An opaque type representing a condition variable.
*/
typedef CArchCondImpl* CArchCond;
typedef ArchCondImpl* ArchCond;
/*!
\class CArchMutexImpl
\class ArchMutexImpl
\brief Internal mutex data.
An architecture dependent type holding the necessary data for a mutex.
*/
class CArchMutexImpl;
class ArchMutexImpl;
/*!
\var CArchMutex
\var ArchMutex
\brief Opaque mutex type.
An opaque type representing a mutex.
*/
typedef CArchMutexImpl* CArchMutex;
typedef ArchMutexImpl* ArchMutex;
/*!
\class CArchThreadImpl
\class ArchThreadImpl
\brief Internal thread data.
An architecture dependent type holding the necessary data for a thread.
*/
class CArchThreadImpl;
class ArchThreadImpl;
/*!
\var CArchThread
\var ArchThread
\brief Opaque thread type.
An opaque type representing a thread.
*/
typedef CArchThreadImpl* CArchThread;
typedef ArchThreadImpl* ArchThread;
//! Interface for architecture dependent multithreading
/*!
@ -100,22 +100,22 @@ public:
/*!
The condition variable is an opaque data type.
*/
virtual CArchCond newCondVar() = 0;
virtual ArchCond newCondVar() = 0;
//! Destroy a condition variable
virtual void closeCondVar(CArchCond) = 0;
virtual void closeCondVar(ArchCond) = 0;
//! Signal a condition variable
/*!
Signalling a condition variable releases one waiting thread.
*/
virtual void signalCondVar(CArchCond) = 0;
virtual void signalCondVar(ArchCond) = 0;
//! Broadcast a condition variable
/*!
Broadcasting a condition variable releases all waiting threads.
*/
virtual void broadcastCondVar(CArchCond) = 0;
virtual void broadcastCondVar(ArchCond) = 0;
//! Wait on a condition variable
/*!
@ -128,7 +128,7 @@ public:
(Cancellation point)
*/
virtual bool waitCondVar(CArchCond, CArchMutex, double timeout) = 0;
virtual bool waitCondVar(ArchCond, ArchMutex, double timeout) = 0;
//
// mutex methods
@ -140,16 +140,16 @@ public:
when it already holds a lock on that mutex. The mutex is an
opaque data type.
*/
virtual CArchMutex newMutex() = 0;
virtual ArchMutex newMutex() = 0;
//! Destroy a mutex
virtual void closeMutex(CArchMutex) = 0;
virtual void closeMutex(ArchMutex) = 0;
//! Lock a mutex
virtual void lockMutex(CArchMutex) = 0;
virtual void lockMutex(ArchMutex) = 0;
//! Unlock a mutex
virtual void unlockMutex(CArchMutex) = 0;
virtual void unlockMutex(ArchMutex) = 0;
//
// thread methods
@ -160,19 +160,19 @@ public:
Creates and starts a new thread, using \c func as the entry point
and passing it \c userData. The thread is an opaque data type.
*/
virtual CArchThread newThread(ThreadFunc func, void* userData) = 0;
virtual ArchThread newThread(ThreadFunc func, void* userData) = 0;
//! Get a reference to the calling thread
/*!
Returns a thread representing the current (i.e. calling) thread.
*/
virtual CArchThread newCurrentThread() = 0;
virtual ArchThread newCurrentThread() = 0;
//! Copy a thread object
/*!
Returns a reference to to thread referred to by \c thread.
*/
virtual CArchThread copyThread(CArchThread thread) = 0;
virtual ArchThread copyThread(ArchThread thread) = 0;
//! Release a thread reference
/*!
@ -181,7 +181,7 @@ public:
Use cancelThread() and waitThread() to stop a thread and wait for
it to exit.
*/
virtual void closeThread(CArchThread) = 0;
virtual void closeThread(ArchThread) = 0;
//! Force a thread to exit
/*!
@ -191,7 +191,7 @@ public:
must always let cancellation go to completion but may take as
long as necessary to clean up.
*/
virtual void cancelThread(CArchThread thread) = 0;
virtual void cancelThread(ArchThread thread) = 0;
//! Change thread priority
/*!
@ -199,7 +199,7 @@ public:
the thread has a lower priority and if negative a higher priority.
Some architectures may not support either or both directions.
*/
virtual void setPriorityOfThread(CArchThread, int n) = 0;
virtual void setPriorityOfThread(ArchThread, int n) = 0;
//! Cancellation point
/*!
@ -220,20 +220,20 @@ public:
(Cancellation point)
*/
virtual bool wait(CArchThread thread, double timeout) = 0;
virtual bool wait(ArchThread thread, double timeout) = 0;
//! Compare threads
/*!
Returns true iff two thread objects refer to the same thread.
Note that comparing thread objects directly is meaningless.
*/
virtual bool isSameThread(CArchThread, CArchThread) = 0;
virtual bool isSameThread(ArchThread, ArchThread) = 0;
//! Test if thread exited
/*!
Returns true iff \c thread has exited.
*/
virtual bool isExitedThread(CArchThread thread) = 0;
virtual bool isExitedThread(ArchThread thread) = 0;
//! Returns the exit code of a thread
/*!
@ -242,7 +242,7 @@ public:
(Cancellation point)
*/
virtual void* getResultOfThread(CArchThread thread) = 0;
virtual void* getResultOfThread(ArchThread thread) = 0;
//! Returns an ID for a thread
/*!
@ -251,7 +251,7 @@ public:
However, clients should us isSameThread() to compare thread objects
instead of comparing IDs.
*/
virtual ThreadID getIDOfThread(CArchThread thread) = 0;
virtual ThreadID getIDOfThread(ArchThread thread) = 0;
//! Set the interrupt handler
/*!

View File

@ -21,37 +21,37 @@
#include "common/IInterface.h"
#include "common/stdstring.h"
class CArchThreadImpl;
typedef CArchThreadImpl* CArchThread;
class ArchThreadImpl;
typedef ArchThreadImpl* ArchThread;
/*!
\class CArchSocketImpl
\class ArchSocketImpl
\brief Internal socket data.
An architecture dependent type holding the necessary data for a socket.
*/
class CArchSocketImpl;
class ArchSocketImpl;
/*!
\var CArchSocket
\var ArchSocket
\brief Opaque socket type.
An opaque type representing a socket.
*/
typedef CArchSocketImpl* CArchSocket;
typedef ArchSocketImpl* ArchSocket;
/*!
\class CArchNetAddressImpl
\class ArchNetAddressImpl
\brief Internal network address data.
An architecture dependent type holding the necessary data for a network
address.
*/
class CArchNetAddressImpl;
class ArchNetAddressImpl;
/*!
\var CArchNetAddress
\var ArchNetAddress
\brief Opaque network address type.
An opaque type representing a network address.
*/
typedef CArchNetAddressImpl* CArchNetAddress;
typedef ArchNetAddressImpl* ArchNetAddress;
//! Interface for architecture dependent networking
/*!
@ -85,10 +85,10 @@ public:
};
//! A socket query for \c poll()
class CPollEntry {
class PollEntry {
public:
//! The socket to query
CArchSocket m_socket;
ArchSocket m_socket;
//! The events to query for
/*!
@ -108,13 +108,13 @@ public:
/*!
The socket is an opaque data type.
*/
virtual CArchSocket newSocket(EAddressFamily, ESocketType) = 0;
virtual ArchSocket newSocket(EAddressFamily, ESocketType) = 0;
//! Copy a socket object
/*!
Returns a reference to to socket referred to by \c s.
*/
virtual CArchSocket copySocket(CArchSocket s) = 0;
virtual ArchSocket copySocket(ArchSocket s) = 0;
//! Release a socket reference
/*!
@ -122,31 +122,31 @@ public:
the object referred to until there are no remaining references for
the socket.
*/
virtual void closeSocket(CArchSocket s) = 0;
virtual void closeSocket(ArchSocket s) = 0;
//! Close socket for further reads
/*!
Calling this disallows future reads on socket \c s.
*/
virtual void closeSocketForRead(CArchSocket s) = 0;
virtual void closeSocketForRead(ArchSocket s) = 0;
//! Close socket for further writes
/*!
Calling this disallows future writes on socket \c s.
*/
virtual void closeSocketForWrite(CArchSocket s) = 0;
virtual void closeSocketForWrite(ArchSocket s) = 0;
//! Bind socket to address
/*!
Binds socket \c s to the address \c addr.
*/
virtual void bindSocket(CArchSocket s, CArchNetAddress addr) = 0;
virtual void bindSocket(ArchSocket s, ArchNetAddress addr) = 0;
//! Listen for connections on socket
/*!
Causes the socket \c s to begin listening for incoming connections.
*/
virtual void listenOnSocket(CArchSocket s) = 0;
virtual void listenOnSocket(ArchSocket s) = 0;
//! Accept connection on socket
/*!
@ -158,7 +158,7 @@ public:
it's not in the listening state and it's connected. Returns NULL
if there are no pending connection requests.
*/
virtual CArchSocket acceptSocket(CArchSocket s, CArchNetAddress* addr) = 0;
virtual ArchSocket acceptSocket(ArchSocket s, ArchNetAddress* addr) = 0;
//! Connect socket
/*!
@ -169,7 +169,7 @@ public:
socket for writing to detect when the connection finally succeeds
or fails.
*/
virtual bool connectSocket(CArchSocket s, CArchNetAddress addr) = 0;
virtual bool connectSocket(ArchSocket s, ArchNetAddress addr) = 0;
//! Check socket state
/*!
@ -186,7 +186,7 @@ public:
(Cancellation point)
*/
virtual int pollSocket(CPollEntry[], int num, double timeout) = 0;
virtual int pollSocket(PollEntry[], int num, double timeout) = 0;
//! Unblock thread in pollSocket()
/*!
@ -194,7 +194,7 @@ public:
call may return before the thread is unblocked. If the thread is
not in a pollSocket() call this call has no effect.
*/
virtual void unblockPollSocket(CArchThread thread) = 0;
virtual void unblockPollSocket(ArchThread thread) = 0;
//! Read data from socket
/*!
@ -203,7 +203,7 @@ public:
if not enough data is available. Returns 0 if the remote end has
disconnected and/or there is no more queued received data.
*/
virtual size_t readSocket(CArchSocket s, void* buf, size_t len) = 0;
virtual size_t readSocket(ArchSocket s, void* buf, size_t len) = 0;
//! Write data from socket
/*!
@ -212,7 +212,7 @@ public:
\c len if the remote end disconnected or the internal buffers fill
up.
*/
virtual size_t writeSocket(CArchSocket s,
virtual size_t writeSocket(ArchSocket s,
const void* buf, size_t len) = 0;
//! Check error on socket
@ -220,61 +220,61 @@ public:
If the socket \c s is in an error state then throws an appropriate
XArchNetwork exception.
*/
virtual void throwErrorOnSocket(CArchSocket s) = 0;
virtual void throwErrorOnSocket(ArchSocket s) = 0;
//! Turn Nagle algorithm on or off on socket
/*!
Set socket to send messages immediately (true) or to collect small
messages into one packet (false). Returns the previous state.
*/
virtual bool setNoDelayOnSocket(CArchSocket, bool noDelay) = 0;
virtual bool setNoDelayOnSocket(ArchSocket, bool noDelay) = 0;
//! Turn address reuse on or off on socket
/*!
Allows the address this socket is bound to to be reused while in the
TIME_WAIT state. Returns the previous state.
*/
virtual bool setReuseAddrOnSocket(CArchSocket, bool reuse) = 0;
virtual bool setReuseAddrOnSocket(ArchSocket, bool reuse) = 0;
//! Return local host's name
virtual std::string getHostName() = 0;
//! Create an "any" network address
virtual CArchNetAddress newAnyAddr(EAddressFamily) = 0;
virtual ArchNetAddress newAnyAddr(EAddressFamily) = 0;
//! Copy a network address
virtual CArchNetAddress copyAddr(CArchNetAddress) = 0;
virtual ArchNetAddress copyAddr(ArchNetAddress) = 0;
//! Convert a name to a network address
virtual CArchNetAddress nameToAddr(const std::string&) = 0;
virtual ArchNetAddress nameToAddr(const std::string&) = 0;
//! Destroy a network address
virtual void closeAddr(CArchNetAddress) = 0;
virtual void closeAddr(ArchNetAddress) = 0;
//! Convert an address to a host name
virtual std::string addrToName(CArchNetAddress) = 0;
virtual std::string addrToName(ArchNetAddress) = 0;
//! Convert an address to a string
virtual std::string addrToString(CArchNetAddress) = 0;
virtual std::string addrToString(ArchNetAddress) = 0;
//! Get an address's family
virtual EAddressFamily getAddrFamily(CArchNetAddress) = 0;
virtual EAddressFamily getAddrFamily(ArchNetAddress) = 0;
//! Set the port of an address
virtual void setAddrPort(CArchNetAddress, int port) = 0;
virtual void setAddrPort(ArchNetAddress, int port) = 0;
//! Get the port of an address
virtual int getAddrPort(CArchNetAddress) = 0;
virtual int getAddrPort(ArchNetAddress) = 0;
//! Test addresses for equality
virtual bool isEqualAddr(CArchNetAddress, CArchNetAddress) = 0;
virtual bool isEqualAddr(ArchNetAddress, ArchNetAddress) = 0;
//! Test for the "any" address
/*!
Returns true if \c addr is the "any" address. \c newAnyAddr()
returns an "any" address.
*/
virtual bool isAnyAddr(CArchNetAddress addr) = 0;
virtual bool isAnyAddr(ArchNetAddress addr) = 0;
//@}

View File

@ -24,7 +24,7 @@
#include <cstring>
#include <cstdlib>
static CArchMutex s_mutex = NULL;
static ArchMutex s_mutex = NULL;
//
// use C library non-reentrant multibyte conversion with mutex

View File

@ -90,7 +90,7 @@ public:
*/
virtual std::string getToolTip() const = 0;
virtual void updateStatus(INode*, const CString& errorMsg) = 0;
virtual void updateStatus(INode*, const String& errorMsg) = 0;
virtual void cleanup() {}

View File

@ -18,6 +18,6 @@
#include "arch/unix/ArchConsoleUnix.h"
CArchConsoleUnix::CArchConsoleUnix() { }
ArchConsoleUnix::ArchConsoleUnix() { }
CArchConsoleUnix::~CArchConsoleUnix() { }
ArchConsoleUnix::~ArchConsoleUnix() { }

View File

@ -20,10 +20,10 @@
#include "arch/ArchConsoleStd.h"
#define ARCH_CONSOLE CArchConsoleUnix
#define ARCH_CONSOLE ArchConsoleUnix
class CArchConsoleUnix : public CArchConsoleStd {
class ArchConsoleUnix : public ArchConsoleStd {
public:
CArchConsoleUnix();
virtual ~CArchConsoleUnix();
ArchConsoleUnix();
virtual ~ArchConsoleUnix();
};

View File

@ -29,15 +29,15 @@
#include <cstdlib>
//
// CArchDaemonUnix
// ArchDaemonUnix
//
CArchDaemonUnix::CArchDaemonUnix()
ArchDaemonUnix::ArchDaemonUnix()
{
// do nothing
}
CArchDaemonUnix::~CArchDaemonUnix()
ArchDaemonUnix::~ArchDaemonUnix()
{
// do nothing
}
@ -67,7 +67,7 @@ bool alreadyDaemonized() {
#endif
int
CArchDaemonUnix::daemonize(const char* name, DaemonFunc func)
ArchDaemonUnix::daemonize(const char* name, DaemonFunc func)
{
#ifdef __APPLE__
if (alreadyDaemonized())

View File

@ -21,13 +21,13 @@
#include "arch/ArchDaemonNone.h"
#undef ARCH_DAEMON
#define ARCH_DAEMON CArchDaemonUnix
#define ARCH_DAEMON ArchDaemonUnix
//! Unix implementation of IArchDaemon
class CArchDaemonUnix : public CArchDaemonNone {
class ArchDaemonUnix : public ArchDaemonNone {
public:
CArchDaemonUnix();
virtual ~CArchDaemonUnix();
ArchDaemonUnix();
virtual ~ArchDaemonUnix();
// IArchDaemon overrides
virtual int daemonize(const char* name, DaemonFunc func);

View File

@ -25,21 +25,21 @@
#include <cstring>
//
// CArchFileUnix
// ArchFileUnix
//
CArchFileUnix::CArchFileUnix()
ArchFileUnix::ArchFileUnix()
{
// do nothing
}
CArchFileUnix::~CArchFileUnix()
ArchFileUnix::~ArchFileUnix()
{
// do nothing
}
const char*
CArchFileUnix::getBasename(const char* pathname)
ArchFileUnix::getBasename(const char* pathname)
{
if (pathname == NULL) {
return NULL;
@ -55,7 +55,7 @@ CArchFileUnix::getBasename(const char* pathname)
}
std::string
CArchFileUnix::getUserDirectory()
ArchFileUnix::getUserDirectory()
{
char* buffer = NULL;
std::string dir;
@ -83,13 +83,12 @@ CArchFileUnix::getUserDirectory()
}
std::string
CArchFileUnix::getSystemDirectory()
ArchFileUnix::getSystemDirectory()
{
return "/etc";
}
std::string
CArchFileUnix::getInstalledDirectory()
ArchFileUnix::getInstalledDirectory()
{
#if WINAPI_XWINDOWS
return "/bin";
@ -99,13 +98,13 @@ CArchFileUnix::getInstalledDirectory()
}
std::string
CArchFileUnix::getLogDirectory()
ArchFileUnix::getLogDirectory()
{
return "/var/log";
}
std::string
CArchFileUnix::concatPath(const std::string& prefix,
ArchFileUnix::concatPath(const std::string& prefix,
const std::string& suffix)
{
std::string path;

View File

@ -20,13 +20,13 @@
#include "arch/IArchFile.h"
#define ARCH_FILE CArchFileUnix
#define ARCH_FILE ArchFileUnix
//! Unix implementation of IArchFile
class CArchFileUnix : public IArchFile {
class ArchFileUnix : public IArchFile {
public:
CArchFileUnix();
virtual ~CArchFileUnix();
ArchFileUnix();
virtual ~ArchFileUnix();
// IArchFile overrides
virtual const char* getBasename(const char* pathname);

View File

@ -28,26 +28,26 @@ class CurlFacade {
public:
CurlFacade();
~CurlFacade();
CString get(const CString& url);
CString urlEncode(const CString& url);
String get(const String& url);
String urlEncode(const String& url);
private:
CURL* m_curl;
};
//
// CArchInternetUnix
// ArchInternetUnix
//
CString
CArchInternetUnix::get(const CString& url)
String
ArchInternetUnix::get(const String& url)
{
CurlFacade curl;
return curl.get(url);
}
CString
CArchInternetUnix::urlEncode(const CString& url)
String
ArchInternetUnix::urlEncode(const String& url)
{
CurlFacade curl;
return curl.urlEncode(url);
@ -87,8 +87,8 @@ CurlFacade::~CurlFacade()
curl_global_cleanup();
}
CString
CurlFacade::get(const CString& url)
String
CurlFacade::get(const String& url)
{
curl_easy_setopt(m_curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(m_curl, CURLOPT_WRITEFUNCTION, curlWriteCallback);
@ -110,8 +110,8 @@ CurlFacade::get(const CString& url)
return result;
}
CString
CurlFacade::urlEncode(const CString& url)
String
CurlFacade::urlEncode(const String& url)
{
char* resultCStr = curl_easy_escape(m_curl, url.c_str(), 0);

View File

@ -17,12 +17,12 @@
#pragma once
#define ARCH_INTERNET CArchInternetUnix
#define ARCH_INTERNET ArchInternetUnix
#include "base/String.h"
class CArchInternetUnix {
class ArchInternetUnix {
public:
CString get(const CString& url);
CString urlEncode(const CString& url);
String get(const String& url);
String urlEncode(const String& url);
};

View File

@ -21,39 +21,39 @@
#include <syslog.h>
//
// CArchLogUnix
// ArchLogUnix
//
CArchLogUnix::CArchLogUnix()
ArchLogUnix::ArchLogUnix()
{
// do nothing
}
CArchLogUnix::~CArchLogUnix()
ArchLogUnix::~ArchLogUnix()
{
// do nothing
}
void
CArchLogUnix::openLog(const char* name)
ArchLogUnix::openLog(const char* name)
{
openlog(name, 0, LOG_DAEMON);
}
void
CArchLogUnix::closeLog()
ArchLogUnix::closeLog()
{
closelog();
}
void
CArchLogUnix::showLog(bool)
ArchLogUnix::showLog(bool)
{
// do nothing
}
void
CArchLogUnix::writeLog(ELevel level, const char* msg)
ArchLogUnix::writeLog(ELevel level, const char* msg)
{
// convert level
int priority;

View File

@ -20,13 +20,13 @@
#include "arch/IArchLog.h"
#define ARCH_LOG CArchLogUnix
#define ARCH_LOG ArchLogUnix
//! Unix implementation of IArchLog
class CArchLogUnix : public IArchLog {
class ArchLogUnix : public IArchLog {
public:
CArchLogUnix();
virtual ~CArchLogUnix();
ArchLogUnix();
virtual ~ArchLogUnix();
// IArchLog overrides
virtual void openLog(const char* name);

View File

@ -59,12 +59,12 @@ setSignalSet(sigset_t* sigset)
}
//
// CArchThreadImpl
// ArchThreadImpl
//
class CArchThreadImpl {
class ArchThreadImpl {
public:
CArchThreadImpl();
ArchThreadImpl();
public:
int m_refCount;
@ -79,7 +79,7 @@ public:
void* m_networkData;
};
CArchThreadImpl::CArchThreadImpl() :
ArchThreadImpl::ArchThreadImpl() :
m_refCount(1),
m_id(0),
m_func(NULL),
@ -95,12 +95,12 @@ CArchThreadImpl::CArchThreadImpl() :
//
// CArchMultithreadPosix
// ArchMultithreadPosix
//
CArchMultithreadPosix* CArchMultithreadPosix::s_instance = NULL;
ArchMultithreadPosix* ArchMultithreadPosix::s_instance = NULL;
CArchMultithreadPosix::CArchMultithreadPosix() :
ArchMultithreadPosix::ArchMultithreadPosix() :
m_newThreadCalled(false),
m_nextID(0)
{
@ -119,7 +119,7 @@ CArchMultithreadPosix::CArchMultithreadPosix() :
// create thread for calling (main) thread and add it to our
// list. no need to lock the mutex since we're the only thread.
m_mainThread = new CArchThreadImpl;
m_mainThread = new ArchThreadImpl;
m_mainThread->m_thread = pthread_self();
insert(m_mainThread);
@ -149,7 +149,7 @@ CArchMultithreadPosix::CArchMultithreadPosix() :
pthread_sigmask(SIG_BLOCK, &sigset, NULL);
}
CArchMultithreadPosix::~CArchMultithreadPosix()
ArchMultithreadPosix::~ArchMultithreadPosix()
{
assert(s_instance != NULL);
@ -158,16 +158,16 @@ CArchMultithreadPosix::~CArchMultithreadPosix()
}
void
CArchMultithreadPosix::setNetworkDataForCurrentThread(void* data)
ArchMultithreadPosix::setNetworkDataForCurrentThread(void* data)
{
lockMutex(m_threadMutex);
CArchThreadImpl* thread = find(pthread_self());
ArchThreadImpl* thread = find(pthread_self());
thread->m_networkData = data;
unlockMutex(m_threadMutex);
}
void*
CArchMultithreadPosix::getNetworkDataForThread(CArchThread thread)
ArchMultithreadPosix::getNetworkDataForThread(ArchThread thread)
{
lockMutex(m_threadMutex);
void* data = thread->m_networkData;
@ -175,16 +175,16 @@ CArchMultithreadPosix::getNetworkDataForThread(CArchThread thread)
return data;
}
CArchMultithreadPosix*
CArchMultithreadPosix::getInstance()
ArchMultithreadPosix*
ArchMultithreadPosix::getInstance()
{
return s_instance;
}
CArchCond
CArchMultithreadPosix::newCondVar()
ArchCond
ArchMultithreadPosix::newCondVar()
{
CArchCondImpl* cond = new CArchCondImpl;
ArchCondImpl* cond = new ArchCondImpl;
int status = pthread_cond_init(&cond->m_cond, NULL);
(void)status;
assert(status == 0);
@ -192,7 +192,7 @@ CArchMultithreadPosix::newCondVar()
}
void
CArchMultithreadPosix::closeCondVar(CArchCond cond)
ArchMultithreadPosix::closeCondVar(ArchCond cond)
{
int status = pthread_cond_destroy(&cond->m_cond);
(void)status;
@ -201,7 +201,7 @@ CArchMultithreadPosix::closeCondVar(CArchCond cond)
}
void
CArchMultithreadPosix::signalCondVar(CArchCond cond)
ArchMultithreadPosix::signalCondVar(ArchCond cond)
{
int status = pthread_cond_signal(&cond->m_cond);
(void)status;
@ -209,7 +209,7 @@ CArchMultithreadPosix::signalCondVar(CArchCond cond)
}
void
CArchMultithreadPosix::broadcastCondVar(CArchCond cond)
ArchMultithreadPosix::broadcastCondVar(ArchCond cond)
{
int status = pthread_cond_broadcast(&cond->m_cond);
(void)status;
@ -217,8 +217,8 @@ CArchMultithreadPosix::broadcastCondVar(CArchCond cond)
}
bool
CArchMultithreadPosix::waitCondVar(CArchCond cond,
CArchMutex mutex, double timeout)
ArchMultithreadPosix::waitCondVar(ArchCond cond,
ArchMutex mutex, double timeout)
{
// we can't wait on a condition variable and also wake it up for
// cancellation since we don't use posix cancellation. so we
@ -272,20 +272,20 @@ CArchMultithreadPosix::waitCondVar(CArchCond cond,
}
}
CArchMutex
CArchMultithreadPosix::newMutex()
ArchMutex
ArchMultithreadPosix::newMutex()
{
pthread_mutexattr_t attr;
int status = pthread_mutexattr_init(&attr);
assert(status == 0);
CArchMutexImpl* mutex = new CArchMutexImpl;
ArchMutexImpl* mutex = new ArchMutexImpl;
status = pthread_mutex_init(&mutex->m_mutex, &attr);
assert(status == 0);
return mutex;
}
void
CArchMultithreadPosix::closeMutex(CArchMutex mutex)
ArchMultithreadPosix::closeMutex(ArchMutex mutex)
{
int status = pthread_mutex_destroy(&mutex->m_mutex);
(void)status;
@ -294,7 +294,7 @@ CArchMultithreadPosix::closeMutex(CArchMutex mutex)
}
void
CArchMultithreadPosix::lockMutex(CArchMutex mutex)
ArchMultithreadPosix::lockMutex(ArchMutex mutex)
{
int status = pthread_mutex_lock(&mutex->m_mutex);
@ -318,7 +318,7 @@ CArchMultithreadPosix::lockMutex(CArchMutex mutex)
}
void
CArchMultithreadPosix::unlockMutex(CArchMutex mutex)
ArchMultithreadPosix::unlockMutex(ArchMutex mutex)
{
int status = pthread_mutex_unlock(&mutex->m_mutex);
@ -337,8 +337,8 @@ CArchMultithreadPosix::unlockMutex(CArchMutex mutex)
}
}
CArchThread
CArchMultithreadPosix::newThread(ThreadFunc func, void* data)
ArchThread
ArchMultithreadPosix::newThread(ThreadFunc func, void* data)
{
assert(func != NULL);
@ -359,7 +359,7 @@ CArchMultithreadPosix::newThread(ThreadFunc func, void* data)
lockMutex(m_threadMutex);
// create thread impl for new thread
CArchThreadImpl* thread = new CArchThreadImpl;
ArchThreadImpl* thread = new ArchThreadImpl;
thread->m_func = func;
thread->m_userData = data;
@ -369,7 +369,7 @@ CArchMultithreadPosix::newThread(ThreadFunc func, void* data)
int status = pthread_attr_init(&attr);
if (status == 0) {
status = pthread_create(&thread->m_thread, &attr,
&CArchMultithreadPosix::threadFunc, thread);
&ArchMultithreadPosix::threadFunc, thread);
pthread_attr_destroy(&attr);
}
@ -393,18 +393,18 @@ CArchMultithreadPosix::newThread(ThreadFunc func, void* data)
return thread;
}
CArchThread
CArchMultithreadPosix::newCurrentThread()
ArchThread
ArchMultithreadPosix::newCurrentThread()
{
lockMutex(m_threadMutex);
CArchThreadImpl* thread = find(pthread_self());
ArchThreadImpl* thread = find(pthread_self());
unlockMutex(m_threadMutex);
assert(thread != NULL);
return thread;
}
void
CArchMultithreadPosix::closeThread(CArchThread thread)
ArchMultithreadPosix::closeThread(ArchThread thread)
{
assert(thread != NULL);
@ -426,15 +426,15 @@ CArchMultithreadPosix::closeThread(CArchThread thread)
}
}
CArchThread
CArchMultithreadPosix::copyThread(CArchThread thread)
ArchThread
ArchMultithreadPosix::copyThread(ArchThread thread)
{
refThread(thread);
return thread;
}
void
CArchMultithreadPosix::cancelThread(CArchThread thread)
ArchMultithreadPosix::cancelThread(ArchThread thread)
{
assert(thread != NULL);
@ -454,7 +454,7 @@ CArchMultithreadPosix::cancelThread(CArchThread thread)
}
void
CArchMultithreadPosix::setPriorityOfThread(CArchThread thread, int /*n*/)
ArchMultithreadPosix::setPriorityOfThread(ArchThread thread, int /*n*/)
{
assert(thread != NULL);
@ -462,11 +462,11 @@ CArchMultithreadPosix::setPriorityOfThread(CArchThread thread, int /*n*/)
}
void
CArchMultithreadPosix::testCancelThread()
ArchMultithreadPosix::testCancelThread()
{
// find current thread
lockMutex(m_threadMutex);
CArchThreadImpl* thread = findNoRef(pthread_self());
ArchThreadImpl* thread = findNoRef(pthread_self());
unlockMutex(m_threadMutex);
// test cancel on thread
@ -474,14 +474,14 @@ CArchMultithreadPosix::testCancelThread()
}
bool
CArchMultithreadPosix::wait(CArchThread target, double timeout)
ArchMultithreadPosix::wait(ArchThread target, double timeout)
{
assert(target != NULL);
lockMutex(m_threadMutex);
// find current thread
CArchThreadImpl* self = findNoRef(pthread_self());
ArchThreadImpl* self = findNoRef(pthread_self());
// ignore wait if trying to wait on ourself
if (target == self) {
@ -530,13 +530,13 @@ CArchMultithreadPosix::wait(CArchThread target, double timeout)
}
bool
CArchMultithreadPosix::isSameThread(CArchThread thread1, CArchThread thread2)
ArchMultithreadPosix::isSameThread(ArchThread thread1, ArchThread thread2)
{
return (thread1 == thread2);
}
bool
CArchMultithreadPosix::isExitedThread(CArchThread thread)
ArchMultithreadPosix::isExitedThread(ArchThread thread)
{
lockMutex(m_threadMutex);
bool exited = thread->m_exited;
@ -545,7 +545,7 @@ CArchMultithreadPosix::isExitedThread(CArchThread thread)
}
void*
CArchMultithreadPosix::getResultOfThread(CArchThread thread)
ArchMultithreadPosix::getResultOfThread(ArchThread thread)
{
lockMutex(m_threadMutex);
void* result = thread->m_result;
@ -554,13 +554,13 @@ CArchMultithreadPosix::getResultOfThread(CArchThread thread)
}
IArchMultithread::ThreadID
CArchMultithreadPosix::getIDOfThread(CArchThread thread)
ArchMultithreadPosix::getIDOfThread(ArchThread thread)
{
return thread->m_id;
}
void
CArchMultithreadPosix::setSignalHandler(
ArchMultithreadPosix::setSignalHandler(
ESignal signal, SignalFunc func, void* userData)
{
lockMutex(m_threadMutex);
@ -570,7 +570,7 @@ CArchMultithreadPosix::setSignalHandler(
}
void
CArchMultithreadPosix::raiseSignal(ESignal signal)
ArchMultithreadPosix::raiseSignal(ESignal signal)
{
lockMutex(m_threadMutex);
if (m_signalFunc[signal] != NULL) {
@ -584,7 +584,7 @@ CArchMultithreadPosix::raiseSignal(ESignal signal)
}
void
CArchMultithreadPosix::startSignalHandler()
ArchMultithreadPosix::startSignalHandler()
{
// set signal mask. the main thread blocks these signals and
// the signal handler thread will listen for them.
@ -600,7 +600,7 @@ CArchMultithreadPosix::startSignalHandler()
int status = pthread_attr_init(&attr);
if (status == 0) {
status = pthread_create(&m_signalThread, &attr,
&CArchMultithreadPosix::threadSignalHandler,
&ArchMultithreadPosix::threadSignalHandler,
NULL);
pthread_attr_destroy(&attr);
}
@ -611,21 +611,21 @@ CArchMultithreadPosix::startSignalHandler()
}
}
CArchThreadImpl*
CArchMultithreadPosix::find(pthread_t thread)
ArchThreadImpl*
ArchMultithreadPosix::find(pthread_t thread)
{
CArchThreadImpl* impl = findNoRef(thread);
ArchThreadImpl* impl = findNoRef(thread);
if (impl != NULL) {
refThread(impl);
}
return impl;
}
CArchThreadImpl*
CArchMultithreadPosix::findNoRef(pthread_t thread)
ArchThreadImpl*
ArchMultithreadPosix::findNoRef(pthread_t thread)
{
// linear search
for (CThreadList::const_iterator index = m_threadList.begin();
for (ThreadList::const_iterator index = m_threadList.begin();
index != m_threadList.end(); ++index) {
if ((*index)->m_thread == thread) {
return *index;
@ -635,7 +635,7 @@ CArchMultithreadPosix::findNoRef(pthread_t thread)
}
void
CArchMultithreadPosix::insert(CArchThreadImpl* thread)
ArchMultithreadPosix::insert(ArchThreadImpl* thread)
{
assert(thread != NULL);
@ -653,9 +653,9 @@ CArchMultithreadPosix::insert(CArchThreadImpl* thread)
}
void
CArchMultithreadPosix::erase(CArchThreadImpl* thread)
ArchMultithreadPosix::erase(ArchThreadImpl* thread)
{
for (CThreadList::iterator index = m_threadList.begin();
for (ThreadList::iterator index = m_threadList.begin();
index != m_threadList.end(); ++index) {
if (*index == thread) {
m_threadList.erase(index);
@ -665,7 +665,7 @@ CArchMultithreadPosix::erase(CArchThreadImpl* thread)
}
void
CArchMultithreadPosix::refThread(CArchThreadImpl* thread)
ArchMultithreadPosix::refThread(ArchThreadImpl* thread)
{
assert(thread != NULL);
assert(findNoRef(thread->m_thread) != NULL);
@ -673,7 +673,7 @@ CArchMultithreadPosix::refThread(CArchThreadImpl* thread)
}
void
CArchMultithreadPosix::testCancelThreadImpl(CArchThreadImpl* thread)
ArchMultithreadPosix::testCancelThreadImpl(ArchThreadImpl* thread)
{
assert(thread != NULL);
@ -694,10 +694,10 @@ CArchMultithreadPosix::testCancelThreadImpl(CArchThreadImpl* thread)
}
void*
CArchMultithreadPosix::threadFunc(void* vrep)
ArchMultithreadPosix::threadFunc(void* vrep)
{
// get the thread
CArchThreadImpl* thread = reinterpret_cast<CArchThreadImpl*>(vrep);
ArchThreadImpl* thread = reinterpret_cast<ArchThreadImpl*>(vrep);
// setup pthreads
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
@ -711,7 +711,7 @@ CArchMultithreadPosix::threadFunc(void* vrep)
}
void
CArchMultithreadPosix::doThreadFunc(CArchThread thread)
ArchMultithreadPosix::doThreadFunc(ArchThread thread)
{
// default priority is slightly below normal
setPriorityOfThread(thread, 1);
@ -749,13 +749,13 @@ CArchMultithreadPosix::doThreadFunc(CArchThread thread)
}
void
CArchMultithreadPosix::threadCancel(int)
ArchMultithreadPosix::threadCancel(int)
{
// do nothing
}
void*
CArchMultithreadPosix::threadSignalHandler(void*)
ArchMultithreadPosix::threadSignalHandler(void*)
{
// detach
pthread_detach(pthread_self());

View File

@ -23,23 +23,23 @@
#include <pthread.h>
#define ARCH_MULTITHREAD CArchMultithreadPosix
#define ARCH_MULTITHREAD ArchMultithreadPosix
class CArchCondImpl {
class ArchCondImpl {
public:
pthread_cond_t m_cond;
};
class CArchMutexImpl {
class ArchMutexImpl {
public:
pthread_mutex_t m_mutex;
};
//! Posix implementation of IArchMultithread
class CArchMultithreadPosix : public IArchMultithread {
class ArchMultithreadPosix : public IArchMultithread {
public:
CArchMultithreadPosix();
virtual ~CArchMultithreadPosix();
ArchMultithreadPosix();
virtual ~ArchMultithreadPosix();
//! @name manipulators
//@{
@ -50,63 +50,63 @@ public:
//! @name accessors
//@{
void* getNetworkDataForThread(CArchThread);
void* getNetworkDataForThread(ArchThread);
static CArchMultithreadPosix* getInstance();
static ArchMultithreadPosix* getInstance();
//@}
// IArchMultithread overrides
virtual CArchCond newCondVar();
virtual void closeCondVar(CArchCond);
virtual void signalCondVar(CArchCond);
virtual void broadcastCondVar(CArchCond);
virtual bool waitCondVar(CArchCond, CArchMutex, double timeout);
virtual CArchMutex newMutex();
virtual void closeMutex(CArchMutex);
virtual void lockMutex(CArchMutex);
virtual void unlockMutex(CArchMutex);
virtual CArchThread newThread(ThreadFunc, void*);
virtual CArchThread newCurrentThread();
virtual CArchThread copyThread(CArchThread);
virtual void closeThread(CArchThread);
virtual void cancelThread(CArchThread);
virtual void setPriorityOfThread(CArchThread, int n);
virtual ArchCond newCondVar();
virtual void closeCondVar(ArchCond);
virtual void signalCondVar(ArchCond);
virtual void broadcastCondVar(ArchCond);
virtual bool waitCondVar(ArchCond, ArchMutex, double timeout);
virtual ArchMutex newMutex();
virtual void closeMutex(ArchMutex);
virtual void lockMutex(ArchMutex);
virtual void unlockMutex(ArchMutex);
virtual ArchThread newThread(ThreadFunc, void*);
virtual ArchThread newCurrentThread();
virtual ArchThread copyThread(ArchThread);
virtual void closeThread(ArchThread);
virtual void cancelThread(ArchThread);
virtual void setPriorityOfThread(ArchThread, int n);
virtual void testCancelThread();
virtual bool wait(CArchThread, double timeout);
virtual bool isSameThread(CArchThread, CArchThread);
virtual bool isExitedThread(CArchThread);
virtual void* getResultOfThread(CArchThread);
virtual ThreadID getIDOfThread(CArchThread);
virtual bool wait(ArchThread, double timeout);
virtual bool isSameThread(ArchThread, ArchThread);
virtual bool isExitedThread(ArchThread);
virtual void* getResultOfThread(ArchThread);
virtual ThreadID getIDOfThread(ArchThread);
virtual void setSignalHandler(ESignal, SignalFunc, void*);
virtual void raiseSignal(ESignal);
private:
void startSignalHandler();
CArchThreadImpl* find(pthread_t thread);
CArchThreadImpl* findNoRef(pthread_t thread);
void insert(CArchThreadImpl* thread);
void erase(CArchThreadImpl* thread);
ArchThreadImpl* find(pthread_t thread);
ArchThreadImpl* findNoRef(pthread_t thread);
void insert(ArchThreadImpl* thread);
void erase(ArchThreadImpl* thread);
void refThread(CArchThreadImpl* rep);
void testCancelThreadImpl(CArchThreadImpl* rep);
void refThread(ArchThreadImpl* rep);
void testCancelThreadImpl(ArchThreadImpl* rep);
void doThreadFunc(CArchThread thread);
void doThreadFunc(ArchThread thread);
static void* threadFunc(void* vrep);
static void threadCancel(int);
static void* threadSignalHandler(void* vrep);
private:
typedef std::list<CArchThread> CThreadList;
typedef std::list<ArchThread> ThreadList;
static CArchMultithreadPosix* s_instance;
static ArchMultithreadPosix* s_instance;
bool m_newThreadCalled;
CArchMutex m_threadMutex;
CArchThread m_mainThread;
CThreadList m_threadList;
ArchMutex m_threadMutex;
ArchThread m_mainThread;
ThreadList m_threadList;
ThreadID m_nextID;
pthread_t m_signalThread;

View File

@ -83,27 +83,27 @@ inet_aton(const char* cp, struct in_addr* inp)
#endif
//
// CArchNetworkBSD
// ArchNetworkBSD
//
CArchNetworkBSD::CArchNetworkBSD()
ArchNetworkBSD::ArchNetworkBSD()
{
}
CArchNetworkBSD::~CArchNetworkBSD()
ArchNetworkBSD::~ArchNetworkBSD()
{
ARCH->closeMutex(m_mutex);
}
void
CArchNetworkBSD::init()
ArchNetworkBSD::init()
{
// create mutex to make some calls thread safe
m_mutex = ARCH->newMutex();
}
CArchSocket
CArchNetworkBSD::newSocket(EAddressFamily family, ESocketType type)
ArchSocket
ArchNetworkBSD::newSocket(EAddressFamily family, ESocketType type)
{
// create socket
int fd = socket(s_family[family], s_type[type], 0);
@ -119,14 +119,14 @@ CArchNetworkBSD::newSocket(EAddressFamily family, ESocketType type)
}
// allocate socket object
CArchSocketImpl* newSocket = new CArchSocketImpl;
ArchSocketImpl* newSocket = new ArchSocketImpl;
newSocket->m_fd = fd;
newSocket->m_refCount = 1;
return newSocket;
}
CArchSocket
CArchNetworkBSD::copySocket(CArchSocket s)
ArchSocket
ArchNetworkBSD::copySocket(ArchSocket s)
{
assert(s != NULL);
@ -138,7 +138,7 @@ CArchNetworkBSD::copySocket(CArchSocket s)
}
void
CArchNetworkBSD::closeSocket(CArchSocket s)
ArchNetworkBSD::closeSocket(ArchSocket s)
{
assert(s != NULL);
@ -162,7 +162,7 @@ CArchNetworkBSD::closeSocket(CArchSocket s)
}
void
CArchNetworkBSD::closeSocketForRead(CArchSocket s)
ArchNetworkBSD::closeSocketForRead(ArchSocket s)
{
assert(s != NULL);
@ -174,7 +174,7 @@ CArchNetworkBSD::closeSocketForRead(CArchSocket s)
}
void
CArchNetworkBSD::closeSocketForWrite(CArchSocket s)
ArchNetworkBSD::closeSocketForWrite(ArchSocket s)
{
assert(s != NULL);
@ -186,7 +186,7 @@ CArchNetworkBSD::closeSocketForWrite(CArchSocket s)
}
void
CArchNetworkBSD::bindSocket(CArchSocket s, CArchNetAddress addr)
ArchNetworkBSD::bindSocket(ArchSocket s, ArchNetAddress addr)
{
assert(s != NULL);
assert(addr != NULL);
@ -197,7 +197,7 @@ CArchNetworkBSD::bindSocket(CArchSocket s, CArchNetAddress addr)
}
void
CArchNetworkBSD::listenOnSocket(CArchSocket s)
ArchNetworkBSD::listenOnSocket(ArchSocket s)
{
assert(s != NULL);
@ -207,20 +207,20 @@ CArchNetworkBSD::listenOnSocket(CArchSocket s)
}
}
CArchSocket
CArchNetworkBSD::acceptSocket(CArchSocket s, CArchNetAddress* addr)
ArchSocket
ArchNetworkBSD::acceptSocket(ArchSocket s, ArchNetAddress* addr)
{
assert(s != NULL);
// if user passed NULL in addr then use scratch space
CArchNetAddress dummy;
ArchNetAddress dummy;
if (addr == NULL) {
addr = &dummy;
}
// create new socket and address
CArchSocketImpl* newSocket = new CArchSocketImpl;
*addr = new CArchNetAddressImpl;
ArchSocketImpl* newSocket = new ArchSocketImpl;
*addr = new ArchNetAddressImpl;
// accept on socket
ACCEPT_TYPE_ARG3 len = (ACCEPT_TYPE_ARG3)((*addr)->m_len);
@ -261,7 +261,7 @@ CArchNetworkBSD::acceptSocket(CArchSocket s, CArchNetAddress* addr)
}
bool
CArchNetworkBSD::connectSocket(CArchSocket s, CArchNetAddress addr)
ArchNetworkBSD::connectSocket(ArchSocket s, ArchNetAddress addr)
{
assert(s != NULL);
assert(addr != NULL);
@ -281,7 +281,7 @@ CArchNetworkBSD::connectSocket(CArchSocket s, CArchNetAddress addr)
#if HAVE_POLL
int
CArchNetworkBSD::pollSocket(CPollEntry pe[], int num, double timeout)
ArchNetworkBSD::pollSocket(PollEntry pe[], int num, double timeout)
{
assert(pe != NULL || num == 0);
@ -373,7 +373,7 @@ CArchNetworkBSD::pollSocket(CPollEntry pe[], int num, double timeout)
#else
int
CArchNetworkBSD::pollSocket(CPollEntry pe[], int num, double timeout)
ArchNetworkBSD::pollSocket(PollEntry pe[], int num, double timeout)
{
int i, n;
@ -497,7 +497,7 @@ CArchNetworkBSD::pollSocket(CPollEntry pe[], int num, double timeout)
#endif
void
CArchNetworkBSD::unblockPollSocket(CArchThread thread)
ArchNetworkBSD::unblockPollSocket(ArchThread thread)
{
const int* unblockPipe = getUnblockPipeForThread(thread);
if (unblockPipe != NULL) {
@ -509,7 +509,7 @@ CArchNetworkBSD::unblockPollSocket(CArchThread thread)
}
size_t
CArchNetworkBSD::readSocket(CArchSocket s, void* buf, size_t len)
ArchNetworkBSD::readSocket(ArchSocket s, void* buf, size_t len)
{
assert(s != NULL);
@ -524,7 +524,7 @@ CArchNetworkBSD::readSocket(CArchSocket s, void* buf, size_t len)
}
size_t
CArchNetworkBSD::writeSocket(CArchSocket s, const void* buf, size_t len)
ArchNetworkBSD::writeSocket(ArchSocket s, const void* buf, size_t len)
{
assert(s != NULL);
@ -539,7 +539,7 @@ CArchNetworkBSD::writeSocket(CArchSocket s, const void* buf, size_t len)
}
void
CArchNetworkBSD::throwErrorOnSocket(CArchSocket s)
ArchNetworkBSD::throwErrorOnSocket(ArchSocket s)
{
assert(s != NULL);
@ -558,7 +558,7 @@ CArchNetworkBSD::throwErrorOnSocket(CArchSocket s)
}
void
CArchNetworkBSD::setBlockingOnSocket(int fd, bool blocking)
ArchNetworkBSD::setBlockingOnSocket(int fd, bool blocking)
{
assert(fd != -1);
@ -578,7 +578,7 @@ CArchNetworkBSD::setBlockingOnSocket(int fd, bool blocking)
}
bool
CArchNetworkBSD::setNoDelayOnSocket(CArchSocket s, bool noDelay)
ArchNetworkBSD::setNoDelayOnSocket(ArchSocket s, bool noDelay)
{
assert(s != NULL);
@ -601,7 +601,7 @@ CArchNetworkBSD::setNoDelayOnSocket(CArchSocket s, bool noDelay)
}
bool
CArchNetworkBSD::setReuseAddrOnSocket(CArchSocket s, bool reuse)
ArchNetworkBSD::setReuseAddrOnSocket(ArchSocket s, bool reuse)
{
assert(s != NULL);
@ -624,7 +624,7 @@ CArchNetworkBSD::setReuseAddrOnSocket(CArchSocket s, bool reuse)
}
std::string
CArchNetworkBSD::getHostName()
ArchNetworkBSD::getHostName()
{
char name[256];
if (gethostname(name, sizeof(name)) == -1) {
@ -636,11 +636,11 @@ CArchNetworkBSD::getHostName()
return name;
}
CArchNetAddress
CArchNetworkBSD::newAnyAddr(EAddressFamily family)
ArchNetAddress
ArchNetworkBSD::newAnyAddr(EAddressFamily family)
{
// allocate address
CArchNetAddressImpl* addr = new CArchNetAddressImpl;
ArchNetAddressImpl* addr = new ArchNetAddressImpl;
// fill it in
switch (family) {
@ -662,20 +662,20 @@ CArchNetworkBSD::newAnyAddr(EAddressFamily family)
return addr;
}
CArchNetAddress
CArchNetworkBSD::copyAddr(CArchNetAddress addr)
ArchNetAddress
ArchNetworkBSD::copyAddr(ArchNetAddress addr)
{
assert(addr != NULL);
// allocate and copy address
return new CArchNetAddressImpl(*addr);
return new ArchNetAddressImpl(*addr);
}
CArchNetAddress
CArchNetworkBSD::nameToAddr(const std::string& name)
ArchNetAddress
ArchNetworkBSD::nameToAddr(const std::string& name)
{
// allocate address
CArchNetAddressImpl* addr = new CArchNetAddressImpl;
ArchNetAddressImpl* addr = new ArchNetAddressImpl;
// try to convert assuming an IPv4 dot notation address
struct sockaddr_in inaddr;
@ -723,7 +723,7 @@ CArchNetworkBSD::nameToAddr(const std::string& name)
}
void
CArchNetworkBSD::closeAddr(CArchNetAddress addr)
ArchNetworkBSD::closeAddr(ArchNetAddress addr)
{
assert(addr != NULL);
@ -731,7 +731,7 @@ CArchNetworkBSD::closeAddr(CArchNetAddress addr)
}
std::string
CArchNetworkBSD::addrToName(CArchNetAddress addr)
ArchNetworkBSD::addrToName(ArchNetAddress addr)
{
assert(addr != NULL);
@ -755,7 +755,7 @@ CArchNetworkBSD::addrToName(CArchNetAddress addr)
}
std::string
CArchNetworkBSD::addrToString(CArchNetAddress addr)
ArchNetworkBSD::addrToString(ArchNetAddress addr)
{
assert(addr != NULL);
@ -776,7 +776,7 @@ CArchNetworkBSD::addrToString(CArchNetAddress addr)
}
IArchNetwork::EAddressFamily
CArchNetworkBSD::getAddrFamily(CArchNetAddress addr)
ArchNetworkBSD::getAddrFamily(ArchNetAddress addr)
{
assert(addr != NULL);
@ -790,7 +790,7 @@ CArchNetworkBSD::getAddrFamily(CArchNetAddress addr)
}
void
CArchNetworkBSD::setAddrPort(CArchNetAddress addr, int port)
ArchNetworkBSD::setAddrPort(ArchNetAddress addr, int port)
{
assert(addr != NULL);
@ -809,7 +809,7 @@ CArchNetworkBSD::setAddrPort(CArchNetAddress addr, int port)
}
int
CArchNetworkBSD::getAddrPort(CArchNetAddress addr)
ArchNetworkBSD::getAddrPort(ArchNetAddress addr)
{
assert(addr != NULL);
@ -827,7 +827,7 @@ CArchNetworkBSD::getAddrPort(CArchNetAddress addr)
}
bool
CArchNetworkBSD::isAnyAddr(CArchNetAddress addr)
ArchNetworkBSD::isAnyAddr(ArchNetAddress addr)
{
assert(addr != NULL);
@ -846,26 +846,26 @@ CArchNetworkBSD::isAnyAddr(CArchNetAddress addr)
}
bool
CArchNetworkBSD::isEqualAddr(CArchNetAddress a, CArchNetAddress b)
ArchNetworkBSD::isEqualAddr(ArchNetAddress a, ArchNetAddress b)
{
return (a->m_len == b->m_len &&
memcmp(&a->m_addr, &b->m_addr, a->m_len) == 0);
}
const int*
CArchNetworkBSD::getUnblockPipe()
ArchNetworkBSD::getUnblockPipe()
{
CArchMultithreadPosix* mt = CArchMultithreadPosix::getInstance();
CArchThread thread = mt->newCurrentThread();
ArchMultithreadPosix* mt = ArchMultithreadPosix::getInstance();
ArchThread thread = mt->newCurrentThread();
const int* p = getUnblockPipeForThread(thread);
ARCH->closeThread(thread);
return p;
}
const int*
CArchNetworkBSD::getUnblockPipeForThread(CArchThread thread)
ArchNetworkBSD::getUnblockPipeForThread(ArchThread thread)
{
CArchMultithreadPosix* mt = CArchMultithreadPosix::getInstance();
ArchMultithreadPosix* mt = ArchMultithreadPosix::getInstance();
int* unblockPipe = (int*)mt->getNetworkDataForThread(thread);
if (unblockPipe == NULL) {
unblockPipe = new int[2];
@ -888,7 +888,7 @@ CArchNetworkBSD::getUnblockPipeForThread(CArchThread thread)
}
void
CArchNetworkBSD::throwError(int err)
ArchNetworkBSD::throwError(int err)
{
switch (err) {
case EINTR:
@ -960,7 +960,7 @@ CArchNetworkBSD::throwError(int err)
}
void
CArchNetworkBSD::throwNameError(int err)
ArchNetworkBSD::throwNameError(int err)
{
static const char* s_msg[] = {
"The specified host is unknown",

View File

@ -37,17 +37,17 @@ typedef int socklen_t;
// compatible so we always use it.
typedef char optval_t;
#define ARCH_NETWORK CArchNetworkBSD
#define ARCH_NETWORK ArchNetworkBSD
class CArchSocketImpl {
class ArchSocketImpl {
public:
int m_fd;
int m_refCount;
};
class CArchNetAddressImpl {
class ArchNetAddressImpl {
public:
CArchNetAddressImpl() : m_len(sizeof(m_addr)) { }
ArchNetAddressImpl() : m_len(sizeof(m_addr)) { }
public:
struct sockaddr m_addr;
@ -55,50 +55,50 @@ public:
};
//! Berkeley (BSD) sockets implementation of IArchNetwork
class CArchNetworkBSD : public IArchNetwork {
class ArchNetworkBSD : public IArchNetwork {
public:
CArchNetworkBSD();
virtual ~CArchNetworkBSD();
ArchNetworkBSD();
virtual ~ArchNetworkBSD();
virtual void init();
// IArchNetwork overrides
virtual CArchSocket newSocket(EAddressFamily, ESocketType);
virtual CArchSocket copySocket(CArchSocket s); virtual void closeSocket(CArchSocket s);
virtual void closeSocketForRead(CArchSocket s);
virtual void closeSocketForWrite(CArchSocket s);
virtual void bindSocket(CArchSocket s, CArchNetAddress addr);
virtual void listenOnSocket(CArchSocket s);
virtual CArchSocket acceptSocket(CArchSocket s, CArchNetAddress* addr);
virtual bool connectSocket(CArchSocket s, CArchNetAddress name);
virtual int pollSocket(CPollEntry[], int num, double timeout);
virtual void unblockPollSocket(CArchThread thread);
virtual size_t readSocket(CArchSocket s, void* buf, size_t len);
virtual size_t writeSocket(CArchSocket s,
virtual ArchSocket newSocket(EAddressFamily, ESocketType);
virtual ArchSocket copySocket(ArchSocket s); virtual void closeSocket(ArchSocket s);
virtual void closeSocketForRead(ArchSocket s);
virtual void closeSocketForWrite(ArchSocket s);
virtual void bindSocket(ArchSocket s, ArchNetAddress addr);
virtual void listenOnSocket(ArchSocket s);
virtual ArchSocket acceptSocket(ArchSocket s, ArchNetAddress* addr);
virtual bool connectSocket(ArchSocket s, ArchNetAddress name);
virtual int pollSocket(PollEntry[], int num, double timeout);
virtual void unblockPollSocket(ArchThread thread);
virtual size_t readSocket(ArchSocket s, void* buf, size_t len);
virtual size_t writeSocket(ArchSocket s,
const void* buf, size_t len);
virtual void throwErrorOnSocket(CArchSocket);
virtual bool setNoDelayOnSocket(CArchSocket, bool noDelay);
virtual bool setReuseAddrOnSocket(CArchSocket, bool reuse);
virtual void throwErrorOnSocket(ArchSocket);
virtual bool setNoDelayOnSocket(ArchSocket, bool noDelay);
virtual bool setReuseAddrOnSocket(ArchSocket, bool reuse);
virtual std::string getHostName();
virtual CArchNetAddress newAnyAddr(EAddressFamily);
virtual CArchNetAddress copyAddr(CArchNetAddress);
virtual CArchNetAddress nameToAddr(const std::string&);
virtual void closeAddr(CArchNetAddress);
virtual std::string addrToName(CArchNetAddress);
virtual std::string addrToString(CArchNetAddress);
virtual EAddressFamily getAddrFamily(CArchNetAddress);
virtual void setAddrPort(CArchNetAddress, int port);
virtual int getAddrPort(CArchNetAddress);
virtual bool isAnyAddr(CArchNetAddress);
virtual bool isEqualAddr(CArchNetAddress, CArchNetAddress);
virtual ArchNetAddress newAnyAddr(EAddressFamily);
virtual ArchNetAddress copyAddr(ArchNetAddress);
virtual ArchNetAddress nameToAddr(const std::string&);
virtual void closeAddr(ArchNetAddress);
virtual std::string addrToName(ArchNetAddress);
virtual std::string addrToString(ArchNetAddress);
virtual EAddressFamily getAddrFamily(ArchNetAddress);
virtual void setAddrPort(ArchNetAddress, int port);
virtual int getAddrPort(ArchNetAddress);
virtual bool isAnyAddr(ArchNetAddress);
virtual bool isEqualAddr(ArchNetAddress, ArchNetAddress);
private:
const int* getUnblockPipe();
const int* getUnblockPipeForThread(CArchThread);
const int* getUnblockPipeForThread(ArchThread);
void setBlockingOnSocket(int fd, bool blocking);
void throwError(int);
void throwNameError(int);
private:
CArchMutex m_mutex;
ArchMutex m_mutex;
};

View File

@ -18,15 +18,15 @@
#include "arch/unix/ArchPluginUnix.h"
CArchPluginUnix::CArchPluginUnix()
ArchPluginUnix::ArchPluginUnix()
{
}
CArchPluginUnix::~CArchPluginUnix()
ArchPluginUnix::~ArchPluginUnix()
{
}
void
CArchPluginUnix::init(void* eventTarget, IEventQueue* events)
ArchPluginUnix::init(void* eventTarget, IEventQueue* events)
{
}

View File

@ -20,15 +20,15 @@
#include "arch/IArchPlugin.h"
#define ARCH_PLUGIN CArchPluginUnix
#define ARCH_PLUGIN ArchPluginUnix
class IEventQueue;
//! Unix implementation of IArchPlugin
class CArchPluginUnix : public IArchPlugin {
class ArchPluginUnix : public IArchPlugin {
public:
CArchPluginUnix();
virtual ~CArchPluginUnix();
ArchPluginUnix();
virtual ~ArchPluginUnix();
// IArchPlugin overrides
void init(void* eventTarget, IEventQueue* events);

View File

@ -43,21 +43,21 @@
#endif
//
// CArchSleepUnix
// ArchSleepUnix
//
CArchSleepUnix::CArchSleepUnix()
ArchSleepUnix::ArchSleepUnix()
{
// do nothing
}
CArchSleepUnix::~CArchSleepUnix()
ArchSleepUnix::~ArchSleepUnix()
{
// do nothing
}
void
CArchSleepUnix::sleep(double timeout)
ArchSleepUnix::sleep(double timeout)
{
ARCH->testCancelThread();
if (timeout < 0.0) {

View File

@ -20,13 +20,13 @@
#include "arch/IArchSleep.h"
#define ARCH_SLEEP CArchSleepUnix
#define ARCH_SLEEP ArchSleepUnix
//! Unix implementation of IArchSleep
class CArchSleepUnix : public IArchSleep {
class ArchSleepUnix : public IArchSleep {
public:
CArchSleepUnix();
virtual ~CArchSleepUnix();
ArchSleepUnix();
virtual ~ArchSleepUnix();
// IArchSleep overrides
virtual void sleep(double timeout);

View File

@ -21,22 +21,22 @@
#include <stdio.h>
//
// CArchStringUnix
// ArchStringUnix
//
#include "arch/multibyte.h"
#include "arch/vsnprintf.h"
CArchStringUnix::CArchStringUnix()
ArchStringUnix::ArchStringUnix()
{
}
CArchStringUnix::~CArchStringUnix()
ArchStringUnix::~ArchStringUnix()
{
}
IArchString::EWideCharEncoding
CArchStringUnix::getWideCharEncoding()
ArchStringUnix::getWideCharEncoding()
{
return kUCS4;
}

View File

@ -20,13 +20,13 @@
#include "arch/IArchString.h"
#define ARCH_STRING CArchStringUnix
#define ARCH_STRING ArchStringUnix
//! Unix implementation of IArchString
class CArchStringUnix : public IArchString {
class ArchStringUnix : public IArchString {
public:
CArchStringUnix();
virtual ~CArchStringUnix();
ArchStringUnix();
virtual ~ArchStringUnix();
// IArchString overrides
virtual EWideCharEncoding

View File

@ -21,21 +21,21 @@
#include <sys/utsname.h>
//
// CArchSystemUnix
// ArchSystemUnix
//
CArchSystemUnix::CArchSystemUnix()
ArchSystemUnix::ArchSystemUnix()
{
// do nothing
}
CArchSystemUnix::~CArchSystemUnix()
ArchSystemUnix::~ArchSystemUnix()
{
// do nothing
}
std::string
CArchSystemUnix::getOSName() const
ArchSystemUnix::getOSName() const
{
#if defined(HAVE_SYS_UTSNAME_H)
struct utsname info;
@ -53,7 +53,7 @@ CArchSystemUnix::getOSName() const
}
std::string
CArchSystemUnix::getPlatformName() const
ArchSystemUnix::getPlatformName() const
{
#if defined(HAVE_SYS_UTSNAME_H)
struct utsname info;
@ -65,12 +65,12 @@ CArchSystemUnix::getPlatformName() const
}
std::string
CArchSystemUnix::setting(const std::string&) const
ArchSystemUnix::setting(const std::string&) const
{
return "";
}
void
CArchSystemUnix::setting(const std::string&, const std::string&) const
ArchSystemUnix::setting(const std::string&, const std::string&) const
{
}

View File

@ -20,13 +20,13 @@
#include "arch/IArchSystem.h"
#define ARCH_SYSTEM CArchSystemUnix
#define ARCH_SYSTEM ArchSystemUnix
//! Unix implementation of IArchString
class CArchSystemUnix : public IArchSystem {
class ArchSystemUnix : public IArchSystem {
public:
CArchSystemUnix();
virtual ~CArchSystemUnix();
ArchSystemUnix();
virtual ~ArchSystemUnix();
// IArchSystem overrides
virtual std::string getOSName() const;

View File

@ -19,33 +19,33 @@
#include "arch/unix/ArchTaskBarXWindows.h"
//
// CArchTaskBarXWindows
// ArchTaskBarXWindows
//
CArchTaskBarXWindows::CArchTaskBarXWindows()
ArchTaskBarXWindows::ArchTaskBarXWindows()
{
// do nothing
}
CArchTaskBarXWindows::~CArchTaskBarXWindows()
ArchTaskBarXWindows::~ArchTaskBarXWindows()
{
// do nothing
}
void
CArchTaskBarXWindows::addReceiver(IArchTaskBarReceiver* /*receiver*/)
ArchTaskBarXWindows::addReceiver(IArchTaskBarReceiver* /*receiver*/)
{
// do nothing
}
void
CArchTaskBarXWindows::removeReceiver(IArchTaskBarReceiver* /*receiver*/)
ArchTaskBarXWindows::removeReceiver(IArchTaskBarReceiver* /*receiver*/)
{
// do nothing
}
void
CArchTaskBarXWindows::updateReceiver(IArchTaskBarReceiver* /*receiver*/)
ArchTaskBarXWindows::updateReceiver(IArchTaskBarReceiver* /*receiver*/)
{
// do nothing
}

View File

@ -20,13 +20,13 @@
#include "arch/IArchTaskBar.h"
#define ARCH_TASKBAR CArchTaskBarXWindows
#define ARCH_TASKBAR ArchTaskBarXWindows
//! X11 implementation of IArchTaskBar
class CArchTaskBarXWindows : public IArchTaskBar {
class ArchTaskBarXWindows : public IArchTaskBar {
public:
CArchTaskBarXWindows();
virtual ~CArchTaskBarXWindows();
ArchTaskBarXWindows();
virtual ~ArchTaskBarXWindows();
// IArchTaskBar overrides
virtual void addReceiver(IArchTaskBarReceiver*);

View File

@ -30,21 +30,21 @@
#endif
//
// CArchTimeUnix
// ArchTimeUnix
//
CArchTimeUnix::CArchTimeUnix()
ArchTimeUnix::ArchTimeUnix()
{
// do nothing
}
CArchTimeUnix::~CArchTimeUnix()
ArchTimeUnix::~ArchTimeUnix()
{
// do nothing
}
double
CArchTimeUnix::time()
ArchTimeUnix::time()
{
struct timeval t;
gettimeofday(&t, NULL);

View File

@ -20,13 +20,13 @@
#include "arch/IArchTime.h"
#define ARCH_TIME CArchTimeUnix
#define ARCH_TIME ArchTimeUnix
//! Generic Unix implementation of IArchTime
class CArchTimeUnix : public IArchTime {
class ArchTimeUnix : public IArchTime {
public:
CArchTimeUnix();
virtual ~CArchTimeUnix();
ArchTimeUnix();
virtual ~ArchTimeUnix();
// IArchTime overrides
virtual double time();

View File

@ -18,6 +18,6 @@
#include "arch/win32/ArchConsoleWindows.h"
CArchConsoleWindows::CArchConsoleWindows() { }
ArchConsoleWindows::ArchConsoleWindows() { }
CArchConsoleWindows::~CArchConsoleWindows() { }
ArchConsoleWindows::~ArchConsoleWindows() { }

View File

@ -20,10 +20,10 @@
#include "arch/ArchConsoleStd.h"
#define ARCH_CONSOLE CArchConsoleWindows
#define ARCH_CONSOLE ArchConsoleWindows
class CArchConsoleWindows : public CArchConsoleStd {
class ArchConsoleWindows : public ArchConsoleStd {
public:
CArchConsoleWindows();
virtual ~CArchConsoleWindows();
ArchConsoleWindows();
virtual ~ArchConsoleWindows();
};

View File

@ -25,31 +25,31 @@
#include <sstream>
//
// CArchDaemonWindows
// ArchDaemonWindows
//
CArchDaemonWindows* CArchDaemonWindows::s_daemon = NULL;
ArchDaemonWindows* ArchDaemonWindows::s_daemon = NULL;
CArchDaemonWindows::CArchDaemonWindows() :
ArchDaemonWindows::ArchDaemonWindows() :
m_daemonThreadID(0)
{
m_quitMessage = RegisterWindowMessage("SynergyDaemonExit");
}
CArchDaemonWindows::~CArchDaemonWindows()
ArchDaemonWindows::~ArchDaemonWindows()
{
// do nothing
}
int
CArchDaemonWindows::runDaemon(RunFunc runFunc)
ArchDaemonWindows::runDaemon(RunFunc runFunc)
{
assert(s_daemon != NULL);
return s_daemon->doRunDaemon(runFunc);
}
void
CArchDaemonWindows::daemonRunning(bool running)
ArchDaemonWindows::daemonRunning(bool running)
{
if (s_daemon != NULL) {
s_daemon->doDaemonRunning(running);
@ -57,7 +57,7 @@ CArchDaemonWindows::daemonRunning(bool running)
}
UINT
CArchDaemonWindows::getDaemonQuitMessage()
ArchDaemonWindows::getDaemonQuitMessage()
{
if (s_daemon != NULL) {
return s_daemon->doGetDaemonQuitMessage();
@ -68,14 +68,14 @@ CArchDaemonWindows::getDaemonQuitMessage()
}
void
CArchDaemonWindows::daemonFailed(int result)
ArchDaemonWindows::daemonFailed(int result)
{
assert(s_daemon != NULL);
throw XArchDaemonRunFailed(result);
}
void
CArchDaemonWindows::installDaemon(const char* name,
ArchDaemonWindows::installDaemon(const char* name,
const char* description,
const char* pathname,
const char* commandLine,
@ -122,7 +122,7 @@ CArchDaemonWindows::installDaemon(const char* name,
// open the registry key for this service
HKEY key = openNTServicesKey();
key = CArchMiscWindows::addKey(key, name);
key = ArchMiscWindows::addKey(key, name);
if (key == NULL) {
// can't open key
DWORD err = GetLastError();
@ -136,14 +136,14 @@ CArchDaemonWindows::installDaemon(const char* name,
}
// set the description
CArchMiscWindows::setValue(key, _T("Description"), description);
ArchMiscWindows::setValue(key, _T("Description"), description);
// set command line
key = CArchMiscWindows::addKey(key, _T("Parameters"));
key = ArchMiscWindows::addKey(key, _T("Parameters"));
if (key == NULL) {
// can't open key
DWORD err = GetLastError();
CArchMiscWindows::closeKey(key);
ArchMiscWindows::closeKey(key);
try {
uninstallDaemon(name);
}
@ -152,21 +152,21 @@ CArchDaemonWindows::installDaemon(const char* name,
}
throw XArchDaemonInstallFailed(new XArchEvalWindows(err));
}
CArchMiscWindows::setValue(key, _T("CommandLine"), commandLine);
ArchMiscWindows::setValue(key, _T("CommandLine"), commandLine);
// done with registry
CArchMiscWindows::closeKey(key);
ArchMiscWindows::closeKey(key);
}
void
CArchDaemonWindows::uninstallDaemon(const char* name)
ArchDaemonWindows::uninstallDaemon(const char* name)
{
// remove parameters for this service. ignore failures.
HKEY key = openNTServicesKey();
key = CArchMiscWindows::openKey(key, name);
key = ArchMiscWindows::openKey(key, name);
if (key != NULL) {
CArchMiscWindows::deleteKey(key, _T("Parameters"));
CArchMiscWindows::closeKey(key);
ArchMiscWindows::deleteKey(key, _T("Parameters"));
ArchMiscWindows::closeKey(key);
}
// open service manager
@ -223,7 +223,7 @@ CArchDaemonWindows::uninstallDaemon(const char* name)
}
int
CArchDaemonWindows::daemonize(const char* name, DaemonFunc func)
ArchDaemonWindows::daemonize(const char* name, DaemonFunc func)
{
assert(name != NULL);
assert(func != NULL);
@ -234,7 +234,7 @@ CArchDaemonWindows::daemonize(const char* name, DaemonFunc func)
// construct the service entry
SERVICE_TABLE_ENTRY entry[2];
entry[0].lpServiceName = const_cast<char*>(name);
entry[0].lpServiceProc = &CArchDaemonWindows::serviceMainEntry;
entry[0].lpServiceProc = &ArchDaemonWindows::serviceMainEntry;
entry[1].lpServiceName = NULL;
entry[1].lpServiceProc = NULL;
@ -252,7 +252,7 @@ CArchDaemonWindows::daemonize(const char* name, DaemonFunc func)
}
bool
CArchDaemonWindows::canInstallDaemon(const char* /*name*/)
ArchDaemonWindows::canInstallDaemon(const char* /*name*/)
{
// check if we can open service manager for write
SC_HANDLE mgr = OpenSCManager(NULL, NULL, GENERIC_WRITE);
@ -263,13 +263,13 @@ CArchDaemonWindows::canInstallDaemon(const char* /*name*/)
// check if we can open the registry key
HKEY key = openNTServicesKey();
CArchMiscWindows::closeKey(key);
ArchMiscWindows::closeKey(key);
return (key != NULL);
}
bool
CArchDaemonWindows::isDaemonInstalled(const char* name)
ArchDaemonWindows::isDaemonInstalled(const char* name)
{
// open service manager
SC_HANDLE mgr = OpenSCManager(NULL, NULL, GENERIC_READ);
@ -290,7 +290,7 @@ CArchDaemonWindows::isDaemonInstalled(const char* name)
}
HKEY
CArchDaemonWindows::openNTServicesKey()
ArchDaemonWindows::openNTServicesKey()
{
static const char* s_keyNames[] = {
_T("SYSTEM"),
@ -299,11 +299,11 @@ CArchDaemonWindows::openNTServicesKey()
NULL
};
return CArchMiscWindows::addKey(HKEY_LOCAL_MACHINE, s_keyNames);
return ArchMiscWindows::addKey(HKEY_LOCAL_MACHINE, s_keyNames);
}
bool
CArchDaemonWindows::isRunState(DWORD state)
ArchDaemonWindows::isRunState(DWORD state)
{
switch (state) {
case SERVICE_START_PENDING:
@ -317,7 +317,7 @@ CArchDaemonWindows::isRunState(DWORD state)
}
int
CArchDaemonWindows::doRunDaemon(RunFunc run)
ArchDaemonWindows::doRunDaemon(RunFunc run)
{
// should only be called from DaemonFunc
assert(m_serviceMutex != NULL);
@ -370,7 +370,7 @@ CArchDaemonWindows::doRunDaemon(RunFunc run)
}
void
CArchDaemonWindows::doDaemonRunning(bool running)
ArchDaemonWindows::doDaemonRunning(bool running)
{
ARCH->lockMutex(m_serviceMutex);
if (running) {
@ -382,19 +382,19 @@ CArchDaemonWindows::doDaemonRunning(bool running)
}
UINT
CArchDaemonWindows::doGetDaemonQuitMessage()
ArchDaemonWindows::doGetDaemonQuitMessage()
{
return m_quitMessage;
}
void
CArchDaemonWindows::setStatus(DWORD state)
ArchDaemonWindows::setStatus(DWORD state)
{
setStatus(state, 0, 0);
}
void
CArchDaemonWindows::setStatus(DWORD state, DWORD step, DWORD waitHint)
ArchDaemonWindows::setStatus(DWORD state, DWORD step, DWORD waitHint)
{
assert(s_daemon != NULL);
@ -413,7 +413,7 @@ CArchDaemonWindows::setStatus(DWORD state, DWORD step, DWORD waitHint)
}
void
CArchDaemonWindows::setStatusError(DWORD error)
ArchDaemonWindows::setStatusError(DWORD error)
{
assert(s_daemon != NULL);
@ -432,7 +432,7 @@ CArchDaemonWindows::setStatusError(DWORD error)
}
void
CArchDaemonWindows::serviceMain(DWORD argc, LPTSTR* argvIn)
ArchDaemonWindows::serviceMain(DWORD argc, LPTSTR* argvIn)
{
typedef std::vector<LPCTSTR> ArgList;
typedef std::vector<std::string> Arguments;
@ -444,7 +444,7 @@ CArchDaemonWindows::serviceMain(DWORD argc, LPTSTR* argvIn)
// register our service handler function
m_statusHandle = RegisterServiceCtrlHandler(argv[0],
&CArchDaemonWindows::serviceHandlerEntry);
&ArchDaemonWindows::serviceHandlerEntry);
if (m_statusHandle == 0) {
// cannot start as service
m_daemonResult = -1;
@ -466,10 +466,10 @@ CArchDaemonWindows::serviceMain(DWORD argc, LPTSTR* argvIn)
if (argc <= 1) {
// read command line
HKEY key = openNTServicesKey();
key = CArchMiscWindows::openKey(key, argvIn[0]);
key = CArchMiscWindows::openKey(key, _T("Parameters"));
key = ArchMiscWindows::openKey(key, argvIn[0]);
key = ArchMiscWindows::openKey(key, _T("Parameters"));
if (key != NULL) {
commandLine = CArchMiscWindows::readValueString(key,
commandLine = ArchMiscWindows::readValueString(key,
_T("CommandLine"));
}
@ -553,13 +553,13 @@ CArchDaemonWindows::serviceMain(DWORD argc, LPTSTR* argvIn)
}
void WINAPI
CArchDaemonWindows::serviceMainEntry(DWORD argc, LPTSTR* argv)
ArchDaemonWindows::serviceMainEntry(DWORD argc, LPTSTR* argv)
{
s_daemon->serviceMain(argc, argv);
}
void
CArchDaemonWindows::serviceHandler(DWORD ctrl)
ArchDaemonWindows::serviceHandler(DWORD ctrl)
{
assert(m_serviceMutex != NULL);
assert(m_serviceCondVar != NULL);
@ -616,13 +616,13 @@ CArchDaemonWindows::serviceHandler(DWORD ctrl)
}
void WINAPI
CArchDaemonWindows::serviceHandlerEntry(DWORD ctrl)
ArchDaemonWindows::serviceHandlerEntry(DWORD ctrl)
{
s_daemon->serviceHandler(ctrl);
}
void
CArchDaemonWindows::start(const char* name)
ArchDaemonWindows::start(const char* name)
{
// open service manager
SC_HANDLE mgr = OpenSCManager(NULL, NULL, GENERIC_READ);
@ -646,7 +646,7 @@ CArchDaemonWindows::start(const char* name)
}
void
CArchDaemonWindows::stop(const char* name)
ArchDaemonWindows::stop(const char* name)
{
// open service manager
SC_HANDLE mgr = OpenSCManager(NULL, NULL, GENERIC_READ);
@ -675,12 +675,12 @@ CArchDaemonWindows::stop(const char* name)
}
void
CArchDaemonWindows::installDaemon()
ArchDaemonWindows::installDaemon()
{
// install default daemon if not already installed.
if (!isDaemonInstalled(DEFAULT_DAEMON_NAME)) {
char path[MAX_PATH];
GetModuleFileName(CArchMiscWindows::instanceWin32(), path, MAX_PATH);
GetModuleFileName(ArchMiscWindows::instanceWin32(), path, MAX_PATH);
// wrap in quotes so a malicious user can't start \Program.exe as admin.
std::stringstream ss;
@ -695,7 +695,7 @@ CArchDaemonWindows::installDaemon()
}
void
CArchDaemonWindows::uninstallDaemon()
ArchDaemonWindows::uninstallDaemon()
{
// remove legacy services if installed.
if (isDaemonInstalled(LEGACY_SERVER_DAEMON_NAME)) {

View File

@ -26,15 +26,15 @@
#include <Windows.h>
#include <tchar.h>
#define ARCH_DAEMON CArchDaemonWindows
#define ARCH_DAEMON ArchDaemonWindows
//! Win32 implementation of IArchDaemon
class CArchDaemonWindows : public IArchDaemon {
class ArchDaemonWindows : public IArchDaemon {
public:
typedef int (*RunFunc)(void);
CArchDaemonWindows();
virtual ~CArchDaemonWindows();
ArchDaemonWindows();
virtual ~ArchDaemonWindows();
//! Run the daemon
/*!
@ -120,10 +120,10 @@ private:
};
private:
static CArchDaemonWindows* s_daemon;
static ArchDaemonWindows* s_daemon;
CArchMutex m_serviceMutex;
CArchCond m_serviceCondVar;
ArchMutex m_serviceMutex;
ArchCond m_serviceCondVar;
DWORD m_serviceState;
bool m_serviceHandlerWaiting;
bool m_serviceRunning;

View File

@ -25,21 +25,21 @@
#include <string.h>
//
// CArchFileWindows
// ArchFileWindows
//
CArchFileWindows::CArchFileWindows()
ArchFileWindows::ArchFileWindows()
{
// do nothing
}
CArchFileWindows::~CArchFileWindows()
ArchFileWindows::~ArchFileWindows()
{
// do nothing
}
const char*
CArchFileWindows::getBasename(const char* pathname)
ArchFileWindows::getBasename(const char* pathname)
{
if (pathname == NULL) {
return NULL;
@ -64,7 +64,7 @@ CArchFileWindows::getBasename(const char* pathname)
}
std::string
CArchFileWindows::getUserDirectory()
ArchFileWindows::getUserDirectory()
{
// try %HOMEPATH%
TCHAR dir[MAX_PATH];
@ -108,7 +108,7 @@ CArchFileWindows::getUserDirectory()
}
std::string
CArchFileWindows::getSystemDirectory()
ArchFileWindows::getSystemDirectory()
{
// get windows directory
char dir[MAX_PATH];
@ -122,7 +122,7 @@ CArchFileWindows::getSystemDirectory()
}
std::string
CArchFileWindows::getInstalledDirectory()
ArchFileWindows::getInstalledDirectory()
{
char fileNameBuffer[MAX_PATH];
GetModuleFileName(NULL, fileNameBuffer, MAX_PATH);
@ -134,13 +134,13 @@ CArchFileWindows::getInstalledDirectory()
}
std::string
CArchFileWindows::getLogDirectory()
ArchFileWindows::getLogDirectory()
{
return getInstalledDirectory();
}
std::string
CArchFileWindows::concatPath(const std::string& prefix,
ArchFileWindows::concatPath(const std::string& prefix,
const std::string& suffix)
{
std::string path;

View File

@ -20,13 +20,13 @@
#include "arch/IArchFile.h"
#define ARCH_FILE CArchFileWindows
#define ARCH_FILE ArchFileWindows
//! Win32 implementation of IArchFile
class CArchFileWindows : public IArchFile {
class ArchFileWindows : public IArchFile {
public:
CArchFileWindows();
virtual ~CArchFileWindows();
ArchFileWindows();
virtual ~ArchFileWindows();
// IArchFile overrides
virtual const char* getBasename(const char* pathname);

View File

@ -24,20 +24,20 @@
#include <Wininet.h>
#include <Shlwapi.h>
struct CWinINetUrl {
CString m_scheme;
CString m_host;
CString m_path;
struct WinINetUrl {
String m_scheme;
String m_host;
String m_path;
INTERNET_PORT m_port;
DWORD m_flags;
};
class CWinINetRequest {
class WinINetRequest {
public:
CWinINetRequest(const CString& url);
~CWinINetRequest();
WinINetRequest(const String& url);
~WinINetRequest();
CString send();
String send();
void openSession();
void connect();
void openRequest();
@ -46,23 +46,23 @@ private:
HINTERNET m_session;
HINTERNET m_connect;
HINTERNET m_request;
CWinINetUrl m_url;
WinINetUrl m_url;
bool m_used;
};
//
// CArchInternetWindows
// ArchInternetWindows
//
CString
CArchInternetWindows::get(const CString& url)
String
ArchInternetWindows::get(const String& url)
{
CWinINetRequest request(url);
WinINetRequest request(url);
return request.send();
}
CString
CArchInternetWindows::urlEncode(const CString& url)
String
ArchInternetWindows::urlEncode(const String& url)
{
TCHAR buffer[1024];
DWORD bufferSize = sizeof(buffer);
@ -71,7 +71,7 @@ CArchInternetWindows::urlEncode(const CString& url)
throw XArch(new XArchEvalWindows());
}
CString result(buffer);
String result(buffer);
// the win32 url encoding funcitons are pretty useless (to us) and only
// escape "unsafe" chars, but not + or =, so we need to replace these
@ -83,12 +83,12 @@ CArchInternetWindows::urlEncode(const CString& url)
}
//
// CWinINetRequest
// WinINetRequest
//
static CWinINetUrl parseUrl(const CString& url);
static WinINetUrl parseUrl(const String& url);
CWinINetRequest::CWinINetRequest(const CString& url) :
WinINetRequest::WinINetRequest(const String& url) :
m_session(NULL),
m_connect(NULL),
m_request(NULL),
@ -97,7 +97,7 @@ CWinINetRequest::CWinINetRequest(const CString& url) :
{
}
CWinINetRequest::~CWinINetRequest()
WinINetRequest::~WinINetRequest()
{
if (m_request != NULL) {
InternetCloseHandle(m_request);
@ -112,8 +112,8 @@ CWinINetRequest::~CWinINetRequest()
}
}
CString
CWinINetRequest::send()
String
WinINetRequest::send()
{
if (m_used) {
throw XArch("class is one time use.");
@ -124,7 +124,7 @@ CWinINetRequest::send()
connect();
openRequest();
CString headers("Content-Type: text/html");
String headers("Content-Type: text/html");
if (!HttpSendRequest(m_request, headers.c_str(), (DWORD)headers.length(), NULL, NULL)) {
throw XArch(new XArchEvalWindows());
}
@ -143,7 +143,7 @@ CWinINetRequest::send()
}
void
CWinINetRequest::openSession()
WinINetRequest::openSession()
{
std::stringstream userAgent;
userAgent << "Synergy ";
@ -162,7 +162,7 @@ CWinINetRequest::openSession()
}
void
CWinINetRequest::connect()
WinINetRequest::connect()
{
m_connect = InternetConnect(
m_session,
@ -180,7 +180,7 @@ CWinINetRequest::connect()
}
void
CWinINetRequest::openRequest()
WinINetRequest::openRequest()
{
m_request = HttpOpenRequest(
m_connect,
@ -200,10 +200,10 @@ CWinINetRequest::openRequest()
// nb: i tried to use InternetCrackUrl here, but couldn't quite get that to
// work. here's some (less robust) code to split the url into components.
// this works fine with simple urls, but doesn't consider the full url spec.
static CWinINetUrl
parseUrl(const CString& url)
static WinINetUrl
parseUrl(const String& url)
{
CWinINetUrl parsed;
WinINetUrl parsed;
size_t schemeEnd = url.find("://");
size_t hostEnd = url.find('/', schemeEnd + 3);
@ -215,7 +215,7 @@ parseUrl(const CString& url)
parsed.m_port = INTERNET_DEFAULT_HTTP_PORT;
parsed.m_flags = 0;
if (parsed.m_scheme.find("https") != CString::npos) {
if (parsed.m_scheme.find("https") != String::npos) {
parsed.m_port = INTERNET_DEFAULT_HTTPS_PORT;
parsed.m_flags = INTERNET_FLAG_SECURE;
}

View File

@ -17,12 +17,12 @@
#pragma once
#define ARCH_INTERNET CArchInternetWindows
#define ARCH_INTERNET ArchInternetWindows
#include "base/String.h"
class CArchInternetWindows {
class ArchInternetWindows {
public:
CString get(const CString& url);
CString urlEncode(const CString& url);
String get(const String& url);
String urlEncode(const String& url);
};

View File

@ -22,21 +22,21 @@
#include <string.h>
//
// CArchLogWindows
// ArchLogWindows
//
CArchLogWindows::CArchLogWindows() : m_eventLog(NULL)
ArchLogWindows::ArchLogWindows() : m_eventLog(NULL)
{
// do nothing
}
CArchLogWindows::~CArchLogWindows()
ArchLogWindows::~ArchLogWindows()
{
// do nothing
}
void
CArchLogWindows::openLog(const char* name)
ArchLogWindows::openLog(const char* name)
{
if (m_eventLog == NULL) {
m_eventLog = RegisterEventSource(NULL, name);
@ -44,7 +44,7 @@ CArchLogWindows::openLog(const char* name)
}
void
CArchLogWindows::closeLog()
ArchLogWindows::closeLog()
{
if (m_eventLog != NULL) {
DeregisterEventSource(m_eventLog);
@ -53,13 +53,13 @@ CArchLogWindows::closeLog()
}
void
CArchLogWindows::showLog(bool)
ArchLogWindows::showLog(bool)
{
// do nothing
}
void
CArchLogWindows::writeLog(ELevel level, const char* msg)
ArchLogWindows::writeLog(ELevel level, const char* msg)
{
if (m_eventLog != NULL) {
// convert priority

View File

@ -23,13 +23,13 @@
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#define ARCH_LOG CArchLogWindows
#define ARCH_LOG ArchLogWindows
//! Win32 implementation of IArchLog
class CArchLogWindows : public IArchLog {
class ArchLogWindows : public IArchLog {
public:
CArchLogWindows();
virtual ~CArchLogWindows();
ArchLogWindows();
virtual ~ArchLogWindows();
// IArchLog overrides
virtual void openLog(const char* name);

View File

@ -41,92 +41,92 @@
typedef DWORD EXECUTION_STATE;
//
// CArchMiscWindows
// ArchMiscWindows
//
CArchMiscWindows::CDialogs* CArchMiscWindows::s_dialogs = NULL;
DWORD CArchMiscWindows::s_busyState = 0;
CArchMiscWindows::STES_t CArchMiscWindows::s_stes = NULL;
HICON CArchMiscWindows::s_largeIcon = NULL;
HICON CArchMiscWindows::s_smallIcon = NULL;
HINSTANCE CArchMiscWindows::s_instanceWin32 = NULL;
ArchMiscWindows::Dialogs* ArchMiscWindows::s_dialogs = NULL;
DWORD ArchMiscWindows::s_busyState = 0;
ArchMiscWindows::STES_t ArchMiscWindows::s_stes = NULL;
HICON ArchMiscWindows::s_largeIcon = NULL;
HICON ArchMiscWindows::s_smallIcon = NULL;
HINSTANCE ArchMiscWindows::s_instanceWin32 = NULL;
void
CArchMiscWindows::cleanup()
ArchMiscWindows::cleanup()
{
delete s_dialogs;
}
void
CArchMiscWindows::init()
ArchMiscWindows::init()
{
s_dialogs = new CDialogs;
s_dialogs = new Dialogs;
}
void
CArchMiscWindows::setIcons(HICON largeIcon, HICON smallIcon)
ArchMiscWindows::setIcons(HICON largeIcon, HICON smallIcon)
{
s_largeIcon = largeIcon;
s_smallIcon = smallIcon;
}
void
CArchMiscWindows::getIcons(HICON& largeIcon, HICON& smallIcon)
ArchMiscWindows::getIcons(HICON& largeIcon, HICON& smallIcon)
{
largeIcon = s_largeIcon;
smallIcon = s_smallIcon;
}
int
CArchMiscWindows::runDaemon(RunFunc runFunc)
ArchMiscWindows::runDaemon(RunFunc runFunc)
{
return CArchDaemonWindows::runDaemon(runFunc);
return ArchDaemonWindows::runDaemon(runFunc);
}
void
CArchMiscWindows::daemonRunning(bool running)
ArchMiscWindows::daemonRunning(bool running)
{
CArchDaemonWindows::daemonRunning(running);
ArchDaemonWindows::daemonRunning(running);
}
void
CArchMiscWindows::daemonFailed(int result)
ArchMiscWindows::daemonFailed(int result)
{
CArchDaemonWindows::daemonFailed(result);
ArchDaemonWindows::daemonFailed(result);
}
UINT
CArchMiscWindows::getDaemonQuitMessage()
ArchMiscWindows::getDaemonQuitMessage()
{
return CArchDaemonWindows::getDaemonQuitMessage();
return ArchDaemonWindows::getDaemonQuitMessage();
}
HKEY
CArchMiscWindows::openKey(HKEY key, const TCHAR* keyName)
ArchMiscWindows::openKey(HKEY key, const TCHAR* keyName)
{
return openKey(key, keyName, false);
}
HKEY
CArchMiscWindows::openKey(HKEY key, const TCHAR* const* keyNames)
ArchMiscWindows::openKey(HKEY key, const TCHAR* const* keyNames)
{
return openKey(key, keyNames, false);
}
HKEY
CArchMiscWindows::addKey(HKEY key, const TCHAR* keyName)
ArchMiscWindows::addKey(HKEY key, const TCHAR* keyName)
{
return openKey(key, keyName, true);
}
HKEY
CArchMiscWindows::addKey(HKEY key, const TCHAR* const* keyNames)
ArchMiscWindows::addKey(HKEY key, const TCHAR* const* keyNames)
{
return openKey(key, keyNames, true);
}
HKEY
CArchMiscWindows::openKey(HKEY key, const TCHAR* keyName, bool create)
ArchMiscWindows::openKey(HKEY key, const TCHAR* keyName, bool create)
{
// ignore if parent is NULL
if (key == NULL) {
@ -154,7 +154,7 @@ CArchMiscWindows::openKey(HKEY key, const TCHAR* keyName, bool create)
}
HKEY
CArchMiscWindows::openKey(HKEY key, const TCHAR* const* keyNames, bool create)
ArchMiscWindows::openKey(HKEY key, const TCHAR* const* keyNames, bool create)
{
for (size_t i = 0; key != NULL && keyNames[i] != NULL; ++i) {
// open next key
@ -164,7 +164,7 @@ CArchMiscWindows::openKey(HKEY key, const TCHAR* const* keyNames, bool create)
}
void
CArchMiscWindows::closeKey(HKEY key)
ArchMiscWindows::closeKey(HKEY key)
{
assert(key != NULL);
if (key==NULL) return;
@ -172,7 +172,7 @@ CArchMiscWindows::closeKey(HKEY key)
}
void
CArchMiscWindows::deleteKey(HKEY key, const TCHAR* name)
ArchMiscWindows::deleteKey(HKEY key, const TCHAR* name)
{
assert(key != NULL);
assert(name != NULL);
@ -181,7 +181,7 @@ CArchMiscWindows::deleteKey(HKEY key, const TCHAR* name)
}
void
CArchMiscWindows::deleteValue(HKEY key, const TCHAR* name)
ArchMiscWindows::deleteValue(HKEY key, const TCHAR* name)
{
assert(key != NULL);
assert(name != NULL);
@ -190,7 +190,7 @@ CArchMiscWindows::deleteValue(HKEY key, const TCHAR* name)
}
bool
CArchMiscWindows::hasValue(HKEY key, const TCHAR* name)
ArchMiscWindows::hasValue(HKEY key, const TCHAR* name)
{
DWORD type;
LONG result = RegQueryValueEx(key, name, 0, &type, NULL, NULL);
@ -198,8 +198,8 @@ CArchMiscWindows::hasValue(HKEY key, const TCHAR* name)
(type == REG_DWORD || type == REG_SZ));
}
CArchMiscWindows::EValueType
CArchMiscWindows::typeOfValue(HKEY key, const TCHAR* name)
ArchMiscWindows::EValueType
ArchMiscWindows::typeOfValue(HKEY key, const TCHAR* name)
{
DWORD type;
LONG result = RegQueryValueEx(key, name, 0, &type, NULL, NULL);
@ -222,7 +222,7 @@ CArchMiscWindows::typeOfValue(HKEY key, const TCHAR* name)
}
void
CArchMiscWindows::setValue(HKEY key,
ArchMiscWindows::setValue(HKEY key,
const TCHAR* name, const std::string& value)
{
assert(key != NULL);
@ -233,7 +233,7 @@ CArchMiscWindows::setValue(HKEY key,
}
void
CArchMiscWindows::setValue(HKEY key, const TCHAR* name, DWORD value)
ArchMiscWindows::setValue(HKEY key, const TCHAR* name, DWORD value)
{
assert(key != NULL);
if(key ==NULL) return; // TODO: throw exception
@ -243,7 +243,7 @@ CArchMiscWindows::setValue(HKEY key, const TCHAR* name, DWORD value)
}
void
CArchMiscWindows::setValueBinary(HKEY key,
ArchMiscWindows::setValueBinary(HKEY key,
const TCHAR* name, const std::string& value)
{
assert(key != NULL);
@ -255,7 +255,7 @@ CArchMiscWindows::setValueBinary(HKEY key,
}
std::string
CArchMiscWindows::readBinaryOrString(HKEY key, const TCHAR* name, DWORD type)
ArchMiscWindows::readBinaryOrString(HKEY key, const TCHAR* name, DWORD type)
{
// get the size of the string
DWORD actualType;
@ -292,19 +292,19 @@ CArchMiscWindows::readBinaryOrString(HKEY key, const TCHAR* name, DWORD type)
}
std::string
CArchMiscWindows::readValueString(HKEY key, const TCHAR* name)
ArchMiscWindows::readValueString(HKEY key, const TCHAR* name)
{
return readBinaryOrString(key, name, REG_SZ);
}
std::string
CArchMiscWindows::readValueBinary(HKEY key, const TCHAR* name)
ArchMiscWindows::readValueBinary(HKEY key, const TCHAR* name)
{
return readBinaryOrString(key, name, REG_BINARY);
}
DWORD
CArchMiscWindows::readValueInt(HKEY key, const TCHAR* name)
ArchMiscWindows::readValueInt(HKEY key, const TCHAR* name)
{
DWORD type;
DWORD value;
@ -318,21 +318,21 @@ CArchMiscWindows::readValueInt(HKEY key, const TCHAR* name)
}
void
CArchMiscWindows::addDialog(HWND hwnd)
ArchMiscWindows::addDialog(HWND hwnd)
{
s_dialogs->insert(hwnd);
}
void
CArchMiscWindows::removeDialog(HWND hwnd)
ArchMiscWindows::removeDialog(HWND hwnd)
{
s_dialogs->erase(hwnd);
}
bool
CArchMiscWindows::processDialog(MSG* msg)
ArchMiscWindows::processDialog(MSG* msg)
{
for (CDialogs::const_iterator index = s_dialogs->begin();
for (Dialogs::const_iterator index = s_dialogs->begin();
index != s_dialogs->end(); ++index) {
if (IsDialogMessage(*index, msg)) {
return true;
@ -342,21 +342,21 @@ CArchMiscWindows::processDialog(MSG* msg)
}
void
CArchMiscWindows::addBusyState(DWORD busyModes)
ArchMiscWindows::addBusyState(DWORD busyModes)
{
s_busyState |= busyModes;
setThreadExecutionState(s_busyState);
}
void
CArchMiscWindows::removeBusyState(DWORD busyModes)
ArchMiscWindows::removeBusyState(DWORD busyModes)
{
s_busyState &= ~busyModes;
setThreadExecutionState(s_busyState);
}
void
CArchMiscWindows::setThreadExecutionState(DWORD busyModes)
ArchMiscWindows::setThreadExecutionState(DWORD busyModes)
{
// look up function dynamically so we work on older systems
if (s_stes == NULL) {
@ -366,7 +366,7 @@ CArchMiscWindows::setThreadExecutionState(DWORD busyModes)
"SetThreadExecutionState"));
}
if (s_stes == NULL) {
s_stes = &CArchMiscWindows::dummySetThreadExecutionState;
s_stes = &ArchMiscWindows::dummySetThreadExecutionState;
}
}
@ -387,14 +387,14 @@ CArchMiscWindows::setThreadExecutionState(DWORD busyModes)
}
DWORD
CArchMiscWindows::dummySetThreadExecutionState(DWORD)
ArchMiscWindows::dummySetThreadExecutionState(DWORD)
{
// do nothing
return 0;
}
void
CArchMiscWindows::wakeupDisplay()
ArchMiscWindows::wakeupDisplay()
{
// We can't use ::setThreadExecutionState here because it sets
// ES_CONTINUOUS, which we don't want.
@ -406,7 +406,7 @@ CArchMiscWindows::wakeupDisplay()
"SetThreadExecutionState"));
}
if (s_stes == NULL) {
s_stes = &CArchMiscWindows::dummySetThreadExecutionState;
s_stes = &ArchMiscWindows::dummySetThreadExecutionState;
}
}
@ -417,9 +417,9 @@ CArchMiscWindows::wakeupDisplay()
}
bool
CArchMiscWindows::wasLaunchedAsService()
ArchMiscWindows::wasLaunchedAsService()
{
CString name;
String name;
if (!getParentProcessName(name)) {
LOG((CLOG_ERR "cannot determine if process was launched as service"));
return false;
@ -429,7 +429,7 @@ CArchMiscWindows::wasLaunchedAsService()
}
bool
CArchMiscWindows::getParentProcessName(CString &name)
ArchMiscWindows::getParentProcessName(String &name)
{
PROCESSENTRY32 parentEntry;
if (!getParentProcessEntry(parentEntry)){
@ -442,14 +442,14 @@ CArchMiscWindows::getParentProcessName(CString &name)
}
BOOL WINAPI
CArchMiscWindows::getSelfProcessEntry(PROCESSENTRY32& entry)
ArchMiscWindows::getSelfProcessEntry(PROCESSENTRY32& entry)
{
// get entry from current PID
return getProcessEntry(entry, GetCurrentProcessId());
}
BOOL WINAPI
CArchMiscWindows::getParentProcessEntry(PROCESSENTRY32& entry)
ArchMiscWindows::getParentProcessEntry(PROCESSENTRY32& entry)
{
// get the current process, so we can get parent PID
PROCESSENTRY32 selfEntry;
@ -462,7 +462,7 @@ CArchMiscWindows::getParentProcessEntry(PROCESSENTRY32& entry)
}
BOOL WINAPI
CArchMiscWindows::getProcessEntry(PROCESSENTRY32& entry, DWORD processID)
ArchMiscWindows::getProcessEntry(PROCESSENTRY32& entry, DWORD processID)
{
// first we need to take a snapshot of the running processes
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
@ -498,14 +498,14 @@ CArchMiscWindows::getProcessEntry(PROCESSENTRY32& entry, DWORD processID)
}
HINSTANCE
CArchMiscWindows::instanceWin32()
ArchMiscWindows::instanceWin32()
{
assert(s_instanceWin32 != NULL);
return s_instanceWin32;
}
void
CArchMiscWindows::setInstanceWin32(HINSTANCE instance)
ArchMiscWindows::setInstanceWin32(HINSTANCE instance)
{
assert(instance != NULL);
s_instanceWin32 = instance;

View File

@ -28,7 +28,7 @@
#include <Tlhelp32.h>
//! Miscellaneous win32 functions.
class CArchMiscWindows {
class ArchMiscWindows {
public:
enum EValueType {
kUNKNOWN,
@ -65,25 +65,25 @@ public:
//! Run the daemon
/*!
Delegates to CArchDaemonWindows.
Delegates to ArchDaemonWindows.
*/
static int runDaemon(RunFunc runFunc);
//! Indicate daemon is in main loop
/*!
Delegates to CArchDaemonWindows.
Delegates to ArchDaemonWindows.
*/
static void daemonRunning(bool running);
//! Indicate failure of running daemon
/*!
Delegates to CArchDaemonWindows.
Delegates to ArchDaemonWindows.
*/
static void daemonFailed(int result);
//! Get daemon quit message
/*!
Delegates to CArchDaemonWindows.
Delegates to ArchDaemonWindows.
*/
static UINT getDaemonQuitMessage();
@ -163,7 +163,7 @@ public:
static bool wasLaunchedAsService();
//! Returns true if we got the parent process name.
static bool getParentProcessName(CString &name);
static bool getParentProcessName(String &name);
static HINSTANCE instanceWin32();
@ -190,10 +190,10 @@ private:
static DWORD WINAPI dummySetThreadExecutionState(DWORD);
private:
typedef std::set<HWND> CDialogs;
typedef std::set<HWND> Dialogs;
typedef DWORD (WINAPI *STES_t)(DWORD);
static CDialogs* s_dialogs;
static Dialogs* s_dialogs;
static DWORD s_busyState;
static STES_t s_stes;
static HICON s_largeIcon;

View File

@ -37,13 +37,13 @@
//
//
// CArchThreadImpl
// ArchThreadImpl
//
class CArchThreadImpl {
class ArchThreadImpl {
public:
CArchThreadImpl();
~CArchThreadImpl();
ArchThreadImpl();
~ArchThreadImpl();
public:
int m_refCount;
@ -58,7 +58,7 @@ public:
void* m_networkData;
};
CArchThreadImpl::CArchThreadImpl() :
ArchThreadImpl::ArchThreadImpl() :
m_refCount(1),
m_thread(NULL),
m_id(0),
@ -72,7 +72,7 @@ CArchThreadImpl::CArchThreadImpl() :
m_cancel = CreateEvent(NULL, TRUE, FALSE, NULL);
}
CArchThreadImpl::~CArchThreadImpl()
ArchThreadImpl::~ArchThreadImpl()
{
CloseHandle(m_exit);
CloseHandle(m_cancel);
@ -80,12 +80,12 @@ CArchThreadImpl::~CArchThreadImpl()
//
// CArchMultithreadWindows
// ArchMultithreadWindows
//
CArchMultithreadWindows* CArchMultithreadWindows::s_instance = NULL;
ArchMultithreadWindows* ArchMultithreadWindows::s_instance = NULL;
CArchMultithreadWindows::CArchMultithreadWindows()
ArchMultithreadWindows::ArchMultithreadWindows()
{
assert(s_instance == NULL);
s_instance = this;
@ -101,18 +101,18 @@ CArchMultithreadWindows::CArchMultithreadWindows()
// create thread for calling (main) thread and add it to our
// list. no need to lock the mutex since we're the only thread.
m_mainThread = new CArchThreadImpl;
m_mainThread = new ArchThreadImpl;
m_mainThread->m_thread = NULL;
m_mainThread->m_id = GetCurrentThreadId();
insert(m_mainThread);
}
CArchMultithreadWindows::~CArchMultithreadWindows()
ArchMultithreadWindows::~ArchMultithreadWindows()
{
s_instance = NULL;
// clean up thread list
for (CThreadList::iterator index = m_threadList.begin();
for (ThreadList::iterator index = m_threadList.begin();
index != m_threadList.end(); ++index) {
delete *index;
}
@ -122,16 +122,16 @@ CArchMultithreadWindows::~CArchMultithreadWindows()
}
void
CArchMultithreadWindows::setNetworkDataForCurrentThread(void* data)
ArchMultithreadWindows::setNetworkDataForCurrentThread(void* data)
{
lockMutex(m_threadMutex);
CArchThreadImpl* thread = findNoRef(GetCurrentThreadId());
ArchThreadImpl* thread = findNoRef(GetCurrentThreadId());
thread->m_networkData = data;
unlockMutex(m_threadMutex);
}
void*
CArchMultithreadWindows::getNetworkDataForThread(CArchThread thread)
ArchMultithreadWindows::getNetworkDataForThread(ArchThread thread)
{
lockMutex(m_threadMutex);
void* data = thread->m_networkData;
@ -140,27 +140,27 @@ CArchMultithreadWindows::getNetworkDataForThread(CArchThread thread)
}
HANDLE
CArchMultithreadWindows::getCancelEventForCurrentThread()
ArchMultithreadWindows::getCancelEventForCurrentThread()
{
lockMutex(m_threadMutex);
CArchThreadImpl* thread = findNoRef(GetCurrentThreadId());
ArchThreadImpl* thread = findNoRef(GetCurrentThreadId());
unlockMutex(m_threadMutex);
return thread->m_cancel;
}
CArchMultithreadWindows*
CArchMultithreadWindows::getInstance()
ArchMultithreadWindows*
ArchMultithreadWindows::getInstance()
{
return s_instance;
}
CArchCond
CArchMultithreadWindows::newCondVar()
ArchCond
ArchMultithreadWindows::newCondVar()
{
CArchCondImpl* cond = new CArchCondImpl;
cond->m_events[CArchCondImpl::kSignal] = CreateEvent(NULL,
ArchCondImpl* cond = new ArchCondImpl;
cond->m_events[ArchCondImpl::kSignal] = CreateEvent(NULL,
FALSE, FALSE, NULL);
cond->m_events[CArchCondImpl::kBroadcast] = CreateEvent(NULL,
cond->m_events[ArchCondImpl::kBroadcast] = CreateEvent(NULL,
TRUE, FALSE, NULL);
cond->m_waitCountMutex = newMutex();
cond->m_waitCount = 0;
@ -168,16 +168,16 @@ CArchMultithreadWindows::newCondVar()
}
void
CArchMultithreadWindows::closeCondVar(CArchCond cond)
ArchMultithreadWindows::closeCondVar(ArchCond cond)
{
CloseHandle(cond->m_events[CArchCondImpl::kSignal]);
CloseHandle(cond->m_events[CArchCondImpl::kBroadcast]);
CloseHandle(cond->m_events[ArchCondImpl::kSignal]);
CloseHandle(cond->m_events[ArchCondImpl::kBroadcast]);
closeMutex(cond->m_waitCountMutex);
delete cond;
}
void
CArchMultithreadWindows::signalCondVar(CArchCond cond)
ArchMultithreadWindows::signalCondVar(ArchCond cond)
{
// is anybody waiting?
lockMutex(cond->m_waitCountMutex);
@ -186,12 +186,12 @@ CArchMultithreadWindows::signalCondVar(CArchCond cond)
// wake one thread if anybody is waiting
if (hasWaiter) {
SetEvent(cond->m_events[CArchCondImpl::kSignal]);
SetEvent(cond->m_events[ArchCondImpl::kSignal]);
}
}
void
CArchMultithreadWindows::broadcastCondVar(CArchCond cond)
ArchMultithreadWindows::broadcastCondVar(ArchCond cond)
{
// is anybody waiting?
lockMutex(cond->m_waitCountMutex);
@ -200,13 +200,13 @@ CArchMultithreadWindows::broadcastCondVar(CArchCond cond)
// wake all threads if anybody is waiting
if (hasWaiter) {
SetEvent(cond->m_events[CArchCondImpl::kBroadcast]);
SetEvent(cond->m_events[ArchCondImpl::kBroadcast]);
}
}
bool
CArchMultithreadWindows::waitCondVar(CArchCond cond,
CArchMutex mutex, double timeout)
ArchMultithreadWindows::waitCondVar(ArchCond cond,
ArchMutex mutex, double timeout)
{
// prepare to wait
const DWORD winTimeout = (timeout < 0.0) ? INFINITE :
@ -215,8 +215,8 @@ CArchMultithreadWindows::waitCondVar(CArchCond cond,
// make a list of the condition variable events and the cancel event
// for the current thread.
HANDLE handles[4];
handles[0] = cond->m_events[CArchCondImpl::kSignal];
handles[1] = cond->m_events[CArchCondImpl::kBroadcast];
handles[0] = cond->m_events[ArchCondImpl::kSignal];
handles[1] = cond->m_events[ArchCondImpl::kBroadcast];
handles[2] = getCancelEventForCurrentThread();
// update waiter count
@ -248,7 +248,7 @@ CArchMultithreadWindows::waitCondVar(CArchCond cond,
// reset the broadcast event if we're the last waiter
if (last) {
ResetEvent(cond->m_events[CArchCondImpl::kBroadcast]);
ResetEvent(cond->m_events[ArchCondImpl::kBroadcast]);
}
// reacquire the mutex
@ -264,40 +264,40 @@ CArchMultithreadWindows::waitCondVar(CArchCond cond,
result == WAIT_OBJECT_0 + 1);
}
CArchMutex
CArchMultithreadWindows::newMutex()
ArchMutex
ArchMultithreadWindows::newMutex()
{
CArchMutexImpl* mutex = new CArchMutexImpl;
ArchMutexImpl* mutex = new ArchMutexImpl;
InitializeCriticalSection(&mutex->m_mutex);
return mutex;
}
void
CArchMultithreadWindows::closeMutex(CArchMutex mutex)
ArchMultithreadWindows::closeMutex(ArchMutex mutex)
{
DeleteCriticalSection(&mutex->m_mutex);
delete mutex;
}
void
CArchMultithreadWindows::lockMutex(CArchMutex mutex)
ArchMultithreadWindows::lockMutex(ArchMutex mutex)
{
EnterCriticalSection(&mutex->m_mutex);
}
void
CArchMultithreadWindows::unlockMutex(CArchMutex mutex)
ArchMultithreadWindows::unlockMutex(ArchMutex mutex)
{
LeaveCriticalSection(&mutex->m_mutex);
}
CArchThread
CArchMultithreadWindows::newThread(ThreadFunc func, void* data)
ArchThread
ArchMultithreadWindows::newThread(ThreadFunc func, void* data)
{
lockMutex(m_threadMutex);
// create thread impl for new thread
CArchThreadImpl* thread = new CArchThreadImpl;
ArchThreadImpl* thread = new ArchThreadImpl;
thread->m_func = func;
thread->m_userData = data;
@ -327,18 +327,18 @@ CArchMultithreadWindows::newThread(ThreadFunc func, void* data)
return thread;
}
CArchThread
CArchMultithreadWindows::newCurrentThread()
ArchThread
ArchMultithreadWindows::newCurrentThread()
{
lockMutex(m_threadMutex);
CArchThreadImpl* thread = find(GetCurrentThreadId());
ArchThreadImpl* thread = find(GetCurrentThreadId());
unlockMutex(m_threadMutex);
assert(thread != NULL);
return thread;
}
void
CArchMultithreadWindows::closeThread(CArchThread thread)
ArchMultithreadWindows::closeThread(ArchThread thread)
{
assert(thread != NULL);
@ -360,15 +360,15 @@ CArchMultithreadWindows::closeThread(CArchThread thread)
}
}
CArchThread
CArchMultithreadWindows::copyThread(CArchThread thread)
ArchThread
ArchMultithreadWindows::copyThread(ArchThread thread)
{
refThread(thread);
return thread;
}
void
CArchMultithreadWindows::cancelThread(CArchThread thread)
ArchMultithreadWindows::cancelThread(ArchThread thread)
{
assert(thread != NULL);
@ -377,14 +377,14 @@ CArchMultithreadWindows::cancelThread(CArchThread thread)
}
void
CArchMultithreadWindows::setPriorityOfThread(CArchThread thread, int n)
ArchMultithreadWindows::setPriorityOfThread(ArchThread thread, int n)
{
struct CPriorityInfo {
struct PriorityInfo {
public:
DWORD m_class;
int m_level;
};
static const CPriorityInfo s_pClass[] = {
static const PriorityInfo s_pClass[] = {
{ IDLE_PRIORITY_CLASS, THREAD_PRIORITY_IDLE },
{ IDLE_PRIORITY_CLASS, THREAD_PRIORITY_LOWEST },
{ IDLE_PRIORITY_CLASS, THREAD_PRIORITY_BELOW_NORMAL },
@ -436,11 +436,11 @@ CArchMultithreadWindows::setPriorityOfThread(CArchThread thread, int n)
}
void
CArchMultithreadWindows::testCancelThread()
ArchMultithreadWindows::testCancelThread()
{
// find current thread
lockMutex(m_threadMutex);
CArchThreadImpl* thread = findNoRef(GetCurrentThreadId());
ArchThreadImpl* thread = findNoRef(GetCurrentThreadId());
unlockMutex(m_threadMutex);
// test cancel on thread
@ -448,14 +448,14 @@ CArchMultithreadWindows::testCancelThread()
}
bool
CArchMultithreadWindows::wait(CArchThread target, double timeout)
ArchMultithreadWindows::wait(ArchThread target, double timeout)
{
assert(target != NULL);
lockMutex(m_threadMutex);
// find current thread
CArchThreadImpl* self = findNoRef(GetCurrentThreadId());
ArchThreadImpl* self = findNoRef(GetCurrentThreadId());
// ignore wait if trying to wait on ourself
if (target == self) {
@ -510,20 +510,20 @@ CArchMultithreadWindows::wait(CArchThread target, double timeout)
}
bool
CArchMultithreadWindows::isSameThread(CArchThread thread1, CArchThread thread2)
ArchMultithreadWindows::isSameThread(ArchThread thread1, ArchThread thread2)
{
return (thread1 == thread2);
}
bool
CArchMultithreadWindows::isExitedThread(CArchThread thread)
ArchMultithreadWindows::isExitedThread(ArchThread thread)
{
// poll exit event
return (WaitForSingleObject(thread->m_exit, 0) == WAIT_OBJECT_0);
}
void*
CArchMultithreadWindows::getResultOfThread(CArchThread thread)
ArchMultithreadWindows::getResultOfThread(ArchThread thread)
{
lockMutex(m_threadMutex);
void* result = thread->m_result;
@ -532,13 +532,13 @@ CArchMultithreadWindows::getResultOfThread(CArchThread thread)
}
IArchMultithread::ThreadID
CArchMultithreadWindows::getIDOfThread(CArchThread thread)
ArchMultithreadWindows::getIDOfThread(ArchThread thread)
{
return static_cast<ThreadID>(thread->m_id);
}
void
CArchMultithreadWindows::setSignalHandler(
ArchMultithreadWindows::setSignalHandler(
ESignal signal, SignalFunc func, void* userData)
{
lockMutex(m_threadMutex);
@ -548,7 +548,7 @@ CArchMultithreadWindows::setSignalHandler(
}
void
CArchMultithreadWindows::raiseSignal(ESignal signal)
ArchMultithreadWindows::raiseSignal(ESignal signal)
{
lockMutex(m_threadMutex);
if (m_signalFunc[signal] != NULL) {
@ -561,26 +561,26 @@ CArchMultithreadWindows::raiseSignal(ESignal signal)
unlockMutex(m_threadMutex);
}
CArchThreadImpl*
CArchMultithreadWindows::find(DWORD id)
ArchThreadImpl*
ArchMultithreadWindows::find(DWORD id)
{
CArchThreadImpl* impl = findNoRef(id);
ArchThreadImpl* impl = findNoRef(id);
if (impl != NULL) {
refThread(impl);
}
return impl;
}
CArchThreadImpl*
CArchMultithreadWindows::findNoRef(DWORD id)
ArchThreadImpl*
ArchMultithreadWindows::findNoRef(DWORD id)
{
CArchThreadImpl* impl = findNoRefOrCreate(id);
ArchThreadImpl* impl = findNoRefOrCreate(id);
if (impl == NULL) {
// create thread for calling thread which isn't in our list and
// add it to the list. this won't normally happen but it can if
// the system calls us under a new thread, like it does when we
// run as a service.
impl = new CArchThreadImpl;
impl = new ArchThreadImpl;
impl->m_thread = NULL;
impl->m_id = GetCurrentThreadId();
insert(impl);
@ -588,11 +588,11 @@ CArchMultithreadWindows::findNoRef(DWORD id)
return impl;
}
CArchThreadImpl*
CArchMultithreadWindows::findNoRefOrCreate(DWORD id)
ArchThreadImpl*
ArchMultithreadWindows::findNoRefOrCreate(DWORD id)
{
// linear search
for (CThreadList::const_iterator index = m_threadList.begin();
for (ThreadList::const_iterator index = m_threadList.begin();
index != m_threadList.end(); ++index) {
if ((*index)->m_id == id) {
return *index;
@ -602,7 +602,7 @@ CArchMultithreadWindows::findNoRefOrCreate(DWORD id)
}
void
CArchMultithreadWindows::insert(CArchThreadImpl* thread)
ArchMultithreadWindows::insert(ArchThreadImpl* thread)
{
assert(thread != NULL);
@ -614,9 +614,9 @@ CArchMultithreadWindows::insert(CArchThreadImpl* thread)
}
void
CArchMultithreadWindows::erase(CArchThreadImpl* thread)
ArchMultithreadWindows::erase(ArchThreadImpl* thread)
{
for (CThreadList::iterator index = m_threadList.begin();
for (ThreadList::iterator index = m_threadList.begin();
index != m_threadList.end(); ++index) {
if (*index == thread) {
m_threadList.erase(index);
@ -626,7 +626,7 @@ CArchMultithreadWindows::erase(CArchThreadImpl* thread)
}
void
CArchMultithreadWindows::refThread(CArchThreadImpl* thread)
ArchMultithreadWindows::refThread(ArchThreadImpl* thread)
{
assert(thread != NULL);
assert(findNoRefOrCreate(thread->m_id) != NULL);
@ -634,7 +634,7 @@ CArchMultithreadWindows::refThread(CArchThreadImpl* thread)
}
void
CArchMultithreadWindows::testCancelThreadImpl(CArchThreadImpl* thread)
ArchMultithreadWindows::testCancelThreadImpl(ArchThreadImpl* thread)
{
assert(thread != NULL);
@ -658,10 +658,10 @@ CArchMultithreadWindows::testCancelThreadImpl(CArchThreadImpl* thread)
}
unsigned int __stdcall
CArchMultithreadWindows::threadFunc(void* vrep)
ArchMultithreadWindows::threadFunc(void* vrep)
{
// get the thread
CArchThreadImpl* thread = reinterpret_cast<CArchThreadImpl*>(vrep);
ArchThreadImpl* thread = reinterpret_cast<ArchThreadImpl*>(vrep);
// run thread
s_instance->doThreadFunc(thread);
@ -671,7 +671,7 @@ CArchMultithreadWindows::threadFunc(void* vrep)
}
void
CArchMultithreadWindows::doThreadFunc(CArchThread thread)
ArchMultithreadWindows::doThreadFunc(ArchThread thread)
{
// wait for parent to initialize this object
lockMutex(m_threadMutex);

View File

@ -24,27 +24,27 @@
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#define ARCH_MULTITHREAD CArchMultithreadWindows
#define ARCH_MULTITHREAD ArchMultithreadWindows
class CArchCondImpl {
class ArchCondImpl {
public:
enum { kSignal = 0, kBroadcast };
HANDLE m_events[2];
mutable int m_waitCount;
CArchMutex m_waitCountMutex;
ArchMutex m_waitCountMutex;
};
class CArchMutexImpl {
class ArchMutexImpl {
public:
CRITICAL_SECTION m_mutex;
};
//! Win32 implementation of IArchMultithread
class CArchMultithreadWindows : public IArchMultithread {
class ArchMultithreadWindows : public IArchMultithread {
public:
CArchMultithreadWindows();
virtual ~CArchMultithreadWindows();
ArchMultithreadWindows();
virtual ~ArchMultithreadWindows();
//! @name manipulators
//@{
@ -57,59 +57,59 @@ public:
HANDLE getCancelEventForCurrentThread();
void* getNetworkDataForThread(CArchThread);
void* getNetworkDataForThread(ArchThread);
static CArchMultithreadWindows* getInstance();
static ArchMultithreadWindows* getInstance();
//@}
// IArchMultithread overrides
virtual CArchCond newCondVar();
virtual void closeCondVar(CArchCond);
virtual void signalCondVar(CArchCond);
virtual void broadcastCondVar(CArchCond);
virtual bool waitCondVar(CArchCond, CArchMutex, double timeout);
virtual CArchMutex newMutex();
virtual void closeMutex(CArchMutex);
virtual void lockMutex(CArchMutex);
virtual void unlockMutex(CArchMutex);
virtual CArchThread newThread(ThreadFunc, void*);
virtual CArchThread newCurrentThread();
virtual CArchThread copyThread(CArchThread);
virtual void closeThread(CArchThread);
virtual void cancelThread(CArchThread);
virtual void setPriorityOfThread(CArchThread, int n);
virtual ArchCond newCondVar();
virtual void closeCondVar(ArchCond);
virtual void signalCondVar(ArchCond);
virtual void broadcastCondVar(ArchCond);
virtual bool waitCondVar(ArchCond, ArchMutex, double timeout);
virtual ArchMutex newMutex();
virtual void closeMutex(ArchMutex);
virtual void lockMutex(ArchMutex);
virtual void unlockMutex(ArchMutex);
virtual ArchThread newThread(ThreadFunc, void*);
virtual ArchThread newCurrentThread();
virtual ArchThread copyThread(ArchThread);
virtual void closeThread(ArchThread);
virtual void cancelThread(ArchThread);
virtual void setPriorityOfThread(ArchThread, int n);
virtual void testCancelThread();
virtual bool wait(CArchThread, double timeout);
virtual bool isSameThread(CArchThread, CArchThread);
virtual bool isExitedThread(CArchThread);
virtual void* getResultOfThread(CArchThread);
virtual ThreadID getIDOfThread(CArchThread);
virtual bool wait(ArchThread, double timeout);
virtual bool isSameThread(ArchThread, ArchThread);
virtual bool isExitedThread(ArchThread);
virtual void* getResultOfThread(ArchThread);
virtual ThreadID getIDOfThread(ArchThread);
virtual void setSignalHandler(ESignal, SignalFunc, void*);
virtual void raiseSignal(ESignal);
private:
CArchThreadImpl* find(DWORD id);
CArchThreadImpl* findNoRef(DWORD id);
CArchThreadImpl* findNoRefOrCreate(DWORD id);
void insert(CArchThreadImpl* thread);
void erase(CArchThreadImpl* thread);
ArchThreadImpl* find(DWORD id);
ArchThreadImpl* findNoRef(DWORD id);
ArchThreadImpl* findNoRefOrCreate(DWORD id);
void insert(ArchThreadImpl* thread);
void erase(ArchThreadImpl* thread);
void refThread(CArchThreadImpl* rep);
void testCancelThreadImpl(CArchThreadImpl* rep);
void refThread(ArchThreadImpl* rep);
void testCancelThreadImpl(ArchThreadImpl* rep);
void doThreadFunc(CArchThread thread);
void doThreadFunc(ArchThread thread);
static unsigned int __stdcall threadFunc(void* vrep);
private:
typedef std::list<CArchThread> CThreadList;
typedef std::list<ArchThread> ThreadList;
static CArchMultithreadWindows* s_instance;
static ArchMultithreadWindows* s_instance;
CArchMutex m_threadMutex;
ArchMutex m_threadMutex;
CThreadList m_threadList;
CArchThread m_mainThread;
ThreadList m_threadList;
ArchThread m_mainThread;
SignalFunc m_signalFunc[kNUM_SIGNALS];
void* m_signalUserData[kNUM_SIGNALS];

View File

@ -82,25 +82,25 @@ netGetProcAddress(HMODULE module, LPCSTR name)
return func;
}
CArchNetAddressImpl*
CArchNetAddressImpl::alloc(size_t size)
ArchNetAddressImpl*
ArchNetAddressImpl::alloc(size_t size)
{
size_t totalSize = size + ADDR_HDR_SIZE;
CArchNetAddressImpl* addr = (CArchNetAddressImpl*)malloc(totalSize);
ArchNetAddressImpl* addr = (ArchNetAddressImpl*)malloc(totalSize);
addr->m_len = (int)size;
return addr;
}
//
// CArchNetworkWinsock
// ArchNetworkWinsock
//
CArchNetworkWinsock::CArchNetworkWinsock()
ArchNetworkWinsock::ArchNetworkWinsock()
{
}
CArchNetworkWinsock::~CArchNetworkWinsock()
ArchNetworkWinsock::~ArchNetworkWinsock()
{
if (s_networkModule != NULL) {
WSACleanup_winsock();
@ -111,14 +111,14 @@ CArchNetworkWinsock::~CArchNetworkWinsock()
}
ARCH->closeMutex(m_mutex);
CEventList::iterator it;
EventList::iterator it;
for (it = m_unblockEvents.begin(); it != m_unblockEvents.end(); it++) {
delete *it;
}
}
void
CArchNetworkWinsock::init()
ArchNetworkWinsock::init()
{
static const char* s_library[] = { "ws2_32.dll" };
@ -142,7 +142,7 @@ CArchNetworkWinsock::init()
}
void
CArchNetworkWinsock::initModule(HMODULE module)
ArchNetworkWinsock::initModule(HMODULE module)
{
if (module == NULL) {
throw XArchNetworkSupport("");
@ -199,8 +199,8 @@ CArchNetworkWinsock::initModule(HMODULE module)
s_networkModule = module;
}
CArchSocket
CArchNetworkWinsock::newSocket(EAddressFamily family, ESocketType type)
ArchSocket
ArchNetworkWinsock::newSocket(EAddressFamily family, ESocketType type)
{
// create socket
SOCKET fd = socket_winsock(s_family[family], s_type[type], 0);
@ -216,7 +216,7 @@ CArchNetworkWinsock::newSocket(EAddressFamily family, ESocketType type)
}
// allocate socket object
CArchSocketImpl* socket = new CArchSocketImpl;
ArchSocketImpl* socket = new ArchSocketImpl;
socket->m_socket = fd;
socket->m_refCount = 1;
socket->m_event = WSACreateEvent_winsock();
@ -224,8 +224,8 @@ CArchNetworkWinsock::newSocket(EAddressFamily family, ESocketType type)
return socket;
}
CArchSocket
CArchNetworkWinsock::copySocket(CArchSocket s)
ArchSocket
ArchNetworkWinsock::copySocket(ArchSocket s)
{
assert(s != NULL);
@ -237,7 +237,7 @@ CArchNetworkWinsock::copySocket(CArchSocket s)
}
void
CArchNetworkWinsock::closeSocket(CArchSocket s)
ArchNetworkWinsock::closeSocket(ArchSocket s)
{
assert(s != NULL);
@ -262,7 +262,7 @@ CArchNetworkWinsock::closeSocket(CArchSocket s)
}
void
CArchNetworkWinsock::closeSocketForRead(CArchSocket s)
ArchNetworkWinsock::closeSocketForRead(ArchSocket s)
{
assert(s != NULL);
@ -274,7 +274,7 @@ CArchNetworkWinsock::closeSocketForRead(CArchSocket s)
}
void
CArchNetworkWinsock::closeSocketForWrite(CArchSocket s)
ArchNetworkWinsock::closeSocketForWrite(ArchSocket s)
{
assert(s != NULL);
@ -286,7 +286,7 @@ CArchNetworkWinsock::closeSocketForWrite(CArchSocket s)
}
void
CArchNetworkWinsock::bindSocket(CArchSocket s, CArchNetAddress addr)
ArchNetworkWinsock::bindSocket(ArchSocket s, ArchNetAddress addr)
{
assert(s != NULL);
assert(addr != NULL);
@ -297,7 +297,7 @@ CArchNetworkWinsock::bindSocket(CArchSocket s, CArchNetAddress addr)
}
void
CArchNetworkWinsock::listenOnSocket(CArchSocket s)
ArchNetworkWinsock::listenOnSocket(ArchSocket s)
{
assert(s != NULL);
@ -307,14 +307,14 @@ CArchNetworkWinsock::listenOnSocket(CArchSocket s)
}
}
CArchSocket
CArchNetworkWinsock::acceptSocket(CArchSocket s, CArchNetAddress* addr)
ArchSocket
ArchNetworkWinsock::acceptSocket(ArchSocket s, ArchNetAddress* addr)
{
assert(s != NULL);
// create new socket and temporary address
CArchSocketImpl* socket = new CArchSocketImpl;
CArchNetAddress tmp = CArchNetAddressImpl::alloc(sizeof(struct sockaddr));
ArchSocketImpl* socket = new ArchSocketImpl;
ArchNetAddress tmp = ArchNetAddressImpl::alloc(sizeof(struct sockaddr));
// accept on socket
SOCKET fd = accept_winsock(s->m_socket, &tmp->m_addr, &tmp->m_len);
@ -356,7 +356,7 @@ CArchNetworkWinsock::acceptSocket(CArchSocket s, CArchNetAddress* addr)
}
bool
CArchNetworkWinsock::connectSocket(CArchSocket s, CArchNetAddress addr)
ArchNetworkWinsock::connectSocket(ArchSocket s, ArchNetAddress addr)
{
assert(s != NULL);
assert(addr != NULL);
@ -375,7 +375,7 @@ CArchNetworkWinsock::connectSocket(CArchSocket s, CArchNetAddress addr)
}
int
CArchNetworkWinsock::pollSocket(CPollEntry pe[], int num, double timeout)
ArchNetworkWinsock::pollSocket(PollEntry pe[], int num, double timeout)
{
int i;
DWORD n;
@ -429,8 +429,8 @@ CArchNetworkWinsock::pollSocket(CPollEntry pe[], int num, double timeout)
}
// add the unblock event
CArchMultithreadWindows* mt = CArchMultithreadWindows::getInstance();
CArchThread thread = mt->newCurrentThread();
ArchMultithreadWindows* mt = ArchMultithreadWindows::getInstance();
ArchThread thread = mt->newCurrentThread();
WSAEVENT* unblockEvent = (WSAEVENT*)mt->getNetworkDataForThread(thread);
ARCH->closeThread(thread);
if (unblockEvent == NULL) {
@ -527,10 +527,10 @@ CArchNetworkWinsock::pollSocket(CPollEntry pe[], int num, double timeout)
}
void
CArchNetworkWinsock::unblockPollSocket(CArchThread thread)
ArchNetworkWinsock::unblockPollSocket(ArchThread thread)
{
// set the unblock event
CArchMultithreadWindows* mt = CArchMultithreadWindows::getInstance();
ArchMultithreadWindows* mt = ArchMultithreadWindows::getInstance();
WSAEVENT* unblockEvent = (WSAEVENT*)mt->getNetworkDataForThread(thread);
if (unblockEvent != NULL) {
WSASetEvent_winsock(*unblockEvent);
@ -538,7 +538,7 @@ CArchNetworkWinsock::unblockPollSocket(CArchThread thread)
}
size_t
CArchNetworkWinsock::readSocket(CArchSocket s, void* buf, size_t len)
ArchNetworkWinsock::readSocket(ArchSocket s, void* buf, size_t len)
{
assert(s != NULL);
@ -554,7 +554,7 @@ CArchNetworkWinsock::readSocket(CArchSocket s, void* buf, size_t len)
}
size_t
CArchNetworkWinsock::writeSocket(CArchSocket s, const void* buf, size_t len)
ArchNetworkWinsock::writeSocket(ArchSocket s, const void* buf, size_t len)
{
assert(s != NULL);
@ -574,7 +574,7 @@ CArchNetworkWinsock::writeSocket(CArchSocket s, const void* buf, size_t len)
}
void
CArchNetworkWinsock::throwErrorOnSocket(CArchSocket s)
ArchNetworkWinsock::throwErrorOnSocket(ArchSocket s)
{
assert(s != NULL);
@ -593,7 +593,7 @@ CArchNetworkWinsock::throwErrorOnSocket(CArchSocket s)
}
void
CArchNetworkWinsock::setBlockingOnSocket(SOCKET s, bool blocking)
ArchNetworkWinsock::setBlockingOnSocket(SOCKET s, bool blocking)
{
assert(s != 0);
@ -604,7 +604,7 @@ CArchNetworkWinsock::setBlockingOnSocket(SOCKET s, bool blocking)
}
bool
CArchNetworkWinsock::setNoDelayOnSocket(CArchSocket s, bool noDelay)
ArchNetworkWinsock::setNoDelayOnSocket(ArchSocket s, bool noDelay)
{
assert(s != NULL);
@ -628,7 +628,7 @@ CArchNetworkWinsock::setNoDelayOnSocket(CArchSocket s, bool noDelay)
}
bool
CArchNetworkWinsock::setReuseAddrOnSocket(CArchSocket s, bool reuse)
ArchNetworkWinsock::setReuseAddrOnSocket(ArchSocket s, bool reuse)
{
assert(s != NULL);
@ -652,7 +652,7 @@ CArchNetworkWinsock::setReuseAddrOnSocket(CArchSocket s, bool reuse)
}
std::string
CArchNetworkWinsock::getHostName()
ArchNetworkWinsock::getHostName()
{
char name[256];
if (gethostname_winsock(name, sizeof(name)) == -1) {
@ -664,13 +664,13 @@ CArchNetworkWinsock::getHostName()
return name;
}
CArchNetAddress
CArchNetworkWinsock::newAnyAddr(EAddressFamily family)
ArchNetAddress
ArchNetworkWinsock::newAnyAddr(EAddressFamily family)
{
CArchNetAddressImpl* addr = NULL;
ArchNetAddressImpl* addr = NULL;
switch (family) {
case kINET: {
addr = CArchNetAddressImpl::alloc(sizeof(struct sockaddr_in));
addr = ArchNetAddressImpl::alloc(sizeof(struct sockaddr_in));
struct sockaddr_in* ipAddr = TYPED_ADDR(struct sockaddr_in, addr);
ipAddr->sin_family = AF_INET;
ipAddr->sin_port = 0;
@ -684,21 +684,21 @@ CArchNetworkWinsock::newAnyAddr(EAddressFamily family)
return addr;
}
CArchNetAddress
CArchNetworkWinsock::copyAddr(CArchNetAddress addr)
ArchNetAddress
ArchNetworkWinsock::copyAddr(ArchNetAddress addr)
{
assert(addr != NULL);
CArchNetAddressImpl* copy = CArchNetAddressImpl::alloc(addr->m_len);
ArchNetAddressImpl* copy = ArchNetAddressImpl::alloc(addr->m_len);
memcpy(TYPED_ADDR(void, copy), TYPED_ADDR(void, addr), addr->m_len);
return copy;
}
CArchNetAddress
CArchNetworkWinsock::nameToAddr(const std::string& name)
ArchNetAddress
ArchNetworkWinsock::nameToAddr(const std::string& name)
{
// allocate address
CArchNetAddressImpl* addr = NULL;
ArchNetAddressImpl* addr = NULL;
// try to convert assuming an IPv4 dot notation address
struct sockaddr_in inaddr;
@ -708,7 +708,7 @@ CArchNetworkWinsock::nameToAddr(const std::string& name)
inaddr.sin_addr.s_addr = inet_addr_winsock(name.c_str());
if (inaddr.sin_addr.s_addr != INADDR_NONE) {
// it's a dot notation address
addr = CArchNetAddressImpl::alloc(sizeof(struct sockaddr_in));
addr = ArchNetAddressImpl::alloc(sizeof(struct sockaddr_in));
memcpy(TYPED_ADDR(void, addr), &inaddr, addr->m_len);
}
@ -721,7 +721,7 @@ CArchNetworkWinsock::nameToAddr(const std::string& name)
// copy over address (only IPv4 currently supported)
if (info->h_addrtype == AF_INET) {
addr = CArchNetAddressImpl::alloc(sizeof(struct sockaddr_in));
addr = ArchNetAddressImpl::alloc(sizeof(struct sockaddr_in));
memcpy(&inaddr.sin_addr, info->h_addr_list[0],
sizeof(inaddr.sin_addr));
memcpy(TYPED_ADDR(void, addr), &inaddr, addr->m_len);
@ -737,7 +737,7 @@ CArchNetworkWinsock::nameToAddr(const std::string& name)
}
void
CArchNetworkWinsock::closeAddr(CArchNetAddress addr)
ArchNetworkWinsock::closeAddr(ArchNetAddress addr)
{
assert(addr != NULL);
@ -745,7 +745,7 @@ CArchNetworkWinsock::closeAddr(CArchNetAddress addr)
}
std::string
CArchNetworkWinsock::addrToName(CArchNetAddress addr)
ArchNetworkWinsock::addrToName(ArchNetAddress addr)
{
assert(addr != NULL);
@ -762,7 +762,7 @@ CArchNetworkWinsock::addrToName(CArchNetAddress addr)
}
std::string
CArchNetworkWinsock::addrToString(CArchNetAddress addr)
ArchNetworkWinsock::addrToString(ArchNetAddress addr)
{
assert(addr != NULL);
@ -780,7 +780,7 @@ CArchNetworkWinsock::addrToString(CArchNetAddress addr)
}
IArchNetwork::EAddressFamily
CArchNetworkWinsock::getAddrFamily(CArchNetAddress addr)
ArchNetworkWinsock::getAddrFamily(ArchNetAddress addr)
{
assert(addr != NULL);
@ -794,7 +794,7 @@ CArchNetworkWinsock::getAddrFamily(CArchNetAddress addr)
}
void
CArchNetworkWinsock::setAddrPort(CArchNetAddress addr, int port)
ArchNetworkWinsock::setAddrPort(ArchNetAddress addr, int port)
{
assert(addr != NULL);
@ -813,7 +813,7 @@ CArchNetworkWinsock::setAddrPort(CArchNetAddress addr, int port)
}
int
CArchNetworkWinsock::getAddrPort(CArchNetAddress addr)
ArchNetworkWinsock::getAddrPort(ArchNetAddress addr)
{
assert(addr != NULL);
@ -831,7 +831,7 @@ CArchNetworkWinsock::getAddrPort(CArchNetAddress addr)
}
bool
CArchNetworkWinsock::isAnyAddr(CArchNetAddress addr)
ArchNetworkWinsock::isAnyAddr(ArchNetAddress addr)
{
assert(addr != NULL);
@ -850,14 +850,14 @@ CArchNetworkWinsock::isAnyAddr(CArchNetAddress addr)
}
bool
CArchNetworkWinsock::isEqualAddr(CArchNetAddress a, CArchNetAddress b)
ArchNetworkWinsock::isEqualAddr(ArchNetAddress a, ArchNetAddress b)
{
return (a == b || (a->m_len == b->m_len &&
memcmp(&a->m_addr, &b->m_addr, a->m_len) == 0));
}
void
CArchNetworkWinsock::throwError(int err)
ArchNetworkWinsock::throwError(int err)
{
switch (err) {
case WSAEACCES:
@ -928,7 +928,7 @@ CArchNetworkWinsock::throwError(int err)
}
void
CArchNetworkWinsock::throwNameError(int err)
ArchNetworkWinsock::throwNameError(int err)
{
switch (err) {
case WSAHOST_NOT_FOUND:

View File

@ -30,9 +30,9 @@
#include <Windows.h>
#include <list>
#define ARCH_NETWORK CArchNetworkWinsock
#define ARCH_NETWORK ArchNetworkWinsock
class CArchSocketImpl {
class ArchSocketImpl {
public:
SOCKET m_socket;
int m_refCount;
@ -40,55 +40,55 @@ public:
bool m_pollWrite;
};
class CArchNetAddressImpl {
class ArchNetAddressImpl {
public:
static CArchNetAddressImpl* alloc(size_t);
static ArchNetAddressImpl* alloc(size_t);
public:
int m_len;
struct sockaddr m_addr;
};
#define ADDR_HDR_SIZE offsetof(CArchNetAddressImpl, m_addr)
#define ADDR_HDR_SIZE offsetof(ArchNetAddressImpl, m_addr)
#define TYPED_ADDR(type_, addr_) (reinterpret_cast<type_*>(&addr_->m_addr))
//! Win32 implementation of IArchNetwork
class CArchNetworkWinsock : public IArchNetwork {
class ArchNetworkWinsock : public IArchNetwork {
public:
CArchNetworkWinsock();
virtual ~CArchNetworkWinsock();
ArchNetworkWinsock();
virtual ~ArchNetworkWinsock();
virtual void init();
// IArchNetwork overrides
virtual CArchSocket newSocket(EAddressFamily, ESocketType);
virtual CArchSocket copySocket(CArchSocket s);
virtual void closeSocket(CArchSocket s);
virtual void closeSocketForRead(CArchSocket s);
virtual void closeSocketForWrite(CArchSocket s);
virtual void bindSocket(CArchSocket s, CArchNetAddress addr);
virtual void listenOnSocket(CArchSocket s);
virtual CArchSocket acceptSocket(CArchSocket s, CArchNetAddress* addr);
virtual bool connectSocket(CArchSocket s, CArchNetAddress name);
virtual int pollSocket(CPollEntry[], int num, double timeout);
virtual void unblockPollSocket(CArchThread thread);
virtual size_t readSocket(CArchSocket s, void* buf, size_t len);
virtual size_t writeSocket(CArchSocket s,
virtual ArchSocket newSocket(EAddressFamily, ESocketType);
virtual ArchSocket copySocket(ArchSocket s);
virtual void closeSocket(ArchSocket s);
virtual void closeSocketForRead(ArchSocket s);
virtual void closeSocketForWrite(ArchSocket s);
virtual void bindSocket(ArchSocket s, ArchNetAddress addr);
virtual void listenOnSocket(ArchSocket s);
virtual ArchSocket acceptSocket(ArchSocket s, ArchNetAddress* addr);
virtual bool connectSocket(ArchSocket s, ArchNetAddress name);
virtual int pollSocket(PollEntry[], int num, double timeout);
virtual void unblockPollSocket(ArchThread thread);
virtual size_t readSocket(ArchSocket s, void* buf, size_t len);
virtual size_t writeSocket(ArchSocket s,
const void* buf, size_t len);
virtual void throwErrorOnSocket(CArchSocket);
virtual bool setNoDelayOnSocket(CArchSocket, bool noDelay);
virtual bool setReuseAddrOnSocket(CArchSocket, bool reuse);
virtual void throwErrorOnSocket(ArchSocket);
virtual bool setNoDelayOnSocket(ArchSocket, bool noDelay);
virtual bool setReuseAddrOnSocket(ArchSocket, bool reuse);
virtual std::string getHostName();
virtual CArchNetAddress newAnyAddr(EAddressFamily);
virtual CArchNetAddress copyAddr(CArchNetAddress);
virtual CArchNetAddress nameToAddr(const std::string&);
virtual void closeAddr(CArchNetAddress);
virtual std::string addrToName(CArchNetAddress);
virtual std::string addrToString(CArchNetAddress);
virtual EAddressFamily getAddrFamily(CArchNetAddress);
virtual void setAddrPort(CArchNetAddress, int port);
virtual int getAddrPort(CArchNetAddress);
virtual bool isAnyAddr(CArchNetAddress);
virtual bool isEqualAddr(CArchNetAddress, CArchNetAddress);
virtual ArchNetAddress newAnyAddr(EAddressFamily);
virtual ArchNetAddress copyAddr(ArchNetAddress);
virtual ArchNetAddress nameToAddr(const std::string&);
virtual void closeAddr(ArchNetAddress);
virtual std::string addrToName(ArchNetAddress);
virtual std::string addrToString(ArchNetAddress);
virtual EAddressFamily getAddrFamily(ArchNetAddress);
virtual void setAddrPort(ArchNetAddress, int port);
virtual int getAddrPort(ArchNetAddress);
virtual bool isAnyAddr(ArchNetAddress);
virtual bool isEqualAddr(ArchNetAddress, ArchNetAddress);
private:
void initModule(HMODULE);
@ -99,8 +99,8 @@ private:
void throwNameError(int);
private:
typedef std::list<WSAEVENT> CEventList;
typedef std::list<WSAEVENT> EventList;
CArchMutex m_mutex;
CEventList m_unblockEvents;
ArchMutex m_mutex;
EventList m_unblockEvents;
};

View File

@ -32,37 +32,37 @@ typedef int (*initFunc)(void (*sendEvent)(const char*, void*), void (*log)(const
void* g_eventTarget = NULL;
IEventQueue* g_events = NULL;
CArchPluginWindows::CArchPluginWindows()
ArchPluginWindows::ArchPluginWindows()
{
}
CArchPluginWindows::~CArchPluginWindows()
ArchPluginWindows::~ArchPluginWindows()
{
}
void
CArchPluginWindows::init(void* eventTarget, IEventQueue* events)
ArchPluginWindows::init(void* eventTarget, IEventQueue* events)
{
g_eventTarget = eventTarget;
g_events = events;
CString dir = getPluginsDir();
String dir = getPluginsDir();
LOG((CLOG_DEBUG "plugins dir: %s", dir.c_str()));
CString pattern = CString(dir).append("\\*.dll");
std::vector<CString> plugins;
String pattern = String(dir).append("\\*.dll");
std::vector<String> plugins;
getFilenames(pattern, plugins);
std::vector<CString>::iterator it;
std::vector<String>::iterator it;
for (it = plugins.begin(); it != plugins.end(); ++it)
load(*it);
}
void
CArchPluginWindows::load(const CString& dllFilename)
ArchPluginWindows::load(const String& dllFilename)
{
LOG((CLOG_DEBUG "loading plugin: %s", dllFilename.c_str()));
CString path = CString(getPluginsDir()).append("\\").append(dllFilename);
String path = String(getPluginsDir()).append("\\").append(dllFilename);
HINSTANCE library = LoadLibrary(path.c_str());
if (library == NULL)
throw XArch(new XArchEvalWindows);
@ -71,18 +71,18 @@ CArchPluginWindows::load(const CString& dllFilename)
initPlugin(&sendEvent, &log);
}
CString
CArchPluginWindows::getModuleDir()
String
ArchPluginWindows::getModuleDir()
{
TCHAR c_modulePath[MAX_PATH];
if (GetModuleFileName(NULL, c_modulePath, MAX_PATH) == 0) {
throw XArch(new XArchEvalWindows);
}
CString modulePath(c_modulePath);
String modulePath(c_modulePath);
size_t lastSlash = modulePath.find_last_of("\\");
if (lastSlash != CString::npos) {
if (lastSlash != String::npos) {
return modulePath.substr(0, lastSlash);
}
@ -90,7 +90,7 @@ CArchPluginWindows::getModuleDir()
}
void
CArchPluginWindows::getFilenames(const CString& pattern, std::vector<CString>& filenames)
ArchPluginWindows::getFilenames(const String& pattern, std::vector<String>& filenames)
{
WIN32_FIND_DATA data;
HANDLE find = FindFirstFile(pattern.c_str(), &data);
@ -107,7 +107,7 @@ CArchPluginWindows::getFilenames(const CString& pattern, std::vector<CString>& f
FindClose(find);
}
CString CArchPluginWindows::getPluginsDir()
String ArchPluginWindows::getPluginsDir()
{
return getModuleDir().append("\\").append(PLUGINS_DIR);
}
@ -116,8 +116,8 @@ void
sendEvent(const char* eventName, void* data)
{
LOG((CLOG_DEBUG5 "plugin sending event"));
CEvent::Type type = g_events->getRegisteredType(eventName);
g_events->addEvent(CEvent(type, g_eventTarget, data));
Event::Type type = g_events->getRegisteredType(eventName);
g_events->addEvent(Event(type, g_eventTarget, data));
}
void

View File

@ -23,25 +23,25 @@
#include <vector>
#define ARCH_PLUGIN CArchPluginWindows
#define ARCH_PLUGIN ArchPluginWindows
class CScreen;
class Screen;
class IEventQueue;
//! Windows implementation of IArchPlugin
class CArchPluginWindows : public IArchPlugin {
class ArchPluginWindows : public IArchPlugin {
public:
CArchPluginWindows();
virtual ~CArchPluginWindows();
ArchPluginWindows();
virtual ~ArchPluginWindows();
// IArchPlugin overrides
void init(void* eventTarget, IEventQueue* events);
private:
CString getModuleDir();
void getFilenames(const CString& pattern, std::vector<CString>& filenames);
void load(const CString& dllPath);
CString getPluginsDir();
String getModuleDir();
void getFilenames(const String& pattern, std::vector<String>& filenames);
void load(const String& dllPath);
String getPluginsDir();
};
void sendEvent(const char* text, void* data);

View File

@ -21,21 +21,21 @@
#include "arch/win32/ArchMultithreadWindows.h"
//
// CArchSleepWindows
// ArchSleepWindows
//
CArchSleepWindows::CArchSleepWindows()
ArchSleepWindows::ArchSleepWindows()
{
// do nothing
}
CArchSleepWindows::~CArchSleepWindows()
ArchSleepWindows::~ArchSleepWindows()
{
// do nothing
}
void
CArchSleepWindows::sleep(double timeout)
ArchSleepWindows::sleep(double timeout)
{
ARCH->testCancelThread();
if (timeout < 0.0) {
@ -46,7 +46,7 @@ CArchSleepWindows::sleep(double timeout)
// works if we're using the windows multithread object but
// this is windows so that's pretty certain; we'll get a
// link error if we're not, though.
CArchMultithreadWindows* mt = CArchMultithreadWindows::getInstance();
ArchMultithreadWindows* mt = ArchMultithreadWindows::getInstance();
if (mt != NULL) {
HANDLE cancelEvent = mt->getCancelEventForCurrentThread();
WaitForSingleObject(cancelEvent, (DWORD)(1000.0 * timeout));

View File

@ -20,13 +20,13 @@
#include "arch/IArchSleep.h"
#define ARCH_SLEEP CArchSleepWindows
#define ARCH_SLEEP ArchSleepWindows
//! Win32 implementation of IArchSleep
class CArchSleepWindows : public IArchSleep {
class ArchSleepWindows : public IArchSleep {
public:
CArchSleepWindows();
virtual ~CArchSleepWindows();
ArchSleepWindows();
virtual ~ArchSleepWindows();
// IArchSleep overrides
virtual void sleep(double timeout);

View File

@ -23,7 +23,7 @@
#include <stdio.h>
//
// CArchStringWindows
// ArchStringWindows
//
#include "arch/multibyte.h"
@ -31,16 +31,16 @@
#define ARCH_VSNPRINTF _vsnprintf
#include "arch/vsnprintf.h"
CArchStringWindows::CArchStringWindows()
ArchStringWindows::ArchStringWindows()
{
}
CArchStringWindows::~CArchStringWindows()
ArchStringWindows::~ArchStringWindows()
{
}
IArchString::EWideCharEncoding
CArchStringWindows::getWideCharEncoding()
ArchStringWindows::getWideCharEncoding()
{
return kUTF16;
}

View File

@ -20,13 +20,13 @@
#include "arch/IArchString.h"
#define ARCH_STRING CArchStringWindows
#define ARCH_STRING ArchStringWindows
//! Win32 implementation of IArchString
class CArchStringWindows : public IArchString {
class ArchStringWindows : public IArchString {
public:
CArchStringWindows();
virtual ~CArchStringWindows();
ArchStringWindows();
virtual ~ArchStringWindows();
// IArchString overrides
virtual EWideCharEncoding

View File

@ -30,21 +30,21 @@ static const char* s_settingsKeyNames[] = {
};
//
// CArchSystemWindows
// ArchSystemWindows
//
CArchSystemWindows::CArchSystemWindows()
ArchSystemWindows::ArchSystemWindows()
{
// do nothing
}
CArchSystemWindows::~CArchSystemWindows()
ArchSystemWindows::~ArchSystemWindows()
{
// do nothing
}
std::string
CArchSystemWindows::getOSName() const
ArchSystemWindows::getOSName() const
{
#if WINVER >= _WIN32_WINNT_WIN2K
OSVERSIONINFOEX info;
@ -96,7 +96,7 @@ CArchSystemWindows::getOSName() const
}
std::string
CArchSystemWindows::getPlatformName() const
ArchSystemWindows::getPlatformName() const
{
#ifdef _X86_
if(isWOW64())
@ -113,26 +113,26 @@ CArchSystemWindows::getPlatformName() const
}
std::string
CArchSystemWindows::setting(const std::string& valueName) const
ArchSystemWindows::setting(const std::string& valueName) const
{
HKEY key = CArchMiscWindows::openKey(HKEY_LOCAL_MACHINE, s_settingsKeyNames);
HKEY key = ArchMiscWindows::openKey(HKEY_LOCAL_MACHINE, s_settingsKeyNames);
if (key == NULL)
return "";
return CArchMiscWindows::readValueString(key, valueName.c_str());
return ArchMiscWindows::readValueString(key, valueName.c_str());
}
void
CArchSystemWindows::setting(const std::string& valueName, const std::string& valueString) const
ArchSystemWindows::setting(const std::string& valueName, const std::string& valueString) const
{
HKEY key = CArchMiscWindows::addKey(HKEY_LOCAL_MACHINE, s_settingsKeyNames);
HKEY key = ArchMiscWindows::addKey(HKEY_LOCAL_MACHINE, s_settingsKeyNames);
if (key == NULL)
throw XArch(std::string("could not access registry key: ") + valueName);
CArchMiscWindows::setValue(key, valueName.c_str(), valueString.c_str());
ArchMiscWindows::setValue(key, valueName.c_str(), valueString.c_str());
}
bool
CArchSystemWindows::isWOW64() const
ArchSystemWindows::isWOW64() const
{
#if WINVER >= _WIN32_WINNT_WINXP
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);

View File

@ -20,13 +20,13 @@
#include "arch/IArchSystem.h"
#define ARCH_SYSTEM CArchSystemWindows
#define ARCH_SYSTEM ArchSystemWindows
//! Win32 implementation of IArchString
class CArchSystemWindows : public IArchSystem {
class ArchSystemWindows : public IArchSystem {
public:
CArchSystemWindows();
virtual ~CArchSystemWindows();
ArchSystemWindows();
virtual ~ArchSystemWindows();
// IArchSystem overrides
virtual std::string getOSName() const;

View File

@ -33,19 +33,19 @@ static const UINT kNotifyReceiver = WM_USER + 13;
static const UINT kFirstReceiverID = WM_USER + 14;
//
// CArchTaskBarWindows
// ArchTaskBarWindows
//
CArchTaskBarWindows* CArchTaskBarWindows::s_instance = NULL;
ArchTaskBarWindows* ArchTaskBarWindows::s_instance = NULL;
CArchTaskBarWindows::CArchTaskBarWindows() :
ArchTaskBarWindows::ArchTaskBarWindows() :
m_nextID(kFirstReceiverID)
{
// save the singleton instance
s_instance = this;
}
CArchTaskBarWindows::~CArchTaskBarWindows()
ArchTaskBarWindows::~ArchTaskBarWindows()
{
if (m_thread != NULL) {
PostMessage(m_hwnd, WM_QUIT, 0, 0);
@ -58,7 +58,7 @@ CArchTaskBarWindows::~CArchTaskBarWindows()
}
void
CArchTaskBarWindows::init()
ArchTaskBarWindows::init()
{
// we need a mutex
m_mutex = ARCH->newMutex();
@ -77,7 +77,7 @@ CArchTaskBarWindows::init()
// create a window on the current desktop with the current
// thread then the current thread won't be able to switch
// desktops if it needs to.
m_thread = ARCH->newThread(&CArchTaskBarWindows::threadEntry, this);
m_thread = ARCH->newThread(&ArchTaskBarWindows::threadEntry, this);
// wait for child thread
while (!m_ready) {
@ -89,19 +89,19 @@ CArchTaskBarWindows::init()
}
void
CArchTaskBarWindows::addDialog(HWND hwnd)
ArchTaskBarWindows::addDialog(HWND hwnd)
{
CArchMiscWindows::addDialog(hwnd);
ArchMiscWindows::addDialog(hwnd);
}
void
CArchTaskBarWindows::removeDialog(HWND hwnd)
ArchTaskBarWindows::removeDialog(HWND hwnd)
{
CArchMiscWindows::removeDialog(hwnd);
ArchMiscWindows::removeDialog(hwnd);
}
void
CArchTaskBarWindows::addReceiver(IArchTaskBarReceiver* receiver)
ArchTaskBarWindows::addReceiver(IArchTaskBarReceiver* receiver)
{
// ignore bogus receiver
if (receiver == NULL) {
@ -109,10 +109,10 @@ CArchTaskBarWindows::addReceiver(IArchTaskBarReceiver* receiver)
}
// add receiver if necessary
CReceiverToInfoMap::iterator index = m_receivers.find(receiver);
ReceiverToInfoMap::iterator index = m_receivers.find(receiver);
if (index == m_receivers.end()) {
// add it, creating a new message ID for it
CReceiverInfo info;
ReceiverInfo info;
info.m_id = getNextID();
index = m_receivers.insert(std::make_pair(receiver, info)).first;
@ -125,10 +125,10 @@ CArchTaskBarWindows::addReceiver(IArchTaskBarReceiver* receiver)
}
void
CArchTaskBarWindows::removeReceiver(IArchTaskBarReceiver* receiver)
ArchTaskBarWindows::removeReceiver(IArchTaskBarReceiver* receiver)
{
// find receiver
CReceiverToInfoMap::iterator index = m_receivers.find(receiver);
ReceiverToInfoMap::iterator index = m_receivers.find(receiver);
if (index == m_receivers.end()) {
return;
}
@ -145,10 +145,10 @@ CArchTaskBarWindows::removeReceiver(IArchTaskBarReceiver* receiver)
}
void
CArchTaskBarWindows::updateReceiver(IArchTaskBarReceiver* receiver)
ArchTaskBarWindows::updateReceiver(IArchTaskBarReceiver* receiver)
{
// find receiver
CReceiverToInfoMap::const_iterator index = m_receivers.find(receiver);
ReceiverToInfoMap::const_iterator index = m_receivers.find(receiver);
if (index == m_receivers.end()) {
return;
}
@ -158,7 +158,7 @@ CArchTaskBarWindows::updateReceiver(IArchTaskBarReceiver* receiver)
}
UINT
CArchTaskBarWindows::getNextID()
ArchTaskBarWindows::getNextID()
{
if (m_oldIDs.empty()) {
return m_nextID++;
@ -169,13 +169,13 @@ CArchTaskBarWindows::getNextID()
}
void
CArchTaskBarWindows::recycleID(UINT id)
ArchTaskBarWindows::recycleID(UINT id)
{
m_oldIDs.push_back(id);
}
void
CArchTaskBarWindows::addIcon(UINT id)
ArchTaskBarWindows::addIcon(UINT id)
{
ARCH->lockMutex(m_mutex);
CIDToReceiverMap::const_iterator index = m_idTable.find(id);
@ -186,7 +186,7 @@ CArchTaskBarWindows::addIcon(UINT id)
}
void
CArchTaskBarWindows::removeIcon(UINT id)
ArchTaskBarWindows::removeIcon(UINT id)
{
ARCH->lockMutex(m_mutex);
removeIconNoLock(id);
@ -194,7 +194,7 @@ CArchTaskBarWindows::removeIcon(UINT id)
}
void
CArchTaskBarWindows::updateIcon(UINT id)
ArchTaskBarWindows::updateIcon(UINT id)
{
ARCH->lockMutex(m_mutex);
CIDToReceiverMap::const_iterator index = m_idTable.find(id);
@ -205,10 +205,10 @@ CArchTaskBarWindows::updateIcon(UINT id)
}
void
CArchTaskBarWindows::addAllIcons()
ArchTaskBarWindows::addAllIcons()
{
ARCH->lockMutex(m_mutex);
for (CReceiverToInfoMap::const_iterator index = m_receivers.begin();
for (ReceiverToInfoMap::const_iterator index = m_receivers.begin();
index != m_receivers.end(); ++index) {
modifyIconNoLock(index, NIM_ADD);
}
@ -216,10 +216,10 @@ CArchTaskBarWindows::addAllIcons()
}
void
CArchTaskBarWindows::removeAllIcons()
ArchTaskBarWindows::removeAllIcons()
{
ARCH->lockMutex(m_mutex);
for (CReceiverToInfoMap::const_iterator index = m_receivers.begin();
for (ReceiverToInfoMap::const_iterator index = m_receivers.begin();
index != m_receivers.end(); ++index) {
removeIconNoLock(index->second.m_id);
}
@ -227,8 +227,8 @@ CArchTaskBarWindows::removeAllIcons()
}
void
CArchTaskBarWindows::modifyIconNoLock(
CReceiverToInfoMap::const_iterator index, DWORD taskBarMessage)
ArchTaskBarWindows::modifyIconNoLock(
ReceiverToInfoMap::const_iterator index, DWORD taskBarMessage)
{
// get receiver
UINT id = index->second.m_id;
@ -274,7 +274,7 @@ CArchTaskBarWindows::modifyIconNoLock(
}
void
CArchTaskBarWindows::removeIconNoLock(UINT id)
ArchTaskBarWindows::removeIconNoLock(UINT id)
{
NOTIFYICONDATA data;
data.cbSize = sizeof(NOTIFYICONDATA);
@ -286,7 +286,7 @@ CArchTaskBarWindows::removeIconNoLock(UINT id)
}
void
CArchTaskBarWindows::handleIconMessage(
ArchTaskBarWindows::handleIconMessage(
IArchTaskBarReceiver* receiver, LPARAM lParam)
{
// process message
@ -317,7 +317,7 @@ CArchTaskBarWindows::handleIconMessage(
}
bool
CArchTaskBarWindows::processDialogs(MSG* msg)
ArchTaskBarWindows::processDialogs(MSG* msg)
{
// only one thread can be in this method on any particular object
// at any given time. that's not a problem since only our event
@ -329,7 +329,7 @@ CArchTaskBarWindows::processDialogs(MSG* msg)
m_dialogs.erase(false);
// merge added dialogs into the dialog list
for (CDialogs::const_iterator index = m_addedDialogs.begin();
for (Dialogs::const_iterator index = m_addedDialogs.begin();
index != m_addedDialogs.end(); ++index) {
m_dialogs.insert(std::make_pair(index->first, index->second));
}
@ -344,7 +344,7 @@ CArchTaskBarWindows::processDialogs(MSG* msg)
// removeDialog() don't change the map itself (just the
// values of some elements).
ARCH->lockMutex(m_mutex);
for (CDialogs::const_iterator index = m_dialogs.begin();
for (Dialogs::const_iterator index = m_dialogs.begin();
index != m_dialogs.end(); ++index) {
if (index->second) {
ARCH->unlockMutex(m_mutex);
@ -360,7 +360,7 @@ CArchTaskBarWindows::processDialogs(MSG* msg)
}
LRESULT
CArchTaskBarWindows::wndProc(HWND hwnd,
ArchTaskBarWindows::wndProc(HWND hwnd,
UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
@ -399,16 +399,16 @@ CArchTaskBarWindows::wndProc(HWND hwnd,
}
LRESULT CALLBACK
CArchTaskBarWindows::staticWndProc(HWND hwnd, UINT msg,
ArchTaskBarWindows::staticWndProc(HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam)
{
// if msg is WM_NCCREATE, extract the CArchTaskBarWindows* and put
// if msg is WM_NCCREATE, extract the ArchTaskBarWindows* and put
// it in the extra window data then forward the call.
CArchTaskBarWindows* self = NULL;
ArchTaskBarWindows* self = NULL;
if (msg == WM_NCCREATE) {
CREATESTRUCT* createInfo;
createInfo = reinterpret_cast<CREATESTRUCT*>(lParam);
self = reinterpret_cast<CArchTaskBarWindows*>(
self = reinterpret_cast<ArchTaskBarWindows*>(
createInfo->lpCreateParams);
SetWindowLong(hwnd, 0, reinterpret_cast<LONG>(self));
}
@ -416,7 +416,7 @@ CArchTaskBarWindows::staticWndProc(HWND hwnd, UINT msg,
// get the extra window data and forward the call
LONG data = GetWindowLong(hwnd, 0);
if (data != 0) {
self = reinterpret_cast<CArchTaskBarWindows*>(
self = reinterpret_cast<ArchTaskBarWindows*>(
reinterpret_cast<void*>(data));
}
}
@ -431,7 +431,7 @@ CArchTaskBarWindows::staticWndProc(HWND hwnd, UINT msg,
}
void
CArchTaskBarWindows::threadMainLoop()
ArchTaskBarWindows::threadMainLoop()
{
// register the task bar restart message
m_taskBarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));
@ -440,9 +440,9 @@ CArchTaskBarWindows::threadMainLoop()
WNDCLASSEX classInfo;
classInfo.cbSize = sizeof(classInfo);
classInfo.style = CS_NOCLOSE;
classInfo.lpfnWndProc = &CArchTaskBarWindows::staticWndProc;
classInfo.lpfnWndProc = &ArchTaskBarWindows::staticWndProc;
classInfo.cbClsExtra = 0;
classInfo.cbWndExtra = sizeof(CArchTaskBarWindows*);
classInfo.cbWndExtra = sizeof(ArchTaskBarWindows*);
classInfo.hInstance = instanceWin32();
classInfo.hIcon = NULL;
classInfo.hCursor = NULL;
@ -491,13 +491,13 @@ CArchTaskBarWindows::threadMainLoop()
}
void*
CArchTaskBarWindows::threadEntry(void* self)
ArchTaskBarWindows::threadEntry(void* self)
{
reinterpret_cast<CArchTaskBarWindows*>(self)->threadMainLoop();
reinterpret_cast<ArchTaskBarWindows*>(self)->threadMainLoop();
return NULL;
}
HINSTANCE CArchTaskBarWindows::instanceWin32()
HINSTANCE ArchTaskBarWindows::instanceWin32()
{
return CArchMiscWindows::instanceWin32();
return ArchMiscWindows::instanceWin32();
}

View File

@ -26,13 +26,13 @@
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#define ARCH_TASKBAR CArchTaskBarWindows
#define ARCH_TASKBAR ArchTaskBarWindows
//! Win32 implementation of IArchTaskBar
class CArchTaskBarWindows : public IArchTaskBar {
class ArchTaskBarWindows : public IArchTaskBar {
public:
CArchTaskBarWindows();
virtual ~CArchTaskBarWindows();
ArchTaskBarWindows();
virtual ~ArchTaskBarWindows();
virtual void init();
@ -56,15 +56,15 @@ public:
virtual void updateReceiver(IArchTaskBarReceiver*);
private:
class CReceiverInfo {
class ReceiverInfo {
public:
UINT m_id;
};
typedef std::map<IArchTaskBarReceiver*, CReceiverInfo> CReceiverToInfoMap;
typedef std::map<UINT, CReceiverToInfoMap::iterator> CIDToReceiverMap;
typedef std::map<IArchTaskBarReceiver*, ReceiverInfo> ReceiverToInfoMap;
typedef std::map<UINT, ReceiverToInfoMap::iterator> CIDToReceiverMap;
typedef std::vector<UINT> CIDStack;
typedef std::map<HWND, bool> CDialogs;
typedef std::map<HWND, bool> Dialogs;
UINT getNextID();
void recycleID(UINT);
@ -74,7 +74,7 @@ private:
void updateIcon(UINT);
void addAllIcons();
void removeAllIcons();
void modifyIconNoLock(CReceiverToInfoMap::const_iterator,
void modifyIconNoLock(ReceiverToInfoMap::const_iterator,
DWORD taskBarMessage);
void removeIconNoLock(UINT id);
void handleIconMessage(IArchTaskBarReceiver*, LPARAM);
@ -89,26 +89,26 @@ private:
HINSTANCE instanceWin32();
private:
static CArchTaskBarWindows* s_instance;
static ArchTaskBarWindows* s_instance;
// multithread data
CArchMutex m_mutex;
CArchCond m_condVar;
ArchMutex m_mutex;
ArchCond m_condVar;
bool m_ready;
int m_result;
CArchThread m_thread;
ArchThread m_thread;
// child thread data
HWND m_hwnd;
UINT m_taskBarRestart;
// shared data
CReceiverToInfoMap m_receivers;
ReceiverToInfoMap m_receivers;
CIDToReceiverMap m_idTable;
CIDStack m_oldIDs;
UINT m_nextID;
// dialogs
CDialogs m_dialogs;
CDialogs m_addedDialogs;
Dialogs m_dialogs;
Dialogs m_addedDialogs;
};

View File

@ -41,10 +41,10 @@ static PTimeGetTime s_tgt = NULL;
//
// CArchTimeWindows
// ArchTimeWindows
//
CArchTimeWindows::CArchTimeWindows()
ArchTimeWindows::ArchTimeWindows()
{
assert(s_freq == 0.0 || s_mmInstance == NULL);
@ -61,7 +61,7 @@ CArchTimeWindows::CArchTimeWindows()
}
}
CArchTimeWindows::~CArchTimeWindows()
ArchTimeWindows::~ArchTimeWindows()
{
s_freq = 0.0;
if (s_mmInstance == NULL) {
@ -72,7 +72,7 @@ CArchTimeWindows::~CArchTimeWindows()
}
double
CArchTimeWindows::time()
ArchTimeWindows::time()
{
// get time. we try three ways, in order of descending precision
if (s_freq != 0.0) {

View File

@ -20,13 +20,13 @@
#include "arch/IArchTime.h"
#define ARCH_TIME CArchTimeWindows
#define ARCH_TIME ArchTimeWindows
//! Win32 implementation of IArchTime
class CArchTimeWindows : public IArchTime {
class ArchTimeWindows : public IArchTime {
public:
CArchTimeWindows();
virtual ~CArchTimeWindows();
ArchTimeWindows();
virtual ~ArchTimeWindows();
// IArchTime overrides
virtual double time();

View File

@ -20,10 +20,10 @@
#include "base/EventQueue.h"
//
// CEvent
// Event
//
CEvent::CEvent() :
Event::Event() :
m_type(kUnknown),
m_target(NULL),
m_data(NULL),
@ -33,7 +33,7 @@ CEvent::CEvent() :
// do nothing
}
CEvent::CEvent(Type type, void* target, void* data, Flags flags) :
Event::Event(Type type, void* target, void* data, Flags flags) :
m_type(type),
m_target(target),
m_data(data),
@ -43,38 +43,38 @@ CEvent::CEvent(Type type, void* target, void* data, Flags flags) :
// do nothing
}
CEvent::Type
CEvent::getType() const
Event::Type
Event::getType() const
{
return m_type;
}
void*
CEvent::getTarget() const
Event::getTarget() const
{
return m_target;
}
void*
CEvent::getData() const
Event::getData() const
{
return m_data;
}
CEventData*
CEvent::getDataObject() const
EventData*
Event::getDataObject() const
{
return m_dataObject;
}
CEvent::Flags
CEvent::getFlags() const
Event::Flags
Event::getFlags() const
{
return m_flags;
}
void
CEvent::deleteData(const CEvent& event)
Event::deleteData(const Event& event)
{
switch (event.getType()) {
case kUnknown:
@ -93,7 +93,7 @@ CEvent::deleteData(const CEvent& event)
}
void
CEvent::setDataObject(CEventData* dataObject)
Event::setDataObject(EventData* dataObject)
{
assert(m_dataObject == nullptr);
m_dataObject = dataObject;

View File

@ -21,17 +21,17 @@
#include "common/basic_types.h"
#include "common/stdmap.h"
class CEventData {
class EventData {
public:
CEventData() { }
virtual ~CEventData() { }
EventData() { }
virtual ~EventData() { }
};
//! Event
/*!
A \c CEvent holds an event type and a pointer to event data.
A \c Event holds an event type and a pointer to event data.
*/
class CEvent {
class Event {
public:
typedef UInt32 Type;
enum {
@ -49,9 +49,9 @@ public:
kDontFreeData = 0x02 //!< Don't free data in deleteData
};
CEvent();
Event();
//! Create \c CEvent with data (POD)
//! Create \c Event with data (POD)
/*!
The \p data must be POD (plain old data) allocated by malloc(),
which means it cannot have a constructor, destructor or be
@ -60,7 +60,7 @@ public:
\p target is the intended recipient of the event.
\p flags is any combination of \c Flags.
*/
CEvent(Type type, void* target = NULL, void* data = NULL,
Event(Type type, void* target = NULL, void* data = NULL,
Flags flags = kNone);
//! @name manipulators
@ -70,14 +70,14 @@ public:
/*!
Deletes event data for the given event (using free()).
*/
static void deleteData(const CEvent&);
static void deleteData(const Event&);
//! Set data (non-POD)
/*!
Set non-POD (non plain old data), where delete is called when the event
is deleted, and the destructor is called.
*/
void setDataObject(CEventData* dataObject);
void setDataObject(EventData* dataObject);
//@}
//! @name accessors
@ -107,7 +107,7 @@ public:
\c getData() is that when delete is called on this data, so non-POD
(non plain old data) dtor is called.
*/
CEventData* getDataObject() const;
EventData* getDataObject() const;
//! Get event flags
/*!
@ -122,5 +122,5 @@ private:
void* m_target;
void* m_data;
Flags m_flags;
CEventData* m_dataObject;
EventData* m_dataObject;
};

View File

@ -28,21 +28,21 @@
#include "base/Log.h"
#include "base/XBase.h"
EVENT_TYPE_ACCESSOR(CClient)
EVENT_TYPE_ACCESSOR(Client)
EVENT_TYPE_ACCESSOR(IStream)
EVENT_TYPE_ACCESSOR(CIpcClient)
EVENT_TYPE_ACCESSOR(CIpcClientProxy)
EVENT_TYPE_ACCESSOR(CIpcServer)
EVENT_TYPE_ACCESSOR(CIpcServerProxy)
EVENT_TYPE_ACCESSOR(IpcClient)
EVENT_TYPE_ACCESSOR(IpcClientProxy)
EVENT_TYPE_ACCESSOR(IpcServer)
EVENT_TYPE_ACCESSOR(IpcServerProxy)
EVENT_TYPE_ACCESSOR(IDataSocket)
EVENT_TYPE_ACCESSOR(IListenSocket)
EVENT_TYPE_ACCESSOR(ISocket)
EVENT_TYPE_ACCESSOR(COSXScreen)
EVENT_TYPE_ACCESSOR(CClientListener)
EVENT_TYPE_ACCESSOR(CClientProxy)
EVENT_TYPE_ACCESSOR(CClientProxyUnknown)
EVENT_TYPE_ACCESSOR(CServer)
EVENT_TYPE_ACCESSOR(CServerApp)
EVENT_TYPE_ACCESSOR(OSXScreen)
EVENT_TYPE_ACCESSOR(ClientListener)
EVENT_TYPE_ACCESSOR(ClientProxy)
EVENT_TYPE_ACCESSOR(ClientProxyUnknown)
EVENT_TYPE_ACCESSOR(Server)
EVENT_TYPE_ACCESSOR(ServerApp)
EVENT_TYPE_ACCESSOR(IKeyState)
EVENT_TYPE_ACCESSOR(IPrimaryScreen)
EVENT_TYPE_ACCESSOR(IScreen)
@ -50,89 +50,89 @@ EVENT_TYPE_ACCESSOR(IScreen)
// interrupt handler. this just adds a quit event to the queue.
static
void
interrupt(CArch::ESignal, void* data)
interrupt(Arch::ESignal, void* data)
{
CEventQueue* events = reinterpret_cast<CEventQueue*>(data);
events->addEvent(CEvent(CEvent::kQuit));
EventQueue* events = reinterpret_cast<EventQueue*>(data);
events->addEvent(Event(Event::kQuit));
}
//
// CEventQueue
// EventQueue
//
CEventQueue::CEventQueue() :
EventQueue::EventQueue() :
m_systemTarget(0),
m_nextType(CEvent::kLast),
m_typesForCClient(NULL),
m_nextType(Event::kLast),
m_typesForClient(NULL),
m_typesForIStream(NULL),
m_typesForCIpcClient(NULL),
m_typesForCIpcClientProxy(NULL),
m_typesForCIpcServer(NULL),
m_typesForCIpcServerProxy(NULL),
m_typesForIpcClient(NULL),
m_typesForIpcClientProxy(NULL),
m_typesForIpcServer(NULL),
m_typesForIpcServerProxy(NULL),
m_typesForIDataSocket(NULL),
m_typesForIListenSocket(NULL),
m_typesForISocket(NULL),
m_typesForCOSXScreen(NULL),
m_typesForCClientListener(NULL),
m_typesForCClientProxy(NULL),
m_typesForCClientProxyUnknown(NULL),
m_typesForCServer(NULL),
m_typesForCServerApp(NULL),
m_typesForOSXScreen(NULL),
m_typesForClientListener(NULL),
m_typesForClientProxy(NULL),
m_typesForClientProxyUnknown(NULL),
m_typesForServer(NULL),
m_typesForServerApp(NULL),
m_typesForIKeyState(NULL),
m_typesForIPrimaryScreen(NULL),
m_typesForIScreen(NULL),
m_readyMutex(new CMutex),
m_readyCondVar(new CCondVar<bool>(m_readyMutex, false))
m_readyMutex(new Mutex),
m_readyCondVar(new CondVar<bool>(m_readyMutex, false))
{
m_mutex = ARCH->newMutex();
ARCH->setSignalHandler(CArch::kINTERRUPT, &interrupt, this);
ARCH->setSignalHandler(CArch::kTERMINATE, &interrupt, this);
m_buffer = new CSimpleEventQueueBuffer;
ARCH->setSignalHandler(Arch::kINTERRUPT, &interrupt, this);
ARCH->setSignalHandler(Arch::kTERMINATE, &interrupt, this);
m_buffer = new SimpleEventQueueBuffer;
}
CEventQueue::~CEventQueue()
EventQueue::~EventQueue()
{
delete m_buffer;
delete m_readyCondVar;
delete m_readyMutex;
ARCH->setSignalHandler(CArch::kINTERRUPT, NULL, NULL);
ARCH->setSignalHandler(CArch::kTERMINATE, NULL, NULL);
ARCH->setSignalHandler(Arch::kINTERRUPT, NULL, NULL);
ARCH->setSignalHandler(Arch::kTERMINATE, NULL, NULL);
ARCH->closeMutex(m_mutex);
}
void
CEventQueue::loop()
EventQueue::loop()
{
m_buffer->init();
{
CLock lock(m_readyMutex);
Lock lock(m_readyMutex);
*m_readyCondVar = true;
m_readyCondVar->signal();
}
LOG((CLOG_DEBUG "event queue is ready"));
while (!m_pending.empty()) {
LOG((CLOG_DEBUG "add pending events to buffer"));
CEvent& event = m_pending.front();
Event& event = m_pending.front();
addEventToBuffer(event);
m_pending.pop();
}
CEvent event;
Event event;
getEvent(event);
while (event.getType() != CEvent::kQuit) {
while (event.getType() != Event::kQuit) {
dispatchEvent(event);
CEvent::deleteData(event);
Event::deleteData(event);
getEvent(event);
}
}
CEvent::Type
CEventQueue::registerTypeOnce(CEvent::Type& type, const char* name)
Event::Type
EventQueue::registerTypeOnce(Event::Type& type, const char* name)
{
CArchMutexLock lock(m_mutex);
if (type == CEvent::kUnknown) {
ArchMutexLock lock(m_mutex);
if (type == Event::kUnknown) {
m_typeMap.insert(std::make_pair(m_nextType, name));
m_nameMap.insert(std::make_pair(name, m_nextType));
LOG((CLOG_DEBUG1 "registered event type %s as %d", name, m_nextType));
@ -142,23 +142,23 @@ CEventQueue::registerTypeOnce(CEvent::Type& type, const char* name)
}
const char*
CEventQueue::getTypeName(CEvent::Type type)
EventQueue::getTypeName(Event::Type type)
{
switch (type) {
case CEvent::kUnknown:
case Event::kUnknown:
return "nil";
case CEvent::kQuit:
case Event::kQuit:
return "quit";
case CEvent::kSystem:
case Event::kSystem:
return "system";
case CEvent::kTimer:
case Event::kTimer:
return "timer";
default:
CTypeMap::const_iterator i = m_typeMap.find(type);
TypeMap::const_iterator i = m_typeMap.find(type);
if (i == m_typeMap.end()) {
return "<unknown>";
}
@ -169,9 +169,9 @@ CEventQueue::getTypeName(CEvent::Type type)
}
void
CEventQueue::adoptBuffer(IEventQueueBuffer* buffer)
EventQueue::adoptBuffer(IEventQueueBuffer* buffer)
{
CArchMutexLock lock(m_mutex);
ArchMutexLock lock(m_mutex);
LOG((CLOG_DEBUG "adopting new buffer"));
@ -183,8 +183,8 @@ CEventQueue::adoptBuffer(IEventQueueBuffer* buffer)
// discard old buffer and old events
delete m_buffer;
for (CEventTable::iterator i = m_events.begin(); i != m_events.end(); ++i) {
CEvent::deleteData(i->second);
for (EventTable::iterator i = m_events.begin(); i != m_events.end(); ++i) {
Event::deleteData(i->second);
}
m_events.clear();
m_oldEventIDs.clear();
@ -192,14 +192,14 @@ CEventQueue::adoptBuffer(IEventQueueBuffer* buffer)
// use new buffer
m_buffer = buffer;
if (m_buffer == NULL) {
m_buffer = new CSimpleEventQueueBuffer;
m_buffer = new SimpleEventQueueBuffer;
}
}
bool
CEventQueue::getEvent(CEvent& event, double timeout)
EventQueue::getEvent(Event& event, double timeout)
{
CStopwatch timer(true);
Stopwatch timer(true);
retry:
// if no events are waiting then handle timers and then wait
while (m_buffer->isEmpty()) {
@ -244,7 +244,7 @@ retry:
case IEventQueueBuffer::kUser:
{
CArchMutexLock lock(m_mutex);
ArchMutexLock lock(m_mutex);
event = removeEvent(dataID);
return true;
}
@ -256,12 +256,12 @@ retry:
}
bool
CEventQueue::dispatchEvent(const CEvent& event)
EventQueue::dispatchEvent(const Event& event)
{
void* target = event.getTarget();
IEventJob* job = getHandler(event.getType(), target);
if (job == NULL) {
job = getHandler(CEvent::kUnknown, target);
job = getHandler(Event::kUnknown, target);
}
if (job != NULL) {
job->run(event);
@ -271,22 +271,22 @@ CEventQueue::dispatchEvent(const CEvent& event)
}
void
CEventQueue::addEvent(const CEvent& event)
EventQueue::addEvent(const Event& event)
{
// discard bogus event types
switch (event.getType()) {
case CEvent::kUnknown:
case CEvent::kSystem:
case CEvent::kTimer:
case Event::kUnknown:
case Event::kSystem:
case Event::kTimer:
return;
default:
break;
}
if ((event.getFlags() & CEvent::kDeliverImmediately) != 0) {
if ((event.getFlags() & Event::kDeliverImmediately) != 0) {
dispatchEvent(event);
CEvent::deleteData(event);
Event::deleteData(event);
}
else if (!(*m_readyCondVar)) {
m_pending.push(event);
@ -297,9 +297,9 @@ CEventQueue::addEvent(const CEvent& event)
}
void
CEventQueue::addEventToBuffer(const CEvent& event)
EventQueue::addEventToBuffer(const Event& event)
{
CArchMutexLock lock(m_mutex);
ArchMutexLock lock(m_mutex);
// store the event's data locally
UInt32 eventID = saveEvent(event);
@ -308,60 +308,60 @@ CEventQueue::addEventToBuffer(const CEvent& event)
if (!m_buffer->addEvent(eventID)) {
// failed to send event
removeEvent(eventID);
CEvent::deleteData(event);
Event::deleteData(event);
}
}
CEventQueueTimer*
CEventQueue::newTimer(double duration, void* target)
EventQueueTimer*
EventQueue::newTimer(double duration, void* target)
{
assert(duration > 0.0);
CEventQueueTimer* timer = m_buffer->newTimer(duration, false);
EventQueueTimer* timer = m_buffer->newTimer(duration, false);
if (target == NULL) {
target = timer;
}
CArchMutexLock lock(m_mutex);
ArchMutexLock lock(m_mutex);
m_timers.insert(timer);
// initial duration is requested duration plus whatever's on
// the clock currently because the latter will be subtracted
// the next time we check for timers.
m_timerQueue.push(CTimer(timer, duration,
m_timerQueue.push(Timer(timer, duration,
duration + m_time.getTime(), target, false));
return timer;
}
CEventQueueTimer*
CEventQueue::newOneShotTimer(double duration, void* target)
EventQueueTimer*
EventQueue::newOneShotTimer(double duration, void* target)
{
assert(duration > 0.0);
CEventQueueTimer* timer = m_buffer->newTimer(duration, true);
EventQueueTimer* timer = m_buffer->newTimer(duration, true);
if (target == NULL) {
target = timer;
}
CArchMutexLock lock(m_mutex);
ArchMutexLock lock(m_mutex);
m_timers.insert(timer);
// initial duration is requested duration plus whatever's on
// the clock currently because the latter will be subtracted
// the next time we check for timers.
m_timerQueue.push(CTimer(timer, duration,
m_timerQueue.push(Timer(timer, duration,
duration + m_time.getTime(), target, true));
return timer;
}
void
CEventQueue::deleteTimer(CEventQueueTimer* timer)
EventQueue::deleteTimer(EventQueueTimer* timer)
{
CArchMutexLock lock(m_mutex);
for (CTimerQueue::iterator index = m_timerQueue.begin();
ArchMutexLock lock(m_mutex);
for (TimerQueue::iterator index = m_timerQueue.begin();
index != m_timerQueue.end(); ++index) {
if (index->getTimer() == timer) {
m_timerQueue.erase(index);
break;
}
}
CTimers::iterator index = m_timers.find(timer);
Timers::iterator index = m_timers.find(timer);
if (index != m_timers.end()) {
m_timers.erase(index);
}
@ -369,24 +369,24 @@ CEventQueue::deleteTimer(CEventQueueTimer* timer)
}
void
CEventQueue::adoptHandler(CEvent::Type type, void* target, IEventJob* handler)
EventQueue::adoptHandler(Event::Type type, void* target, IEventJob* handler)
{
CArchMutexLock lock(m_mutex);
ArchMutexLock lock(m_mutex);
IEventJob*& job = m_handlers[target][type];
delete job;
job = handler;
}
void
CEventQueue::removeHandler(CEvent::Type type, void* target)
EventQueue::removeHandler(Event::Type type, void* target)
{
IEventJob* handler = NULL;
{
CArchMutexLock lock(m_mutex);
CHandlerTable::iterator index = m_handlers.find(target);
ArchMutexLock lock(m_mutex);
HandlerTable::iterator index = m_handlers.find(target);
if (index != m_handlers.end()) {
CTypeHandlerTable& typeHandlers = index->second;
CTypeHandlerTable::iterator index2 = typeHandlers.find(type);
TypeHandlerTable& typeHandlers = index->second;
TypeHandlerTable::iterator index2 = typeHandlers.find(type);
if (index2 != typeHandlers.end()) {
handler = index2->second;
typeHandlers.erase(index2);
@ -397,16 +397,16 @@ CEventQueue::removeHandler(CEvent::Type type, void* target)
}
void
CEventQueue::removeHandlers(void* target)
EventQueue::removeHandlers(void* target)
{
std::vector<IEventJob*> handlers;
{
CArchMutexLock lock(m_mutex);
CHandlerTable::iterator index = m_handlers.find(target);
ArchMutexLock lock(m_mutex);
HandlerTable::iterator index = m_handlers.find(target);
if (index != m_handlers.end()) {
// copy to handlers array and clear table for target
CTypeHandlerTable& typeHandlers = index->second;
for (CTypeHandlerTable::iterator index2 = typeHandlers.begin();
TypeHandlerTable& typeHandlers = index->second;
for (TypeHandlerTable::iterator index2 = typeHandlers.begin();
index2 != typeHandlers.end(); ++index2) {
handlers.push_back(index2->second);
}
@ -422,19 +422,19 @@ CEventQueue::removeHandlers(void* target)
}
bool
CEventQueue::isEmpty() const
EventQueue::isEmpty() const
{
return (m_buffer->isEmpty() && getNextTimerTimeout() != 0.0);
}
IEventJob*
CEventQueue::getHandler(CEvent::Type type, void* target) const
EventQueue::getHandler(Event::Type type, void* target) const
{
CArchMutexLock lock(m_mutex);
CHandlerTable::const_iterator index = m_handlers.find(target);
ArchMutexLock lock(m_mutex);
HandlerTable::const_iterator index = m_handlers.find(target);
if (index != m_handlers.end()) {
const CTypeHandlerTable& typeHandlers = index->second;
CTypeHandlerTable::const_iterator index2 = typeHandlers.find(type);
const TypeHandlerTable& typeHandlers = index->second;
TypeHandlerTable::const_iterator index2 = typeHandlers.find(type);
if (index2 != typeHandlers.end()) {
return index2->second;
}
@ -443,7 +443,7 @@ CEventQueue::getHandler(CEvent::Type type, void* target) const
}
UInt32
CEventQueue::saveEvent(const CEvent& event)
EventQueue::saveEvent(const Event& event)
{
// choose id
UInt32 id;
@ -462,17 +462,17 @@ CEventQueue::saveEvent(const CEvent& event)
return id;
}
CEvent
CEventQueue::removeEvent(UInt32 eventID)
Event
EventQueue::removeEvent(UInt32 eventID)
{
// look up id
CEventTable::iterator index = m_events.find(eventID);
EventTable::iterator index = m_events.find(eventID);
if (index == m_events.end()) {
return CEvent();
return Event();
}
// get data
CEvent event = index->second;
Event event = index->second;
m_events.erase(index);
// save old id for reuse
@ -482,7 +482,7 @@ CEventQueue::removeEvent(UInt32 eventID)
}
bool
CEventQueue::hasTimerExpired(CEvent& event)
EventQueue::hasTimerExpired(Event& event)
{
// return true if there's a timer in the timer priority queue that
// has expired. if returning true then fill in event appropriately
@ -496,7 +496,7 @@ CEventQueue::hasTimerExpired(CEvent& event)
m_time.reset();
// countdown elapsed time
for (CTimerQueue::iterator index = m_timerQueue.begin();
for (TimerQueue::iterator index = m_timerQueue.begin();
index != m_timerQueue.end(); ++index) {
(*index) -= time;
}
@ -507,12 +507,12 @@ CEventQueue::hasTimerExpired(CEvent& event)
}
// remove timer from queue
CTimer timer = m_timerQueue.top();
Timer timer = m_timerQueue.top();
m_timerQueue.pop();
// prepare event and reset the timer's clock
timer.fillEvent(m_timerEvent);
event = CEvent(CEvent::kTimer, timer.getTarget(), &m_timerEvent);
event = Event(Event::kTimer, timer.getTarget(), &m_timerEvent);
timer.reset();
// reinsert timer into queue if it's not a one-shot
@ -524,7 +524,7 @@ CEventQueue::hasTimerExpired(CEvent& event)
}
double
CEventQueue::getNextTimerTimeout() const
EventQueue::getNextTimerTimeout() const
{
// return -1 if no timers, 0 if the top timer has expired, otherwise
// the time until the top timer in the timer priority queue will
@ -538,28 +538,28 @@ CEventQueue::getNextTimerTimeout() const
return m_timerQueue.top();
}
CEvent::Type
CEventQueue::getRegisteredType(const CString& name) const
Event::Type
EventQueue::getRegisteredType(const String& name) const
{
CNameMap::const_iterator found = m_nameMap.find(name);
NameMap::const_iterator found = m_nameMap.find(name);
if (found != m_nameMap.end())
return found->second;
return CEvent::kUnknown;
return Event::kUnknown;
}
void*
CEventQueue::getSystemTarget()
EventQueue::getSystemTarget()
{
// any unique arbitrary pointer will do
return &m_systemTarget;
}
void
CEventQueue::waitForReady() const
EventQueue::waitForReady() const
{
double timeout = ARCH->time() + 10;
CLock lock(m_readyMutex);
Lock lock(m_readyMutex);
while (!m_readyCondVar->wait()) {
if(ARCH->time() > timeout) {
@ -569,10 +569,10 @@ CEventQueue::waitForReady() const
}
//
// CEventQueue::CTimer
// EventQueue::Timer
//
CEventQueue::CTimer::CTimer(CEventQueueTimer* timer, double timeout,
EventQueue::Timer::Timer(EventQueueTimer* timer, double timeout,
double initialTime, void* target, bool oneShot) :
m_timer(timer),
m_timeout(timeout),
@ -583,49 +583,49 @@ CEventQueue::CTimer::CTimer(CEventQueueTimer* timer, double timeout,
assert(m_timeout > 0.0);
}
CEventQueue::CTimer::~CTimer()
EventQueue::Timer::~Timer()
{
// do nothing
}
void
CEventQueue::CTimer::reset()
EventQueue::Timer::reset()
{
m_time = m_timeout;
}
CEventQueue::CTimer&
CEventQueue::CTimer::operator-=(double dt)
EventQueue::Timer&
EventQueue::Timer::operator-=(double dt)
{
m_time -= dt;
return *this;
}
CEventQueue::CTimer::operator double() const
EventQueue::Timer::operator double() const
{
return m_time;
}
bool
CEventQueue::CTimer::isOneShot() const
EventQueue::Timer::isOneShot() const
{
return m_oneShot;
}
CEventQueueTimer*
CEventQueue::CTimer::getTimer() const
EventQueueTimer*
EventQueue::Timer::getTimer() const
{
return m_timer;
}
void*
CEventQueue::CTimer::getTarget() const
EventQueue::Timer::getTarget() const
{
return m_target;
}
void
CEventQueue::CTimer::fillEvent(CTimerEvent& event) const
EventQueue::Timer::fillEvent(TimerEvent& event) const
{
event.m_timer = m_timer;
event.m_count = 0;
@ -635,7 +635,7 @@ CEventQueue::CTimer::fillEvent(CTimerEvent& event) const
}
bool
CEventQueue::CTimer::operator<(const CTimer& t) const
EventQueue::Timer::operator<(const Timer& t) const
{
return m_time < t.m_time;
}

View File

@ -29,162 +29,162 @@
#include <queue>
class CMutex;
class Mutex;
//! Event queue
/*!
An event queue that implements the platform independent parts and
delegates the platform dependent parts to a subclass.
*/
class CEventQueue : public IEventQueue {
class EventQueue : public IEventQueue {
public:
CEventQueue();
virtual ~CEventQueue();
EventQueue();
virtual ~EventQueue();
// IEventQueue overrides
virtual void loop();
virtual void adoptBuffer(IEventQueueBuffer*);
virtual bool getEvent(CEvent& event, double timeout = -1.0);
virtual bool dispatchEvent(const CEvent& event);
virtual void addEvent(const CEvent& event);
virtual CEventQueueTimer*
virtual bool getEvent(Event& event, double timeout = -1.0);
virtual bool dispatchEvent(const Event& event);
virtual void addEvent(const Event& event);
virtual EventQueueTimer*
newTimer(double duration, void* target);
virtual CEventQueueTimer*
virtual EventQueueTimer*
newOneShotTimer(double duration, void* target);
virtual void deleteTimer(CEventQueueTimer*);
virtual void adoptHandler(CEvent::Type type,
virtual void deleteTimer(EventQueueTimer*);
virtual void adoptHandler(Event::Type type,
void* target, IEventJob* handler);
virtual void removeHandler(CEvent::Type type, void* target);
virtual void removeHandler(Event::Type type, void* target);
virtual void removeHandlers(void* target);
virtual CEvent::Type
registerTypeOnce(CEvent::Type& type, const char* name);
virtual Event::Type
registerTypeOnce(Event::Type& type, const char* name);
virtual bool isEmpty() const;
virtual IEventJob* getHandler(CEvent::Type type, void* target) const;
virtual const char* getTypeName(CEvent::Type type);
virtual CEvent::Type
getRegisteredType(const CString& name) const;
virtual IEventJob* getHandler(Event::Type type, void* target) const;
virtual const char* getTypeName(Event::Type type);
virtual Event::Type
getRegisteredType(const String& name) const;
void* getSystemTarget();
virtual void waitForReady() const;
private:
UInt32 saveEvent(const CEvent& event);
CEvent removeEvent(UInt32 eventID);
bool hasTimerExpired(CEvent& event);
UInt32 saveEvent(const Event& event);
Event removeEvent(UInt32 eventID);
bool hasTimerExpired(Event& event);
double getNextTimerTimeout() const;
void addEventToBuffer(const CEvent& event);
void addEventToBuffer(const Event& event);
private:
class CTimer {
class Timer {
public:
CTimer(CEventQueueTimer*, double timeout, double initialTime,
Timer(EventQueueTimer*, double timeout, double initialTime,
void* target, bool oneShot);
~CTimer();
~Timer();
void reset();
CTimer& operator-=(double);
Timer& operator-=(double);
operator double() const;
bool isOneShot() const;
CEventQueueTimer*
EventQueueTimer*
getTimer() const;
void* getTarget() const;
void fillEvent(CTimerEvent&) const;
void fillEvent(TimerEvent&) const;
bool operator<(const CTimer&) const;
bool operator<(const Timer&) const;
private:
CEventQueueTimer* m_timer;
EventQueueTimer* m_timer;
double m_timeout;
void* m_target;
bool m_oneShot;
double m_time;
};
typedef std::set<CEventQueueTimer*> CTimers;
typedef CPriorityQueue<CTimer> CTimerQueue;
typedef std::map<UInt32, CEvent> CEventTable;
typedef std::vector<UInt32> CEventIDList;
typedef std::map<CEvent::Type, const char*> CTypeMap;
typedef std::map<CString, CEvent::Type> CNameMap;
typedef std::map<CEvent::Type, IEventJob*> CTypeHandlerTable;
typedef std::map<void*, CTypeHandlerTable> CHandlerTable;
typedef std::set<EventQueueTimer*> Timers;
typedef PriorityQueue<Timer> TimerQueue;
typedef std::map<UInt32, Event> EventTable;
typedef std::vector<UInt32> EventIDList;
typedef std::map<Event::Type, const char*> TypeMap;
typedef std::map<String, Event::Type> NameMap;
typedef std::map<Event::Type, IEventJob*> TypeHandlerTable;
typedef std::map<void*, TypeHandlerTable> HandlerTable;
int m_systemTarget;
CArchMutex m_mutex;
ArchMutex m_mutex;
// registered events
CEvent::Type m_nextType;
CTypeMap m_typeMap;
CNameMap m_nameMap;
Event::Type m_nextType;
TypeMap m_typeMap;
NameMap m_nameMap;
// buffer of events
IEventQueueBuffer* m_buffer;
// saved events
CEventTable m_events;
CEventIDList m_oldEventIDs;
EventTable m_events;
EventIDList m_oldEventIDs;
// timers
CStopwatch m_time;
CTimers m_timers;
CTimerQueue m_timerQueue;
CTimerEvent m_timerEvent;
Stopwatch m_time;
Timers m_timers;
TimerQueue m_timerQueue;
TimerEvent m_timerEvent;
// event handlers
CHandlerTable m_handlers;
HandlerTable m_handlers;
public:
//
// Event type providers.
//
CClientEvents& forCClient();
ClientEvents& forClient();
IStreamEvents& forIStream();
CIpcClientEvents& forCIpcClient();
CIpcClientProxyEvents& forCIpcClientProxy();
CIpcServerEvents& forCIpcServer();
CIpcServerProxyEvents& forCIpcServerProxy();
IpcClientEvents& forIpcClient();
IpcClientProxyEvents& forIpcClientProxy();
IpcServerEvents& forIpcServer();
IpcServerProxyEvents& forIpcServerProxy();
IDataSocketEvents& forIDataSocket();
IListenSocketEvents& forIListenSocket();
ISocketEvents& forISocket();
COSXScreenEvents& forCOSXScreen();
CClientListenerEvents& forCClientListener();
CClientProxyEvents& forCClientProxy();
CClientProxyUnknownEvents& forCClientProxyUnknown();
CServerEvents& forCServer();
CServerAppEvents& forCServerApp();
OSXScreenEvents& forOSXScreen();
ClientListenerEvents& forClientListener();
ClientProxyEvents& forClientProxy();
ClientProxyUnknownEvents& forClientProxyUnknown();
ServerEvents& forServer();
ServerAppEvents& forServerApp();
IKeyStateEvents& forIKeyState();
IPrimaryScreenEvents& forIPrimaryScreen();
IScreenEvents& forIScreen();
private:
CClientEvents* m_typesForCClient;
ClientEvents* m_typesForClient;
IStreamEvents* m_typesForIStream;
CIpcClientEvents* m_typesForCIpcClient;
CIpcClientProxyEvents* m_typesForCIpcClientProxy;
CIpcServerEvents* m_typesForCIpcServer;
CIpcServerProxyEvents* m_typesForCIpcServerProxy;
IpcClientEvents* m_typesForIpcClient;
IpcClientProxyEvents* m_typesForIpcClientProxy;
IpcServerEvents* m_typesForIpcServer;
IpcServerProxyEvents* m_typesForIpcServerProxy;
IDataSocketEvents* m_typesForIDataSocket;
IListenSocketEvents* m_typesForIListenSocket;
ISocketEvents* m_typesForISocket;
COSXScreenEvents* m_typesForCOSXScreen;
CClientListenerEvents* m_typesForCClientListener;
CClientProxyEvents* m_typesForCClientProxy;
CClientProxyUnknownEvents* m_typesForCClientProxyUnknown;
CServerEvents* m_typesForCServer;
CServerAppEvents* m_typesForCServerApp;
OSXScreenEvents* m_typesForOSXScreen;
ClientListenerEvents* m_typesForClientListener;
ClientProxyEvents* m_typesForClientProxy;
ClientProxyUnknownEvents* m_typesForClientProxyUnknown;
ServerEvents* m_typesForServer;
ServerAppEvents* m_typesForServerApp;
IKeyStateEvents* m_typesForIKeyState;
IPrimaryScreenEvents* m_typesForIPrimaryScreen;
IScreenEvents* m_typesForIScreen;
CMutex* m_readyMutex;
CCondVar<bool>* m_readyCondVar;
std::queue<CEvent> m_pending;
Mutex* m_readyMutex;
CondVar<bool>* m_readyCondVar;
std::queue<Event> m_pending;
};
#define EVENT_TYPE_ACCESSOR(type_) \
type_##Events& \
CEventQueue::for##type_() { \
EventQueue::for##type_() { \
if (m_typesFor##type_ == NULL) { \
m_typesFor##type_ = new type_##Events(); \
m_typesFor##type_->setEvents(dynamic_cast<IEventQueue*>(this)); \

View File

@ -21,31 +21,31 @@
#include <assert.h>
#include <stddef.h>
CEventTypes::CEventTypes() :
EventTypes::EventTypes() :
m_events(NULL)
{
}
IEventQueue*
CEventTypes::getEvents() const
EventTypes::getEvents() const
{
assert(m_events != NULL);
return m_events;
}
void
CEventTypes::setEvents(IEventQueue* events)
EventTypes::setEvents(IEventQueue* events)
{
m_events = events;
}
//
// CClient
// Client
//
REGISTER_EVENT(CClient, connected)
REGISTER_EVENT(CClient, connectionFailed)
REGISTER_EVENT(CClient, disconnected)
REGISTER_EVENT(Client, connected)
REGISTER_EVENT(Client, connectionFailed)
REGISTER_EVENT(Client, disconnected)
//
// IStream
@ -58,24 +58,24 @@ REGISTER_EVENT(IStream, inputShutdown)
REGISTER_EVENT(IStream, outputShutdown)
//
// CIpcClient
// IpcClient
//
REGISTER_EVENT(CIpcClient, connected)
REGISTER_EVENT(CIpcClient, messageReceived)
REGISTER_EVENT(IpcClient, connected)
REGISTER_EVENT(IpcClient, messageReceived)
//
// CIpcClientProxy
// IpcClientProxy
//
REGISTER_EVENT(CIpcClientProxy, messageReceived)
REGISTER_EVENT(CIpcClientProxy, disconnected)
REGISTER_EVENT(IpcClientProxy, messageReceived)
REGISTER_EVENT(IpcClientProxy, disconnected)
//
// CIpcServerProxy
// IpcServerProxy
//
REGISTER_EVENT(CIpcServerProxy, messageReceived)
REGISTER_EVENT(IpcServerProxy, messageReceived)
//
// IDataSocket
@ -97,52 +97,52 @@ REGISTER_EVENT(IListenSocket, connecting)
REGISTER_EVENT(ISocket, disconnected)
//
// COSXScreen
// OSXScreen
//
REGISTER_EVENT(COSXScreen, confirmSleep)
REGISTER_EVENT(OSXScreen, confirmSleep)
//
// CClientListener
// ClientListener
//
REGISTER_EVENT(CClientListener, connected)
REGISTER_EVENT(ClientListener, connected)
//
// CClientProxy
// ClientProxy
//
REGISTER_EVENT(CClientProxy, ready)
REGISTER_EVENT(CClientProxy, disconnected)
REGISTER_EVENT(CClientProxy, clipboardChanged)
REGISTER_EVENT(ClientProxy, ready)
REGISTER_EVENT(ClientProxy, disconnected)
REGISTER_EVENT(ClientProxy, clipboardChanged)
//
// CClientProxyUnknown
// ClientProxyUnknown
//
REGISTER_EVENT(CClientProxyUnknown, success)
REGISTER_EVENT(CClientProxyUnknown, failure)
REGISTER_EVENT(ClientProxyUnknown, success)
REGISTER_EVENT(ClientProxyUnknown, failure)
//
// CServer
// Server
//
REGISTER_EVENT(CServer, error)
REGISTER_EVENT(CServer, connected)
REGISTER_EVENT(CServer, disconnected)
REGISTER_EVENT(CServer, switchToScreen)
REGISTER_EVENT(CServer, switchInDirection)
REGISTER_EVENT(CServer, keyboardBroadcast)
REGISTER_EVENT(CServer, lockCursorToScreen)
REGISTER_EVENT(CServer, screenSwitched)
REGISTER_EVENT(Server, error)
REGISTER_EVENT(Server, connected)
REGISTER_EVENT(Server, disconnected)
REGISTER_EVENT(Server, switchToScreen)
REGISTER_EVENT(Server, switchInDirection)
REGISTER_EVENT(Server, keyboardBroadcast)
REGISTER_EVENT(Server, lockCursorToScreen)
REGISTER_EVENT(Server, screenSwitched)
//
// CServerApp
// ServerApp
//
REGISTER_EVENT(CServerApp, reloadConfig)
REGISTER_EVENT(CServerApp, forceReconnect)
REGISTER_EVENT(CServerApp, resetServer)
REGISTER_EVENT(ServerApp, reloadConfig)
REGISTER_EVENT(ServerApp, forceReconnect)
REGISTER_EVENT(ServerApp, resetServer)
//
// IKeyState
@ -181,8 +181,8 @@ REGISTER_EVENT(IScreen, fileChunkSending)
REGISTER_EVENT(IScreen, fileRecieveCompleted)
//
// CIpcServer
// IpcServer
//
REGISTER_EVENT(CIpcServer, clientConnected)
REGISTER_EVENT(CIpcServer, messageReceived)
REGISTER_EVENT(IpcServer, clientConnected)
REGISTER_EVENT(IpcServer, messageReceived)

View File

@ -21,9 +21,9 @@
class IEventQueue;
class CEventTypes {
class EventTypes {
public:
CEventTypes();
EventTypes();
void setEvents(IEventQueue* events);
protected:
@ -34,18 +34,18 @@ private:
};
#define REGISTER_EVENT(type_, name_) \
CEvent::Type \
Event::Type \
type_##Events::name_() \
{ \
return getEvents()->registerTypeOnce(m_##name_, __FUNCTION__); \
}
class CClientEvents : public CEventTypes {
class ClientEvents : public EventTypes {
public:
CClientEvents() :
m_connected(CEvent::kUnknown),
m_connectionFailed(CEvent::kUnknown),
m_disconnected(CEvent::kUnknown) { }
ClientEvents() :
m_connected(Event::kUnknown),
m_connectionFailed(Event::kUnknown),
m_disconnected(Event::kUnknown) { }
//! @name accessors
//@{
@ -55,14 +55,14 @@ public:
Returns the connected event type. This is sent when the client has
successfully connected to the server.
*/
CEvent::Type connected();
Event::Type connected();
//! Get connection failed event type
/*!
Returns the connection failed event type. This is sent when the
server fails for some reason. The event data is a CFailInfo*.
server fails for some reason. The event data is a FailInfo*.
*/
CEvent::Type connectionFailed();
Event::Type connectionFailed();
//! Get disconnected event type
/*!
@ -70,24 +70,24 @@ public:
has disconnected from the server (and only after having successfully
connected).
*/
CEvent::Type disconnected();
Event::Type disconnected();
//@}
private:
CEvent::Type m_connected;
CEvent::Type m_connectionFailed;
CEvent::Type m_disconnected;
Event::Type m_connected;
Event::Type m_connectionFailed;
Event::Type m_disconnected;
};
class IStreamEvents : public CEventTypes {
class IStreamEvents : public EventTypes {
public:
IStreamEvents() :
m_inputReady(CEvent::kUnknown),
m_outputFlushed(CEvent::kUnknown),
m_outputError(CEvent::kUnknown),
m_inputShutdown(CEvent::kUnknown),
m_outputShutdown(CEvent::kUnknown) { }
m_inputReady(Event::kUnknown),
m_outputFlushed(Event::kUnknown),
m_outputError(Event::kUnknown),
m_inputShutdown(Event::kUnknown),
m_outputShutdown(Event::kUnknown) { }
//! @name accessors
//@{
@ -97,7 +97,7 @@ public:
Returns the input ready event type. A stream sends this event
when \c read() will return with data.
*/
CEvent::Type inputReady();
Event::Type inputReady();
//! Get output flushed event type
/*!
@ -107,14 +107,14 @@ public:
\c close() will not discard any data and \c flush() will return
immediately.
*/
CEvent::Type outputFlushed();
Event::Type outputFlushed();
//! Get output error event type
/*!
Returns the output error event type. A stream sends this event
when a write has failed.
*/
CEvent::Type outputError();
Event::Type outputError();
//! Get input shutdown event type
/*!
@ -122,7 +122,7 @@ public:
input side of the stream has shutdown. When the input has
shutdown, no more data will ever be available to read.
*/
CEvent::Type inputShutdown();
Event::Type inputShutdown();
//! Get output shutdown event type
/*!
@ -131,106 +131,106 @@ public:
shutdown, no more data can ever be written to the stream. Any
attempt to do so will generate a output error event.
*/
CEvent::Type outputShutdown();
Event::Type outputShutdown();
//@}
private:
CEvent::Type m_inputReady;
CEvent::Type m_outputFlushed;
CEvent::Type m_outputError;
CEvent::Type m_inputShutdown;
CEvent::Type m_outputShutdown;
Event::Type m_inputReady;
Event::Type m_outputFlushed;
Event::Type m_outputError;
Event::Type m_inputShutdown;
Event::Type m_outputShutdown;
};
class CIpcClientEvents : public CEventTypes {
class IpcClientEvents : public EventTypes {
public:
CIpcClientEvents() :
m_connected(CEvent::kUnknown),
m_messageReceived(CEvent::kUnknown) { }
IpcClientEvents() :
m_connected(Event::kUnknown),
m_messageReceived(Event::kUnknown) { }
//! @name accessors
//@{
//! Raised when the socket is connected.
CEvent::Type connected();
Event::Type connected();
//! Raised when a message is received.
CEvent::Type messageReceived();
Event::Type messageReceived();
//@}
private:
CEvent::Type m_connected;
CEvent::Type m_messageReceived;
Event::Type m_connected;
Event::Type m_messageReceived;
};
class CIpcClientProxyEvents : public CEventTypes {
class IpcClientProxyEvents : public EventTypes {
public:
CIpcClientProxyEvents() :
m_messageReceived(CEvent::kUnknown),
m_disconnected(CEvent::kUnknown) { }
IpcClientProxyEvents() :
m_messageReceived(Event::kUnknown),
m_disconnected(Event::kUnknown) { }
//! @name accessors
//@{
//! Raised when the server receives a message from a client.
CEvent::Type messageReceived();
Event::Type messageReceived();
//! Raised when the client disconnects from the server.
CEvent::Type disconnected();
Event::Type disconnected();
//@}
private:
CEvent::Type m_messageReceived;
CEvent::Type m_disconnected;
Event::Type m_messageReceived;
Event::Type m_disconnected;
};
class CIpcServerEvents : public CEventTypes {
class IpcServerEvents : public EventTypes {
public:
CIpcServerEvents() :
m_clientConnected(CEvent::kUnknown),
m_messageReceived(CEvent::kUnknown) { }
IpcServerEvents() :
m_clientConnected(Event::kUnknown),
m_messageReceived(Event::kUnknown) { }
//! @name accessors
//@{
//! Raised when we have created the client proxy.
CEvent::Type clientConnected();
Event::Type clientConnected();
//! Raised when a message is received through a client proxy.
CEvent::Type messageReceived();
Event::Type messageReceived();
//@}
private:
CEvent::Type m_clientConnected;
CEvent::Type m_messageReceived;
Event::Type m_clientConnected;
Event::Type m_messageReceived;
};
class CIpcServerProxyEvents : public CEventTypes {
class IpcServerProxyEvents : public EventTypes {
public:
CIpcServerProxyEvents() :
m_messageReceived(CEvent::kUnknown) { }
IpcServerProxyEvents() :
m_messageReceived(Event::kUnknown) { }
//! @name accessors
//@{
//! Raised when the client receives a message from the server.
CEvent::Type messageReceived();
Event::Type messageReceived();
//@}
private:
CEvent::Type m_messageReceived;
Event::Type m_messageReceived;
};
class IDataSocketEvents : public CEventTypes {
class IDataSocketEvents : public EventTypes {
public:
IDataSocketEvents() :
m_connected(CEvent::kUnknown),
m_connectionFailed(CEvent::kUnknown) { }
m_connected(Event::kUnknown),
m_connectionFailed(Event::kUnknown) { }
//! @name accessors
//@{
@ -240,27 +240,27 @@ public:
Returns the socket connected event type. A socket sends this
event when a remote connection has been established.
*/
CEvent::Type connected();
Event::Type connected();
//! Get connection failed event type
/*!
Returns the socket connection failed event type. A socket sends
this event when an attempt to connect to a remote port has failed.
The data is a pointer to a CConnectionFailedInfo.
The data is a pointer to a ConnectionFailedInfo.
*/
CEvent::Type connectionFailed();
Event::Type connectionFailed();
//@}
private:
CEvent::Type m_connected;
CEvent::Type m_connectionFailed;
Event::Type m_connected;
Event::Type m_connectionFailed;
};
class IListenSocketEvents : public CEventTypes {
class IListenSocketEvents : public EventTypes {
public:
IListenSocketEvents() :
m_connecting(CEvent::kUnknown) { }
m_connecting(Event::kUnknown) { }
//! @name accessors
//@{
@ -270,18 +270,18 @@ public:
Returns the socket connecting event type. A socket sends this
event when a remote connection is waiting to be accepted.
*/
CEvent::Type connecting();
Event::Type connecting();
//@}
private:
CEvent::Type m_connecting;
Event::Type m_connecting;
};
class ISocketEvents : public CEventTypes {
class ISocketEvents : public EventTypes {
public:
ISocketEvents() :
m_disconnected(CEvent::kUnknown) { }
m_disconnected(Event::kUnknown) { }
//! @name accessors
//@{
@ -292,34 +292,34 @@ public:
event when the remote side of the socket has disconnected or
shutdown both input and output.
*/
CEvent::Type disconnected();
Event::Type disconnected();
//@}
private:
CEvent::Type m_disconnected;
Event::Type m_disconnected;
};
class COSXScreenEvents : public CEventTypes {
class OSXScreenEvents : public EventTypes {
public:
COSXScreenEvents() :
m_confirmSleep(CEvent::kUnknown) { }
OSXScreenEvents() :
m_confirmSleep(Event::kUnknown) { }
//! @name accessors
//@{
CEvent::Type confirmSleep();
Event::Type confirmSleep();
//@}
private:
CEvent::Type m_confirmSleep;
Event::Type m_confirmSleep;
};
class CClientListenerEvents : public CEventTypes {
class ClientListenerEvents : public EventTypes {
public:
CClientListenerEvents() :
m_connected(CEvent::kUnknown) { }
ClientListenerEvents() :
m_connected(Event::kUnknown) { }
//! @name accessors
//@{
@ -329,20 +329,20 @@ public:
Returns the connected event type. This is sent whenever a
a client connects.
*/
CEvent::Type connected();
Event::Type connected();
//@}
private:
CEvent::Type m_connected;
Event::Type m_connected;
};
class CClientProxyEvents : public CEventTypes {
class ClientProxyEvents : public EventTypes {
public:
CClientProxyEvents() :
m_ready(CEvent::kUnknown),
m_disconnected(CEvent::kUnknown),
m_clipboardChanged(CEvent::kUnknown) { }
ClientProxyEvents() :
m_ready(Event::kUnknown),
m_disconnected(Event::kUnknown),
m_clipboardChanged(Event::kUnknown) { }
//! @name accessors
//@{
@ -353,36 +353,36 @@ public:
completed the initial handshake. Until it is sent, the client is
not fully connected.
*/
CEvent::Type ready();
Event::Type ready();
//! Get disconnect event type
/*!
Returns the disconnect event type. This is sent when the client
disconnects or is disconnected. The target is getEventTarget().
*/
CEvent::Type disconnected();
Event::Type disconnected();
//! Get clipboard changed event type
/*!
Returns the clipboard changed event type. This is sent whenever the
contents of the clipboard has changed. The data is a pointer to a
IScreen::CClipboardInfo.
IScreen::ClipboardInfo.
*/
CEvent::Type clipboardChanged();
Event::Type clipboardChanged();
//@}
private:
CEvent::Type m_ready;
CEvent::Type m_disconnected;
CEvent::Type m_clipboardChanged;
Event::Type m_ready;
Event::Type m_disconnected;
Event::Type m_clipboardChanged;
};
class CClientProxyUnknownEvents : public CEventTypes {
class ClientProxyUnknownEvents : public EventTypes {
public:
CClientProxyUnknownEvents() :
m_success(CEvent::kUnknown),
m_failure(CEvent::kUnknown) { }
ClientProxyUnknownEvents() :
m_success(Event::kUnknown),
m_failure(Event::kUnknown) { }
//! @name accessors
//@{
@ -392,33 +392,33 @@ public:
Returns the success event type. This is sent when the client has
correctly responded to the hello message. The target is this.
*/
CEvent::Type success();
Event::Type success();
//! Get failure event type
/*!
Returns the failure event type. This is sent when a client fails
to correctly respond to the hello message. The target is this.
*/
CEvent::Type failure();
Event::Type failure();
//@}
private:
CEvent::Type m_success;
CEvent::Type m_failure;
Event::Type m_success;
Event::Type m_failure;
};
class CServerEvents : public CEventTypes {
class ServerEvents : public EventTypes {
public:
CServerEvents() :
m_error(CEvent::kUnknown),
m_connected(CEvent::kUnknown),
m_disconnected(CEvent::kUnknown),
m_switchToScreen(CEvent::kUnknown),
m_switchInDirection(CEvent::kUnknown),
m_keyboardBroadcast(CEvent::kUnknown),
m_lockCursorToScreen(CEvent::kUnknown),
m_screenSwitched(CEvent::kUnknown) { }
ServerEvents() :
m_error(Event::kUnknown),
m_connected(Event::kUnknown),
m_disconnected(Event::kUnknown),
m_switchToScreen(Event::kUnknown),
m_switchInDirection(Event::kUnknown),
m_keyboardBroadcast(Event::kUnknown),
m_lockCursorToScreen(Event::kUnknown),
m_screenSwitched(Event::kUnknown) { }
//! @name accessors
//@{
@ -428,208 +428,208 @@ public:
Returns the error event type. This is sent when the server fails
for some reason.
*/
CEvent::Type error();
Event::Type error();
//! Get connected event type
/*!
Returns the connected event type. This is sent when a client screen
has connected. The event data is a \c CScreenConnectedInfo* that
has connected. The event data is a \c ScreenConnectedInfo* that
indicates the connected screen.
*/
CEvent::Type connected();
Event::Type connected();
//! Get disconnected event type
/*!
Returns the disconnected event type. This is sent when all the
clients have disconnected.
*/
CEvent::Type disconnected();
Event::Type disconnected();
//! Get switch to screen event type
/*!
Returns the switch to screen event type. The server responds to this
by switching screens. The event data is a \c CSwitchToScreenInfo*
by switching screens. The event data is a \c SwitchToScreenInfo*
that indicates the target screen.
*/
CEvent::Type switchToScreen();
Event::Type switchToScreen();
//! Get switch in direction event type
/*!
Returns the switch in direction event type. The server responds to this
by switching screens. The event data is a \c CSwitchInDirectionInfo*
by switching screens. The event data is a \c SwitchInDirectionInfo*
that indicates the target direction.
*/
CEvent::Type switchInDirection();
Event::Type switchInDirection();
//! Get keyboard broadcast event type
/*!
Returns the keyboard broadcast event type. The server responds
to this by turning on keyboard broadcasting or turning it off. The
event data is a \c CKeyboardBroadcastInfo*.
event data is a \c KeyboardBroadcastInfo*.
*/
CEvent::Type keyboardBroadcast();
Event::Type keyboardBroadcast();
//! Get lock cursor event type
/*!
Returns the lock cursor event type. The server responds to this
by locking the cursor to the active screen or unlocking it. The
event data is a \c CLockCursorToScreenInfo*.
event data is a \c LockCursorToScreenInfo*.
*/
CEvent::Type lockCursorToScreen();
Event::Type lockCursorToScreen();
//! Get screen switched event type
/*!
Returns the screen switched event type. This is raised when the
screen has been switched to a client.
*/
CEvent::Type screenSwitched();
Event::Type screenSwitched();
//@}
private:
CEvent::Type m_error;
CEvent::Type m_connected;
CEvent::Type m_disconnected;
CEvent::Type m_switchToScreen;
CEvent::Type m_switchInDirection;
CEvent::Type m_keyboardBroadcast;
CEvent::Type m_lockCursorToScreen;
CEvent::Type m_screenSwitched;
Event::Type m_error;
Event::Type m_connected;
Event::Type m_disconnected;
Event::Type m_switchToScreen;
Event::Type m_switchInDirection;
Event::Type m_keyboardBroadcast;
Event::Type m_lockCursorToScreen;
Event::Type m_screenSwitched;
};
class CServerAppEvents : public CEventTypes {
class ServerAppEvents : public EventTypes {
public:
CServerAppEvents() :
m_reloadConfig(CEvent::kUnknown),
m_forceReconnect(CEvent::kUnknown),
m_resetServer(CEvent::kUnknown) { }
ServerAppEvents() :
m_reloadConfig(Event::kUnknown),
m_forceReconnect(Event::kUnknown),
m_resetServer(Event::kUnknown) { }
//! @name accessors
//@{
CEvent::Type reloadConfig();
CEvent::Type forceReconnect();
CEvent::Type resetServer();
Event::Type reloadConfig();
Event::Type forceReconnect();
Event::Type resetServer();
//@}
private:
CEvent::Type m_reloadConfig;
CEvent::Type m_forceReconnect;
CEvent::Type m_resetServer;
Event::Type m_reloadConfig;
Event::Type m_forceReconnect;
Event::Type m_resetServer;
};
class IKeyStateEvents : public CEventTypes {
class IKeyStateEvents : public EventTypes {
public:
IKeyStateEvents() :
m_keyDown(CEvent::kUnknown),
m_keyUp(CEvent::kUnknown),
m_keyRepeat(CEvent::kUnknown) { }
m_keyDown(Event::kUnknown),
m_keyUp(Event::kUnknown),
m_keyRepeat(Event::kUnknown) { }
//! @name accessors
//@{
//! Get key down event type. Event data is CKeyInfo*, count == 1.
CEvent::Type keyDown();
//! Get key down event type. Event data is KeyInfo*, count == 1.
Event::Type keyDown();
//! Get key up event type. Event data is CKeyInfo*, count == 1.
CEvent::Type keyUp();
//! Get key up event type. Event data is KeyInfo*, count == 1.
Event::Type keyUp();
//! Get key repeat event type. Event data is CKeyInfo*.
CEvent::Type keyRepeat();
//! Get key repeat event type. Event data is KeyInfo*.
Event::Type keyRepeat();
//@}
private:
CEvent::Type m_keyDown;
CEvent::Type m_keyUp;
CEvent::Type m_keyRepeat;
Event::Type m_keyDown;
Event::Type m_keyUp;
Event::Type m_keyRepeat;
};
class IPrimaryScreenEvents : public CEventTypes {
class IPrimaryScreenEvents : public EventTypes {
public:
IPrimaryScreenEvents() :
m_buttonDown(CEvent::kUnknown),
m_buttonUp(CEvent::kUnknown),
m_motionOnPrimary(CEvent::kUnknown),
m_motionOnSecondary(CEvent::kUnknown),
m_wheel(CEvent::kUnknown),
m_screensaverActivated(CEvent::kUnknown),
m_screensaverDeactivated(CEvent::kUnknown),
m_hotKeyDown(CEvent::kUnknown),
m_hotKeyUp(CEvent::kUnknown),
m_fakeInputBegin(CEvent::kUnknown),
m_fakeInputEnd(CEvent::kUnknown) { }
m_buttonDown(Event::kUnknown),
m_buttonUp(Event::kUnknown),
m_motionOnPrimary(Event::kUnknown),
m_motionOnSecondary(Event::kUnknown),
m_wheel(Event::kUnknown),
m_screensaverActivated(Event::kUnknown),
m_screensaverDeactivated(Event::kUnknown),
m_hotKeyDown(Event::kUnknown),
m_hotKeyUp(Event::kUnknown),
m_fakeInputBegin(Event::kUnknown),
m_fakeInputEnd(Event::kUnknown) { }
//! @name accessors
//@{
//! button down event type. Event data is CButtonInfo*.
CEvent::Type buttonDown();
//! button down event type. Event data is ButtonInfo*.
Event::Type buttonDown();
//! button up event type. Event data is CButtonInfo*.
CEvent::Type buttonUp();
//! button up event type. Event data is ButtonInfo*.
Event::Type buttonUp();
//! mouse motion on the primary screen event type
/*!
Event data is CMotionInfo* and the values are an absolute position.
Event data is MotionInfo* and the values are an absolute position.
*/
CEvent::Type motionOnPrimary();
Event::Type motionOnPrimary();
//! mouse motion on a secondary screen event type
/*!
Event data is CMotionInfo* and the values are motion deltas not
Event data is MotionInfo* and the values are motion deltas not
absolute coordinates.
*/
CEvent::Type motionOnSecondary();
Event::Type motionOnSecondary();
//! mouse wheel event type. Event data is CWheelInfo*.
CEvent::Type wheel();
//! mouse wheel event type. Event data is WheelInfo*.
Event::Type wheel();
//! screensaver activated event type
CEvent::Type screensaverActivated();
Event::Type screensaverActivated();
//! screensaver deactivated event type
CEvent::Type screensaverDeactivated();
Event::Type screensaverDeactivated();
//! hot key down event type. Event data is CHotKeyInfo*.
CEvent::Type hotKeyDown();
//! hot key down event type. Event data is HotKeyInfo*.
Event::Type hotKeyDown();
//! hot key up event type. Event data is CHotKeyInfo*.
CEvent::Type hotKeyUp();
//! hot key up event type. Event data is HotKeyInfo*.
Event::Type hotKeyUp();
//! start of fake input event type
CEvent::Type fakeInputBegin();
Event::Type fakeInputBegin();
//! end of fake input event type
CEvent::Type fakeInputEnd();
Event::Type fakeInputEnd();
//@}
private:
CEvent::Type m_buttonDown;
CEvent::Type m_buttonUp;
CEvent::Type m_motionOnPrimary;
CEvent::Type m_motionOnSecondary;
CEvent::Type m_wheel;
CEvent::Type m_screensaverActivated;
CEvent::Type m_screensaverDeactivated;
CEvent::Type m_hotKeyDown;
CEvent::Type m_hotKeyUp;
CEvent::Type m_fakeInputBegin;
CEvent::Type m_fakeInputEnd;
Event::Type m_buttonDown;
Event::Type m_buttonUp;
Event::Type m_motionOnPrimary;
Event::Type m_motionOnSecondary;
Event::Type m_wheel;
Event::Type m_screensaverActivated;
Event::Type m_screensaverDeactivated;
Event::Type m_hotKeyDown;
Event::Type m_hotKeyUp;
Event::Type m_fakeInputBegin;
Event::Type m_fakeInputEnd;
};
class IScreenEvents : public CEventTypes {
class IScreenEvents : public EventTypes {
public:
IScreenEvents() :
m_error(CEvent::kUnknown),
m_shapeChanged(CEvent::kUnknown),
m_clipboardGrabbed(CEvent::kUnknown),
m_suspend(CEvent::kUnknown),
m_resume(CEvent::kUnknown),
m_fileChunkSending(CEvent::kUnknown),
m_fileRecieveCompleted(CEvent::kUnknown) { }
m_error(Event::kUnknown),
m_shapeChanged(Event::kUnknown),
m_clipboardGrabbed(Event::kUnknown),
m_suspend(Event::kUnknown),
m_resume(Event::kUnknown),
m_fileChunkSending(Event::kUnknown),
m_fileRecieveCompleted(Event::kUnknown) { }
//! @name accessors
//@{
@ -639,51 +639,51 @@ public:
Returns the error event type. This is sent whenever the screen has
failed for some reason (e.g. the X Windows server died).
*/
CEvent::Type error();
Event::Type error();
//! Get shape changed event type
/*!
Returns the shape changed event type. This is sent whenever the
screen's shape changes.
*/
CEvent::Type shapeChanged();
Event::Type shapeChanged();
//! Get clipboard grabbed event type
/*!
Returns the clipboard grabbed event type. This is sent whenever the
clipboard is grabbed by some other application so we don't own it
anymore. The data is a pointer to a CClipboardInfo.
anymore. The data is a pointer to a ClipboardInfo.
*/
CEvent::Type clipboardGrabbed();
Event::Type clipboardGrabbed();
//! Get suspend event type
/*!
Returns the suspend event type. This is sent whenever the system goes
to sleep or a user session is deactivated (fast user switching).
*/
CEvent::Type suspend();
Event::Type suspend();
//! Get resume event type
/*!
Returns the resume event type. This is sent whenever the system wakes
up or a user session is activated (fast user switching).
*/
CEvent::Type resume();
Event::Type resume();
//! Sending a file chunk
CEvent::Type fileChunkSending();
Event::Type fileChunkSending();
//! Completed receiving a file
CEvent::Type fileRecieveCompleted();
Event::Type fileRecieveCompleted();
//@}
private:
CEvent::Type m_error;
CEvent::Type m_shapeChanged;
CEvent::Type m_clipboardGrabbed;
CEvent::Type m_suspend;
CEvent::Type m_resume;
CEvent::Type m_fileChunkSending;
CEvent::Type m_fileRecieveCompleted;
Event::Type m_error;
Event::Type m_shapeChanged;
Event::Type m_clipboardGrabbed;
Event::Type m_suspend;
Event::Type m_resume;
Event::Type m_fileChunkSending;
Event::Type m_fileRecieveCompleted;
};

View File

@ -19,24 +19,24 @@
#include "base/FunctionEventJob.h"
//
// CFunctionEventJob
// FunctionEventJob
//
CFunctionEventJob::CFunctionEventJob(
void (*func)(const CEvent&, void*), void* arg) :
FunctionEventJob::FunctionEventJob(
void (*func)(const Event&, void*), void* arg) :
m_func(func),
m_arg(arg)
{
// do nothing
}
CFunctionEventJob::~CFunctionEventJob()
FunctionEventJob::~FunctionEventJob()
{
// do nothing
}
void
CFunctionEventJob::run(const CEvent& event)
FunctionEventJob::run(const Event& event)
{
if (m_func != NULL) {
m_func(event, m_arg);

View File

@ -24,16 +24,16 @@
/*!
An event job class that invokes a function.
*/
class CFunctionEventJob : public IEventJob {
class FunctionEventJob : public IEventJob {
public:
//! run() invokes \c func(arg)
CFunctionEventJob(void (*func)(const CEvent&, void*), void* arg = NULL);
virtual ~CFunctionEventJob();
FunctionEventJob(void (*func)(const Event&, void*), void* arg = NULL);
virtual ~FunctionEventJob();
// IEventJob overrides
virtual void run(const CEvent&);
virtual void run(const Event&);
private:
void (*m_func)(const CEvent&, void*);
void (*m_func)(const Event&, void*);
void* m_arg;
};

View File

@ -19,23 +19,23 @@
#include "base/FunctionJob.h"
//
// CFunctionJob
// FunctionJob
//
CFunctionJob::CFunctionJob(void (*func)(void*), void* arg) :
FunctionJob::FunctionJob(void (*func)(void*), void* arg) :
m_func(func),
m_arg(arg)
{
// do nothing
}
CFunctionJob::~CFunctionJob()
FunctionJob::~FunctionJob()
{
// do nothing
}
void
CFunctionJob::run()
FunctionJob::run()
{
if (m_func != NULL) {
m_func(m_arg);

View File

@ -24,11 +24,11 @@
/*!
A job class that invokes a function.
*/
class CFunctionJob : public IJob {
class FunctionJob : public IJob {
public:
//! run() invokes \c func(arg)
CFunctionJob(void (*func)(void*), void* arg = NULL);
virtual ~CFunctionJob();
FunctionJob(void (*func)(void*), void* arg = NULL);
virtual ~FunctionJob();
// IJob overrides
virtual void run();

View File

@ -20,7 +20,7 @@
#include "common/IInterface.h"
class CEvent;
class Event;
//! Event handler interface
/*!
@ -29,5 +29,5 @@ An event job is an interface for executing a event handler.
class IEventJob : public IInterface {
public:
//! Run the job
virtual void run(const CEvent&) = 0;
virtual void run(const Event&) = 0;
};

View File

@ -27,40 +27,40 @@ class IEventQueueBuffer;
// Opaque type for timer info. This is defined by subclasses of
// IEventQueueBuffer.
class CEventQueueTimer;
class EventQueueTimer;
// Event type registration classes.
class CClientEvents;
class ClientEvents;
class IStreamEvents;
class CIpcClientEvents;
class CIpcClientProxyEvents;
class CIpcServerEvents;
class CIpcServerProxyEvents;
class IpcClientEvents;
class IpcClientProxyEvents;
class IpcServerEvents;
class IpcServerProxyEvents;
class IDataSocketEvents;
class IListenSocketEvents;
class ISocketEvents;
class COSXScreenEvents;
class CClientListenerEvents;
class CClientProxyEvents;
class CClientProxyUnknownEvents;
class CServerEvents;
class CServerAppEvents;
class OSXScreenEvents;
class ClientListenerEvents;
class ClientProxyEvents;
class ClientProxyUnknownEvents;
class ServerEvents;
class ServerAppEvents;
class IKeyStateEvents;
class IPrimaryScreenEvents;
class IScreenEvents;
//! Event queue interface
/*!
An event queue provides a queue of CEvents. Clients can block waiting
An event queue provides a queue of Events. Clients can block waiting
on any event becoming available at the head of the queue and can place
new events at the end of the queue. Clients can also add and remove
timers which generate events periodically.
*/
class IEventQueue : public IInterface {
public:
class CTimerEvent {
class TimerEvent {
public:
CEventQueueTimer* m_timer; //!< The timer
EventQueueTimer* m_timer; //!< The timer
UInt32 m_count; //!< Number of repeats
};
@ -86,26 +86,26 @@ public:
available then blocks for up to \p timeout seconds, or forever if
\p timeout is negative. Returns true iff an event was available.
*/
virtual bool getEvent(CEvent& event, double timeout = -1.0) = 0;
virtual bool getEvent(Event& event, double timeout = -1.0) = 0;
//! Dispatch an event
/*!
Looks up the dispatcher for the event's target and invokes it.
Returns true iff a dispatcher exists for the target.
*/
virtual bool dispatchEvent(const CEvent& event) = 0;
virtual bool dispatchEvent(const Event& event) = 0;
//! Add event to queue
/*!
Adds \p event to the end of the queue.
*/
virtual void addEvent(const CEvent& event) = 0;
virtual void addEvent(const Event& event) = 0;
//! Create a recurring timer
/*!
Creates and returns a timer. An event is returned after \p duration
seconds and the timer is reset to countdown again. When a timer event
is returned the data points to a \c CTimerEvent. The client must pass
is returned the data points to a \c TimerEvent. The client must pass
the returned timer to \c deleteTimer() (whether or not the timer has
expired) to release the timer. The returned timer event uses the
given \p target. If \p target is NULL it uses the returned timer as
@ -113,25 +113,25 @@ public:
Events for a single timer don't accumulate in the queue, even if the
client reading events can't keep up. Instead, the \c m_count member
of the \c CTimerEvent indicates how many events for the timer would
of the \c TimerEvent indicates how many events for the timer would
have been put on the queue since the last event for the timer was
removed (or since the timer was added).
*/
virtual CEventQueueTimer*
virtual EventQueueTimer*
newTimer(double duration, void* target) = 0;
//! Create a one-shot timer
/*!
Creates and returns a one-shot timer. An event is returned when
the timer expires and the timer is removed from further handling.
When a timer event is returned the data points to a \c CTimerEvent.
The c_count member of the \c CTimerEvent is always 1. The client
When a timer event is returned the data points to a \c TimerEvent.
The c_count member of the \c TimerEvent is always 1. The client
must pass the returned timer to \c deleteTimer() (whether or not the
timer has expired) to release the timer. The returned timer event
uses the given \p target. If \p target is NULL it uses the returned
timer as the target.
*/
virtual CEventQueueTimer*
virtual EventQueueTimer*
newOneShotTimer(double duration,
void* target) = 0;
@ -140,7 +140,7 @@ public:
Destroys a previously created timer. The timer is removed from the
queue and will not generate event, even if the timer has expired.
*/
virtual void deleteTimer(CEventQueueTimer*) = 0;
virtual void deleteTimer(EventQueueTimer*) = 0;
//! Register an event handler for an event type
/*!
@ -150,7 +150,7 @@ public:
of type \p type. If no such handler exists it will use the handler
for \p target and type \p kUnknown if it exists.
*/
virtual void adoptHandler(CEvent::Type type,
virtual void adoptHandler(Event::Type type,
void* target, IEventJob* handler) = 0;
//! Unregister an event handler for an event type
@ -158,7 +158,7 @@ public:
Unregisters an event handler for the \p type, \p target pair and
deletes it.
*/
virtual void removeHandler(CEvent::Type type, void* target) = 0;
virtual void removeHandler(Event::Type type, void* target) = 0;
//! Unregister all event handlers for an event target
/*!
@ -172,8 +172,8 @@ public:
type id otherwise it is left alone. The final value of \p type
is returned.
*/
virtual CEvent::Type
registerTypeOnce(CEvent::Type& type,
virtual Event::Type
registerTypeOnce(Event::Type& type,
const char* name) = 0;
//! Wait for event queue to become ready
@ -199,24 +199,24 @@ public:
Finds and returns the event handler for the \p type, \p target pair
if it exists, otherwise it returns NULL.
*/
virtual IEventJob* getHandler(CEvent::Type type, void* target) const = 0;
virtual IEventJob* getHandler(Event::Type type, void* target) const = 0;
//! Get name for event
/*!
Returns the name for the event \p type. This is primarily for
debugging.
*/
virtual const char* getTypeName(CEvent::Type type) = 0;
virtual const char* getTypeName(Event::Type type) = 0;
//! Get an event type by name
/*!
Returns the registered type for an event for a given name.
*/
virtual CEvent::Type getRegisteredType(const CString& name) const = 0;
virtual Event::Type getRegisteredType(const String& name) const = 0;
//! Get the system event type target
/*!
Returns the target to use for dispatching \c CEvent::kSystem events.
Returns the target to use for dispatching \c Event::kSystem events.
*/
virtual void* getSystemTarget() = 0;
@ -226,21 +226,21 @@ public:
// Event type providers.
//
virtual CClientEvents& forCClient() = 0;
virtual ClientEvents& forClient() = 0;
virtual IStreamEvents& forIStream() = 0;
virtual CIpcClientEvents& forCIpcClient() = 0;
virtual CIpcClientProxyEvents& forCIpcClientProxy() = 0;
virtual CIpcServerEvents& forCIpcServer() = 0;
virtual CIpcServerProxyEvents& forCIpcServerProxy() = 0;
virtual IpcClientEvents& forIpcClient() = 0;
virtual IpcClientProxyEvents& forIpcClientProxy() = 0;
virtual IpcServerEvents& forIpcServer() = 0;
virtual IpcServerProxyEvents& forIpcServerProxy() = 0;
virtual IDataSocketEvents& forIDataSocket() = 0;
virtual IListenSocketEvents& forIListenSocket() = 0;
virtual ISocketEvents& forISocket() = 0;
virtual COSXScreenEvents& forCOSXScreen() = 0;
virtual CClientListenerEvents& forCClientListener() = 0;
virtual CClientProxyEvents& forCClientProxy() = 0;
virtual CClientProxyUnknownEvents& forCClientProxyUnknown() = 0;
virtual CServerEvents& forCServer() = 0;
virtual CServerAppEvents& forCServerApp() = 0;
virtual OSXScreenEvents& forOSXScreen() = 0;
virtual ClientListenerEvents& forClientListener() = 0;
virtual ClientProxyEvents& forClientProxy() = 0;
virtual ClientProxyUnknownEvents& forClientProxyUnknown() = 0;
virtual ServerEvents& forServer() = 0;
virtual ServerAppEvents& forServerApp() = 0;
virtual IKeyStateEvents& forIKeyState() = 0;
virtual IPrimaryScreenEvents& forIPrimaryScreen() = 0;
virtual IScreenEvents& forIScreen() = 0;

Some files were not shown because too many files have changed in this diff Show More