using namespace icinga;
-condvar::condvar(void)
+CondVar::CondVar(void)
{
#ifdef _WIN32
InitializeConditionVariable(&m_CondVar);
#endif /* _WIN32 */
}
-condvar::~condvar(void)
+CondVar::~CondVar(void)
{
#ifdef _WIN32
/* nothing to do here */
#endif /* _WIN32 */
}
-void condvar::wait(mutex *mtx)
+void CondVar::Wait(Mutex& mtx)
{
#ifdef _WIN32
- SleepConditionVariableCS(&m_CondVar, mtx->get(), INFINITE);
+ SleepConditionVariableCS(&m_CondVar, mtx.Get(), INFINITE);
#else /* _WIN32 */
- pthread_cond_wait(&m_CondVar, mtx->get());
+ pthread_cond_wait(&m_CondVar, mtx.Get());
#endif /* _WIN32 */
}
-void condvar::signal(void)
+void CondVar::Signal(void)
{
#ifdef _WIN32
WakeConditionVariable(&m_CondVar);
#endif /* _WIN32 */
}
-void condvar::broadcast(void)
+void CondVar::Broadcast(void)
{
#ifdef _WIN32
WakeAllConditionVariable(&m_CondVar);
#ifdef _WIN32
-CONDITION_VARIABLE *condvar::get(void)
+CONDITION_VARIABLE *CondVar::Get(void)
#else /* _WIN32 */
-pthread_cond_t *condvar::get(void)
+pthread_cond_t *CondVar::Get(void)
#endif /* _WIN32 */
{
return &m_CondVar;
namespace icinga
{
-class I2_BASE_API condvar
+class I2_BASE_API CondVar
{
private:
#ifdef _WIN32
#endif /* _WIN32 */
public:
- condvar(void);
- ~condvar(void);
+ CondVar(void);
+ ~CondVar(void);
- void wait(mutex *mtx);
- void signal(void);
- void broadcast(void);
+ void Wait(Mutex& mtx);
+ void Signal(void);
+ void Broadcast(void);
#ifdef _WIN32
- CONDITION_VARIABLE *get(void);
+ CONDITION_VARIABLE *Get(void);
#else /* _WIN32 */
- pthread_cond_t *get(void);
+ pthread_cond_t *Get(void);
#endif /* _WIN32 */
};
void ForEachObject(function<int (ConfigObjectEventArgs::Ptr)> callback);
- event<ConfigObjectEventArgs::Ptr> OnObjectCreated;
- event<ConfigObjectEventArgs::Ptr> OnObjectRemoved;
- event<ConfigObjectEventArgs::Ptr> OnPropertyChanged;
+ Event<ConfigObjectEventArgs::Ptr> OnObjectCreated;
+ Event<ConfigObjectEventArgs::Ptr> OnObjectRemoved;
+ Event<ConfigObjectEventArgs::Ptr> OnPropertyChanged;
};
}
void ForEachObject(const string& type, function<int (ConfigObjectEventArgs::Ptr)> callback);
- event<ConfigObjectEventArgs::Ptr> OnObjectCreated;
- event<ConfigObjectEventArgs::Ptr> OnObjectRemoved;
- event<ConfigObjectEventArgs::Ptr> OnPropertyChanged;
+ Event<ConfigObjectEventArgs::Ptr> OnObjectCreated;
+ Event<ConfigObjectEventArgs::Ptr> OnObjectRemoved;
+ Event<ConfigObjectEventArgs::Ptr> OnPropertyChanged;
};
}
};
template<class TArgs>
-class event
+class Event
{
public:
typedef function<int (TArgs)> DelegateType;
list<DelegateType> m_Delegates;
public:
- void hook(const DelegateType& delegate)
+ void Hook(const DelegateType& delegate)
{
m_Delegates.push_front(delegate);
}
- void unhook(const DelegateType& delegate)
+ void Unhook(const DelegateType& delegate)
{
m_Delegates.remove(delegate);
}
- event<TArgs>& operator +=(const DelegateType& rhs)
+ Event<TArgs>& operator +=(const DelegateType& rhs)
{
- hook(rhs);
+ Hook(rhs);
return *this;
}
- event<TArgs>& operator -=(const DelegateType& rhs)
+ Event<TArgs>& operator -=(const DelegateType& rhs)
{
- unhook(rhs);
+ Unhook(rhs);
return *this;
}
using namespace icinga;
-mutex::mutex(void)
+Mutex::Mutex(void)
{
#ifdef _WIN32
InitializeCriticalSection(&m_Mutex);
#endif /* _WIN32 */
}
-mutex::~mutex(void)
+Mutex::~Mutex(void)
{
#ifdef _WIN32
DeleteCriticalSection(&m_Mutex);
#endif /* _WIN32 */
}
-bool mutex::tryenter(void)
+bool Mutex::TryEnter(void)
{
#ifdef _WIN32
return (TryEnterCriticalSection(&m_Mutex) == TRUE);
#endif /* _WIN32 */
}
-void mutex::enter(void)
+void Mutex::Enter(void)
{
#ifdef _WIN32
EnterCriticalSection(&m_Mutex);
#endif /* _WIN32 */
}
-void mutex::exit(void)
+void Mutex::Exit(void)
{
#ifdef _WIN32
LeaveCriticalSection(&m_Mutex);
}
#ifdef _WIN32
-CRITICAL_SECTION *mutex::get(void)
+CRITICAL_SECTION *Mutex::Get(void)
#else /* _WIN32 */
-pthread_mutex_t *mutex::get(void)
+pthread_mutex_t *Mutex::Get(void)
#endif /* _WIN32 */
{
return &m_Mutex;
namespace icinga
{
-class I2_BASE_API mutex
+class I2_BASE_API Mutex
{
private:
#ifdef _WIN32
#endif /* _WIN32 */
public:
- mutex(void);
- ~mutex(void);
+ Mutex(void);
+ ~Mutex(void);
- bool tryenter(void);
- void enter(void);
- void exit(void);
+ bool TryEnter(void);
+ void Enter(void);
+ void Exit(void);
#ifdef _WIN32
- CRITICAL_SECTION *get(void);
+ CRITICAL_SECTION *Get(void);
#else /* _WIN32 */
- pthread_mutex_t *get(void);
+ pthread_mutex_t *Get(void);
#endif /* _WIN32 */
};
static void CloseAllSockets(void);
- event<EventArgs::Ptr> OnReadable;
- event<EventArgs::Ptr> OnWritable;
- event<EventArgs::Ptr> OnException;
+ Event<EventArgs::Ptr> OnReadable;
+ Event<EventArgs::Ptr> OnWritable;
+ Event<EventArgs::Ptr> OnException;
- event<SocketErrorEventArgs::Ptr> OnError;
- event<EventArgs::Ptr> OnClosed;
+ Event<SocketErrorEventArgs::Ptr> OnError;
+ Event<EventArgs::Ptr> OnClosed;
virtual bool WantsToRead(void) const;
virtual bool WantsToWrite(void) const;
virtual bool WantsToRead(void) const;
virtual bool WantsToWrite(void) const;
- event<EventArgs::Ptr> OnDataAvailable;
+ Event<EventArgs::Ptr> OnDataAvailable;
};
}
void Listen(void);
- event<NewClientEventArgs::Ptr> OnNewClient;
+ Event<NewClientEventArgs::Ptr> OnNewClient;
virtual bool WantsToRead(void) const;
};
typedef struct threadparam_s
{
- void (*callback)(void*);
+ ThreadProc callback;
void *param;
} threadparam_t;
#endif /* _WIN32 */
-thread::thread(void (*callback)(void *))
+Thread::Thread(ThreadProc callback)
{
threadparam_t *tparam = new threadparam_t();
#endif /* _WIN32 */
}
-thread::~thread(void)
+Thread::~Thread(void)
{
#ifdef _WIN32
CloseHandle(m_Thread);
/* nothing to do here */
#endif
}
-
-void thread::terminate(void)
-{
-#ifdef _WIN32
- TerminateThread(m_Thread, 0);
-#else /* _WIN32 */
- /* nothing to do here */
-#endif
-}
-void thread::join(void)
+void Thread::Join(void)
{
#ifdef _WIN32
WaitForSingleObject(m_Thread, INFINITE);
namespace icinga
{
-class I2_BASE_API thread
+typedef void (*ThreadProc)(void *);
+
+class I2_BASE_API Thread
{
private:
#ifdef _WIN32
#endif
public:
- thread(void (*callback)(void *));
- ~thread(void);
+ Thread(void (*callback)(void *));
+ ~Thread(void);
- void start(void);
- void terminate(void);
- void join(void);
+ void Start(void);
+ void Join(void);
};
}
void Reschedule(time_t next);
- event<TimerEventArgs::Ptr> OnTimerExpired;
+ Event<TimerEventArgs::Ptr> OnTimerExpired;
};
}
void VirtualEndpoint::SendMessage(Endpoint::Ptr source, JsonRpcMessage::Ptr message)
{
- map<string, event<NewMessageEventArgs::Ptr> >::iterator i;
+ map<string, Event<NewMessageEventArgs::Ptr> >::iterator i;
i = m_MethodHandlers.find(message->GetMethod());
if (i == m_MethodHandlers.end()) {
class I2_ICINGA_API VirtualEndpoint : public Endpoint
{
private:
- map< string, event<NewMessageEventArgs::Ptr> > m_MethodHandlers;
+ map< string, Event<NewMessageEventArgs::Ptr> > m_MethodHandlers;
list<string> m_MethodSources;
public:
virtual void Start(void);
- event<NewMessageEventArgs::Ptr> OnNewMessage;
+ Event<NewMessageEventArgs::Ptr> OnNewMessage;
};
}