Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

exa_callback.cxx

For a line by line tour through this example see Tutorial exa_callback.cxx.

//
// Example code for CTBcallback
//

#include "CTB.hxx"
#include "CTBprintf.hxx"
#include "CTBcallback.hxx"

//------------------------------------------+-----------------------------------
class sub {

  public:
                    sub();

                    void Set_i(int i);
    int             Get_i() const;
 
    CTBcallbackSource1<int> CSnew_i;

  private:
    int             m_i;
};

class obs {

  public:
                    obs();

    CTBcallbackTarget1<obs,int> CTnew_i;

    void            New_i(int i);
};

//------------------------------------------+-----------------------------------

sub::sub() : m_i(0) {}

void sub::Set_i(int i) { m_i = i; CSnew_i(m_i); }

int sub::Get_i() const { return m_i; }

//------------------------------------------+-----------------------------------

obs::obs() : CTnew_i(this, &obs::New_i) {}

void obs::New_i(int i) { cout << "New_i called: i= " << i << endl; }

//------------------------------------------+-----------------------------------
int main(int, char*)
{

  sub* p_s  = new sub;
  obs* p_o1 = new obs;
  obs* p_o2 = new obs;
  
  p_s->Set_i(17);
  
  p_o1->CTnew_i.Connect(p_s->CSnew_i);
  
  p_s->Set_i(18);

  p_o2->CTnew_i.Connect(p_s->CSnew_i);

  p_s->Set_i(19);

  delete p_o1;

  p_s->Set_i(20);

  delete p_s;
  delete p_o2;
  
  return 0;
}

Generated at Fri Oct 24 18:11:26 2003 for CTBbase by doxygen1.2.9-20010812 written by Dimitri van Heesch, © 1997-2001