#ifndef __UT_ROBOT_SDK_CLIENT_BASE_HPP__ #define __UT_ROBOT_SDK_CLIENT_BASE_HPP__ #include namespace unitree { namespace robot { /* * @brief * @default client timeout. 1s */ const int64_t ROBOT_CLIENT_TIMEOUT = 1000000; /* * @brief * @class: ClientBase */ class ClientBase { public: explicit ClientBase(const std::string& name); virtual ~ClientBase(); virtual void Init() = 0; void SetTimeout(int64_t timeout); void SetTimeout(float timeout); protected: int32_t Call(int32_t apiId, const std::string& parameter, std::string& data, int32_t proirity, int64_t leaseId); int32_t Call(int32_t apiId, const std::string& parameter, int32_t priority, int64_t leaseId); int32_t Call(int32_t apiId, const std::vector& parameter, std::vector& bin_data, int32_t proirity, int64_t leaseId); int32_t Call(int32_t apiId, const std::vector& parameter, int32_t priority, int64_t leaseId); void SetHeader(RequestHeader& header, int32_t apiId, int64_t leaseId, int32_t priority, bool noReply); private: int64_t mTimeout; ClientStubPtr mClientStubPtr; }; using ClientBasePtr = std::shared_ptr; } } #endif//__UT_ROBOT_SDK_CLIENT_BASE_HPP__