FC Updates from BitShares and myself #21
6 changed files with 27 additions and 30 deletions
|
|
@ -11,7 +11,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const flat_set<T>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
@ -38,7 +38,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const flat_map<K,V...>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
@ -67,7 +67,7 @@ namespace fc {
|
|||
void pack( Stream& s, const bip::vector<T,A>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
pack( s, unsigned_int(value.size()), _max_depth );
|
||||
if( !std::is_fundamental<T>::value ) {
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const bip::vector<T,A...>& value, uint32_t _max_depth=FC_PACK_MAX_DEPTH ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
|
|||
|
|
@ -273,9 +273,9 @@ namespace fc {
|
|||
// std::vector<char>
|
||||
template<typename Stream> inline void pack( Stream& s, const std::vector<char>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
fc::raw::pack( s, unsigned_int((uint32_t)value.size()), _max_depth - 1 );
|
||||
fc::raw::pack( s, unsigned_int(value.size()), _max_depth - 1 );
|
||||
if( value.size() )
|
||||
s.write( &value.front(), (uint32_t)value.size() );
|
||||
s.write( &value.front(), value.size() );
|
||||
}
|
||||
template<typename Stream> inline void unpack( Stream& s, std::vector<char>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
|
|
@ -289,7 +289,7 @@ namespace fc {
|
|||
// fc::string
|
||||
template<typename Stream> inline void pack( Stream& s, const fc::string& v, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
fc::raw::pack( s, unsigned_int((uint32_t)v.size()), _max_depth - 1 );
|
||||
fc::raw::pack( s, unsigned_int(v.size()), _max_depth - 1 );
|
||||
if( v.size() ) s.write( v.c_str(), v.size() );
|
||||
}
|
||||
|
||||
|
|
@ -433,7 +433,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const std::unordered_set<T>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
fc::raw::pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
fc::raw::pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
@ -478,7 +478,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const std::unordered_map<K,V>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
fc::raw::pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
fc::raw::pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
@ -506,7 +506,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const std::map<K,V>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
fc::raw::pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
fc::raw::pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
@ -534,7 +534,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const std::deque<T>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
fc::raw::pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
fc::raw::pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
@ -562,7 +562,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const std::vector<T>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
fc::raw::pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
fc::raw::pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
@ -590,7 +590,7 @@ namespace fc {
|
|||
inline void pack( Stream& s, const std::set<T>& value, uint32_t _max_depth ) {
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
fc::raw::pack( s, unsigned_int((uint32_t)value.size()), _max_depth );
|
||||
fc::raw::pack( s, unsigned_int(value.size()), _max_depth );
|
||||
auto itr = value.begin();
|
||||
auto end = value.end();
|
||||
while( itr != end ) {
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ namespace fc { namespace raw {
|
|||
{
|
||||
FC_ASSERT( _max_depth > 0 );
|
||||
--_max_depth;
|
||||
unsigned_int vs = (uint32_t)v.size();
|
||||
unsigned_int vs = v.size();
|
||||
pack( s, vs, _max_depth );
|
||||
for( auto itr = v.begin(); itr != v.end(); ++itr )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,35 +4,32 @@
|
|||
namespace fc {
|
||||
|
||||
struct unsigned_int {
|
||||
unsigned_int( uint32_t v = 0 ):value(v){}
|
||||
unsigned_int( uint64_t v = 0 ):value(v){}
|
||||
|
||||
template<typename T>
|
||||
unsigned_int( T v ):value(v){}
|
||||
|
||||
//operator uint32_t()const { return value; }
|
||||
//operator uint64_t()const { return value; }
|
||||
|
||||
template<typename T>
|
||||
operator T()const { return static_cast<T>(value); }
|
||||
|
||||
unsigned_int& operator=( int32_t v ) { value = v; return *this; }
|
||||
unsigned_int& operator=( uint64_t v ) { value = v; return *this; }
|
||||
|
||||
uint32_t value;
|
||||
uint64_t value;
|
||||
|
||||
friend bool operator==( const unsigned_int& i, const uint32_t& v ) { return i.value == v; }
|
||||
friend bool operator==( const uint32_t& i, const unsigned_int& v ) { return i == v.value; }
|
||||
friend bool operator==( const unsigned_int& i, const uint64_t& v ) { return i.value == v; }
|
||||
friend bool operator==( const uint64_t& i, const unsigned_int& v ) { return i == v.value; }
|
||||
friend bool operator==( const unsigned_int& i, const unsigned_int& v ) { return i.value == v.value; }
|
||||
|
||||
friend bool operator!=( const unsigned_int& i, const uint32_t& v ) { return i.value != v; }
|
||||
friend bool operator!=( const uint32_t& i, const unsigned_int& v ) { return i != v.value; }
|
||||
friend bool operator!=( const unsigned_int& i, const uint64_t& v ) { return i.value != v; }
|
||||
friend bool operator!=( const uint64_t& i, const unsigned_int& v ) { return i != v.value; }
|
||||
friend bool operator!=( const unsigned_int& i, const unsigned_int& v ) { return i.value != v.value; }
|
||||
|
||||
friend bool operator<( const unsigned_int& i, const uint32_t& v ) { return i.value < v; }
|
||||
friend bool operator<( const uint32_t& i, const unsigned_int& v ) { return i < v.value; }
|
||||
friend bool operator<( const unsigned_int& i, const uint64_t& v ) { return i.value < v; }
|
||||
friend bool operator<( const uint64_t& i, const unsigned_int& v ) { return i < v.value; }
|
||||
friend bool operator<( const unsigned_int& i, const unsigned_int& v ) { return i.value < v.value; }
|
||||
|
||||
friend bool operator>=( const unsigned_int& i, const uint32_t& v ) { return i.value >= v; }
|
||||
friend bool operator>=( const uint32_t& i, const unsigned_int& v ) { return i >= v.value; }
|
||||
friend bool operator>=( const unsigned_int& i, const uint64_t& v ) { return i.value >= v; }
|
||||
friend bool operator>=( const uint64_t& i, const unsigned_int& v ) { return i >= v.value; }
|
||||
friend bool operator>=( const unsigned_int& i, const unsigned_int& v ) { return i.value >= v.value; }
|
||||
};
|
||||
|
||||
|
|
@ -95,7 +92,7 @@ namespace std
|
|||
public:
|
||||
size_t operator()(const fc::signed_int &a) const
|
||||
{
|
||||
return std::hash<uint32_t>()(a.value);
|
||||
return std::hash<uint64_t>()(a.value);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,5 +6,5 @@ namespace fc
|
|||
void to_variant( const signed_int& var, variant& vo, uint32_t max_depth ) { vo = var.value; }
|
||||
void from_variant( const variant& var, signed_int& vo, uint32_t max_depth ) { vo.value = static_cast<int32_t>(var.as_int64()); }
|
||||
void to_variant( const unsigned_int& var, variant& vo, uint32_t max_depth ) { vo = var.value; }
|
||||
void from_variant( const variant& var, unsigned_int& vo, uint32_t max_depth ) { vo.value = static_cast<uint32_t>(var.as_uint64()); }
|
||||
void from_variant( const variant& var, unsigned_int& vo, uint32_t max_depth ) { vo.value = var.as_uint64(); }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue