// Copyright 2001 Karl Einar Nelson
#include <iostream>
#include <sigc++/connection.h>
#ifdef SIGC_CXX_NAMESPACES
using namespace std;
using namespace SigC;
#endif
class TestConnectionNode: public ConnectionNode
{
public:
TestConnectionNode(SlotNode* s): ConnectionNode(s) {}
~TestConnectionNode() { cout << "~ConnectionNode" <<endl; }
};
void foo()
{}
int main()
{
bool correct;
// create internals which we can control
SlotNode* s=new FuncSlotNode((FuncPtr)&foo,(FuncPtr)&foo);
ConnectionNode *node=new TestConnectionNode(s);
Connection c1,c2,c3;
c1=Connection(node);
c2=Connection(node);
c3=Connection(node);
correct=c1&&c2&&c3;
cout << bool(c1) << bool(c2) << bool(c3) <<endl;
c2.clear();
correct|=c1&&!c2&&c3;
cout << bool(c1) << bool(c2) << bool(c3) <<endl;
c2=Connection(node);
c1.disconnect();
correct|=!c1&&!c2&&!c3;
cout << bool(c1) << bool(c2) << bool(c3) <<endl;
return !correct;
}
syntax highlighted by Code2HTML, v. 0.9.1