Guest
Public paste!

nameczanin

By: a guest | Feb 7th, 2008 | Syntax: C++ | Size: 1.89 KB | Hits: 98 | Expires: Never
Copy text to clipboard
  1. #include <cstdarg>
  2.    
  3.  
  4. namespace NFR
  5. {
  6.  
  7.     //maly singleton do tworzenia id dla kolejnych callbackow
  8.     class CCallbackIdCreator
  9.     {
  10.  
  11.     private:
  12.  
  13.         unsigned int m_dLastId;
  14.  
  15.  
  16.     public:
  17.  
  18.         CCallbackIdCreator();
  19.         static CCallbackIdCreator& inst();
  20.  
  21.  
  22.     private:
  23.  
  24.         unsigned int getId();
  25.  
  26.  
  27.         friend class Callback;
  28.  
  29.     };
  30.  
  31.  
  32.     //container (handler)
  33.     class Callback
  34.     {
  35.  
  36.     private:
  37.        
  38.         //nasze najpotrzebniejsze wskazniki
  39.         void* m_pThis;
  40.         void* m_pFunc;
  41.         int* m_vpParameters;
  42.         unsigned int m_dNumParameters;
  43.  
  44.         //takie krotkie info :P
  45.         int m_bIsInstantiated;
  46.  
  47.         //id
  48.         unsigned int m_id;
  49.  
  50.  
  51.     public:
  52.  
  53.         //konstruktory ogolne
  54.         Callback();
  55.  
  56.         Callback( const Callback& obj );
  57.  
  58.  
  59.         //destruktor dla niektorych kompilatorow bez wyobrazni
  60.         ~Callback();
  61.  
  62.         //konstruktory dla funkcji
  63.         /* pobierane argumenty:
  64.          *  - parsNum
  65.          *  - This
  66.          *  - pFunc
  67.          *  -x parameters
  68.          */
  69.         Callback( int parsNum, ... );
  70.  
  71.         //wywolanie metody/funkcji
  72.         void call( void* par = NULL );
  73.  
  74.         //usuwa stare parametry i ustawia nowe
  75.         int callInt( unsigned int parsNum, ... );
  76.  
  77.         //wywolanie metody/funkcji ze zwrotem parametru
  78.         int callInt( void* par = NULL );
  79.  
  80.         //ustawia jeden parametr
  81.         void setPar( void* par = NULL );
  82.  
  83.         //ustawia liste parametrow
  84.         void setPars( int num, ... );
  85.  
  86.         //zwraca id
  87.         unsigned int getId();
  88.  
  89.         void operator= ( const Callback& obj );
  90.         bool operator== ( const Callback& obj ) const;
  91.         bool operator!= ( const Callback& obj ) const;
  92.         operator bool() const;
  93.  
  94.         void Reset( const Callback& obj );
  95.  
  96.         void Reset();
  97.  
  98.     };
  99.  
  100. }