#ifndef __LIBBC_BC_TRANSMITTABLE_HPP__ #define __LIBBC_BC_TRANSMITTABLE_HPP__ /* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ /** * @file * @brief main header file for the transmittable interface * @author Dominik Meyer * @date 2019-01-08 * @copyright 2019 no yet defined */ #include #include namespace BC { /** * @brief abstract class providing the interface for classes being transmittable through a network * * the developer has to make sure that the correct endianess is used in the toByteVector function * and in the Factory for each Class */ class transmittable { public: /** * @brief converts the information of the class (the attributes) to a byte vector * * @param byteVector - returns a std::vector of bytes representing the class */ virtual std::vector toByteVector() const = 0; }; }; //namespace BC #endif