39 template <
class Param1>
43 virtual void invoke(Param1 param1) = 0;
48 template <
class Param1>
60 template <
class Param1,
class UserData>
73 template <
class Param1,
class InstanceClass>
78 : instance(instance), member_func(member_func) {
return; }
81 void (InstanceClass::*member_func)(Param1);
86 template <
class Param1,
class InstanceClass,
class UserData>
91 : instance(instance), member_func(member_func), user_data(user_data) {
return; }
94 void (InstanceClass::*member_func)(Param1, UserData);
100 template <
class Param1,
class Functor>
105 : functor(functor) {
return; }
113 template <
class Param1>
124 : impl(copy.impl) {
return; }
135 CL_SharedPtr<CL_SlotCallback> callback(
137 impl->connected_slots.push_back(callback);
141 template<
class UserData>
145 CL_SharedPtr<CL_SlotCallback> callback(
147 impl->connected_slots.push_back(callback);
151 template<
class InstanceClass>
152 CL_Slot connect(InstanceClass *instance,
void (InstanceClass::*
function)(Param1))
155 CL_SharedPtr<CL_SlotCallback> callback(
157 impl->connected_slots.push_back(callback);
161 template<
class InstanceClass,
class UserData>
162 CL_Slot connect(InstanceClass *instance,
void (InstanceClass::*
function)(Param1, UserData),
const UserData &user_data)
165 CL_SharedPtr<CL_SlotCallback> callback(
167 impl->connected_slots.push_back(callback);
171 template<
class Functor>
175 CL_SharedPtr<CL_SlotCallback> callback(
177 impl->connected_slots.push_back(callback);
183 std::vector< CL_SharedPtr<CL_SlotCallback> > callbacks = impl->connected_slots;
184 std::vector< CL_SharedPtr<CL_SlotCallback> >::size_type i, size;
185 size = callbacks.size();
186 for (i = 0; i < size; i++)
187 if (callbacks[i]->valid && callbacks[i]->enabled)
199 std::vector< CL_SharedPtr<CL_SlotCallback> >::size_type i, size;
200 size = impl->connected_slots.size();
201 for (i = 0; i < size; i++)
203 if (!impl->connected_slots[i]->valid)
205 impl->connected_slots.erase(impl->connected_slots.begin()+i);
212 CL_SharedPtr<CL_Signal_Impl> impl;