| * Each data transport mechanism must implement the DataInterface. |
| virtual ~DataInterface() = default; |
| * Initialize data transport mechanism. Calling this should be idempotent |
| * @return true if successful |
| * Close the data transport mechanism. |
| * @return true if successful |
| virtual bool close() = 0; |
| * Copy bytes from external interface (blocking call). |
| * @param[in] length - number of bytes to copy |
| virtual std::vector<std::uint8_t> copyFrom(std::uint32_t length) = 0; |
| * @param[in] configuration - byte vector of data. |
| * @return bool - returns true on success. |
| virtual bool write(const std::vector<std::uint8_t>& configuration) = 0; |
| * @return bytes - whatever bytes are required configuration information for |
| virtual std::vector<std::uint8_t> read() = 0; |