PLCnext API Documentation  20.0.0.24462
INetloadLimiterService.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/System/Rsc/Services/IRscService.hpp"
9 #include "NetloadLimiterServiceProxyFactory.hpp"
10 #include "NetloadLimiterErrorCode.hpp"
11 #include "NetloadLimiterSettings.hpp"
12 #include "NetloadLimiterState.hpp"
13 
14 // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY INetloadLimiterService.cs
15 
16 namespace Arp { namespace Hardware { namespace Nim { namespace Services
17 {
18 
19 using namespace Arp;
20 using namespace Arp::System::Rsc::Services;
21 
26 {
27 public: // typedefs
28  typedef std::shared_ptr<INetloadLimiterService> Ptr;
29 
30 public: // construction/destruction
34  virtual ~INetloadLimiterService(void);
35 
36 public: // static policy operation
37  static IRscServiceProxyFactory& GetProxyFactory(void);
38 
39 public: // abstract operations
46  virtual NetloadLimiterErrorCode GetSettings(uint8 networkInterface, NetloadLimiterSettings& settings) = 0;
47 
54  virtual NetloadLimiterErrorCode SetSettings(uint8 networkInterface, const NetloadLimiterSettings& settings) = 0;
55 
62  virtual NetloadLimiterErrorCode SetByteLimit(uint8 networkInterface, uint32 limit) = 0;
63 
70  virtual NetloadLimiterErrorCode SetPacketLimit(uint8 networkInterface, uint16 limit) = 0;
71 
77  virtual NetloadLimiterErrorCode EnableByteLimiter(uint8 networkInterface) = 0;
78 
84  virtual NetloadLimiterErrorCode DisableByteLimiter(uint8 networkInterface) = 0;
85 
91  virtual NetloadLimiterErrorCode EnablePacketLimiter(uint8 networkInterface) = 0;
92 
98  virtual NetloadLimiterErrorCode DisablePacketLimiter(uint8 networkInterface) = 0;
99 
106  virtual NetloadLimiterErrorCode GetState(uint8 networkInterface, NetloadLimiterState& state) = 0;
107 
108 private: // deleted methods (for non-copyable classes)
109  INetloadLimiterService(const INetloadLimiterService& arg) = delete;
110  INetloadLimiterService& operator=(const INetloadLimiterService& arg) = delete;
111 };
112 
114 // inline methods of class INetloadLimiterService
116 {
117 }
118 
120 {
121 }
122 
123 inline IRscServiceProxyFactory& INetloadLimiterService::GetProxyFactory()
124 {
125  return NetloadLimiterServiceProxyFactory::GetInstance();
126 }
127 
128 }}}} // end of namespace Arp::Hardware::Nim::Services
Namespace for classes and interfaces for the Remote Service Call implementation
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
This struct contains all settings of the netload limiter. It is used to set and get the current setti...
Definition: NetloadLimiterSettings.hpp:23
This Services controls the NetloadLimiter
Definition: INetloadLimiterService.hpp:25
std::uint8_t uint8
The Arp unsigned integer type of 1 byte size.
Definition: PrimitiveTypes.hpp:27
Root namespace for the PLCnext API
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:31
This struct contains the current state of the network limiter for one network interface.
Definition: NetloadLimiterState.hpp:23
Base interface for all Rsc service interface.
Definition: IRscService.hpp:18
INetloadLimiterService(void)
Constructs an INetloadLimiterService instance.
Definition: INetloadLimiterService.hpp:115
virtual ~INetloadLimiterService(void)
Destructs this instance and frees all resouces.
Definition: INetloadLimiterService.hpp:119