34 #include "../api_core.h"
35 #include "../System/exception.h"
56 std::vector< CL_SharedPtr<CL_SlotCallback> >::reverse_iterator it = it_super;
64 if (it->get()->valid && it->get()->enabled)
72 throw CL_Exception(
"Called non-invokable super function");
77 std::vector< CL_SharedPtr<CL_SlotCallback> >::reverse_iterator it = it_super;
80 if (it->get()->valid && it->get()->enabled)
92 std::vector< CL_SharedPtr<CL_SlotCallback> >::reverse_iterator
it_super;
94 std::vector< CL_SharedPtr<CL_SlotCallback> >::reverse_iterator
it_end;
103 : static_func(static_func) {
return; }
110 template <
class UserData>
123 template <
class InstanceClass>
128 : instance(instance), member_func(member_func) {
return; }
136 template <
class InstanceClass,
class UserData>
141 : instance(instance), member_func(member_func), user_data(user_data) {
return; }
150 template <
class Functor>
155 : functor(functor) {
return; }
173 : impl(copy.impl) {
return; }
184 CL_SharedPtr<CL_SlotCallback> callback(
186 impl->connected_slots.push_back(callback);
190 template<
class UserData>
194 CL_SharedPtr<CL_SlotCallback> callback(
196 impl->connected_slots.push_back(callback);
200 template<
class InstanceClass>
204 CL_SharedPtr<CL_SlotCallback> callback(
206 impl->connected_slots.push_back(callback);
210 template<
class InstanceClass,
class UserData>
214 CL_SharedPtr<CL_SlotCallback> callback(
216 impl->connected_slots.push_back(callback);
220 template<
class Functor>
224 CL_SharedPtr<CL_SlotCallback> callback(
226 impl->connected_slots.push_back(callback);
232 std::vector< CL_SharedPtr<CL_SlotCallback> > callbacks = impl->connected_slots;
235 s.
it_end = callbacks.rend();
247 std::vector< CL_SharedPtr<CL_SlotCallback> >::size_type i, size;
248 size = impl->connected_slots.size();
249 for (i = 0; i < size; i++)
251 if (!impl->connected_slots[i]->valid)
253 impl->connected_slots.erase(impl->connected_slots.begin()+i);
260 CL_SharedPtr<CL_Signal_Impl> impl;