set.hpp

Go to the documentation of this file.
00001 #ifndef s11n_net_s11n_std_set_HPP_INCLUDED
00002 #define s11n_net_s11n_std_set_HPP_INCLUDED 1
00003 
00004 #include <s11n.net/s11n/proxy/listish.hpp>
00005 
00006 #define S11N_LIST_TYPE std::set
00007 #define S11N_LIST_TYPE_NAME "set"
00008 
00009 #ifndef S11N_LIST_TYPE_PROXY
00010 #define S11N_LIST_TYPE_PROXY ::s11n::list::serialize_list_f
00011 #endif
00012 
00013 #ifndef S11N_LIST_TYPE_DESER_PROXY
00014 #  define S11N_LIST_TYPE_DESER_PROXY ::s11n::list::deserialize_list_f
00015 #endif
00016 
00017 
00018 namespace s11n {
00019 
00020     /**
00021        Specialization for list-compliant types.
00022     */
00023     template < typename T1 >
00024     struct S11N_EXPORT_API default_cleanup_functor< S11N_LIST_TYPE< T1 > >
00025     {
00026         typedef T1 value_type;
00027         typedef S11N_LIST_TYPE< T1 > serializable_type;
00028 
00029         /**
00030            Do nothing. In a set<T>, the contained members are
00031            const, so we can't rightfully do anything about
00032            them here.
00033         */
00034         void operator()( serializable_type & p ) const throw()
00035         {
00036         }
00037     };
00038 
00039 } // namespace
00040 
00041 
00042 #define S11N_TEMPLATE_TYPE S11N_LIST_TYPE
00043 #define S11N_TEMPLATE_TYPE_NAME S11N_LIST_TYPE_NAME
00044 #define S11N_TEMPLATE_TYPE_PROXY S11N_LIST_TYPE_PROXY
00045 #define S11N_TEMPLATE_TYPE_DESER_PROXY S11N_LIST_TYPE_DESER_PROXY
00046 #include <s11n.net/s11n/proxy/reg_s11n_traits_template1.hpp>
00047 #undef S11N_LIST_TYPE_DESER_PROXY
00048 #undef S11N_LIST_TYPE_PROXY
00049 #undef S11N_LIST_TYPE_NAME
00050 #undef S11N_LIST_TYPE
00051 
00052 
00053 #endif // s11n_net_s11n_std_set_HPP_INCLUDED

Generated on Sun Apr 27 13:16:04 2008 for libs11n by  doxygen 1.5.3