PLCnext API Documentation  21.0.0.35466
IPcpService.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 "PcpServiceProxyFactory.hpp"
10 #include "IdentifyResult.hpp"
11 #include "InitiateResult.hpp"
12 #include "InterbusResult.hpp"
13 #include "ObjectAddress.hpp"
14 #include "StatusResult.hpp"
15 #include <vector>
16 
17 // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IPcpService.cs
18 
19 namespace Arp { namespace Io { namespace Interbus { namespace Services
20 {
21 
22 using namespace Arp;
23 using namespace Arp::System::Rsc::Services;
24 
28 class IPcpService : public IRscService
29 {
30 public: // typedefs
31  typedef std::shared_ptr<IPcpService> Ptr;
32 
33 public: // construction/destruction
35  IPcpService(void);
37  virtual ~IPcpService(void);
38 
39 public: // static policy operation
40  static IRscServiceProxyFactory& GetProxyFactory(void);
41 
42 public: // abstract operations
52  virtual InitiateResult PcpInitiate(uint8 communicationReference) = 0;
53 
66  virtual void PcpAbort(uint8 communicationReference, uint8 reasonCode, const std::vector<uint8>& abortDetail) = 0;
67 
80  virtual IdentifyResult PcpIdentify(uint8 communicationReference, uint8 invokeId) = 0;
81 
94  virtual StatusResult PcpStatus(uint8 communicationReference, uint8 invokeId) = 0;
95 
114  virtual InterbusResult PcpRead(uint8 communicationReference, uint8 invokeId, const ObjectAddress& pcpObject, std::vector<uint8>& data) = 0;
115 
134  virtual InterbusResult PcpWrite(uint8 communicationReference, uint8 invokeId, const ObjectAddress& pcpObject, const std::vector<uint8>& data) = 0;
135 
136 private: // deleted methods (for non-copyable classes)
137  IPcpService(const IPcpService& arg) = delete;
138  IPcpService& operator=(const IPcpService& arg) = delete;
139 };
140 
142 // inline methods of class IPcpService
144 {
145 }
146 
148 {
149 }
150 
151 inline IRscServiceProxyFactory& IPcpService::GetProxyFactory()
152 {
153  return PcpServiceProxyFactory::GetInstance();
154 }
155 
156 }}}} // end of namespace Arp::Io::Interbus::Services
Contains error information of Interbus service.
Definition: InterbusResult.hpp:23
IPcpService(void)
Constructs an IPcpService instance.
Definition: IPcpService.hpp:143
Namespace for classes and interfaces for the Remote Service Call implementation
Definition: IRscReadEnumerator.hxx:9
Contains result of a PcpInitiate service
Definition: InitiateResult.hpp:25
Result on PcpStatus service
Definition: StatusResult.hpp:24
Service to communicate to PCP devices
Definition: IPcpService.hpp:28
Result on PcpIdentify service
Definition: IdentifyResult.hpp:24
std::uint8_t uint8
The Arp unsigned integer type of 1 byte size.
Definition: PrimitiveTypes.hpp:27
Root namespace for the PLCnext API
Contains parameter to address an object
Definition: ObjectAddress.hpp:23
Base interface for all Rsc service interface.
Definition: IRscService.hpp:18
virtual ~IPcpService(void)
Destructs this instance and frees all resouces.
Definition: IPcpService.hpp:147