PLCnext API Documentation
25.0.2.69
Arp
Base
Rsc
Commons
Services
RscServiceStubBase.hxx
1
2
//
3
// Copyright Phoenix Contact GmbH & Co. KG
4
//
6
#pragma once
7
#include "
Arp/Base/Core/Arp.hpp
"
8
#include "Arp/Base/Rsc/Commons/Rsc.hpp"
9
#include "Arp/Base/Rsc/Commons/Services/IRscServiceStub.hpp"
10
#include <memory>
11
12
namespace
Arp::Base::Rsc::Commons::Services
13
{
14
15
// forwards
16
class
RscServerContext;
// used by any service stub
17
23
template
<
class
T>
24
class
RscServiceStubBase
:
public
IRscServiceStub
25
{
26
protected
:
// usings
27
using
ServiceImplType
= T;
28
using
ServiceImplPtr
= std::shared_ptr<ServiceImplType>;
29
30
public
:
// construction
31
explicit
RscServiceStubBase
(
ServiceImplPtr
serviceImplPtr);
32
33
public
:
// getter
34
ServiceImplType
&
GetServiceImpl
(
void
)
const
;
35
36
public
:
// abstract IRscServiceStub operations
37
virtual
void
Invoke
(
SerializationContext
& context) = 0;
38
39
private
:
// fields
40
ServiceImplPtr
serviceImplPtr;
41
};
42
44
// inline methods of class RscServiceStubBase
45
49
template
<
class
T>
50
inline
RscServiceStubBase<T>::RscServiceStubBase
(
ServiceImplPtr
serviceImplPtr)
51
: serviceImplPtr(serviceImplPtr)
52
{
53
}
54
58
template
<
class
T>
59
inline
T&
RscServiceStubBase<T>::GetServiceImpl
()
const
60
{
61
return
*this->serviceImplPtr;
62
}
63
64
}
// end of namespace Arp::Base::Rsc::Commons::Services
Arp.hpp
Arp::Base::Rsc::Commons::Services::IRscServiceStub
Generic interface of service stubs used to invoke services.
Definition:
IRscServiceStub.hpp:19
Arp::Base::Rsc::Commons::Services::RscServiceStubBase
Base class for for Rsc service stub implementations.
Definition:
RscServiceStubBase.hxx:25
Arp::Base::Rsc::Commons::Services::RscServiceStubBase::Invoke
virtual void Invoke(SerializationContext &context)=0
Invokes a service operation polymorphic.
Arp::Base::Rsc::Commons::Services::RscServiceStubBase::ServiceImplType
T ServiceImplType
The type of the service implementation (e.g. DemoServiceImpl)
Definition:
RscServiceStubBase.hxx:27
Arp::Base::Rsc::Commons::Services::RscServiceStubBase::GetServiceImpl
ServiceImplType & GetServiceImpl(void) const
Gets the service implementation instance.
Definition:
RscServiceStubBase.hxx:59
Arp::Base::Rsc::Commons::Services::RscServiceStubBase::RscServiceStubBase
RscServiceStubBase(ServiceImplPtr serviceImplPtr)
Constructs a RscServiceStubBase instance.
Definition:
RscServiceStubBase.hxx:50
Arp::Base::Rsc::Commons::Services::RscServiceStubBase::ServiceImplPtr
std::shared_ptr< ServiceImplType > ServiceImplPtr
The type of the service implementation pointer.
Definition:
RscServiceStubBase.hxx:28
Arp::Base::Rsc::Commons::Services::SerializationContext
This class serves as base class for all serialization contexts supported by RSC.
Definition:
SerializationContext.hpp:23
Generated on Mon May 12 2025 14:03:47 for PLCnext API Documentation by
1.9.4