00001 #ifndef BOOST_RPC_CALL_OPTIONS_HPP
00002 #define BOOST_RPC_CALL_OPTIONS_HPP
00003
00004 #include <boost/cstdint.hpp>
00005 #include <boost/serialization/access.hpp>
00006
00007 namespace boost {
00008 namespace rpc {
00009
00011
00013 struct call_options
00014 {
00015 enum marshal_options
00016 {
00017 marshal_unspecified,
00018 no_results,
00019 completed_only,
00020 return_only,
00021 all_out_parameters,
00022 };
00023 enum exception_options
00024 {
00025 exception_unspecified,
00026 no_exception_handling
00027 };
00028
00029 boost::int32_t marshal_option;
00030 boost::int32_t exception_option;
00031
00032 call_options(marshal_options marshal_option_val = marshal_unspecified,
00033 exception_options exception_option_val = exception_unspecified)
00034 : marshal_option((boost::int32_t)marshal_option_val),
00035 exception_option((boost::int32_t)exception_option_val) {}
00036 private:
00037 friend class boost::serialization::access;
00038
00039 template<class Archive>
00040 void serialize(Archive &archive, const unsigned int version)
00041 {
00042 archive & marshal_option;
00043 archive & exception_option;
00044 }
00045 };
00046
00047 }
00048 }
00049
00050 #endif // BOOST_RPC_CALL_OPTIONS_HPP