DPsim
InterfaceWorker.h
1 // SPDX-License-Identifier: Apache-2.0
2 
3 #pragma once
4 
5 #include <typeinfo>
6 
7 #include <dpsim-models/Attribute.h>
8 #include <dpsim-models/Logger.h>
9 #include <dpsim-models/Task.h>
10 #include <dpsim/Config.h>
11 #include <dpsim/Definitions.h>
12 #include <dpsim/Interface.h>
13 #include <dpsim/InterfaceQueued.h>
14 #include <dpsim/Scheduler.h>
15 
16 namespace DPsim {
17 
19 
20 protected:
21  bool mOpened;
22  UInt mCurrentSequenceInterfaceToDpsim = 1;
23 
24 public:
25  using Ptr = std::shared_ptr<InterfaceWorker>;
26 
27  CPS::Logger::Log mLog;
28 
29  InterfaceWorker() = default;
30  virtual ~InterfaceWorker() = default;
31 
37  virtual void readValuesFromEnv(
38  std::vector<InterfaceQueued::AttributePacket> &updatedAttrs) = 0;
39 
46  virtual void writeValuesToEnv(
47  std::vector<InterfaceQueued::AttributePacket> &updatedAttrs) = 0;
48 
53  virtual void open() = 0;
54 
59  virtual void close() = 0;
60 };
61 } // namespace DPsim
virtual void writeValuesToEnv(std::vector< InterfaceQueued::AttributePacket > &updatedAttrs)=0
virtual void open()=0
virtual void readValuesFromEnv(std::vector< InterfaceQueued::AttributePacket > &updatedAttrs)=0
virtual void close()=0