1
/***************************************************************************
2
ccallback.cpp - description
5
copyright : (C) 2002-2003 by Mathias K�ster
6
email : mathen@users.berlios.de
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
16
***************************************************************************/
18
#include <dclib/dcos.h>
19
#include <dclib/core/clist.h>
21
#include "ccallback.h"
24
CCallbackList::CCallbackList()
26
m_pCallbackList = new CThreadList<_CCallback>;
30
CCallbackList::~CCallbackList()
32
m_pCallbackList->Lock();
33
m_pCallbackList->Clear();
34
m_pCallbackList->UnLock();
35
delete m_pCallbackList;
40
void CCallbackList::AddCallback( _CCallback * callback )
42
m_pCallbackList->Lock();
43
m_pCallbackList->Add(callback);
44
m_pCallbackList->UnLock();
48
void CCallbackList::DelCallback( _CCallback * callback )
50
m_pCallbackList->Lock();
51
m_pCallbackList->Del(callback);
52
m_pCallbackList->UnLock();
56
int CCallbackList::notify( CObject * sender, CObject * object )
59
_CCallback * callback = 0;
61
m_pCallbackList->Lock();
62
while( (callback=m_pCallbackList->Next(callback)) != 0 )
63
if ( callback->notify(sender,object) == 0 )
65
m_pCallbackList->UnLock();