aboutsummaryrefslogtreecommitdiff
path: root/src/protocol/client.h
blob: 8ed49aa0206b85d881c86dbdc1cf1099ce056531 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// SPDX-License-Identifier: BSD-3-Clause

#ifndef INVERTER_TOOLS_PROTOCOL_CLIENT_H
#define INVERTER_TOOLS_PROTOCOL_CLIENT_H

#include "../voltronic/device.h"
#include "response.h"

namespace protocol {

class BaseClient {
private:
    std::shared_ptr<voltronic::Device> device_;

public:
    void setDevice(std::shared_ptr<voltronic::Device> device);
    virtual std::shared_ptr<BaseResponse> execute(int commandType, std::vector<std::string>& arguments) = 0;
    std::pair<std::shared_ptr<char>, size_t> runOnDevice(std::string& raw);
};

}

#endif //INVERTER_TOOLS_PROTOCOL_CLIENT_H