/*
{{copyright}} 
*/

/*
{{version}} 
*/

/*
{{license}} 
*/

#pragma once

#include "../defs.h"

namespace sdi_uToolBox::comm
{
//--------------------------------------------------------------
class ICommBus
{
  public:
  ICommBus()                            = default;     // Default constructor
  virtual ~ICommBus()                   = default;     // Default destructor
  ICommBus(const ICommBus &)            = delete;      // Copy constructor
  ICommBus &operator=(const ICommBus &) = delete;      // Copy assignment operator
  ICommBus(ICommBus &&)                 = delete;      // Move constructor
  ICommBus &operator=(ICommBus &&)      = delete;      // Move assignment operator

  virtual ReturnStatus open()  = 0;     // Open communication bus
  virtual ReturnStatus close() = 0;     // Close communication bus
};
//--------------------------------------------------------------
}     // namespace sdi_uToolBox::comm