00001 00008 /***************************************************************************** 00009 ** Ifdefs 00010 *****************************************************************************/ 00011 00012 #ifndef ECL_SIGSLOTS_LITE_UTILITY_HPP_ 00013 #define ECL_SIGSLOTS_LITE_UTILITY_HPP_ 00014 00015 /***************************************************************************** 00016 ** Includes 00017 *****************************************************************************/ 00018 00019 #include "managers.hpp" 00020 00021 /***************************************************************************** 00022 ** Namespaces 00023 *****************************************************************************/ 00024 00025 namespace ecl { 00026 namespace lite { 00027 00028 template <typename Data> 00029 unsigned int global_slots_stored() { 00030 return GlobalSlots<Data>::stored(); 00031 } 00032 template <typename Data> 00033 unsigned int global_slots_capacity() { 00034 return GlobalSlots<Data>::capacity; 00035 } 00036 00037 template <typename Data, typename FunctionClass> 00038 unsigned int member_slots_stored(const FunctionClass &object) { 00039 const sigslots::MemberSlotsBase<Data,FunctionClass> &member_slots = object; 00040 return member_slots.stored(); 00041 } 00042 00043 template <typename Data, typename FunctionClass> 00044 unsigned int member_slots_capacity(const FunctionClass &object) { 00045 const sigslots::MemberSlotsBase<Data,FunctionClass> &member_slots = object; 00046 return member_slots.capacity(); 00047 } 00048 00049 } // namespace lite 00050 } // namespace ecl 00051 00052 #endif /* ECL_SIGSLOTS_LITE_UTILITY_HPP_ */