Files
compute-runtime/runtime/tbx/tbx_sockets_imp.h
Maciej Plewka 9e52684f5b Change namespace from OCLRT to NEO
Change-Id: If965c79d70392db26597aea4c2f3b7ae2820fe96
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2019-03-26 15:48:19 +01:00

48 lines
1.2 KiB
C++

/*
* Copyright (C) 2018-2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "runtime/tbx/tbx_sockets.h"
#include "os_socket.h"
#include <iostream>
namespace NEO {
class TbxSocketsImp : public TbxSockets {
public:
TbxSocketsImp(std::ostream &err = std::cerr);
~TbxSocketsImp() override = default;
bool init(const std::string &hostNameOrIp, uint16_t port) override;
void close() override;
bool writeGTT(uint32_t gttOffset, uint64_t entry) override;
bool readMemory(uint64_t offset, void *data, size_t size) override;
bool writeMemory(uint64_t offset, const void *data, size_t size, uint32_t type) override;
bool readMMIO(uint32_t offset, uint32_t *data) override;
bool writeMMIO(uint32_t offset, uint32_t data) override;
protected:
std::ostream &cerrStream;
SOCKET m_socket = 0;
bool connectToServer(const std::string &hostNameOrIp, uint16_t port);
bool sendWriteData(const void *buffer, size_t sizeInBytes);
bool getResponseData(void *buffer, size_t sizeInBytes);
inline uint32_t getNextTransID() { return transID++; }
void logErrorInfo(const char *tag);
uint32_t transID = 0;
};
} // namespace NEO