nameczanin
By: a guest | Feb 7th, 2008 | Syntax:
C++ | Size: 1.89 KB | Hits: 98 | Expires: Never
#include <cstdarg>
namespace NFR
{
//maly singleton do tworzenia id dla kolejnych callbackow
class CCallbackIdCreator
{
private:
unsigned int m_dLastId;
public:
CCallbackIdCreator();
static CCallbackIdCreator& inst();
private:
unsigned int getId();
friend class Callback;
};
//container (handler)
class Callback
{
private:
//nasze najpotrzebniejsze wskazniki
void* m_pThis;
void* m_pFunc;
int* m_vpParameters;
unsigned int m_dNumParameters;
//takie krotkie info :P
int m_bIsInstantiated;
//id
unsigned int m_id;
public:
//konstruktory ogolne
Callback();
Callback( const Callback& obj );
//destruktor dla niektorych kompilatorow bez wyobrazni
~Callback();
//konstruktory dla funkcji
/* pobierane argumenty:
* - parsNum
* - This
* - pFunc
* -x parameters
*/
Callback( int parsNum, ... );
//wywolanie metody/funkcji
void call( void* par = NULL );
//usuwa stare parametry i ustawia nowe
int callInt( unsigned int parsNum, ... );
//wywolanie metody/funkcji ze zwrotem parametru
int callInt( void* par = NULL );
//ustawia jeden parametr
void setPar( void* par = NULL );
//ustawia liste parametrow
void setPars( int num, ... );
//zwraca id
unsigned int getId();
void operator= ( const Callback& obj );
bool operator== ( const Callback& obj ) const;
bool operator!= ( const Callback& obj ) const;
operator bool() const;
void Reset( const Callback& obj );
void Reset();
};
}