/* This is for emacs: -*-Mode: C++;-*- */ /* Copyright 2002, Andreas Rottmann */ /* This is a generated file, do not edit. Generated from template.macros.m4 */ #ifndef SIGC_BIND3_H #define SIGC_BIND3_H #include namespace SigCX { using namespace SigC; template struct AdaptorBindData3_ { typedef AdaptorBindData3_ Self; AdaptorBindSlotNode adaptor; C1 c1_; C2 c2_; C3 c3_; AdaptorBindData3_(FuncPtr p, const Node& s ,FuncPtr d, C1 c1,C2 c2,C3 c3) : adaptor(p, s, d), c1_(c1),c2_(c2),c3_(c3) {} static void dtor(void* data) { Self& node = *reinterpret_cast(data); node.c1_.~C1(); node.c2_.~C2(); node.c3_.~C3(); } }; template struct AdaptorBindSlot0_3_ { typedef typename Trait::type RType; typedef typename SigC::Slot3::Proxy Proxy; static RType proxy(void *data) { typedef AdaptorBindData3_ Data; Data& node=*reinterpret_cast(data); SlotNode* slot=static_cast(node.adaptor.slot_.impl()); return ((Proxy)(slot->proxy_)) (node.c1_,node.c2_,node.c3_,slot); } }; /// @ingroup bind template SigC::Slot0 bind(const SigC::Slot3& s, A1 a1,A2 a2,A3 a3) { typedef AdaptorBindData3_ Data; typedef AdaptorBindSlot0_3_ Adaptor; return reinterpret_cast( new Data((FuncPtr)(&Adaptor::proxy),s, (FuncPtr)(&Data::dtor),a1,a2,a3)); } template struct AdaptorBindSlot1_3_ { typedef typename Trait::type RType; typedef typename SigC::Slot4::Proxy Proxy; static RType proxy(typename SigC::Trait::ref p1,void *data) { typedef AdaptorBindData3_ Data; Data& node=*reinterpret_cast(data); SlotNode* slot=static_cast(node.adaptor.slot_.impl()); return ((Proxy)(slot->proxy_)) (p1,node.c1_,node.c2_,node.c3_,slot); } }; /// @ingroup bind template SigC::Slot1 bind(const SigC::Slot4& s, A1 a1,A2 a2,A3 a3) { typedef AdaptorBindData3_ Data; typedef AdaptorBindSlot1_3_ Adaptor; return reinterpret_cast( new Data((FuncPtr)(&Adaptor::proxy),s, (FuncPtr)(&Data::dtor),a1,a2,a3)); } template struct AdaptorBindSlot2_3_ { typedef typename Trait::type RType; typedef typename SigC::Slot5::Proxy Proxy; static RType proxy(typename SigC::Trait::ref p1,typename SigC::Trait::ref p2,void *data) { typedef AdaptorBindData3_ Data; Data& node=*reinterpret_cast(data); SlotNode* slot=static_cast(node.adaptor.slot_.impl()); return ((Proxy)(slot->proxy_)) (p1,p2,node.c1_,node.c2_,node.c3_,slot); } }; /// @ingroup bind template SigC::Slot2 bind(const SigC::Slot5& s, A1 a1,A2 a2,A3 a3) { typedef AdaptorBindData3_ Data; typedef AdaptorBindSlot2_3_ Adaptor; return reinterpret_cast( new Data((FuncPtr)(&Adaptor::proxy),s, (FuncPtr)(&Data::dtor),a1,a2,a3)); } template struct AdaptorBindSlot3_3_ { typedef typename Trait::type RType; typedef typename SigC::Slot6::Proxy Proxy; static RType proxy(typename SigC::Trait::ref p1,typename SigC::Trait::ref p2,typename SigC::Trait::ref p3,void *data) { typedef AdaptorBindData3_ Data; Data& node=*reinterpret_cast(data); SlotNode* slot=static_cast(node.adaptor.slot_.impl()); return ((Proxy)(slot->proxy_)) (p1,p2,p3,node.c1_,node.c2_,node.c3_,slot); } }; /// @ingroup bind template SigC::Slot3 bind(const SigC::Slot6& s, A1 a1,A2 a2,A3 a3) { typedef AdaptorBindData3_ Data; typedef AdaptorBindSlot3_3_ Adaptor; return reinterpret_cast( new Data((FuncPtr)(&Adaptor::proxy),s, (FuncPtr)(&Data::dtor),a1,a2,a3)); } } // namespace SigCX #endif