tags.hpp

Go to the documentation of this file.
00001 #ifndef s11n_net_s11n_1_1_TAGS_HPP_INCLUDED
00002 #define s11n_net_s11n_1_1_TAGS_HPP_INCLUDED 1
00003 // Defines some "tag" structs for some functional composition experimentation.
00004 namespace s11n {
00005 
00006 
00007 
00008     /**
00009        A tag type for serialization functors.
00010     */
00011     struct serialize_f_tag {};
00012 
00013     /**
00014        A tag type for serialization functors which look like:
00015 
00016        bool operator()() const
00017     */
00018     struct serialize_nullary_f_tag : serialize_f_tag {};
00019 
00020     /**
00021        A tag type for serialization functors which look like:
00022 
00023        bool operator()( NodeT &, SerializableT const & ) const
00024     */
00025     struct serialize_binary_f_tag : serialize_f_tag {};
00026 
00027     /**
00028        A tag type for serialization functors which look like:
00029 
00030        bool operator()( NodeT & ) const
00031     */
00032     struct serialize_unary_node_f_tag : serialize_f_tag {};
00033 
00034     /**
00035        A tag type for serialization functors which look like:
00036 
00037        bool operator()( SerializableT const & ) const
00038     */
00039     struct serialize_unary_serializable_f_tag : serialize_f_tag {};
00040 
00041 
00042     /**
00043        A tag type for deserialization functors.
00044     */
00045     struct deserialize_f_tag {};
00046 
00047     /**
00048        A tag type for deserialization functors which look like:
00049 
00050        bool operator()() const
00051     */
00052     struct deserialize_nullary_f_tag : deserialize_f_tag {};
00053 
00054     /**
00055        A tag type for deserialization functors which look like:
00056 
00057        bool operator()( NodeT const &, SerializableT & ) const
00058     */
00059     struct deserialize_binary_f_tag : deserialize_f_tag {};
00060 
00061     /**
00062        A tag type for deserialization functors which look like:
00063 
00064        SerializableT * operator()( NodeT const & ) const
00065     */
00066     struct deserialize_unary_node_f_tag : deserialize_f_tag {};
00067 
00068     /**
00069        A tag type for deserialization functors which look like:
00070 
00071        bool operator()( SerializableT & ) const
00072     */
00073     struct deserialize_unary_serializable_f_tag : deserialize_f_tag {};
00074 
00075 
00076 } // namespace s11n
00077 
00078 
00079 #endif // s11n_net_s11n_1_1_TAGS_HPP_INCLUDED
00080 

Generated on Wed Jun 4 21:45:46 2008 for libs11n-1.2.7 by  doxygen 1.5.3