#ifndef _HOTSTUFF_TYPE_H #define _HOTSTUFF_TYPE_H #include "promise.hpp" #include "salticidae/event.h" #include "salticidae/ref.h" #include "salticidae/netaddr.h" #include "salticidae/stream.h" #include "salticidae/type.h" #include "salticidae/util.h" namespace hotstuff { using salticidae::RcObj; using salticidae::BoxObj; using salticidae::uint256_t; using salticidae::DataStream; using salticidae::htole; using salticidae::letoh; using salticidae::get_hex; using salticidae::from_hex; using salticidae::bytearray_t; using salticidae::get_hash; using salticidae::NetAddr; using salticidae::TimerEvent; using salticidae::FdEvent; using salticidae::EventContext; using promise::promise_t; template inline std::string get_hex10(const SerialType &x) { return get_hex(x).substr(0, 10); } class HotStuffError: public salticidae::SalticidaeError { public: template HotStuffError(Args... args): salticidae::SalticidaeError(args...) {} }; class HotStuffInvalidEntity: public HotStuffError { public: template HotStuffInvalidEntity(Args... args): HotStuffError(args...) {} }; using salticidae::Serializable; class Cloneable { public: virtual ~Cloneable() = default; virtual Cloneable *clone() = 0; }; using ReplicaID = uint16_t; using opcode_t = uint8_t; } #endif