TARAXA
Common.h File Reference
#include <chrono>
#include <functional>
#include <map>
#include <set>
#include <string>
#include <unordered_map>
#include <vector>
#include <boost/multiprecision/cpp_int.hpp>
#include "vector_ref.h"
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  dev::secure_vector< T >
 
class  dev::ScopeGuard
 RAII utility class whose destructor calls a given function. More...
 
class  dev::TimerHelper
 Simple scope-based timer helper. More...
 
class  dev::Timer
 

Namespaces

 dev
 

Macros

#define DEV_IGNORE_EXCEPTIONS(X)
 
#define DEV_IF_THROWS(X)
 
#define DEV_TIMED(S)    for (::std::pair<::dev::TimerHelper, bool> __eth_t(S, true); __eth_t.second; __eth_t.second = false)
 
#define DEV_TIMED_SCOPE(S)   ::dev::TimerHelper __eth_t(S)
 
#define DEV_TIMED_FUNCTION   DEV_TIMED_SCOPE(__PRETTY_FUNCTION__)
 
#define DEV_TIMED_ABOVE(S, MS)
 
#define DEV_TIMED_SCOPE_ABOVE(S, MS)   ::dev::TimerHelper __eth_t(S, MS)
 
#define DEV_TIMED_FUNCTION_ABOVE(MS)   DEV_TIMED_SCOPE_ABOVE(__PRETTY_FUNCTION__, MS)
 
#define DEV_UNUSED   __attribute__((unused))
 

Typedefs

using byte = uint8_t
 
using dev::bytes = std::vector<::byte >
 
using dev::bytesRef = vector_ref<::byte >
 
using dev::bytesConstRef = vector_ref<::byte const >
 
using dev::bytesSec = secure_vector<::byte >
 
using dev::bigint = boost::multiprecision::number< boost::multiprecision::cpp_int_backend<> >
 
using dev::u64 = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 64, 64, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > >
 
using dev::u128 = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 128, 128, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > >
 
using dev::u256 = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > >
 
using dev::s256 = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 256, 256, boost::multiprecision::signed_magnitude, boost::multiprecision::unchecked, void > >
 
using dev::u160 = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 160, 160, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > >
 
using dev::s160 = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 160, 160, boost::multiprecision::signed_magnitude, boost::multiprecision::unchecked, void > >
 
using dev::u512 = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 512, 512, boost::multiprecision::unsigned_magnitude, boost::multiprecision::unchecked, void > >
 
using dev::s512 = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< 512, 512, boost::multiprecision::signed_magnitude, boost::multiprecision::unchecked, void > >
 
using dev::u256s = std::vector< u256 >
 
using dev::u160s = std::vector< u160 >
 
using dev::u256Set = std::set< u256 >
 
using dev::u160Set = std::set< u160 >
 
using dev::StringMap = std::map< std::string, std::string >
 
using dev::BytesMap = std::map< bytes, bytes >
 
using dev::u256Map = std::map< u256, u256 >
 
using dev::HexMap = std::map< bytes, bytes >
 
using dev::StringHashMap = std::unordered_map< std::string, std::string >
 
using dev::u256HashMap = std::unordered_map< u256, u256 >
 
using dev::strings = std::vector< std::string >
 

Functions

s256 dev::u2s (u256 _u)
 
u256 dev::s2u (s256 _u)
 
unsigned int dev::toLog2 (u256 _x)
 
template<size_t n>
u256 dev::exp10 ()
 
template<>
u256 dev::exp10< 0 > ()
 
template<class N >
dev::diff (N const &_a, N const &_b)
 
int64_t dev::utcTime ()
 Get the current time in seconds since the epoch in UTC. More...
 

Variables

char const * dev::Version
 
static const auto dev::c_steadyClockMin = std::chrono::steady_clock::time_point::min()
 

Detailed Description

Very common stuff (i.e. that every other header needs except vector_ref.h).

Macro Definition Documentation

◆ DEV_IF_THROWS

#define DEV_IF_THROWS (   X)
Value:
try { \
X; \
} catch (...)

◆ DEV_IGNORE_EXCEPTIONS

#define DEV_IGNORE_EXCEPTIONS (   X)
Value:
try { \
X; \
} catch (...) { \
}

◆ DEV_TIMED

#define DEV_TIMED (   S)     for (::std::pair<::dev::TimerHelper, bool> __eth_t(S, true); __eth_t.second; __eth_t.second = false)

◆ DEV_TIMED_ABOVE

#define DEV_TIMED_ABOVE (   S,
  MS 
)
Value:
for (::std::pair<::dev::TimerHelper, bool> __eth_t(::dev::TimerHelper(S, MS), true); __eth_t.second; \
__eth_t.second = false)
Simple scope-based timer helper.
Definition: Common.h:184

◆ DEV_TIMED_FUNCTION

#define DEV_TIMED_FUNCTION   DEV_TIMED_SCOPE(__PRETTY_FUNCTION__)

◆ DEV_TIMED_FUNCTION_ABOVE

#define DEV_TIMED_FUNCTION_ABOVE (   MS)    DEV_TIMED_SCOPE_ABOVE(__PRETTY_FUNCTION__, MS)

◆ DEV_TIMED_SCOPE

#define DEV_TIMED_SCOPE (   S)    ::dev::TimerHelper __eth_t(S)

◆ DEV_TIMED_SCOPE_ABOVE

#define DEV_TIMED_SCOPE_ABOVE (   S,
  MS 
)    ::dev::TimerHelper __eth_t(S, MS)

◆ DEV_UNUSED

#define DEV_UNUSED   __attribute__((unused))

Typedef Documentation

◆ byte

using byte = uint8_t