#pragma once | |
#include <cstdint> | |
#include <vector> | |
namespace blobs | |
{ | |
/** | |
* Each data transport mechanism must implement the DataInterface. | |
*/ | |
class DataInterface | |
{ | |
public: | |
virtual ~DataInterface() = default; | |
/** | |
* Copy bytes from external interface (blocking call). | |
* | |
* @param[in] length - number of bytes to copy | |
* @return the bytes read | |
*/ | |
virtual std::vector<std::uint8_t> copyFrom(std::uint32_t length) = 0; | |
}; | |
struct DataHandlerPack | |
{ | |
std::uint16_t bitmask; | |
DataInterface* handler; | |
}; | |
} // namespace blobs |