// SocketAdapterBase.hpp

#ifndef SOCKET_ADAPTER_BASE_HPP
#define SOCKET_ADAPTER_BASE_HPP

#include <string>
#include <tuple>

namespace robotiq{
class SocketAdapterBase {
public:
    virtual ~SocketAdapterBase() = default;

    virtual bool connect(const std::string& hostname, int port) = 0;
    virtual void disconnect() = 0;
    virtual int force() = 0;
    virtual int speed() = 0;
    virtual int position() = 0;
    virtual bool is_active() = 0;
    virtual void activate(bool autoCalibrate = true) = 0;
    virtual void deactivate() = 0;
    virtual std::tuple<bool, int> move(int position, int speed, int force) = 0;
};
} // end namespace
#endif // SOCKET_ADAPTER_BASE_HPP