(*tcpConnection_); } int Add(int a, int b) { // 构造SOME/IP请求报文 someip::Message request; request.SetMessageType(someip::MessageType::Request); request.SetServiceID(0x1234); request.SetInstanceID(0x5678); request.SetMethodID(0x0001); // 将请求参数序列化为二进制数据 std::vector data; someip::SOMEIPScalarSerializer::Serialize(a, data); someip::SOMEIPScalarSerializer::Serialize(b, data); req"> (*tcpConnection_); } int Add(int a, int b) { // 构造SOME/IP请求报文 someip::Message request; request.SetMessageType(someip::MessageType::Request); request.SetServiceID(0x1234); request.SetInstanceID(0x5678); request.SetMethodID(0x0001); // 将请求参数序列化为二进制数据 std::vector data; someip::SOMEIPScalarSerializer::Serialize(a, data); someip::SOMEIPScalarSerializer::Serialize(b, data); req"> (*tcpConnection_); } int Add(int a, int b) { // 构造SOME/IP请求报文 someip::Message request; request.SetMessageType(someip::MessageType::Request); request.SetServiceID(0x1234); request.SetInstanceID(0x5678); request.SetMethodID(0x0001); // 将请求参数序列化为二进制数据 std::vector data; someip::SOMEIPScalarSerializer::Serialize(a, data); someip::SOMEIPScalarSerializer::Serialize(b, data); req">
// 定义一个服务接口
class MyService {
public:
    virtual int Add(int a, int b) = 0;
};

// 实现服务接口
class MyServiceImpl : public MyService {
public:
    int Add(int a, int b) override {
        return a + b;
    }
};

// 客户端使用服务接口
class MyServiceClient {
public:
    MyServiceClient() {
        // 创建一个TCP连接
        tcpConnection_ = std::make_unique<someip::TCPConnection>();
        tcpConnection_->Connect("127.0.0.1", 12345);
        // 创建一个SOME/IP客户端
        someipClient_ = std::make_unique<someip::Client>(*tcpConnection_);
    }

    int Add(int a, int b) {
        // 构造SOME/IP请求报文
        someip::Message request;
        request.SetMessageType(someip::MessageType::Request);
        request.SetServiceID(0x1234);
        request.SetInstanceID(0x5678);
        request.SetMethodID(0x0001);
        // 将请求参数序列化为二进制数据
        std::vector<uint8_t> data;
        someip::SOMEIPScalarSerializer<int32_t>::Serialize(a, data);
        someip::SOMEIPScalarSerializer<int32_t>::Serialize(b, data);
        request.SetPayload(data);
        // 发送请求报文并接收响应报文
        someip::Message response = someipClient_->Send(request);
        // 解析响应报文并返回结果
        int32_t result = someip::SOMEIPScalarSerializer<int32_t>::Deserialize(response.GetPayload());
        return static_cast<int>(result);
    }

private:
    std::unique_ptr<someip::TCPConnection> tcpConnection_;
    std::unique_ptr<someip::Client> someipClient_;
};

int main() {
    // 创建一个服务实现对象和一个服务发布对象
    MyServiceImpl serviceImpl;
    someip::Server someipServer;
    someipServer.RegisterService(0x1234, 0x5678, serviceImpl);

    // 创建一个服务客户端对象
    MyServiceClient serviceClient;

    // 调用服务接口
    int result = serviceClient.Add(1, 2);
    std::cout << "Result: " << result << std::endl;

    return 0;
}