8#include "Arp/System/Rsc/Services/Rsc.h"
9#include "Arp/System/Rsc/Services/RscReader.hpp"
10#include "Arp/System/Rsc/Services/RscWriter.hpp"
11#include "Arp/System/Rsc/Services/RscChannelInfo.hpp"
12#include "Arp/System/Security/SecurityToken.hpp"
13#include "Arp/System/Security/SecurityContext.hpp"
15namespace CommonRemoting
18class RemotingServerContext;
22namespace Arp {
namespace System {
namespace Security {
namespace Services
25class PasswordConfigurationService2Impl;
26class PasswordAuthenticationServiceImpl;
31namespace Arp {
namespace System {
namespace Rsc {
namespace Services
34using namespace CommonRemoting;
42 friend class Arp::System::Security::Services::PasswordConfigurationService2Impl;
43 friend class Arp::System::Security::Services::PasswordAuthenticationServiceImpl;
51 RscServerContext(RemotingServerContext& remotingServerContext);
53 RscServerContext(
const RscServerContext& arg) =
default;
55 RscServerContext& operator=(
const RscServerContext& arg) =
default;
57 ~RscServerContext(
void);
60 static bool HasCurrent(
void);
61 static RscServerContext& GetCurrent(
void);
64 bool IsSecure(
void)
const;
65 const RscChannelInfo& GetChannelInfo(
void)
const;
66 SecurityToken GetSecurityToken(
void)
const;
67 RscReader& GetReader();
68 RscWriter& GetWriter();
71 void AbortRequest(RscErrors errorCode,
const char* errorMessage = NULL);
72 void AbortConnection(RscErrors errorCode,
const char* errorMessage = NULL);
73 void AbortInvocation(RscErrors errorCode,
const char* errorMessage = NULL);
76 bool HasSecurityContext(
void);
77 bool HasSessionSecurityToken(
const SecurityToken& token);
78 bool AddSessionSecurityToken(
const SecurityToken& token,
uint32 initialTimeoutMs);
79 bool RemoveSessionSecurityToken(
const SecurityToken& token);
82 RemotingServerContext& remotingServerContext;
83 RscChannelInfo channelInfo;
84 SecurityToken securityToken;
85 SecurityContext securityContext;
90 static thread_local RscServerContext* pCurrentServerContext;
95inline const RscChannelInfo& RscServerContext::GetChannelInfo(
void)
const
97 return this->channelInfo;
100inline RscReader& RscServerContext::GetReader()
102 return this->rscReader;
105inline RscWriter& RscServerContext::GetWriter()
107 return this->rscWriter;
Definition: SecurityContext.hpp:21
Definition: SecurityToken.hpp:12
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:36
Root namespace for the PLCnext API