#pragma once /* ABSTRACT DEVICE COMPONENTS LIBRARY */ namespace adc { template class AdcNetService : public IOImplT { public: /* asynchronuos operations */ // open connection template auto asyncConnect(ArgTs&&... args) { } template auto asyncSend(NetMessageT&& msg, ArgTs&&... args) { } template auto asyncReceive(ArgTs&&... args) { } /* blocking operations */ template auto send(NetMessageT&& msg, ArgTs&&... args) { } template NetMessageT receive(ArgTs&&... args) { } template auto close(ArgTs&&... args) { } }; } // namespace adc