MACE  1.0.0
 All Classes Namespaces Files Functions Variables Enumerations Defines
libs/rpc/include/mace/rpc/varint.hpp
00001 #ifndef _MACE_RPC_VARINT_HPP_
00002 #define _MACE_RPC_VARINT_HPP_
00003 #include <mace/reflect/reflect.hpp>
00004 
00005 namespace mace { namespace rpc {
00006 
00007 struct unsigned_int {
00008     unsigned_int( uint32_t v = 0 ):value(v){}
00009 
00010     operator uint32_t()const { return value; }
00011 
00012     template<typename T>
00013     unsigned_int& operator=( const T& v ) { value = v; return *this; }
00014     
00015     uint32_t value;
00016 };
00017 
00018 struct signed_int {
00019     signed_int( int32_t v = 0 ):value(v){}
00020     operator int32_t()const { return value; }
00021     template<typename T>
00022     signed_int& operator=( const T& v ) { value = v; return *this; }
00023 
00024     int32_t value;
00025 };
00026 
00027 } } // mace::rpc
00028 
00029 MACE_REFLECT_TYPEINFO( mace::rpc::unsigned_int )
00030 MACE_REFLECT_TYPEINFO( mace::rpc::signed_int )
00031 
00032 #endif