メインコンテンツまでスキップ

ara::com

Overview

The Communication Management Functional Cluster provides service-oriented communication between Adaptive Applications over SOME/IP and DDS. This page specifies the public API of the ara::com namespace, the para::com runtime classes that generated proxies and skeletons derive from, and the headers emitted by the code generator — organized by header file.

Library · Headers · Linking

  • Library: lib/libpara_com.so
  • CMake: find_package(para-com)para::com
  • Standard headers: include/ara/com/
  • PARA runtime headers: include/para/com/
  • Runtime daemon: bin/CM

1 Header: ara/com/com_error_domain.h

1.1 Non-Member Types

1.1.1 Enumeration: ComErrc

Kind:enumeration
Header file:#include "ara/com/com_error_domain.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:ComErrc
Underlying type:ara::core::ErrorDomain::CodeType
Syntax:enum class ComErrc : ara::core::ErrorDomain::CodeType {...};
Values:kServiceNotAvailable= 1
Service is not available after being previously offered via OfferService
kMaxSamplesExceeded= 2
Application holds more ara::com::SamplePtrs than commited in Subscribe Samples were possibly skipped.
kNetworkBindingFailure= 3
The network binding reported a recoverable communications error or a secure communication failure
kFieldValueNotInitialized= 6
Field value has yet not been initialized via Update (see SWS_CM_00128
kFieldSetHandlerNotSet= 7
Field SetHandler has not been registered via RegisterSetHandler
kServiceNotOffered= 11
Service has not yet been offered via OfferService
kInstanceIDNotResolvable= 15
The ara::core::InstanceSpecifier is valid but could not be resolved/mapped to an existing ara::com::InstanceIdentifier
kMaxSampleCountNotRealizable= 16
Provided Subscribe for event re-subscription does not match the Subscribe for the current subscription
kUnknownApplicationError= 22
A remote service returned an unconfigured application error.
Description:Defines the error codes for the ara::com::ComErrorDomain

1.2 Non-Member Functions

1.2.1 Other

1.2.1.1 GetComErrorDomain
Kind:function
Header file:#include "ara/com/com_error_domain.h"
Scope:namespace ara::com
Syntax:constexpr const ara::core::ErrorDomain & GetComErrorDomain () noexcept;
Return value:const ara::core::ErrorDomain &Reference to the ara::com::ComErrorDomain object
Exception Safety:exception safe
Description:Returns a reference to the ara::com::ComErrorDomain object
1.2.1.2 MakeErrorCode
Kind:function
Header file:#include "ara/com/com_error_domain.h"
Scope:namespace ara::com
Syntax:constexpr ara::core::ErrorCode MakeErrorCode (ara::com::ComErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
Parameters (in):codeError code number.
dataVendor defined data associated with the error
Return value:ara::core::ErrorCodeAn ara::core::ErrorCode object.
Exception Safety:exception safe
Description:Creates an instance of ara::core::ErrorCode

1.3 Class: ComErrorDomain

Kind:class
Header file:#include "ara/com/com_error_domain.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:ComErrorDomain
Base class:ara::core::ErrorDomain
Syntax:class ComErrorDomain final : public ara::core::ErrorDomain {...};
Description:Defines a class representing the Communication error domain.

1.3.1 Public Member Functions

1.3.1.1 Special Member Functions
1.3.1.1.1 Default Constructor
Kind:function
Header file:#include "ara/com/com_error_domain.h"
Scope:ara::com::ComErrorDomain
Syntax:constexpr ComErrorDomain () noexcept;
Description:Constructs a new ara::com::ComErrorDomain object
1.3.1.2 Member Functions
1.3.1.2.1 Message
Kind:function
Header file:#include "ara/com/com_error_domain.h"
Scope:ara::com::ComErrorDomain
Syntax:const char * Message (CodeType errorCode) const noexcept override;
Parameters (in):errorCodeThe error code number.
Return value:const char *The message associated with the ThrowAsException.errorCode
Exception Safety:exception safe
Description:Returns the message associated with ThrowAsException.errorCode
1.3.1.2.2 Name
Kind:function
Header file:#include "ara/com/com_error_domain.h"
Scope:ara::com::ComErrorDomain
Syntax:const char * Name () const noexcept override;
Return value:const char *As per ara::com::ComErrorDomain in SWS_CORE_90023
Exception Safety:exception safe
Description:Returns a string constant associated with the ara::com::ComErrorDomain
1.3.1.2.3 ThrowAsException
Kind:function
Header file:#include "ara/com/com_error_domain.h"
Scope:ara::com::ComErrorDomain
Syntax:void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;
Parameters (in):errorCodeThe error to throw.
Return value:None
Exception Safety:not exception safe
Description:Creates a new instance of ara::com::ComException from ThrowAsException.errorCode and throws it. As per SWS_CORE_10304, this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

1.4 Class: ComException

Kind:class
Header file:#include "ara/com/com_error_domain.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:ComException
Base class:ara::core::Exception
Syntax:class ComException final : public ara::core::Exception {...};
Description:Defines a class for exceptions to be thrown by the API.

1.4.1 Public Member Functions

1.4.1.1 Constructors
1.4.1.1.1 ComException
Kind:function
Header file:#include "ara/com/com_error_domain.h"
Scope:ara::com::ComException
Syntax:explicit ComException (ara::core::ErrorCode errorCode) noexcept;
Parameters (in):errorCodeThe error code.
Exception Safety:exception safe
Description:Constructs a new ara::com::ComException containing an ara::core::ErrorCode

2 Header: ara/com/e2e/e2e_error_domain.h

2.1 Non-Member Types

2.1.1 Enumeration: ComE2EErrc

Kind:enumeration
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com::e2e
Symbol:ComE2EErrc
Underlying type:ara::core::ErrorDomain::CodeType
Syntax:enum class ComE2EErrc : ara::core::ErrorDomain::CodeType {...};
Values:kRepeated= 1
Data has a repeated counter
kWrongSequence= 2
The checks of the Data in this cycle were successful, with the exception of counter jump, which changed more than the allowed delta
kError= 3
Error not related to counters occurred (e.g. wrong crc, wrong length, wrong Data ID) or the return of the check function was not OK
kNotAvailable= 4
Not available. (deprecated)
kNoNewData= 5
No new data is available
kUnspecifiedE2EError= 6
A remote service returned an unspecified E2E error.
Description:Defines the error codes for the ara::com::e2e::ComE2EErrc

2.2 Non-Member Functions

2.2.1 Other

2.2.1.1 GetComE2EErrorDomain
Kind:function
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Scope:namespace ara::com::e2e
Syntax:constexpr const ara::core::ErrorDomain & GetComE2EErrorDomain () noexcept;
Return value:const ara::core::ErrorDomain &Reference to the ara::com::e2e::ComE2EErrorDomain object
Exception Safety:exception safe
Description:Returns a reference to the ara::com::e2e::ComE2EErrorDomain object
2.2.1.2 MakeErrorCode
Kind:function
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Scope:namespace ara::com::e2e
Syntax:constexpr ara::core::ErrorCode MakeErrorCode (ara::com::e2e::ComE2EErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
Parameters (in):codeError code number.
dataVendor defined data associated with the error
Return value:ara::core::ErrorCodeAn ara::core::ErrorCode object.
Exception Safety:exception safe
Description:Creates an instance of ara::core::ErrorCode

2.3 Class: ComE2EErrorDomain

Kind:class
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com::e2e
Symbol:ComE2EErrorDomain
Base class:ara::core::ErrorDomain
Syntax:class ComE2EErrorDomain final : public ara::core::ErrorDomain {...};
Description:Defines a class representing the E2E error domain

2.3.1 Public Member Functions

2.3.1.1 Special Member Functions
2.3.1.1.1 Default Constructor
Kind:function
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Scope:ara::com::e2e::ComE2EErrorDomain
Syntax:constexpr ComE2EErrorDomain () noexcept;
Exception Safety:exception safe
Description:Constructs a new ara::com::e2e::ComE2EErrorDomain object
2.3.1.2 Member Functions
2.3.1.2.1 Message
Kind:function
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Scope:ara::com::e2e::ComE2EErrorDomain
Syntax:const char * Message (CodeType errorCode) const noexcept override;
Parameters (in):errorCodeThe error code number.
Return value:const char *The message associated with the ThrowAsException.errorCode
Exception Safety:exception safe
Description:Returns the message associated with ThrowAsException.errorCode
2.3.1.2.2 Name
Kind:function
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Scope:ara::com::e2e::ComE2EErrorDomain
Syntax:const char * Name () const noexcept override;
Return value:const char *As per ara::com::e2e::ComE2EErrorDomain in SWS_CORE_90023
Exception Safety:exception safe
Description:Returns a string constant associated with the ara::com::e2e::ComE2EErrorDomain
2.3.1.2.3 ThrowAsException
Kind:function
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Scope:ara::com::e2e::ComE2EErrorDomain
Syntax:void ThrowAsException (const ara::core::ErrorCode &errorCode) const noexcept(false) override;
Parameters (in):errorCodeThe error to throw.
Return value:None
Exception Safety:not exception safe
Description:Creates a new instance of ara::com::e2e::ComE2EException from ThrowAsException.errorCode and throws it. As per SWS_CORE_10304, this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

2.4 Class: ComE2EException

Kind:class
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com::e2e
Symbol:ComE2EException
Base class:ara::core::Exception
Syntax:class ComE2EException final : public ara::core::Exception {...};
Description:Defines a class for exceptions to be thrown by the E2E APIs

2.4.1 Public Member Functions

2.4.1.1 Constructors
2.4.1.1.1 ComE2EException
Kind:function
Header file:#include "ara/com/e2e/e2e_error_domain.h"
Scope:ara::com::e2e::ComE2EException
Syntax:explicit ComE2EException (ara::core::ErrorCode errorCode) noexcept;
Parameters (in):errorCodeThe error code.
Exception Safety:exception safe
Description:Constructs a new ara::com::e2e::ComE2EException object containing an error code

3 Header: ara/com/e2e/profile_check_status.h

3.1 Non-Member Types

3.1.1 Enumeration: ProfileCheckStatus

Kind:enumeration
Header file:#include "ara/com/e2e/profile_check_status.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com::e2e
Symbol:ProfileCheckStatus
Underlying type:std::uint8_t
Syntax:enum class ProfileCheckStatus : std::uint8_t {...};
Values:kOkThe checks of the sample in this cycle were successful (including counter check)
kRepeatedSample has a repeated counter
kWrongSequenceThe checks of the sample in this cycle were successful, with the exception of counter jump, which changed more than the allowed delta.
kErrorError not related to counters occurred (e.g. wrong crc, wrong length, wrong Data ID).
kNotAvailableNo value has been received yet (e.g. during initialization). (deprecated)
kNoNewDataNo new data is available (assuming a sample has already been received since the initialization). (deprecated)
kCheckDisabledNo E2E check status available. Return value of function GetProfileCheckStatus if EndToEndTransformationComSpecProps. EndToEndTransformationComSpecProps.disableEndToEndCheck is set to TRUE
kNoneNone.
Description:The result of the check of a single ara::com::SamplePtr

4 Header: ara/com/e2e/sm_state.h

4.1 Non-Member Types

4.1.1 Enumeration: SMState

Kind:enumeration
Header file:#include "ara/com/e2e/sm_state.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com::e2e
Symbol:SMState
Underlying type:std::uint8_t
Syntax:enum class SMState : std::uint8_t {...};
Values:kValidCommunication of the samples of this event is functioning properly according to E2E checks; sample(s) can be used
kNoDataNo data have been received from the publisher at all
kInitNot enough data where the E2E check yielded OK from the publisher is available since the initialization; sample(s) cannot be used
kInvalidToo little data (where the E2E check yielded OK), or too much data (where the e2e check yielded ERROR) were received within the E2E time window - communication of the sample of this event not functioning properly; sample(s) cannot be used
kStateMDisabledNo E2E state machine available. Return value of function GetSMState if EndToEndTransformationComSpecProps.disableEndToEndStateMachine == TRUE
kIncompatibleQoSSamples can't be received because configured QoS policies at each end of communication don't match. (Only applicable to certain network bindings.)
Description:The state of the E2E supervision after the most recent check of a received sample of the event. If ara::com::e2e::SMState == ara::com::e2e::SMState.kValid, and the GetProfileCheckStatus did not result in an Error then, the last checked sample can be used.

5 Header: ara/com/e2e/transport_fault_condition.h

5.1 Non-Member Types

5.1.1 Enumeration: TransportFaultCondition

Kind:enumeration
Header file:#include "ara/com/e2e/transport_fault_condition.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com::e2e
Symbol:TransportFaultCondition
Underlying type:std::uint8_t
Syntax:enum class TransportFaultCondition : std::uint8_t {...};
Values:kSampleRejectedA sample has been rejected on layer 4 or above due to end-point resource exhaustion
kDeadlineMissedA sample has missed its configured deadline period
kSampleLostLoss of a sample has been detected (e.g. gap in expected sequence numbering)
Description:Defines the TransportFaultCondition which represent a single transport-related fault event

5.1.2 Type Alias: TransportFaultConditionHandler

Kind:type alias
Header file:#include "ara/com/e2e/transport_fault_condition.h"
Scope:namespace ara::com::e2e
Symbol:TransportFaultConditionHandler
Syntax:using TransportFaultConditionHandler = std::function<void(TransportFaultCondition, std::size_t)>;
Description:Handler type to be called when one or more (determined by the value of the std::size_t) fault conditions are detected

6 Header: ara/com/e2e/types.h

6.1 Non-Member Types

6.1.1 Type Alias: DataID

Kind:type alias
Header file:#include "ara/com/e2e/types.h"
Scope:namespace ara::com::e2e
Symbol:DataID
Syntax:using DataID = std::uint64_t;
Description:Type of the dataID parameter of E2EErrorHandler.

6.1.2 Enumeration: ErrorCode

Kind:enumeration
Header file:#include "ara/com/e2e/types.h"
Scope:namespace ara::com::e2e
Symbol:ErrorCode
Underlying type:uint8_t
Syntax:enum class ErrorCode : uint8_t {...};
Values:E2E_E_OK= 0
Function completed successfully
E2E_E_INPUTERR_WRONG= 1
At least one input parameter is erroneous, e.g. out of range
E2E_E_INPUTERR_NULL= 2
At least one pointer parameter is a NULL pointer
Description:The AUTOSAR E2E-Protocol uses the following error codes

6.1.3 Type Alias: MessageCounter

Kind:type alias
Header file:#include "ara/com/e2e/types.h"
Scope:namespace ara::com::e2e
Symbol:MessageCounter
Syntax:using MessageCounter = std::uint64_t;
Description:Type of the messageCounter parameter of E2EErrorHandler.

6.1.4 Enumeration: MessageResult

Kind:enumeration
Header file:#include "ara/com/e2e/types.h"
Scope:namespace ara::com::e2e
Symbol:MessageResult
Underlying type:uint8_t
Syntax:enum class MessageResult : uint8_t {...};
Values:STD_MESSAGERESULT_OK= 0
The type of the result in the response message is a normal (i.e., a non-erroneous) result.
STD_MESSAGERESULT_ERROR= 1
The type of the result in the response message is an error (i.e., an erroneous) result.
NONE= 2
None message
Description:The MessageResult argument of the E2E_PXXmProtect E2E_PXXmForward, and E2E_PXXmCheck functions shall be set to one of the following enumeration values

6.1.5 Enumeration: MessageType

Kind:enumeration
Header file:#include "ara/com/e2e/types.h"
Scope:namespace ara::com::e2e
Symbol:MessageType
Underlying type:uint8_t
Syntax:enum class MessageType : uint8_t {...};
Values:STD_MESSAGETYPE_REQUEST= 0
The type of the message is a request message which is sent from the client to the server.
STD_MESSAGETYPE_RESPONSE= 1
The type of the message is a response message which is sent from the server to the client.
NONE= 2
None message
Description:The MessageType argument of the E2E_PXXmProtect, E2E_PXXmForward, and E2E_PXXmCheck functions shall be set to one of the following enumeration values

6.1.6 Enumeration: ProfileStatus

Kind:enumeration
Header file:#include "ara/com/e2e/types.h"
Scope:namespace ara::com::e2e
Symbol:ProfileStatus
Underlying type:uint8_t
Syntax:enum class ProfileStatus : uint8_t {...};
Values:kEnabledProfile is enabled
kDisabledProfile is disabled
Description:Indicates whether an E2E profile is enabled or disabled.

6.2 Struct: Result

Kind:struct
Header file:#include "ara/com/e2e/types.h"
Scope:namespace ara::com::e2e
Symbol:Result
Syntax:struct Result {...};
Description:Structure representing the result of the E2E process

6.2.1 Public Member Variables

6.2.1.1 mE2EState
Kind:variable
Header file:#include "ara/com/e2e/types.h"
Scope:ara::com::e2e::Result
Symbol:mE2EState
Type:SMState
Syntax:SMState mE2EState;
Description:E2E state
6.2.1.2 mE2EStatus
Kind:variable
Header file:#include "ara/com/e2e/types.h"
Scope:ara::com::e2e::Result
Symbol:mE2EStatus
Type:ProfileCheckStatus
Syntax:ProfileCheckStatus mE2EStatus;
Description:Profile check status

7 Header: ara/com/runtime.h

7.1 Non-Member Functions

7.1.1 Other

7.1.1.1 ResolveInstanceIDs
Kind:function
Header file:#include "ara/com/runtime.h"
Scope:namespace ara::com::runtime
Syntax:ara::core::Result< ara::com::InstanceIdentifierContainer > ResolveInstanceIDs (ara::core::InstanceSpecifier metaModelIdentifier) noexcept;
Parameters (in):metaModelIdentifierThe ara::core::InstanceSpecifier to be translated.
Return value:ara::core::Result< ara::com::InstanceIdentifierContainer >An ara::com::InstanceIdentifierContainer if successful, otherwise an error code indicating the error
Exception Safety:exception safe
Errors:ara::com::ComErrc::kInstanceIDNotResolvablerollback_semantics
The ara::core::InstanceSpecifier is valid but could not be resolved/mapped to an existing ara::com::InstanceIdentifier
Description:Translates an ara::core::InstanceSpecifier to a ara::com::InstanceIdentifierContainer. The length/size of the ara::com::InstanceIdentifierContainer is relative to the number of matches.

8 Header: ara/com/service/find_service_handle.h

8.1 Struct: FindServiceHandle

Kind:struct
Header file:#include "ara/com/service/find_service_handle.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:FindServiceHandle
Syntax:struct FindServiceHandle {...};
Description:The exact definition of ara::com::FindServiceHandle is Communication Management implementation specific. ara::com::FindServiceHandle satisfies the [equalitycomparable] and [lessthancomparable] requirements as per ISO-14882-2014 to allow storing and managing ara::com::FindServiceHandles by the application.

8.1.1 Public Member Functions

8.1.1.1 Special Member Functions
8.1.1.1.1 Default Constructor
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:FindServiceHandle ()=delete;
Description:Default constructor deletion
8.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:FindServiceHandle (const FindServiceHandle &)=default;
Description:Copy constructor of the FindServiceHandle.
8.1.1.1.3 Move Constructor
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:FindServiceHandle (FindServiceHandle &&) noexcept=default;
Description:Move constructor of the FindServiceHandle.
8.1.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:FindServiceHandle & operator= (const FindServiceHandle &other);
Parameters (in):otherOther ara::com::FindServiceHandle to copy
Return value:FindServiceHandle &New ara::com::FindServiceHandle
Exception Safety:not exception safe
Description:Copy assignment constructor
8.1.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:FindServiceHandle & operator= (FindServiceHandle &&) noexcept=default;
Return value:FindServiceHandle &New ara::com::FindServiceHandle
Description:Move assignment operator of the FindServiceHandle.
8.1.1.1.6 Destructor
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:virtual ~FindServiceHandle ()=default;
Description:Destructor of the FindServiceHandle.
8.1.1.2 Constructors
8.1.1.2.1 FindServiceHandle
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:FindServiceHandle (ara::core::InstanceSpecifier specifier, ara::core::String serviceId, ara::core::String instanceId);
Parameters (in):specifierThe instance specifier for the instance.
serviceIdService Id
instanceIdinstance id
Description:Constructs a new FindServiceHandle object.
8.1.1.3 Member Functions
8.1.1.3.1 operator<
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:bool operator< (const FindServiceHandle &other) const;
Parameters (in):otherOther ara::com::FindServiceHandle to compare
Return value:boolTRUE if other is less than *this, FALSE otherwise.
Exception Safety:not exception safe
Description:LessThan operator as per [lessthancomparable] in ISO-14882-2014
8.1.1.3.2 operator==
Kind:function
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Syntax:bool operator== (const FindServiceHandle &other) const;
Parameters (in):otherOther ara::com::FindServiceHandle to compare
Return value:boolTRUE if other is equal to *this, FALSE otherwise.
Exception Safety:not exception safe
Description:Equality operator as per [equalitycomparable] in ISO-14882-2014

8.1.2 Public Member Variables

8.1.2.1 instanceId
Kind:variable
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Symbol:instanceId
Type:ara::core::String
Syntax:ara::core::String instanceId{"undefined"};
Description:Instance id
8.1.2.2 instanceSpecifier
Kind:variable
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Symbol:instanceSpecifier
Type:ara::core::InstanceSpecifier
Syntax:ara::core::InstanceSpecifier instanceSpecifier{"undefined"};
Description:The instance specifier for the instance.
8.1.2.3 serviceId
Kind:variable
Header file:#include "ara/com/service/find_service_handle.h"
Scope:ara::com::FindServiceHandle
Symbol:serviceId
Type:ara::core::String
Syntax:ara::core::String serviceId{"undefined"};
Description:Service Id

9 Header: ara/com/service/instance_identifier.h

9.1 Class: InstanceIdentifier

Kind:class
Header file:#include "ara/com/service/instance_identifier.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:InstanceIdentifier
Syntax:class InstanceIdentifier {...};
Description:Unique identifier of a specific AdaptivePlatformServiceInstance, to distinguish different instances of exactly the same service. ara::com::InstanceIdentifier satisfies the [equalitycomparable], [lessthancomparable] and [copyassignable] requirements as per ISO-14882-2014 to allow for logging of ara::com::InstanceIdentifiers as well as storing and managing ara::com::InstanceIdentifiers by the application (see operators). ara::com::InstanceIdentifier does not contain a fully qualified name, which would also have service type information.

9.1.1 Public Member Functions

9.1.1.1 Special Member Functions
9.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:InstanceIdentifier (InstanceIdentifier &&other) noexcept;
Parameters (in):otherOther ara::com::InstanceIdentifier object to move
Exception Safety:exception safe
Description:Move Constructor
9.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:InstanceIdentifier (const InstanceIdentifier &other) noexcept;
Parameters (in):otherOther ara::com::InstanceIdentifier object to copy
Exception Safety:exception safe
Description:Copy Constructor
9.1.1.1.3 Copy Assignment Operator
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:ara::com::InstanceIdentifier & operator= (const ara::com::InstanceIdentifier &other) noexcept;
Parameters (in):otherOther ara::com::InstanceIdentifier to copy
Return value:InstanceIdentifier &New ara::com::InstanceIdentifier
Exception Safety:exception safe
Description:Copy assignment constructor
9.1.1.1.4 Move Assignment Operator
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:ara::com::InstanceIdentifier & operator= (const ara::com::InstanceIdentifier &&other) noexcept;
Parameters (in):otherOther ara::com::InstanceIdentifier to move
Return value:InstanceIdentifier &New ara::com::InstanceIdentifier
Exception Safety:exception safe
Description:Move assignment constructor
9.1.1.1.5 Destructor
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:~InstanceIdentifier () noexcept;
Exception Safety:exception safe
Description:Destructor
9.1.1.2 Constructors
9.1.1.2.1 InstanceIdentifier
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:explicit InstanceIdentifier (ara::core::StringView serializedFormat);
Parameters (in):serializedFormatString form of an ara::com::InstanceIdentifier
Exception Safety:not exception safe
Violations:InvalidInstanceIdentifierStringViolationGiven ara::com::InstanceIdentifier string is corrupted, non-compliant or duplicated
Description:Default Constructor
9.1.1.3 Member Functions
9.1.1.3.1 Create
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:static ara::com::InstanceIdentifier Create (ara::core::StringView serializedFormat) noexcept;
Parameters (in):serializedFormatString form of an ara::com::InstanceIdentifier
Return value:InstanceIdentifierAn ara::com::InstanceIdentifier
Exception Safety:exception safe
Violations:InvalidInstanceIdentifierStringViolationGiven ara::com::InstanceIdentifier string is corrupted, non-compliant or duplicated
Description:Exception-less construction of a ara::com::InstanceIdentifier
9.1.1.3.2 operator<
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:bool operator< (const ara::com::InstanceIdentifier &other) const noexcept;
Parameters (in):otherOther ara::com::InstanceIdentifier to compare
Return value:boolTRUE if other is less than *this, FALSE otherwise.
Exception Safety:exception safe
Description:LessThan operator as per [lessthancomparable] in ISO-14882-2014
9.1.1.3.3 operator==
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:bool operator== (const ara::com::InstanceIdentifier &other) const noexcept;
Parameters (in):otherOther ara::com::InstanceIdentifier to compare
Return value:boolTRUE if other is equal to *this, FALSE otherwise.
Exception Safety:exception safe
Description:Equality operator as per [equalitycomparable] in ISO-14882-2014
9.1.1.3.4 toString
Kind:function
Header file:#include "ara/com/service/instance_identifier.h"
Scope:ara::com::InstanceIdentifier
Syntax:ara::core::StringView toString () const noexcept;
Return value:ara::core::StringViewString representation of a ara::com::InstanceIdentifier
Exception Safety:exception safe
Description:Stringification method for ara::com::InstanceIdentifier

10 Header: ara/com/service/sample_ptr.h

10.1 Class: SamplePtr

Kind:class
Header file:#include "ara/com/service/sample_ptr.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:SamplePtr
Syntax:template <typename T>
class SamplePtr {...};
Template param:TA managed object (event sample)
Description:Emulates a std::unique_ptr to an event sample.

The ara::com::SamplePtr behaves as a std::unique_ptr as long as the ServiceInterface.event/ ServiceInterface.field is subscribed to, or the {Si}Proxy it belongs to is not destroyed.
The precondition defined in SWS_CM_00085 and SWS_CM_00087 must be fulfilled. Otherwise it is considered a violation.
Notes:The SamplePtr is always passed with a const SampleType to the callable in GetNewSamples() (see SWS_CM_00701). Therefore the sample datatype (typename T) and the SamplePtr operators using the sample datatype (typename T) are implicitly declared as const. This means that the sample data will always be read-only.

10.1.1 Public Member Functions

10.1.1.1 Special Member Functions
10.1.1.1.1 Copy Constructor
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:SamplePtr (const SamplePtr &)=delete;
Description:Copy constructor deletion
10.1.1.1.2 Default Constructor
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:constexpr SamplePtr () noexcept;
Exception Safety:exception safe
Description:Default constructor
10.1.1.1.3 Move Constructor
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:SamplePtr (SamplePtr &&other) noexcept;
Parameters (in):otherOther ara::com::SamplePtr to move
Exception Safety:exception safe
Description:Move constructor
10.1.1.1.4 Move Assignment Operator
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:ara::com::SamplePtr & operator= (ara::com::SamplePtr &&other) noexcept;
Parameters (in):otherOther ara::com::SamplePtr to move
Return value:SamplePtr &New ara::com::SamplePtr
Exception Safety:exception safe
Description:Move assignment operator.
10.1.1.1.5 Copy Assignment Operator
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:ara::com::SamplePtr & operator= (const ara::com::SamplePtr &)=delete;
Description:Copy assignment constructor deletion
10.1.1.1.6 Destructor
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:~SamplePtr () noexcept;
Exception Safety:exception safe
Description:Destructor
10.1.1.2 Constructors
10.1.1.2.1 SamplePtr(std::nullptr_t)
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:constexpr SamplePtr (std::nullptr_t other) noexcept;
Parameters (in):otherA std::nullptr_t to copy
Exception Safety:exception safe
Description:Semantically equivalent to SWS_CM_11534
10.1.1.2.2 SamplePtr(T*)
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:explicit SamplePtr (T *ptr);
Parameters (in):ptrThe pointer to the data.
Description:Constructor for the sample pointer.
10.1.1.2.3 SamplePtr(T*, const Deleter::Function&)
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:explicit SamplePtr (T *ptr, const typename Deleter::Function &deleteFunction);
Parameters (in):ptrThe pointer to the data.
deleteFunctionThe function to delete the data.
Description:Constructor for the sample pointer.
10.1.1.3 Member Functions
10.1.1.3.1 Get
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:T * Get () const noexcept;
Return value:T *A pointer to the managed object
Exception Safety:exception safe
Description:Returns a pointer to the managed object.
10.1.1.3.2 GetProfileCheckStatus
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:ara::com::e2e::ProfileCheckStatus GetProfileCheckStatus () const noexcept;
Return value:ara::com::e2e::ProfileCheckStatusThe ara::com::e2e::ProfileCheckStatus
Exception Safety:exception safe
Description:Returns the E2E protection check result
10.1.1.3.3 Reset
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:void Reset (std::nullptr_t other) noexcept;
Parameters (in):otherA replacing std::nullptr_t
Return value:None
Exception Safety:exception safe
Description:Replaces the managed object.
10.1.1.3.4 Swap
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:void Swap (ara::com::SamplePtr &other) noexcept;
Parameters (in):otherAnother ara::com::SamplePtr to swap the managed object with
Return value:None
Exception Safety:exception safe
Description:Swaps the managed object.
10.1.1.3.5 operator bool
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:explicit operator bool () const noexcept;
Return value:boolTRUE if the stored pointer is not null, FALSE otherwise.
Exception Safety:exception safe
Description:Checks whether the stored pointer is set
10.1.1.3.6 operator*
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:T & operator* () const noexcept;
Return value:T &The object owned by *this
Exception Safety:exception safe
Description:Dereferences the stored pointer.
10.1.1.3.7 operator->
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:T * operator-> () const noexcept;
Return value:T *A pointer to the object owned by *this
Exception Safety:exception safe
Description:Dereferences the stored pointer.
10.1.1.3.8 operator=
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:ara::com::SamplePtr & operator= (std::nullptr_t other) noexcept;
Parameters (in):otherA std::nullptr_t to copy
Return value:SamplePtr &New ara::com::SamplePtr
Exception Safety:exception safe
Description:Copy assignment of nullptr_t.
10.1.1.3.9 SetProfileCheckStatus
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:ara::com::SamplePtr
Syntax:void SetProfileCheckStatus (ara::com::e2e::ProfileCheckStatus status);
Parameters (in):statusThe profile check status.
Description:Set the profile check status.

10.2 Non-Member Functions

10.2.1 Other

10.2.1.1 make_sample_ptr
Kind:function
Header file:#include "ara/com/service/sample_ptr.h"
Scope:namespace ara::com
Syntax:template <typename T, typename... Args>
ara::com::SamplePtr< T > make_sample_ptr (Args &&...args);
Template param:TThe type of the object to be created.
ArgsThe parameter pack of types for the constructor arguments.
Parameters (in):argsThe arguments to be forwarded to the constructor of the underlying object.
Return value:ara::com::SamplePtr< T >A new SamplePtr instance, owning the created object.
Description:Creates a new SamplePtr instance, initializing the underlying object with the provided arguments.

11 Header: ara/com/service/service_identifier.h

11.1 Class: ServiceIdentifierType

Kind:class
Header file:#include "ara/com/service/service_identifier.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:ServiceIdentifierType
Syntax:class ServiceIdentifierType {...};
Description:Specifies a Service Identifier The exact type may be overridden by the Communication Management software provider. but shall at least satisfy the [equalitycomparable] (SWS_CM_11511), [lessthancomparable] (SWS_CM_11512) and [copyassignable] (SWS_CM_11513) requirements as per ISO-14882-2014 to allow for logging, storing and managing ara::com::ServiceIdentifierTypes by the application.

11.1.1 Public Member Functions

11.1.1.1 Special Member Functions
11.1.1.1.1 Copy Assignment Operator
Kind:function
Header file:#include "ara/com/service/service_identifier.h"
Scope:ara::com::ServiceIdentifierType
Syntax:ara::com::ServiceIdentifierType & operator= (const ara::com::ServiceIdentifierType &other);
Parameters (in):otherara::com::ServiceIdentifierType to copy
Return value:ServiceIdentifierType &New ara::com::ServiceIdentifierType
Exception Safety:not exception safe
Description:Copy assignment constructor
11.1.1.2 Member Functions
11.1.1.2.1 operator<
Kind:function
Header file:#include "ara/com/service/service_identifier.h"
Scope:ara::com::ServiceIdentifierType
Syntax:bool operator< (const ara::com::ServiceIdentifierType &other) const;
Parameters (in):otherOther ara::com::ServiceIdentifierType to compare
Return value:boolTRUE if other is less than *this, FALSE otherwise.
Exception Safety:not exception safe
Description:LessThan operator as per [lessthancomparable] in ISO-14882-2014 LessThan operator as per [lessthancomparable] in ISO-14882-2014
11.1.1.2.2 operator==
Kind:function
Header file:#include "ara/com/service/service_identifier.h"
Scope:ara::com::ServiceIdentifierType
Syntax:bool operator== (const ara::com::ServiceIdentifierType &other) const;
Parameters (in):otherara::com::ServiceIdentifierType to compare
Return value:boolTRUE if other is equal to *this, FALSE otherwise.
Exception Safety:not exception safe
Description:Equality operator as per [equalitycomparable] in ISO-14882-2014
11.1.1.2.3 toString
Kind:function
Header file:#include "ara/com/service/service_identifier.h"
Scope:ara::com::ServiceIdentifierType
Syntax:ara::core::StringView toString () const;
Return value:ara::core::StringViewString representation of a ara::com::ServiceIdentifierType
Exception Safety:not exception safe
Description:Stringification method for ara::com::ServiceIdentifierType

12 Header: ara/com/service/service_version.h

12.1 Class: ServiceVersionType

Kind:class
Header file:#include "ara/com/service/service_version.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:ServiceVersionType
Syntax:class ServiceVersionType {...};
Description:Specifies a Service Version. The exact type may be overridden by the Communication Management software provider. but shall at least satisfy the [equalitycomparable] (SWS_CM_11516), [lessthancomparable] (SWS_CM_11517) and [copyassignable] (SWS_CM_11518) requirements as per ISO-14882-2014 to allow for logging, storing and managing ara::com::ServiceVersionTypes by the application.

12.1.1 Public Member Functions

12.1.1.1 Special Member Functions
12.1.1.1.1 Copy Assignment Operator
Kind:function
Header file:#include "ara/com/service/service_version.h"
Scope:ara::com::ServiceVersionType
Syntax:ara::com::ServiceVersionType & operator= (const ara::com::ServiceVersionType &other);
Parameters (in):otherara::com::ServiceVersionType to copy
Return value:ServiceVersionType &New ara::com::ServiceVersionType
Exception Safety:not exception safe
Description:Copy assignment constructor
12.1.1.2 Member Functions
12.1.1.2.1 operator<
Kind:function
Header file:#include "ara/com/service/service_version.h"
Scope:ara::com::ServiceVersionType
Syntax:bool operator< (const ara::com::ServiceVersionType &other) const;
Parameters (in):otherara::com::ServiceVersionType to compare
Return value:boolTRUE if other is less than *this, FALSE otherwise.
Exception Safety:not exception safe
Description:LessThan operator as per [lessthancomparable] in ISO-14882-2014
12.1.1.2.2 operator==
Kind:function
Header file:#include "ara/com/service/service_version.h"
Scope:ara::com::ServiceVersionType
Syntax:bool operator== (const ara::com::ServiceVersionType &other) const;
Parameters (in):otherara::com::ServiceVersionType to compare
Return value:boolTRUE if other is equal to *this, FALSE otherwise.
Exception Safety:not exception safe
Description:Equality operator as per [equalitycomparable] in ISO-14882-2014
12.1.1.2.3 toString
Kind:function
Header file:#include "ara/com/service/service_version.h"
Scope:ara::com::ServiceVersionType
Syntax:ara::core::StringView toString () const;
Return value:ara::core::StringViewString representation of a ara::com::ServiceVersionType
Exception Safety:not exception safe
Description:Stringification method for ara::com::ServiceVersionType

13 Header: ara/com/types.h

13.1 Non-Member Types

13.1.1 Type Alias: EventReceiveHandler

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:EventReceiveHandler
Syntax:using EventReceiveHandler = std::function<void()>;
Description:Callback function invoked if new event data arrives for an event. The event receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory.

13.1.2 Type Alias: FieldReceiveHandler

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:FieldReceiveHandler
Syntax:using FieldReceiveHandler = std::function<void()>;
Description:Callback function invoked if a new notification arrives for a field. The field receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory.

13.1.3 Type Alias: FindServiceHandler

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:FindServiceHandler
Syntax:template <typename T>
using FindServiceHandler = std::function<void(ServiceHandleContainer< T >, FindServiceHandle)>;
Template param:TData type of data sample
Description:Callback function invoked if service availability changes. It takes as input parameter a handle container containing handles for all matching service instances and a ara::com::FindServiceHandle which can be used to invoke StopFindService from within the ara::com::FindServiceHandler.

13.1.4 Type Alias: InstanceIdentifierContainer

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:InstanceIdentifierContainer
Syntax:using InstanceIdentifierContainer = ara::core::Vector<InstanceIdentifier>;
Description:Holds a list of ara::com::InstanceIdentifiers. The assigned data type is allowed to be changed by the Communication Management software provider, but must adhere to [container.requirements.general] and [sequence.reqmts] requirements as per ISO-14882-2014 A ara::core::Vector (SWS_CORE_01301) for example fulfills these requirements.

13.1.5 Enumeration: MethodCallProcessingMode

Kind:enumeration
Header file:#include "ara/com/types.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:MethodCallProcessingMode
Underlying type:std::uint8_t
Syntax:enum class MethodCallProcessingMode : std::uint8_t {...};
Values:kPollPolling mode
kEventEvent driven and concurrent mode
kEventSingleThreadEvent driven, sequential mode
Description:Processing modes for the service implementation.

13.1.6 Type Alias: SampleAllocateePtr

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:SampleAllocateePtr
Syntax:template <typename T>
using SampleAllocateePtr = std::unique_ptr<T>;
Template param:TData type of data sample
Description:Pointer to an allocated (by Communication Management) data sample. The implementation is allowed to be changed by the Communication Management software provider.

The precondition defined in SWS_CM_00086 must be fulfilled. Otherwise it is considered a violation.

13.1.7 Type Alias: ServiceHandleContainer

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:ServiceHandleContainer
Syntax:template <typename T>
using ServiceHandleContainer = ara::core::Vector<T>;
Template param:Tservice handle
Description:Holds a list of service handles and is used as a return value of any of the FindService() methods)
• SWS_CM_00122
• SWS_CM_00622
. The assigned data type is allowed to be changed by the Communication Management software provider, but must adhere to [container.requirements.general] and [sequence.reqmts] requirements as per ISO-14882-2014. A ara::core::Vector (SWS_CORE_01301) for example fulfills these requirements.

13.1.8 Enumeration: ServiceState

Kind:enumeration
Header file:#include "ara/com/types.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:ServiceState
Underlying type:std::uint8_t
Syntax:enum class ServiceState : std::uint8_t {...};
Values:kNotAvailable= 0
Service is not available
kAvailable= 1
Service is available
Description:The state of the service from GetServiceState

13.1.9 Type Alias: ServiceStateHandler

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:ServiceStateHandler
Syntax:using ServiceStateHandler = std::function<void(ServiceState)>;
Description:Functor used as input arguments for any of the SetServiceStateChangeHandler() methods:
• SWS_CM_01074
• SWS_CM_01076

13.1.10 Enumeration: SubscriptionState

Kind:enumeration
Header file:#include "ara/com/types.h"
Forwarding header file:#include "ara/com/com_fwd.h"
Scope:namespace ara::com
Symbol:SubscriptionState
Underlying type:std::uint8_t
Syntax:enum class SubscriptionState : std::uint8_t {...};
Values:kSubscribedSubscription is active
kNotSubscribedSubscription is not active
kSubscriptionPendingSubscription is pending
Description:The subscription state of an event.

13.1.11 Type Alias: SubscriptionStateChangeHandler

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:SubscriptionStateChangeHandler
Syntax:using SubscriptionStateChangeHandler = std::function<void(SubscriptionState)>;
Description:Callback function invoked if ara::com::SubscriptionState of an event has changed.

13.1.12 Type Alias: TriggerReceiveHandler

Kind:type alias
Header file:#include "ara/com/types.h"
Scope:namespace ara::com
Symbol:TriggerReceiveHandler
Syntax:using TriggerReceiveHandler = std::function<void()>;
Description:A function wrapper for the handler function that gets called in case a new trigger arrives for an event. The trigger receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory.

14 Header: para/com/proxy/proxy.h

14.1 Class: Proxy

Kind:class
Header file:#include "para/com/proxy/proxy.h"
Scope:namespace para::com::proxy
Symbol:Proxy
Syntax:class Proxy {...};
Description:Base class of every generated service proxy. It provides service discovery, the handle the proxy was created from, and service state observation. The events, fields and methods of a particular service are added by the generated class that derives from it. The destructor is pure virtual, so the class is never instantiated directly; copying is deleted and moving is supported.

14.1.1 Public Member Functions

14.1.1.1 Special Member Functions
14.1.1.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:virtual ~Proxy()=0;
Description:Destruction of a Proxy
14.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:Proxy(const Proxy &)=delete;
Description:Copy constructor deletion
14.1.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:Proxy(Proxy &&) noexcept;
Description:Move constructor
14.1.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:Proxy & operator=(const Proxy &)=delete;
Description:Copy assignment operator deletion
14.1.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:Proxy & operator=(Proxy &&) noexcept;
Description:Move assignment operator
14.1.1.2 Member Functions
14.1.1.2.1 FindService(ara::com::InstanceIdentifier)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:static ara::core::Result< ara::com::ServiceHandleContainer< HandleType > > FindService(ara::com::InstanceIdentifier instance) noexcept;
Parameters (in):instanceara::com::InstanceIdentifier qualifying the wanted instance of the service
Return value:ara::core::Result< ara::com::ServiceHandleContainer< HandleType > >• If successful: an ara::core::Result containing a ara::core::Result::value_type containing a ara::com::ServiceHandleContainer further containing HandleTypes for all matching services
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Violations:InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kCommunicationFailurerollback_semantics
The network binding reported a recoverable communications error or a secure communication failure
Description:Find a service using an ara::com::InstanceIdentifier, with immediately returned request
14.1.1.2.2 FindService(ara::core::InstanceSpecifier)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:static ara::core::Result< ara::com::ServiceHandleContainer< HandleType > > FindService(ara::core::InstanceSpecifier instance) noexcept;
Parameters (in):instanceara::core::InstanceSpecifier qualifying the wanted instance of the service
Return value:ara::core::Result< ara::com::ServiceHandleContainer< HandleType > >As per SWS_CM_00122
Exception Safety:exception safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of the executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationThe type of mapping does not match the expected type of PortInterface: ServiceInterface referenced by a ServiceInstanceToPortPrototypeMapping.
ProcessMappingViolationThe type of mapping does not match the expected type of PortInterface
InstanceSpecifierAlreadyInUseViolationThe constructor was called with an Instance Specifier already
InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kCommunicationFailurerollback_semantics
The network binding reported a recoverable communications error or a secure communication failure
Description:Find a service using an ara::core::InstanceSpecifier, with immediately returned request
14.1.1.2.3 GetHandle
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:HandleType GetHandle() const noexcept;
Return value:HandleTypeAs per SWS_CM_00312
Exception Safety:exception safe
Description:Return the handle used to create the proxy instance
14.1.1.2.4 GetServiceState
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:ara::core::Result< ara::com::ServiceState > GetServiceState() noexcept;
Return value:ara::core::Result< ara::com::ServiceState >• If successful: an ara::core::Result containing a ara::core::Result::value_type i.e. a ara::com::ServiceState giving the service state
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Errors:ara::com::ComErrc::kCommunicationFailurerollback_semantics
The network binding reported a recoverable communications error or a secure communication failure
Description:Returns the state of the service
14.1.1.2.5 SetServiceStateChangeHandler(ara::com::ServiceStateHandler)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:void SetServiceStateChangeHandler(ara::com::ServiceStateHandler handler) noexcept;
Parameters (in):handlerThe callback for service state change handler
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Register a service state change handler. This handler shall be called by the Communication Management implementation as soon as the service availability state has changed. The Handler may be overwritten during runtime.
14.1.1.2.6 SetServiceStateChangeHandler(ara::com::ServiceStateHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:template <typename ExecutorT>
void SetServiceStateChangeHandler(ara::com::ServiceStateHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_01074
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_01074 but the method shall execute in a provided context.
14.1.1.2.7 StartFindService(FindServiceHandler<HandleType>, ara::com::InstanceIdentifier)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:static ara::core::Result< ara::com::FindServiceHandle > StartFindService(ara::com::FindServiceHandler< HandleType > handler, ara::com::InstanceIdentifier instance) noexcept;
Parameters (in):handlerA ara::com::FindServiceHandler for the corresponding ServiceProxy class, which gets called any time a AdaptivePlatformServiceInstance matching the given instance criteria is found.
instanceAs per SWS_CM_00122
Return value:ara::core::Result< ara::com::FindServiceHandle >• If successful: an ara::core::Result containing a ara::core::Result::value_type containing a ara::com::FindServiceHandle for this search/find request which is needed to stop the service availability monitoring and related firing of the given handler.
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kCommunicationFailurerollback_semantics
The network binding reported a recoverable communications error or a secure communication failure
Description:Find a service using an ara::com::InstanceIdentifier, with handler registration
14.1.1.2.8 StartFindService(FindServiceHandler<HandleType>, ara::com::InstanceIdentifier, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:template <typename ExecutorT>
static ara::com::FindServiceHandle StartFindService(ara::com::FindServiceHandler< HandleType > handler, ara::com::InstanceIdentifier instance, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_00123
instanceAs per SWS_CM_00122
executorAs per SWS_CM_11360
Return value:ara::com::FindServiceHandleAs per SWS_CM_00123
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
InsufficientPermissionsViolationRefused by Grant Enforcement
Description:Find a service using an ara::com::InstanceIdentifier, with handler registration, - in a provided execution context
14.1.1.2.9 StartFindService(FindServiceHandler<HandleType>, ara::core::InstanceSpecifier)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:static ara::core::Result< ara::com::FindServiceHandle > StartFindService(ara::com::FindServiceHandler< HandleType > handler, ara::core::InstanceSpecifier instance) noexcept;
Parameters (in):handlerAs per SWS_CM_00123
instanceAs per SWS_CM_00622
Return value:ara::core::Result< ara::com::FindServiceHandle >
Exception Safety:exception safe
Errors:ara::com::ComErrc::kCommunicationFailurerollback_semantics
The network binding reported a recoverable communications error or a secure communication failure
Description:Find a service using an ara::core::InstanceSpecifier, with handler registration
14.1.1.2.10 StartFindService(FindServiceHandler<HandleType>, ara::core::InstanceSpecifier, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:template <typename ExecutorT>
static ara::com::FindServiceHandle StartFindService(ara::com::FindServiceHandler< HandleType > handler, ara::core::InstanceSpecifier instance, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_00123
instanceAs per SWS_CM_00123
executorAs per SWS_CM_11360
Return value:ara::com::FindServiceHandle
Exception Safety:exception safe
Description:Find a service using an ara::core::InstanceSpecifier, with handler registration, in a provided context
14.1.1.2.11 StopFindService(ara::com::FindServiceHandle)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:void StopFindService(ara::com::FindServiceHandle handle) noexcept;
Parameters (in):handleThe ara::com::FindServiceHandle returned by StartFindService methods:
• SWS_CM_00123
• SWS_CM_00623
• SWS_CM_11352
• SWS_CM_11365
Return value:None
Exception Safety:exception safe
Description:Stop an ongoing StartFindService() - Stops receiving further notifications for the provided ara::com::FindServiceHandle
14.1.1.2.12 UnsetServiceStateChangeHandler
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Syntax:void UnsetServiceStateChangeHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:As per SWS_CM_01074

14.2 Class: Proxy::HandleType

Kind:class
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy
Symbol:HandleType
Syntax:class HandleType {...};
Description:Handle for a specific AdaptivePlatformServiceInstance. It contains the information that is needed to create a service proxy. HandleType satisfies the [equalitycomparable] and [lessthancomparable] requirements as per ISO-14882-2014. This, together with SWS_CM_00317 and SWS_CM_00318, allows storing and managing HandleTypes by the application.

14.2.1 Public Member Functions

14.2.1.1 Special Member Functions
14.2.1.1.1 Default Constructor
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:HandleType()=default;
Description:Default constructor. The instance specifier is initialised to "undefined" and the instance identifier to the empty string.
14.2.1.1.2 Destructor
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:~HandleType();
Exception Safety:exception safe
Description:Destructor
14.2.1.1.3 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:HandleType(const HandleType &other);
Parameters (in):otherOther object to copy
Exception Safety:not exception safe
Description:Copy constructor
14.2.1.1.4 Move Constructor
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:HandleType(HandleType &&other) noexcept;
Parameters (in):otherOther object to move
Exception Safety:not exception safe
Description:Move constructor
14.2.1.1.5 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:HandleType & operator=(const HandleType &other);
Parameters (in):otherOther object to copy
Return value:HandleType &
Exception Safety:not exception safe
Description:Copy assignment constructor
14.2.1.1.6 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:HandleType & operator=(HandleType &&other) noexcept;
Parameters (in):otherOther object to move
Return value:HandleType &
Exception Safety:not exception safe
Description:Move assignment constructor
14.2.1.2 Constructors
14.2.1.2.1 HandleType(ara::core::InstanceSpecifier, ServiceHandle)
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:HandleType(ara::core::InstanceSpecifier instanceSpecifier, ServiceHandle service);
Parameters (in):instanceSpecifierThe instance specifier of the service instance
serviceThe bound service handle
Description:Constructs a handle from an instance specifier and a bound service handle.
14.2.1.3 Member Functions
14.2.1.3.1 GetInstanceId
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:const ara::com::InstanceIdentifier & GetInstanceId() const;
Return value:const ara::com::InstanceIdentifier &An ara::com::InstanceIdentifier
Exception Safety:not exception safe
Description:Return the instance identifer for the handle
14.2.1.3.2 GetInstanceSpecifier
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:ara::core::InstanceSpecifier GetInstanceSpecifier() const;
Return value:ara::core::InstanceSpecifier
Description:Return instance specifier
14.2.1.3.3 GetServiceHandle
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:ServiceHandle GetServiceHandle() const;
Return value:ServiceHandle
Description:Return handle for bound service
14.2.1.3.4 operator<
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:bool operator<(const HandleType &other) const;
Parameters (in):otherOther HandleType to compare
Return value:bool
Exception Safety:not exception safe
Description:LessThan operator as per [lessthancomparable] in ISO-14882-2014
14.2.1.3.5 operator==
Kind:function
Header file:#include "para/com/proxy/proxy.h"
Scope:para::com::proxy::Proxy::HandleType
Syntax:bool operator==(const HandleType &other) const;
Parameters (in):otherOther HandleType to compare
Return value:bool
Exception Safety:not exception safe
Description:Equality operator as per [equalitycomparable] in ISO-14882-2014

15 Header: para/com/proxy/event.h

15.1 Class: Event

Kind:class
Header file:#include "para/com/proxy/event.h"
Scope:namespace para::com::proxy
Symbol:Event
Syntax:template <typename T, typename DdsT = nullptr_t, typename DdsEventT = nullptr_t, typename PubSubType = nullptr_t>
class Event final {...};
Template param:TThe event sample type
DdsTDDS binding type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsEventTDDS event type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
PubSubTypeDDS publish/subscribe type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
Description:Proxy-side event class. One instance is declared by the generated proxy for each event of the service interface. It provides subscription control, sample retrieval and the associated notification handlers. Copying is deleted; moving is supported.

15.1.1 Public Member Types

15.1.1.1 Type Alias: SampleType
Kind:type
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Symbol:SampleType
Syntax:using SampleType = T;
Description:Data type for the value of an event sample.

15.1.2 Public Member Functions

15.1.2.1 Special Member Functions
15.1.2.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:~Event()=default;
Description:Destructor
15.1.2.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:Event(const Event &other)=delete;
Description:Copy constructor deletion
15.1.2.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:Event(Event &&other) noexcept=default;
Description:Move constructor
15.1.2.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:Event & operator=(const Event &other)=delete;
Description:Copy assignment operator deletion
15.1.2.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:Event & operator=(Event &&other) noexcept=default;
Return value:Event &
Description:Move assignment operator
15.1.2.2 Constructors
15.1.2.2.1 Event(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:explicit Event(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Parameters (in):handleThe handle of the proxy instance the event belongs to. Its service handle selects the binding implementation
hashThe identifier of the event within the service interface
propsThe serialization transformation properties applied to the event samples
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
15.1.2.2.2 Event(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>, std::shared_ptr<ProxyDdsInterface>)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:explicit Event(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface);
Parameters (in):handleThe handle of the proxy instance the event belongs to. Its service handle selects the binding implementation
hashThe identifier of the event within the service interface
propsThe serialization transformation properties applied to the event samples
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
15.1.2.3 Member Functions
15.1.2.3.1 GetE2EStateMachineState
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:ara::com::e2e::SMState GetE2EStateMachineState() const noexcept;
Return value:ara::com::e2e::SMStateState of the specific event class
Exception Safety:exception safe
Description:Returns the state of the specific event class, which was determined by the last run of E2E_Check() function invoked during the last call of GetNewSamples
15.1.2.3.2 GetFreeSampleCount
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:ara::core::Result< std::size_t > GetFreeSampleCount() const noexcept;
Return value:ara::core::Result< std::size_t >The number of free/unused slots for event sample data in the local cache
Exception Safety:exception safe
Description:Query Free Sample Slots
15.1.2.3.3 GetNewSamples(F&&, std::size_t)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:template <typename F>
ara::core::Result< std::size_t > GetNewSamples(F &&f, std::size_t maxNumberOfSamples=std::numeric_limits< std::size_t >::max()) noexcept;
Template param:FFunctor which shall process the received samples
Parameters (in):fCallable ([[func.wrap]]) f with signature void(ara::com::SamplePtr<SampleType const>)
maxNumberOfSamplesMaximum number of received data samples being processed in the function call.
Return value:ara::core::Result< std::size_t >• If successful: an ara::core::Result containing a ara::core::Result::value_type i.e. a std::size_t the total number of data samples passed to f
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Errors:ara::com::ComErrc::kMaxSamplesExceededno_rollback_semantics
Application holds more ara::com::SamplePtrs than commited in Subscribe Samples were possibly skipped.
Description:Method to update the event cache.
15.1.2.3.4 GetSubscriptionState
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:ara::com::SubscriptionState GetSubscriptionState() const noexcept;
Return value:ara::com::SubscriptionStateThe state of the subscription.
Exception Safety:exception safe
Description:Query ara::com::SubscriptionState, as per SWS_CM_00310.
15.1.2.3.5 SetReceiveHandler(ara::com::EventReceiveHandler)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:ara::core::Result< void > SetReceiveHandler(ara::com::EventReceiveHandler handler);
Parameters (in):handlerThe handler that shall be called by Communication Management upon event arrival. The EventReceiveHandler constitutes a function without parameters and has to use the GetNewSamples.f method of the specific Event class to access the retrieved event data. See SWS_CM_00309 for its definition.
Return value:ara::core::Result< void >
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Set/Register the event receive handler
15.1.2.3.6 SetReceiveHandler(ara::com::EventReceiveHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:template <typename ExecutorT>
void SetReceiveHandler(ara::com::EventReceiveHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_00181
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_00181 but the method shall execute in a provided context
15.1.2.3.7 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:ara::core::Result< void > SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler) noexcept;
Parameters (in):handlerThe handler that shall be called by Communication Management when the ara::com::SubscriptionState of the event has changed.
Return value:ara::core::Result< void >
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Set ara::com::SubscriptionState change handler
15.1.2.3.8 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:template <typename ExecutorT>
void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_00333
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_00333 but the method shall execute in a provided context
15.1.2.3.9 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler) noexcept;
Parameters (in):handlerHandler of type ara::com::e2e::TransportFaultConditionHandler to be set
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Provides possibility to register a ara::com::e2e::TransportFaultConditionHandler for a given Proxy Event.
15.1.2.3.10 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:template <typename ExecutorT>
void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler, ExecutorT &&executor) noexcept;
Parameters (in):handlerHandler of type ara::com::e2e::TransportFaultConditionHandler to be set
executorExecutor object in which any asynchronous computation spawn shall be invoked
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Execution Context overload for SetTransportFaultConditionHandler for a given Proxy Event.
15.1.2.3.11 Subscribe(std::size_t)
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:ara::core::Result< void > Subscribe(std::size_t maxSampleCount) noexcept;
Parameters (in):maxSampleCountThe cacheSize of the subscription.
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type containing a void
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Violations:InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kMaxSampleCountNotRealizablerollback_semantics
Provided maxSampleCount for event re-subscription does not match the maxSampleCount for the current subscription
Description:Method to subscribe to a service event. If the Event is already in state ara::com::SubscriptionState.kSubscribed or in state ara::com::SubscriptionState.kSubscriptionPending at the time of the call, and the provided maxSampleCount value is the same as for the current subscription, the method shall return without action.
15.1.2.3.12 UnsetReceiveHandler
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:ara::core::Result< void > UnsetReceiveHandler() noexcept;
Return value:ara::core::Result< void >
Exception Safety:exception safe
Description:Disable service event trigger
15.1.2.3.13 UnsetSubscriptionStateChangeHandler
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:void UnsetSubscriptionStateChangeHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Unset ara::com::SubscriptionState change handler
15.1.2.3.14 UnsetTransportFaultConditionHandler
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:void UnsetTransportFaultConditionHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Provides the possibility to unregister a previously set ara::com::e2e::TransportFaultConditionHandler for a given Proxy Event.
15.1.2.3.15 Unsubscribe
Kind:function
Header file:#include "para/com/proxy/event.h"
Scope:para::com::proxy::Event
Syntax:void Unsubscribe() noexcept;
Return value:None
Exception Safety:exception safe
Violations:DanglingSamplesViolationPrecondition SWS_CM_00085 has been violated.
Description:Method to unsubscribe from a service event. If the Event is not subscribed to at the time of the call, the method shall return without action.

16 Header: para/com/proxy/field.h

16.1 Non-Member Types

16.1.1 Enumeration: FieldDecorator

Kind:enumeration
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldDecorator
Underlying type:std::uint8_t
Syntax:enum class FieldDecorator : std::uint8_t {...};
Values:None0 — the field provides neither getter, setter nor notifier
Get1 << 0 — the field provides a getter
Set1 << 1 — the field provides a setter
Notify1 << 2 — the field provides a notifier
Description:Bit flags selecting which elements a field provides. The values are combined with operator| and passed as the first template argument of Field, which determines the base classes the field inherits.

16.1.2 Type Alias: FieldHashes

Kind:type
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldHashes
Syntax:using FieldHashes = std::array< std::int32_t, 3 >;
Description:The three identifiers of a field — getter, setter and notifier — held in one array. The positions are given by FieldHashIndex.

16.1.3 Enumeration: FieldHashIndex

Kind:enumeration
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldHashIndex
Underlying type:std::uint8_t
Syntax:enum FieldHashIndex : std::uint8_t {...};
Values:kGetter0 — position of the getter identifier in FieldHashes
kSetter1 — position of the setter identifier in FieldHashes
kNotifier2 — position of the notifier identifier in FieldHashes
Description:Positions within FieldHashes. Declared as an unscoped enumeration, so the enumerators are usable directly as array subscripts.

16.1.4 Class: FieldNoGetter

Kind:class
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldNoGetter
Syntax:class FieldNoGetter {};
Description:Empty class inherited by Field in place of FieldGetter when the decorator does not contain FieldDecorator::Get. A field built this way has no Get member.

16.1.5 Class: FieldNoNotifier

Kind:class
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldNoNotifier
Syntax:class FieldNoNotifier {};
Description:Empty class inherited by Field in place of FieldNotifier when the decorator does not contain FieldDecorator::Notify. A field built this way has no subscription or sample-retrieval members.

16.1.6 Class: FieldNoSetter

Kind:class
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldNoSetter
Syntax:class FieldNoSetter {};
Description:Empty class inherited by Field in place of FieldSetter when the decorator does not contain FieldDecorator::Set. A field built this way has no Set member.

16.2 Non-Member Functions

16.2.1 operator&

Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Syntax:constexpr FieldDecorator operator&(FieldDecorator a, FieldDecorator b);
Parameters (in):aLeft operand
bRight operand
Return value:FieldDecoratorThe bitwise conjunction of both operands
Description:Tests a decorator combination for a single flag. Field uses it to select its base classes.

16.2.2 operator|

Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Syntax:constexpr FieldDecorator operator|(FieldDecorator a, FieldDecorator b);
Parameters (in):aLeft operand
bRight operand
Return value:FieldDecoratorThe bitwise disjunction of both operands
Description:Combines decorator flags. The generated proxy writes the field type as Field<FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify, T>.

16.3 Class: Field

Kind:class
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:Field
Base class:std::conditional_t< (Decorator & FieldDecorator::Get) == FieldDecorator::Get, FieldGetter< T, DdsT, DdsReqT, DdsRetT >, FieldNoGetter >FieldGetter when the decorator contains Get, FieldNoGetter otherwise
std::conditional_t< (Decorator & FieldDecorator::Set) == FieldDecorator::Set, FieldSetter< T, DdsT, DdsReqT, DdsRetT >, FieldNoSetter >FieldSetter when the decorator contains Set, FieldNoSetter otherwise
std::conditional_t< (Decorator & FieldDecorator::Notify) == FieldDecorator::Notify, FieldNotifier< T, DdsT, DdsNotifierT, DdsNotifierPubSubT >, FieldNoNotifier >FieldNotifier when the decorator contains Notify, FieldNoNotifier otherwise
Syntax:template <FieldDecorator Decorator, typename T, typename DdsT = nullptr_t, typename DdsNotifierT = nullptr_t, typename DdsNotifierPubSubT = nullptr_t, typename DdsReqT = nullptr_t, typename DdsRetT = nullptr_t>
class Field final {...};
Template param:DecoratorWhich elements the field provides. Combine FieldDecorator::Get, FieldDecorator::Set and FieldDecorator::Notify with operator|
TThe field value type
DdsTDDS binding type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsNotifierTDDS notifier type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsNotifierPubSubTDDS notifier publish/subscribe type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsReqTDDS request type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsRetTDDS return type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
Description:Proxy-side field class. One instance is declared by the generated proxy for each field of the service interface. Which elements the field provides — getter, setter, notifier — is chosen by the Decorator template argument, which selects the base classes; an element the decorator does not name is absent from the type. Copying is deleted; moving is supported.

16.3.1 Public Member Types

16.3.1.1 Type Alias: FieldType
Kind:type
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Symbol:FieldType
Syntax:using FieldType = T;
Description:As per SWS_CM_11402

16.3.2 Public Member Functions

16.3.2.1 Special Member Functions
16.3.2.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:~Field() override=default;
Description:Destructor. Overrides the pure virtual destructors of the base classes the decorator selected.
16.3.2.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:Field(const Field &other)=delete;
Description:Copy constructor deletion
16.3.2.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:Field(Field &&other) noexcept=default;
Description:Move constructor
16.3.2.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:Field & operator=(const Field &other)=delete;
Description:Copy assignment operator deletion
16.3.2.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:Field & operator=(Field &&other) noexcept=default;
Return value:Field &
Description:Move assignment operator
16.3.2.2 Constructors
16.3.2.2.1 Constructor (Getter)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Get >>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructs a field that provides a getter. Selected when the decorator is exactly FieldDecorator::Get. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.3.2.2.2 Constructor (Getter, DDS build)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Get >>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface, FieldDdsGetSerializer< DdsReqT > ddsGetSerializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsGetDeserializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
ddsGetSerializerThe serializer for the DDS get request
ddsGetDeserializerThe deserializer for the DDS get reply
Description:Constructs a field that provides a getter. Selected when the decorator is exactly FieldDecorator::Get. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.3.2.2.3 Constructor (Setter)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Set >, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructs a field that provides a setter. Selected when the decorator is exactly FieldDecorator::Set. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.3.2.2.4 Constructor (Setter, DDS build)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Set >>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface, FieldDdsSetSerializer< DdsT, DdsReqT > ddsSetSerializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsSetDeserializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
ddsSetSerializerThe serializer for the DDS set request
ddsSetDeserializerThe deserializer for the DDS set reply
Description:Constructs a field that provides a setter. Selected when the decorator is exactly FieldDecorator::Set. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.3.2.2.5 Constructor (Notifier)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Notify >, typename = void, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructs a field that provides a notifier. Selected when the decorator is exactly FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.3.2.2.6 Constructor (Notifier, DDS build)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Notify >>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
Description:Constructs a field that provides a notifier. Selected when the decorator is exactly FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.3.2.2.7 Constructor (Getter, Setter)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Set) >, typename = void, typename = void, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructs a field that provides a getter and a setter. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Set. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.3.2.2.8 Constructor (Getter, Setter, DDS build)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Set) >>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface, FieldDdsGetSerializer< DdsReqT > ddsGetSerializer, FieldDdsSetSerializer< DdsT, DdsReqT > ddsSetSerializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsGetDeserializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsSetDeserializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
ddsGetSerializerThe serializer for the DDS get request
ddsSetSerializerThe serializer for the DDS set request
ddsGetDeserializerThe deserializer for the DDS get reply
ddsSetDeserializerThe deserializer for the DDS set reply
Description:Constructs a field that provides a getter and a setter. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Set. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.3.2.2.9 Constructor (Getter, Notifier)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Notify) >, typename = void, typename = void, typename = void, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructs a field that provides a getter and a notifier. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.3.2.2.10 Constructor (Getter, Notifier, DDS build)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Notify) >, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface, FieldDdsGetSerializer< DdsReqT > ddsGetSerializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsGetDeserializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
ddsGetSerializerThe serializer for the DDS get request
ddsGetDeserializerThe deserializer for the DDS get reply
Description:Constructs a field that provides a getter and a notifier. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.3.2.2.11 Constructor (Setter, Notifier)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Set | FieldDecorator::Notify) >, typename = void, typename = void, typename = void, typename = void, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructs a field that provides a setter and a notifier. Selected when the decorator is exactly FieldDecorator::Set | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.3.2.2.12 Constructor (Setter, Notifier, DDS build)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Set | FieldDecorator::Notify) >, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface, FieldDdsSetSerializer< DdsT, DdsReqT > ddsSetSerializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsSetDeserializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
ddsSetSerializerThe serializer for the DDS set request
ddsSetDeserializerThe deserializer for the DDS set reply
Description:Constructs a field that provides a setter and a notifier. Selected when the decorator is exactly FieldDecorator::Set | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.3.2.2.13 Constructor (Getter, Setter, Notifier)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify) >, typename = void, typename = void, typename = void, typename = void, typename = void, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructs a field that provides a getter, a setter and a notifier. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.3.2.2.14 Constructor (Getter, Setter, Notifier, DDS build)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify) >, typename = void>
explicit Field(const Proxy::HandleType &handle, FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface, FieldDdsGetSerializer< DdsReqT > ddsGetSerializer, FieldDdsSetSerializer< DdsT, DdsReqT > ddsSetSerializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsGetDeserializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsSetDeserializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
ddsGetSerializerThe serializer for the DDS get request
ddsSetSerializerThe serializer for the DDS set request
ddsGetDeserializerThe deserializer for the DDS get reply
ddsSetDeserializerThe deserializer for the DDS set reply
Description:Constructs a field that provides a getter, a setter and a notifier. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is defined.

16.4 Class: Field<FieldDecorator::None>

Kind:class
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Syntax:template <typename T, typename DdsT, typename DdsNotifierT, typename DdsReqT, typename DdsRetT>
class Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT > final {...};
Template param:TThe field value type
DdsTDDS binding type. Unused by this specialization
DdsNotifierTDDS notifier type. Unused by this specialization
DdsReqTDDS request type. Unused by this specialization
DdsRetTDDS return type. Unused by this specialization
Description:Specialization of Field for a field that provides neither getter, setter nor notifier. It has no base class and carries only the FieldType alias; the constructor ignores its arguments. Copying is deleted; moving is supported.

16.4.1 Public Member Types

16.4.1.1 Type Alias: FieldType
Kind:type
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Symbol:FieldType
Syntax:using FieldType = T;
Description:As per SWS_CM_11402

16.4.2 Public Member Functions

16.4.2.1 Special Member Functions
16.4.2.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Syntax:~Field()=default;
Description:Destructor
16.4.2.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Syntax:Field(const Field &other)=delete;
Description:Copy constructor deletion
16.4.2.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Syntax:Field(Field &&other) noexcept=default;
Description:Move constructor
16.4.2.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Syntax:Field & operator=(const Field &other)=delete;
Description:Copy assignment operator deletion
16.4.2.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Syntax:Field & operator=(Field &&other) noexcept=default;
Return value:Field &
Description:Move assignment operator
16.4.2.2 Constructors
16.4.2.2.1 Field(const Proxy::HandleType &, std::shared_ptr<ProxyInterface>)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Syntax:explicit Field(const Proxy::HandleType &, std::shared_ptr< ProxyInterface >);
Description:Constructor. Both parameters are unnamed and unused — the field provides no element, so nothing is bound. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.4.2.2.2 Field(const Proxy::HandleType &, std::shared_ptr<ProxyInterface>, std::shared_ptr<ProxyDdsInterface>)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRetT >
Syntax:explicit Field(const Proxy::HandleType &, std::shared_ptr< ProxyInterface >, std::shared_ptr< ProxyDdsInterface >);
Description:Constructor. All three parameters are unnamed and unused — the field provides no element, so nothing is bound. Declared when PARA_DDS_IMPLEMENTATION is defined.

16.5 Class: FieldGetter

Kind:class
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldGetter
Syntax:template <typename T, typename DdsT, typename DdsReqT, typename DdsRetT>
class FieldGetter {...};
Template param:TThe field value type
DdsTDDS binding type. Used only when the DDS implementation is enabled
DdsReqTDDS request type. Used only when the DDS implementation is enabled
DdsRetTDDS return type. Used only when the DDS implementation is enabled
Description:Abstract base class carrying the getter of a proxy field. Field inherits it when the decorator contains FieldDecorator::Get, and inherits FieldNoGetter otherwise. The destructor is pure virtual, so the class cannot be instantiated on its own. Copying is deleted; moving is supported.

16.5.1 Public Member Functions

16.5.1.1 Special Member Functions
16.5.1.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldGetter
Syntax:virtual ~FieldGetter()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
16.5.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldGetter
Syntax:FieldGetter(const FieldGetter &other)=delete;
Description:Copy constructor deletion
16.5.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldGetter
Syntax:FieldGetter(FieldGetter &&other) noexcept=default;
Description:Move constructor
16.5.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldGetter
Syntax:FieldGetter & operator=(const FieldGetter &other)=delete;
Description:Copy assignment operator deletion
16.5.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldGetter
Syntax:FieldGetter & operator=(FieldGetter &&other) noexcept=default;
Return value:FieldGetter &
Description:Move assignment operator
16.5.1.2 Constructors
16.5.1.2.1 FieldGetter(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldGetter
Syntax:explicit FieldGetter(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashThe identifier of the field getter within the service interface
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.5.1.2.2 FieldGetter(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>, std::shared_ptr<ProxyDdsInterface>, FieldDdsGetSerializer<DdsReqT>, FieldDdsDeserializer<DdsT, DdsRetT>)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldGetter
Syntax:explicit FieldGetter(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface, FieldDdsGetSerializer< DdsReqT > ddsSerializer, FieldDdsDeserializer< DdsT, DdsRetT > ddsDeserializer);
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashThe identifier of the field getter within the service interface
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
ddsSerializerThe serializer for the DDS get request
ddsDeserializerThe deserializer for the DDS get reply
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.5.1.3 Member Functions
16.5.1.3.1 Get
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldGetter
Syntax:ara::core::Future< T > Get() noexcept;
Return value:ara::core::Future< FieldType >• If successful: an ara::core::Future containing a FieldType object as per SWS_CM_11403
• If unsuccessful: an ara::core::Future containing a corresponding ara::core::FutureErrc
Exception Safety:exception safe
Violations:InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kCommunicationFailurerollback_semantics
The network binding reported a recoverable communications error or a secure communication failure
ara::com::ComErrc::kMinimumSendIntervalViolationErrorrollback_semantics
Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement.ServiceInterfaceDeploymentElement.minimumSendInterval for the service instance element has not yet expired.
Description:Get the current value of the Field. The method is present only if Field.Field.hasGetter ==TRUE, otherwise it is not present (shall not be generated)

16.6 Class: FieldNotifier

Kind:class
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldNotifier
Syntax:template <typename T, typename DdsT, typename DdsNotifierT, typename DdsNotifierPubSubT>
class FieldNotifier {...};
Template param:TThe field value type
DdsTDDS binding type. Used only when the DDS implementation is enabled
DdsNotifierTDDS notifier type. Used only when the DDS implementation is enabled
DdsNotifierPubSubTDDS notifier publish/subscribe type. Used only when the DDS implementation is enabled
Description:Abstract base class carrying the notifier of a proxy field. Field inherits it when the decorator contains FieldDecorator::Notify, and inherits FieldNoNotifier otherwise. It provides the subscription control, sample retrieval and notification handlers of the field. The destructor is pure virtual, so the class cannot be instantiated on its own. Copying is deleted; moving is supported.

16.6.1 Public Member Functions

16.6.1.1 Special Member Functions
16.6.1.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:virtual ~FieldNotifier()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
16.6.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:FieldNotifier(const FieldNotifier &other)=delete;
Description:Copy constructor deletion
16.6.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:FieldNotifier(FieldNotifier &&other) noexcept=default;
Description:Move constructor
16.6.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:FieldNotifier & operator=(const FieldNotifier &other)=delete;
Description:Copy assignment operator deletion
16.6.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:FieldNotifier & operator=(FieldNotifier &&other) noexcept=default;
Return value:FieldNotifier &
Description:Move assignment operator
16.6.1.2 Constructors
16.6.1.2.1 FieldNotifier(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:explicit FieldNotifier(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashThe identifier of the field notifier within the service interface
propsThe serialization transformation properties applied to the field notification samples
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.6.1.2.2 FieldNotifier(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>, std::shared_ptr<ProxyDdsInterface>)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:explicit FieldNotifier(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface);
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashThe identifier of the field notifier within the service interface
propsThe serialization transformation properties applied to the field notification samples
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.6.1.3 Member Functions
16.6.1.3.1 GetE2EStateMachineState
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:ara::com::e2e::SMState GetE2EStateMachineState() const noexcept;
Return value:ara::com::e2e::SMStateState of the specific field class
Exception Safety:exception safe
Description:Returns the state of the specific field class, which was determined by the last run of E2E_Check() function invoked during the last call of GetNewSamples
16.6.1.3.2 GetFreeSampleCount
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:ara::core::Result< std::size_t > GetFreeSampleCount() const noexcept;
Return value:ara::core::Result< std::size_t >The number of free/unused slots for field notification sample data in the local cache
Exception Safety:exception safe
Description:Query Free Sample Slots
16.6.1.3.3 GetNewSamples
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:template <typename F>
ara::core::Result< std::size_t > GetNewSamples(F &&f, std::size_t maxNumberOfSamples=std::numeric_limits< std::size_t >::max()) noexcept;
Template param:FAs per SWS_CM_00701
Parameters (in):fAs per SWS_CM_00701
maxNumberOfSamplesAs per SWS_CM_00701
Return value:ara::core::Result< std::size_t >As per SWS_CM_00701
Exception Safety:not exception safe
Errors:ara::com::ComErrc::kMaxSamplesExceededrollback_semantics
As per SWS_CM_00701
Description:Method to update the field notification cache.
16.6.1.3.4 GetSubscriptionState
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:ara::com::SubscriptionState GetSubscriptionState() const noexcept;
Return value:ara::com::SubscriptionStateThe state of the subscription.
Exception Safety:exception safe
Description:Query ara::com::SubscriptionState, as per SWS_CM_00310.
16.6.1.3.5 SetReceiveHandler(ara::com::EventReceiveHandler)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:ara::core::Result< void > SetReceiveHandler(ara::com::EventReceiveHandler handler);
Parameters (in):handlerThe handler that shall be called by Communication Management upon notification arrival. The FieldReceiveHandler constitutes a function without parameters and has to use the GetNewSamples.f method of the specific Field class to access the retrieved event data. See SWS_CM_11615 for its definition.
Return value:ara::core::Result< void >
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Set/Register the Field notification receive handler
16.6.1.3.6 SetReceiveHandler(ara::com::EventReceiveHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:template <typename ExecutorT>
void SetReceiveHandler(ara::com::EventReceiveHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_11605
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_11605 but the handler shall execute in a provided context
16.6.1.3.7 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:ara::core::Result< void > SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler) noexcept;
Parameters (in):handlerAs per SWS_CM_00333
Return value:ara::core::Result< void >
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Set ara::com::SubscriptionState change handler
16.6.1.3.8 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:template <typename ExecutorT>
void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_11354
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_11607 but the handler shall execute in a provided context
16.6.1.3.9 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler) noexcept;
Parameters (in):handlerHandler of type ara::com::e2e::TransportFaultConditionHandler to be set
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Provides possibility to register a ara::com::e2e::TransportFaultConditionHandler for a given Proxy Field Notifier.
16.6.1.3.10 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:template <typename ExecutorT>
void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler, ExecutorT &&executor) noexcept;
Parameters (in):handlerHandler to be set
executorExecutor object in which any asynchronous computation spawn shall be invoked
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Execution Context overload for SetTransportFaultConditionHandler for a given Proxy Field Notifier.
16.6.1.3.11 Subscribe
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:ara::core::Result< void > Subscribe(std::size_t maxSampleCount);
Parameters (in):maxSampleCountAs per SWS_CM_00141
Return value:ara::core::Result< void >As per SWS_CM_00141
Exception Safety:exception safe
Violations:InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kMaxSampleCountNotRealizablerollback_semantics
As per SWS_CM_00141
Description:Method to subscribe to a service field notification. If the Field is already in state ara::com::SubscriptionState.kSubscribed or in state ara::com::SubscriptionState.kSubscriptionPending at the time of the call, and the provided maxSampleCount value is the same as for the current subscription, the method shall return without action.
16.6.1.3.12 UnsetReceiveHandler
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:ara::core::Result< void > UnsetReceiveHandler() noexcept;
Return value:ara::core::Result< void >
Exception Safety:exception safe
Description:Disable service field notification trigger
16.6.1.3.13 UnsetSubscriptionStateChangeHandler
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:void UnsetSubscriptionStateChangeHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Unset ara::com::SubscriptionState change handler
16.6.1.3.14 UnsetTransportFaultConditionHandler
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:void UnsetTransportFaultConditionHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Provides the possibility to unregister a previously set ara::com::e2e::TransportFaultConditionHandler for a given Proxy Field Notifier.
16.6.1.3.15 Unsubscribe
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldNotifier
Syntax:void Unsubscribe();
Return value:None
Exception Safety:exception safe
Description:Method to unsubscribe from a service field notification. If the Field is not subscribed to at the time of the call, Unsubscribe shall return without action.

16.7 Class: FieldSetter

Kind:class
Header file:#include "para/com/proxy/field.h"
Scope:namespace para::com::proxy
Symbol:FieldSetter
Syntax:template <typename T, typename DdsT, typename DdsReqT, typename DdsRepT>
class FieldSetter {...};
Template param:TThe field value type
DdsTDDS binding type. Used only when the DDS implementation is enabled
DdsReqTDDS request type. Used only when the DDS implementation is enabled
DdsRepTDDS reply type. Used only when the DDS implementation is enabled
Description:Abstract base class carrying the setter of a proxy field. Field inherits it when the decorator contains FieldDecorator::Set, and inherits FieldNoSetter otherwise. The destructor is pure virtual, so the class cannot be instantiated on its own. Copying is deleted; moving is supported.

16.7.1 Public Member Functions

16.7.1.1 Special Member Functions
16.7.1.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldSetter
Syntax:virtual ~FieldSetter()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
16.7.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldSetter
Syntax:FieldSetter(const FieldSetter &other)=delete;
Description:Copy constructor deletion
16.7.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldSetter
Syntax:FieldSetter(FieldSetter &&other) noexcept=default;
Description:Move constructor
16.7.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldSetter
Syntax:FieldSetter & operator=(const FieldSetter &other)=delete;
Description:Copy assignment operator deletion
16.7.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldSetter
Syntax:FieldSetter & operator=(FieldSetter &&other) noexcept=default;
Return value:FieldSetter &
Description:Move assignment operator
16.7.1.2 Constructors
16.7.1.2.1 FieldSetter(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldSetter
Syntax:explicit FieldSetter(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface);
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashThe identifier of the field setter within the service interface
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
16.7.1.2.2 FieldSetter(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>, std::shared_ptr<ProxyDdsInterface>, FieldDdsSetSerializer<DdsT, DdsReqT>, FieldDdsDeserializer<DdsT, DdsRepT>)
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldSetter
Syntax:explicit FieldSetter(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface, FieldDdsSetSerializer< DdsT, DdsReqT > ddsSerializer, FieldDdsDeserializer< DdsT, DdsRepT > ddsDeserializer);
Parameters (in):handleThe handle of the proxy instance the field belongs to. Its service handle selects the binding implementation
hashThe identifier of the field setter within the service interface
propsThe serialization transformation properties applied to the field value
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
ddsSerializerThe serializer for the DDS set request
ddsDeserializerThe deserializer for the DDS set reply
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
16.7.1.3 Member Functions
16.7.1.3.1 Set
Kind:function
Header file:#include "para/com/proxy/field.h"
Scope:para::com::proxy::FieldSetter
Syntax:ara::core::Future< T > Set(const T &value);
Parameters (in):valueNew value of field
Return value:ara::core::Future< FieldType >• If successful: an ara::core::Future containing a FieldType object as per SWS_CM_11403
• If unsuccessful: an ara::core::Future containing a corresponding ara::core::FutureErrc
Exception Safety:exception safe
Violations:InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kCommunicationFailureno_rollback_semantics
The network binding reported a recoverable communications error or a secure communication failure. In case of a communication timeout this could lead to an uncertain state on the remote server side.
ara::com::ComErrc::kMinimumSendIntervalViolationErrorno_rollback_semantics
Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement.ServiceInterfaceDeploymentElement.minimumSendInterval for the service instance element has not yet expired.
Description:Set a new value of the Field. The method is present only if Field.Field.hasSetter==TRUE, otherwise it is not present (shall not be generated). There is no need to have Get method itself return [Application Errors] errors when getting a field value (as there are no errors possible when getting a field value). The Set-Method may return [Application Errors], but does so via returning a value different from the one passed in the request parameter.

17 Header: para/com/proxy/method.h

17.1 Class: Method

Kind:class
Header file:#include "para/com/proxy/method.h"
Scope:namespace para::com::proxy
Symbol:Method
Base class:para::com::proxy::MethodBase< T, Args... >
Syntax:template <typename T, typename... Args>
class Method final {...};

When PARA_DDS_IMPLEMENTATION is defined:
template <typename T, typename DdsReqT, typename DdsRepT, typename DdsErrT, typename... Args>
class Method final {...};
Template param:TThe method output type — the structure wrapping the out arguments
Args...The types of the method input arguments, in the order they are declared
DdsReqTDDS request type. Declared only when the DDS implementation is enabled
DdsRepTDDS reply type. Declared only when the DDS implementation is enabled
DdsErrTDDS error type. Declared only when the DDS implementation is enabled
Description:Proxy-side method class. One instance is declared by the generated proxy for each method of the service interface whose fireAndForget is FALSE. Calling the instance sends the request and returns an ara::core::Future that carries the reply. Copying is deleted; moving is supported.

17.1.1 Public Member Types

17.1.1.1 Type Alias: Output
Kind:type
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Symbol:Output
Syntax:using Output = T;
Description:Structure wrapping the out arguments for a method

17.1.2 Public Member Functions

17.1.2.1 Special Member Functions
17.1.2.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Syntax:~Method() override=default;
Description:Destructor. Overrides the pure virtual destructor of MethodBase.
17.1.2.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Syntax:Method(const Method &other)=delete;
Description:Copy constructor deletion
17.1.2.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Syntax:Method(Method &&other) noexcept=default;
Description:Move constructor
17.1.2.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Syntax:Method & operator=(const Method &other)=delete;
Description:Copy assignment operator deletion
17.1.2.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Syntax:Method & operator=(Method &&other) noexcept=default;
Return value:Method &
Description:Move assignment operator
17.1.2.2 Constructors
17.1.2.2.1 Method(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>, MethodErrorDomains, Serializer<Args...>, Deserializer<T>)
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Syntax:explicit Method(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, MethodErrorDomains errorDomains, Serializer< Args... > serializer, Deserializer< T > deserializer);
Parameters (in):handleThe handle of the proxy instance the method belongs to. Its service handle selects the binding implementation
hashThe identifier of the method within the service interface
propsThe serialization transformation properties applied to the request and the reply
interfaceThe proxy binding interface used for SOME/IP and IPC
errorDomainsThe application error domains declared for this method, keyed by error domain id. Used to rebuild an application error from a reply
serializerThe serializer for the request arguments
deserializerThe deserializer for the reply
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
17.1.2.2.2 Method(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>, MethodErrorDomains, Serializer<Args...>, Deserializer<T>, std::shared_ptr<ProxyDdsInterface>, MethodDdsSerializer<DdsReqT, Args...>, MethodDdsDeserializer<T, DdsRepT, DdsErrT>)
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Syntax:explicit Method(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, MethodErrorDomains errorDomains, Serializer< Args... > serializer, Deserializer< T > deserializer, std::shared_ptr< ProxyDdsInterface > ddsInterface, MethodDdsSerializer< DdsReqT, Args... > ddsSerializer, MethodDdsDeserializer< T, DdsRepT, DdsErrT > ddsDeserializer);
Parameters (in):handleThe handle of the proxy instance the method belongs to. Its service handle selects the binding implementation
hashThe identifier of the method within the service interface
propsThe serialization transformation properties applied to the request and the reply
interfaceThe proxy binding interface used for SOME/IP and IPC
errorDomainsThe application error domains declared for this method, keyed by error domain id. Used to rebuild an application error from a reply
serializerThe serializer for the request arguments
deserializerThe deserializer for the reply
ddsInterfaceThe proxy binding interface used for DDS
ddsSerializerThe serializer for the DDS request
ddsDeserializerThe deserializer for the DDS reply
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
17.1.2.3 Member Functions
17.1.2.3.1 operator()
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method
Syntax:ara::core::Future< Output > operator()(Args... args) const;
Parameters (in):argsThe symbol name of method argument[0..N] in the ordered list of method arguments
Return value:ara::core::Future< Output >• If successful: an ara::core::Future containing an Output object as per SWS_CM_99333
• If unsuccessful: an ara::core::Future containing a corresponding ara::core::FutureErrc
Exception Safety:exception safe
Violations:InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kCommunicationFailureno_rollback_semantics
The network binding reported a recoverable communications error or a secure communication failure. In case of a communication timeout this could lead to an uncertain state on the remote server side.
ara::com::ComErrc::kUnknownApplicationErrorrollback_semantics
A remote service returned an unconfigured application error.
ara::com::ComErrc::kServiceNotAvailablerollback_semantics
Service is not available after being previously offered via OfferService
ara::com::ComE2EErrc::kUnspecifiedE2EErrorrollback_semantics
A remote service returned an unspecified E2E error.
ara::com::ComErrc::kMinimumSendIntervalViolationErrorrollback_semantics
Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement.ServiceInterfaceDeploymentElement.minimumSendInterval for the service instance element has not yet expired.
Description:Initiate a method call (ClientServerOperation. ClientServerOperation.fireAndForget ==FALSE). The method call will return immediately. The caller's selection of a synchronous or asynchronous behavior to get the method output is achieved by the use of the returned ara::core::Future object which is used to query for method completion and result including possible error.

17.2 Class: Method<void>

Kind:class
Header file:#include "para/com/proxy/method.h"
Scope:namespace para::com::proxy
Symbol:Method< void, Args... >
Base class:para::com::proxy::MethodBase< void, Args... >
Syntax:template <typename... Args>
class Method< void, Args... > final {...};

When PARA_DDS_IMPLEMENTATION is defined:
template <typename DdsReqT, typename DdsRepT, typename DdsErrT, typename... Args>
class Method< void, DdsReqT, DdsRepT, DdsErrT, Args... > final {...};
Template param:Args...The types of the method input arguments, in the order they are declared
DdsReqTDDS request type. Declared only when the DDS implementation is enabled
DdsRepTDDS reply type. Declared only when the DDS implementation is enabled
DdsErrTDDS error type. Declared only when the DDS implementation is enabled
Description:Specialization of Method for a fire-and-forget method — one whose fireAndForget is TRUE. Calling the instance sends the request and returns nothing; there is no reply, so the class carries no Output type. Copying is deleted; moving is supported.

17.2.1 Public Member Functions

17.2.1.1 Special Member Functions
17.2.1.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method< void, Args... >
Syntax:~Method() override=default;
Description:Destructor. Overrides the pure virtual destructor of MethodBase.
17.2.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method< void, Args... >
Syntax:Method(const Method &other)=delete;
Description:Copy constructor deletion
17.2.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method< void, Args... >
Syntax:Method(Method &&other) noexcept=default;
Description:Move constructor
17.2.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method< void, Args... >
Syntax:Method & operator=(const Method &other)=delete;
Description:Copy assignment operator deletion
17.2.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method< void, Args... >
Syntax:Method & operator=(Method &&other) noexcept=default;
Return value:Method &
Description:Move assignment operator
17.2.1.2 Constructors
17.2.1.2.1 Method(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>, Serializer<Args...>)
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method< void, Args... >
Syntax:explicit Method(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, Serializer< Args... > serializer);
Parameters (in):handleThe handle of the proxy instance the method belongs to. Its service handle selects the binding implementation
hashThe identifier of the method within the service interface
propsThe serialization transformation properties applied to the request
interfaceThe proxy binding interface used for SOME/IP and IPC
serializerThe serializer for the request arguments
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined. There is no deserializer and no error domain map — a fire-and-forget call has no reply.
17.2.1.2.2 Method(const Proxy::HandleType &, Hash, const serializer::TransformationProps, std::shared_ptr<ProxyInterface>, Serializer<Args...>, std::shared_ptr<ProxyDdsInterface>, MethodDdsSerializer<DdsReqT, Args...>)
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method< void, Args... >
Syntax:explicit Method(const Proxy::HandleType &handle, Hash hash, const serializer::TransformationProps props, std::shared_ptr< ProxyInterface > interface, Serializer< Args... > serializer, std::shared_ptr< ProxyDdsInterface > ddsInterface, MethodDdsSerializer< DdsReqT, Args... > ddsSerializer);
Parameters (in):handleThe handle of the proxy instance the method belongs to. Its service handle selects the binding implementation
hashThe identifier of the method within the service interface
propsThe serialization transformation properties applied to the request
interfaceThe proxy binding interface used for SOME/IP and IPC
serializerThe serializer for the request arguments
ddsInterfaceThe proxy binding interface used for DDS
ddsSerializerThe serializer for the DDS request
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined. There is no deserializer and no error domain map — a fire-and-forget call has no reply.
17.2.1.3 Member Functions
17.2.1.3.1 operator()
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::Method< void, Args... >
Syntax:void operator()(Args... args) const;
Parameters (in):argsThe symbol name of method argument[0..N] in the ordered list of method arguments
Return value:None
Exception Safety:exception safe
Violations:InsufficientPermissionsViolationRefused by Grant Enforcement
Description:Initiate a fire-and-forget method call (ClientServerOperation. ClientServerOperation.fireAndForget ==TRUE)

17.3 Class: MethodBase

Kind:class
Header file:#include "para/com/proxy/method.h"
Scope:namespace para::com::proxy
Symbol:MethodBase
Syntax:template <typename T, typename... Args>
class MethodBase {...};
Template param:TThe method output type, or void for a fire-and-forget method
Args...The types of the method input arguments, in the order they are declared
Description:Abstract base class shared by Method and its fire-and-forget specialization. It holds the binding implementation and provides the E2E state query. The destructor is pure virtual, so the class is never instantiated directly; copying is deleted and moving is supported.

17.3.1 Public Member Functions

17.3.1.1 Special Member Functions
17.3.1.1.1 Default Constructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::MethodBase
Syntax:MethodBase()=default;
Description:Default constructor. The binding implementation is left empty; the derived class installs it.
17.3.1.1.2 Destructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::MethodBase
Syntax:virtual ~MethodBase()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
17.3.1.1.3 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::MethodBase
Syntax:MethodBase(const MethodBase &other)=delete;
Description:Copy constructor deletion
17.3.1.1.4 Move Constructor
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::MethodBase
Syntax:MethodBase(MethodBase &&other) noexcept=default;
Description:Move constructor
17.3.1.1.5 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::MethodBase
Syntax:MethodBase & operator=(const MethodBase &other)=delete;
Description:Copy assignment operator deletion
17.3.1.1.6 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::MethodBase
Syntax:MethodBase & operator=(MethodBase &&other) noexcept=default;
Return value:MethodBase &
Description:Move assignment operator
17.3.1.2 Member Functions
17.3.1.2.1 GetE2EStateMachineState
Kind:function
Header file:#include "para/com/proxy/method.h"
Scope:para::com::proxy::MethodBase
Syntax:ara::com::e2e::SMState GetE2EStateMachineState() const noexcept;
Return value:ara::com::e2e::SMStateState of the specific method class
Exception Safety:exception safe
Description:Returns the state of the specific method class, which was determined by the last run of E2E_Check() function invoked during the last call of operator()

18 Header: para/com/proxy/trigger.h

18.1 Class: Trigger

Kind:class
Header file:#include "para/com/proxy/trigger.h"
Scope:namespace para::com::proxy
Symbol:Trigger
Syntax:template <typename DdsT = nullptr_t>
class Trigger final {...};
Template param:DdsTDDS binding type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
Description:Proxy-side trigger class. One instance is declared by the generated proxy for each trigger of the service interface. A trigger carries no payload — arrivals are counted, and the application either polls the count with GetNewTriggers or is called back through a receive handler. Copying is deleted; moving is supported.

18.1.1 Public Member Functions

18.1.1.1 Special Member Functions
18.1.1.1.1 Destructor
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:~Trigger()=default;
Description:Destructor
18.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:Trigger(const Trigger &other)=delete;
Description:Copy constructor deletion
18.1.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:Trigger(Trigger &&other) noexcept=default;
Description:Move constructor
18.1.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:Trigger & operator=(const Trigger &other)=delete;
Description:Copy assignment operator deletion
18.1.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:Trigger & operator=(Trigger &&other) noexcept=default;
Return value:Trigger &
Description:Move assignment operator
18.1.1.2 Constructors
18.1.1.2.1 Trigger(const Proxy::HandleType &, Hash, std::shared_ptr<ProxyInterface>)
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:explicit Trigger(const Proxy::HandleType &handle, Hash hash, std::shared_ptr< ProxyInterface > interface);
Parameters (in):handleThe handle of the proxy instance the trigger belongs to. Its service handle selects the binding implementation
hashThe identifier of the trigger within the service interface
interfaceThe proxy binding interface used for SOME/IP and IPC
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined. There are no transformation properties — a trigger carries no payload to serialize.
18.1.1.2.2 Trigger(const Proxy::HandleType &, Hash, std::shared_ptr<ProxyInterface>, std::shared_ptr<ProxyDdsInterface>)
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:explicit Trigger(const Proxy::HandleType &handle, Hash hash, std::shared_ptr< ProxyInterface > interface, std::shared_ptr< ProxyDdsInterface > ddsInterface);
Parameters (in):handleThe handle of the proxy instance the trigger belongs to. Its service handle selects the binding implementation
hashThe identifier of the trigger within the service interface
interfaceThe proxy binding interface used for SOME/IP and IPC
ddsInterfaceThe proxy binding interface used for DDS
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined. There are no transformation properties — a trigger carries no payload to serialize.
18.1.1.3 Member Functions
18.1.1.3.1 GetNewTriggers
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:std::size_t GetNewTriggers() noexcept;
Return value:std::size_tThe number of triggers occurred since the last call to GetNewTriggers (a Zero value means that no new triggers have been received)
Exception Safety:exception safe
Description:Method to update the trigger counter.
18.1.1.3.2 GetSubscriptionState
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:ara::com::SubscriptionState GetSubscriptionState() const noexcept;
Return value:ara::com::SubscriptionStateThe state of the subscription.
Exception Safety:exception safe
Description:Query ara::com::SubscriptionState, as per SWS_CM_00310.
18.1.1.3.3 SetReceiveHandler(ara::com::TriggerReceiveHandler)
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:void SetReceiveHandler(ara::com::TriggerReceiveHandler handler) noexcept;
Parameters (in):handlerThe handler that shall be called by Communication Management upon trigger arrival. The ara::com::TriggerReceiveHandler constitutes a function without parameters and has to use the GetNewTriggers method of the specific Trigger class to access the retrieved trigger counter. See SWS_CM_00351 for it's definition.
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Trigger SetReceiveHandler
18.1.1.3.4 SetReceiveHandler(ara::com::TriggerReceiveHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:template <typename ExecutorT>
void SetReceiveHandler(ara::com::TriggerReceiveHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_00181
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_00250 but the method shall execute in a provided context
18.1.1.3.5 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler)
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler) noexcept;
Parameters (in):handlerThe handler that shall be called by Communication Management when the ara::com::SubscriptionState of the event has changed.
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Set ara::com::SubscriptionState change handler
18.1.1.3.6 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:template <typename ExecutorT>
void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_01107
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_01107 but the method shall execute in a provided context
18.1.1.3.7 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler)
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler) noexcept;
Parameters (in):handlerHandler of type TransportFaultConditionHandler to be set
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Provides possibility to register a TransportFaultConditionHandler for a given Proxy Trigger.
18.1.1.3.8 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:template <typename ExecutorT>
void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler, ExecutorT &&executor) noexcept;
Parameters (in):handlerHandler to be set
executorExecutor object in which any asynchronous computation spawn shall be invoked
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Execution Context overload for SetTransportFaultConditionHandler for a given Proxy Trigger.
18.1.1.3.9 Subscribe
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:void Subscribe() noexcept;
Return value:None
Exception Safety:exception safe
Violations:InsufficientPermissionsViolationRefused by Grant Enforcement
Description:Method to subscribe to a service trigger. When called it starts a subscription of the corresponding Trigger. If the Trigger is already in state ara::com::SubscriptionState.kSubscribed or in state ara::com::SubscriptionState.kSubscriptionPending at the time of the call, and this method is invoked, it shall return without any action.
18.1.1.3.10 UnsetReceiveHandler
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:void UnsetReceiveHandler() noexcept;
Return value:None
Exception Safety:not exception safe
Description:Disable Trigger receive handler
18.1.1.3.11 UnsetSubscriptionStateChangeHandler
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:void UnsetSubscriptionStateChangeHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Unset ara::com::SubscriptionState change handler
18.1.1.3.12 UnsetTransportFaultConditionHandler
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:void UnsetTransportFaultConditionHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Provides the possibility to unregister a previously set ara::com::e2e::TransportFaultConditionHandler for a given Proxy Trigger.
18.1.1.3.13 Unsubscribe
Kind:function
Header file:#include "para/com/proxy/trigger.h"
Scope:para::com::proxy::Trigger
Syntax:void Unsubscribe() noexcept;
Return value:None
Exception Safety:exception safe
Description:Method to unsubscribe from a service trigger. If the Trigger is not subscribed to at the time of the call invoked, it shall return without any action.

19 Header: para/com/skeleton/skeleton.h

19.1 Class: Skeleton

Kind:class
Header file:#include "para/com/skeleton/skeleton.h"
Scope:namespace para::com::skeleton
Symbol:Skeleton
Syntax:class Skeleton {...};
Description:Base class of every generated service skeleton. It provides service offering, the polling entry point for the kPoll processing mode, and the E2E error handler. The events, fields, methods and triggers of a particular service are added by the generated class that derives from it, together with the pure virtual method handlers the application implements. The destructor is pure virtual, so the class is never instantiated directly; copying is deleted and moving is supported.

19.1.1 Public Member Functions

19.1.1.1 Special Member Functions
19.1.1.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:virtual ~Skeleton()=0;
Exception Safety:not exception safe
Violations:DanglingSamplesViolationPrecondition SWS_CM_00086 has been violated.
Description:Destruction of a Skeleton
19.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:Skeleton(const Skeleton &)=delete;
Description:Copy constructor deletion
19.1.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:Skeleton(Skeleton &&) noexcept;
Exception Safety:not exception safe
Description:Move constructor
19.1.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:Skeleton & operator=(const Skeleton &)=delete;
Description:Copy assignment constructor deletion
19.1.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:Skeleton & operator=(Skeleton &&) noexcept;
Return value:Skeleton &The moved skeleton object
Exception Safety:exception safe
Description:Move assignment constructor
19.1.1.2 Member Functions
19.1.1.2.1 E2EErrorHandler
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:virtual void E2EErrorHandler(const ara::com::e2e::ComE2EErrorDomain &errorCode, ara::com::e2e::DataID dataID, ara::com::e2e::MessageCounter messageCounter);
Parameters (in):errorCodeError code object of type ara::com::e2e::ComE2EErrc to be used
dataIDData ID of type ara::com::e2e::dataID to be used
messageCounterMessage counter of type ara::com::e2e::MessageCounter to be used
Return value:None
Exception Safety:not exception safe
Description:Implementation may be overridden by the actual ServiceSkeleton implementation and it is not required to be reentrant. If the E2E error is a CRC error then some parts of the received message are faulty. If this part is the DataID then the E2E error handler is called with a faulty DataID. Consequently, in case of CRC error the server application can not rely on the DataID received by its error handler.
19.1.1.2.2 OfferService
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:ara::core::Result< void > OfferService();
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Errors:ara::com::ComErrc::kFieldValueNotInitializedrollback_semantics
Field value has yet not been initialized via Update (see SWS_CM_00128
ara::com::ComErrc::kFieldSetHandlerNotSetrollback_semantics
Field SetHandler has not been registered via RegisterSetHandler
ara::com::ComErrc::kCommunicationFailurerollback_semantics
The network binding reported a recoverable communications error or a secure communication failure
Description:Method to offer a service
19.1.1.2.3 ProcessNextMethodCall
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:ara::core::Result< bool > ProcessNextMethodCall();
Return value:ara::core::Result< bool >If the bool type:
• ==TRUE: there is at least one pending invocation
• ==FALSE: there is no pending invocation
Exception Safety:exception safe
Violations:WrongMethodCallProcessingModeViolationThe method is called in a Skeleton which was constructed with ara::com::MethodCallProcessingMode == kEvent or ara::com::MethodCallProcessingMode == kEventSingleThread.
Description:Allows the service to trigger the execution of the next service consumer method call at a specific point of time if the ara::com::MethodCallProcessingMode == ara::com::MethodCallProcessingMode.kPoll The pending service method (see SWS_CM_00191 or SWS_CM_90434) is executed in the context of the call to ProcessNextMethodCall().
19.1.1.2.4 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler)
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler) noexcept;
Parameters (in):handlerHandler of type ara::com::e2e::TransportFaultConditionHandler to be set
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Provides possibility to register a ara::com::e2e::TransportFaultConditionHandler for all methods in a given Skeleton.
19.1.1.2.5 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:template <typename ExecutorT>
void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler, ExecutorT &&executor) noexcept;
Parameters (in):handlerHandler of type ara::com::e2e::TransportFaultConditionHandler to be set
executorExecutor object in which any asynchronous computation spawn shall be invoked
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Execution Context overload for SetTransportFaultConditionHandler for all methods in a given Skeleton.
19.1.1.2.6 StopOfferService
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:void StopOfferService();
Return value:None
Exception Safety:exception safe
Description:Method to stop offering a service
19.1.1.2.7 UnsetTransportFaultConditionHandler
Kind:function
Header file:#include "para/com/skeleton/skeleton.h"
Scope:para::com::skeleton::Skeleton
Syntax:void UnsetTransportFaultConditionHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Provides the possibility to unregister a previously set ara::com::e2e::TransportFaultConditionHandler for all methods in a given Skeleton.

20 Header: para/com/skeleton/event.h

20.1 Class: Event

Kind:class
Header file:#include "para/com/skeleton/event.h"
Scope:namespace para::com::skeleton
Symbol:Event
Syntax:template <typename T, typename DdsT = nullptr_t, typename DdsEventT = nullptr_t, typename PubSubType = nullptr_t>
class Event final {...};
Template param:TThe event sample type
DdsTDDS binding type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsEventTDDS event type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
PubSubTypeDDS publish/subscribe type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
Description:Skeleton-side event class. One instance is declared by the generated skeleton for each event of the service interface. It sends samples to the subscribed applications and exposes the subscription state through a query method and a change handler. Copying is deleted; moving is supported.

20.1.1 Public Member Types

20.1.1.1 Type Alias: SampleType
Kind:type
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Symbol:SampleType
Syntax:using SampleType = T;
Description:Data type for the value of an event sample (the CppImplementationDataType of the Event, i.e. for the CppImplementationDataType which is either referenced by the VariableDataPrototype in the role AutosarDataPrototype.type directly or via the indirection of a DataTypeMap)

20.1.2 Public Member Functions

20.1.2.1 Special Member Functions
20.1.2.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:~Event()=default;
Description:Destructor
20.1.2.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:Event(const Event &other)=delete;
Description:Copy constructor deletion
20.1.2.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:Event(Event &&other) noexcept=default;
Description:Move constructor
20.1.2.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:Event & operator=(const Event &other)=delete;
Description:Copy assignment operator deletion
20.1.2.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:Event & operator=(Event &&other) noexcept=default;
Return value:Event &
Description:Move assignment operator
20.1.2.2 Constructors
20.1.2.2.1 Event(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>)
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:Event(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Parameters (in):hashThe identifier of the event within the service interface
propsThe serialization transformation properties applied to the event samples
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
20.1.2.2.2 Event(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>, std::shared_ptr<SkeletonDdsInterface>)
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:Event(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface);
Parameters (in):hashThe identifier of the event within the service interface
propsThe serialization transformation properties applied to the event samples
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
20.1.2.3 Member Functions
20.1.2.3.1 Allocate
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:ara::core::Result< ara::com::SampleAllocateePtr< SampleType > > Allocate();
Return value:ara::com::SampleAllocateePtr< SampleType >A ara::com::SampleAllocateePtr to an event sample
Exception Safety:not exception safe
Violations:SampleAllocationViolationNot enough memory resources can be allocated
AllocateUsageViolationThe allocation was illegally done via custom allocator
Description:Allocating data for event transfer when Communication Management is responsible for the data.
20.1.2.3.2 GetSubscriptionState
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:ara::com::SubscriptionState GetSubscriptionState() const noexcept;
Return value:ara::com::SubscriptionStateThe state of the subscription (as per SWS_CM_12008).
Exception Safety:exception safe
Description:Query ara::com::SubscriptionState of an event.
20.1.2.3.3 Send(const SampleType &)
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:ara::core::Result< void > Send(const SampleType &data) noexcept;
Parameters (in):dataThe data to send out to the subscribed applications.
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type containing a void
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Errors:ara::com::ComErrc::kServiceNotOfferedrollback_semantics
Service has not yet been offered via OfferService
ara::com::ComErrc::kMinimumSendIntervalViolationErrorrollback_semantics
Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement.ServiceInterfaceDeploymentElement.minimumSendInterval for the service instance element has not yet expired.
Description:Send event where the application is responsible for the data. The Communication Management creates a copy of the data to send and sends it to all subscribing applications.
20.1.2.3.4 Send(ara::com::SampleAllocateePtr<SampleType>)
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:ara::core::Result< void > Send(ara::com::SampleAllocateePtr< SampleType > data) noexcept;
Parameters (in):datathe data to send.
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type containing a void
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Errors:ara::com::ComErrc::kServiceNotOfferedrollback_semantics
Service has not yet been offered via OfferService
ara::com::ComErrc::kMinimumSendIntervalViolationErrorrollback_semantics
Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement.ServiceInterfaceDeploymentElement.minimumSendInterval for the service instance element has not yet expired.
Description:Send event where Communication Management is responsible for the data. The data is allocated using Allocate. The application is not allowed to access the data after Communication Management sends it to all subscribing applications.
20.1.2.3.5 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler)
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler) noexcept;
Parameters (in):handlerThe handler (as per SWS_CM_00311) that shall be called by Communication Management as soon as the ara::com::SubscriptionState of the event has changed.
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Set/Register ara::com::SubscriptionState change handler
20.1.2.3.6 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:template <typename ExecutorT>
void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_12008
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_12008 but the method shall execute in a provided context
20.1.2.3.7 UnsetSubscriptionStateChangeHandler
Kind:function
Header file:#include "para/com/skeleton/event.h"
Scope:para::com::skeleton::Event
Syntax:void UnsetSubscriptionStateChangeHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Unset/Deregister the ara::com::SubscriptionState change handler

21 Header: para/com/skeleton/field.h

21.1 Non-Member Types

21.1.1 Enumeration: FieldDecorator

Kind:enumeration
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldDecorator
Underlying type:std::uint8_t
Syntax:enum class FieldDecorator : std::uint8_t {...};
Values:None0 — the field provides neither getter, setter nor notifier
Get1 << 0 — the field provides a getter
Set1 << 1 — the field provides a setter
Notify1 << 2 — the field provides a notifier
Description:Bit flags selecting which elements a field provides. The values are combined with operator| and passed as the first template argument of Field, which determines the base classes the field inherits.

21.1.2 Type Alias: FieldHashes

Kind:type
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldHashes
Syntax:using FieldHashes = std::array< std::int32_t, 3 >;
Description:The three identifiers of a field — getter, setter and notifier — held in one array. The positions are given by FieldHashIndex.

21.1.3 Enumeration: FieldHashIndex

Kind:enumeration
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldHashIndex
Underlying type:std::uint8_t
Syntax:enum FieldHashIndex : std::uint8_t {...};
Values:kGetter0 — position of the getter identifier in FieldHashes
kSetter1 — position of the setter identifier in FieldHashes
kNotifier2 — position of the notifier identifier in FieldHashes
Description:Positions within FieldHashes. Declared as an unscoped enumeration, so the enumerators are usable directly as array subscripts.

21.1.4 Class: FieldNoGetter

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldNoGetter
Syntax:class FieldNoGetter {};
Description:Empty class inherited by Field in place of FieldGetter when the decorator does not contain FieldDecorator::Get.

21.1.5 Class: FieldNoNotifier

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldNoNotifier
Syntax:class FieldNoNotifier {};
Description:Empty class inherited by Field in place of FieldNotifier when the decorator does not contain FieldDecorator::Notify.

21.1.6 Class: FieldNoSetter

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldNoSetter
Syntax:class FieldNoSetter {};
Description:Empty class inherited by Field in place of FieldSetter when the decorator does not contain FieldDecorator::Set.

21.2 Non-Member Functions

21.2.1 operator&

Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Syntax:constexpr FieldDecorator operator&(FieldDecorator a, FieldDecorator b);
Parameters (in):aLeft operand
bRight operand
Return value:FieldDecoratorThe bitwise conjunction of both operands
Description:Tests a decorator combination for a single flag. Field uses it to select its base classes.

21.2.2 operator|

Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Syntax:constexpr FieldDecorator operator|(FieldDecorator a, FieldDecorator b);
Parameters (in):aLeft operand
bRight operand
Return value:FieldDecoratorThe bitwise disjunction of both operands
Description:Combines decorator flags. The generated skeleton writes the field type as Field<FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify, T>.

21.3 Class: Field

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:Field
Base class:para::com::skeleton::FieldCommonAlways inherited. Carries the transport fault condition handlers shared by the getter and the setter
std::conditional_t< (Decorator & FieldDecorator::Get) == FieldDecorator::Get, FieldGetter< T, DdsT, DdsReqT, DdsRepT >, FieldNoGetter >FieldGetter when the decorator contains Get, FieldNoGetter otherwise
std::conditional_t< (Decorator & FieldDecorator::Set) == FieldDecorator::Set, FieldSetter< T, DdsT, DdsReqT, DdsRepT >, FieldNoSetter >FieldSetter when the decorator contains Set, FieldNoSetter otherwise
std::conditional_t< (Decorator & FieldDecorator::Notify) == FieldDecorator::Notify, FieldNotifier< T, DdsT, DdsNotifierT, DdsNotifierPubSubT >, FieldNoNotifier >FieldNotifier when the decorator contains Notify, FieldNoNotifier otherwise
Syntax:template <FieldDecorator Decorator, typename T, typename DdsT = nullptr_t, typename DdsNotifierT = nullptr_t, typename DdsNotifierPubSubT = nullptr_t, typename DdsReqT = nullptr_t, typename DdsRepT = nullptr_t>
class Field final {...};
Template param:DecoratorWhich elements the field provides. Combine FieldDecorator::Get, FieldDecorator::Set and FieldDecorator::Notify with operator|
TThe field value type
DdsTDDS binding type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsNotifierTDDS notifier type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsNotifierPubSubTDDS notifier publish/subscribe type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsReqTDDS request type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsRepTDDS reply type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
Description:Skeleton-side field class. One instance is declared by the generated skeleton for each field of the service interface. Which elements the field provides — getter, setter, notifier — is chosen by the Decorator template argument, which selects the base classes; an element the decorator does not name is absent from the type. Copying is deleted; moving is supported.

21.3.1 Public Member Types

21.3.1.1 Type Alias: FieldType
Kind:type
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Symbol:FieldType
Syntax:using FieldType = T;
Description:Data type for the value of a field (an alias for the CppImplementationDataType of the Field, i.e. for the CppImplementationDataType which is either referenced by the VariableDataPrototype in the role AutosarDataPrototype.type directly or via indirection of a DataTypeMap)

21.3.2 Public Member Functions

21.3.2.1 Special Member Functions
21.3.2.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:~Field() override=default;
Description:Destructor. Overrides the pure virtual destructors of FieldCommon and of the base classes the decorator selected.
21.3.2.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:Field(const Field &other)=delete;
Description:Copy constructor deletion
21.3.2.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:Field(Field &&other) noexcept=default;
Description:Move constructor
21.3.2.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:Field & operator=(const Field &other)=delete;
Description:Copy assignment operator deletion
21.3.2.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:Field & operator=(Field &&other) noexcept=default;
Return value:Field &
Description:Move assignment operator
21.3.2.2 Constructors
21.3.2.2.1 Constructor (Getter)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Get >>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructs a field that provides a getter. Selected when the decorator is exactly FieldDecorator::Get. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.3.2.2.2 Constructor (Getter, DDS build)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Get >>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface, FieldDdsSerializer< DdsT, DdsRepT > ddsGetSerializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
ddsGetSerializerThe serializer for the DDS get reply
Description:Constructs a field that provides a getter. Selected when the decorator is exactly FieldDecorator::Get. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.3.2.2.3 Constructor (Setter)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Set >, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructs a field that provides a setter. Selected when the decorator is exactly FieldDecorator::Set. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.3.2.2.4 Constructor (Setter, DDS build)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Set >>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface, FieldDdsSetDeserializer< DdsT, DdsReqT > ddsSetDeserializer, FieldDdsSerializer< DdsT, DdsRepT > ddsSetSerializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
ddsSetDeserializerThe deserializer for the DDS set request
ddsSetSerializerThe serializer for the DDS set reply
Description:Constructs a field that provides a setter. Selected when the decorator is exactly FieldDecorator::Set. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.3.2.2.5 Constructor (Notifier)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Notify >, typename = void, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructs a field that provides a notifier. Selected when the decorator is exactly FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.3.2.2.6 Constructor (Notifier, DDS build)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == FieldDecorator::Notify >>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
Description:Constructs a field that provides a notifier. Selected when the decorator is exactly FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.3.2.2.7 Constructor (Getter, Setter)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Set) >, typename = void, typename = void, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructs a field that provides a getter and a setter. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Set. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.3.2.2.8 Constructor (Getter, Setter, DDS build)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Set) >>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface, FieldDdsSerializer< DdsT, DdsRepT > ddsGetSerializer, FieldDdsSetDeserializer< DdsT, DdsReqT > ddsSetDeserializer, FieldDdsSerializer< DdsT, DdsRepT > ddsSetSerializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
ddsGetSerializerThe serializer for the DDS get reply
ddsSetDeserializerThe deserializer for the DDS set request
ddsSetSerializerThe serializer for the DDS set reply
Description:Constructs a field that provides a getter and a setter. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Set. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.3.2.2.9 Constructor (Getter, Notifier)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Notify) >, typename = void, typename = void, typename = void, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructs a field that provides a getter and a notifier. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.3.2.2.10 Constructor (Getter, Notifier, DDS build)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Notify) >, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface, FieldDdsSerializer< DdsT, DdsRepT > ddsGetSerializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
ddsGetSerializerThe serializer for the DDS get reply
Description:Constructs a field that provides a getter and a notifier. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.3.2.2.11 Constructor (Setter, Notifier)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Set | FieldDecorator::Notify) >, typename = void, typename = void, typename = void, typename = void, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructs a field that provides a setter and a notifier. Selected when the decorator is exactly FieldDecorator::Set | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.3.2.2.12 Constructor (Setter, Notifier, DDS build)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Set | FieldDecorator::Notify) >, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface, FieldDdsSetDeserializer< DdsT, DdsReqT > ddsSetDeserializer, FieldDdsSerializer< DdsT, DdsRepT > ddsSetSerializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
ddsSetDeserializerThe deserializer for the DDS set request
ddsSetSerializerThe serializer for the DDS set reply
Description:Constructs a field that provides a setter and a notifier. Selected when the decorator is exactly FieldDecorator::Set | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.3.2.2.13 Constructor (Getter, Setter, Notifier)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify) >, typename = void, typename = void, typename = void, typename = void, typename = void, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructs a field that provides a getter, a setter and a notifier. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.3.2.2.14 Constructor (Getter, Setter, Notifier, DDS build)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field
Syntax:template <FieldDecorator F = Decorator, typename = std::enable_if_t< F == (FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify) >, typename = void>
explicit Field(FieldHashes hashes, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface, FieldDdsSerializer< DdsT, DdsRepT > ddsGetSerializer, FieldDdsSetDeserializer< DdsT, DdsReqT > ddsSetDeserializer, FieldDdsSerializer< DdsT, DdsRepT > ddsSetSerializer);
Template param:FDefaulted to the field's own decorator. Present only so that std::enable_if_t can select this overload; it is never given explicitly
Parameters (in):hashesThe getter, setter and notifier identifiers of the field
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
ddsGetSerializerThe serializer for the DDS get reply
ddsSetDeserializerThe deserializer for the DDS set request
ddsSetSerializerThe serializer for the DDS set reply
Description:Constructs a field that provides a getter, a setter and a notifier. Selected when the decorator is exactly FieldDecorator::Get | FieldDecorator::Set | FieldDecorator::Notify. Declared when PARA_DDS_IMPLEMENTATION is defined.

21.4 Class: Field<FieldDecorator::None>

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Syntax:template <typename T, typename DdsT, typename DdsNotifierT, typename DdsReqT, typename DdsRepT>
class Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT > final {...};
Template param:TThe field value type
DdsTDDS binding type. Unused by this specialization
DdsNotifierTDDS notifier type. Unused by this specialization
DdsReqTDDS request type. Unused by this specialization
DdsRepTDDS reply type. Unused by this specialization
Description:Specialization of Field for a field that provides neither getter, setter nor notifier. It has no base class — not even FieldCommon — and carries only the FieldType alias; the constructor ignores its arguments. Copying is deleted; moving is supported.

21.4.1 Public Member Types

21.4.1.1 Type Alias: FieldType
Kind:type
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Symbol:FieldType
Syntax:using FieldType = T;
Description:Data type for the value of a field (an alias for the CppImplementationDataType of the Field, i.e. for the CppImplementationDataType which is either referenced by the VariableDataPrototype in the role AutosarDataPrototype.type directly or via indirection of a DataTypeMap)

21.4.2 Public Member Functions

21.4.2.1 Special Member Functions
21.4.2.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Syntax:~Field()=default;
Description:Destructor
21.4.2.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Syntax:Field(const Field &other)=delete;
Description:Copy constructor deletion
21.4.2.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Syntax:Field(Field &&other) noexcept=default;
Description:Move constructor
21.4.2.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Syntax:Field & operator=(const Field &other)=delete;
Description:Copy assignment operator deletion
21.4.2.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Syntax:Field & operator=(Field &&other) noexcept=default;
Return value:Field &
Description:Move assignment operator
21.4.2.2 Constructors
21.4.2.2.1 Field(std::shared_ptr<SkeletonInterface>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Syntax:explicit Field(std::shared_ptr< SkeletonInterface >);
Description:Constructor. The parameter is unnamed and unused — the field provides no element, so nothing is bound. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.4.2.2.2 Field(std::shared_ptr<SkeletonInterface>, std::shared_ptr<SkeletonDdsInterface>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::Field< FieldDecorator::None, T, DdsT, DdsNotifierT, DdsReqT, DdsRepT >
Syntax:explicit Field(std::shared_ptr< SkeletonInterface >, std::shared_ptr< SkeletonDdsInterface >);
Description:Constructor. Both parameters are unnamed and unused — the field provides no element, so nothing is bound. Declared when PARA_DDS_IMPLEMENTATION is defined.

21.5 Class: FieldCommon

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldCommon
Syntax:class FieldCommon {...};
Description:Abstract base class carrying what the getter and the setter of a skeleton field share — the transport fault condition handlers. Field inherits it unconditionally, unlike the three decorator-selected bases. It is not a template: the handlers do not depend on the field value type. The destructor is pure virtual, so the class cannot be instantiated on its own. Copying is deleted; moving is supported.

21.5.1 Public Member Functions

21.5.1.1 Special Member Functions
21.5.1.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:virtual ~FieldCommon()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
21.5.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:FieldCommon(const FieldCommon &other)=delete;
Description:Copy constructor deletion
21.5.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:FieldCommon(FieldCommon &&other) noexcept=default;
Description:Move constructor
21.5.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:FieldCommon & operator=(const FieldCommon &other)=delete;
Description:Copy assignment operator deletion
21.5.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:FieldCommon & operator=(FieldCommon &&other) noexcept=default;
Return value:FieldCommon &
Description:Move assignment operator
21.5.1.2 Constructors
21.5.1.2.1 FieldCommon(std::shared_ptr<SkeletonInterface>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:explicit FieldCommon(std::shared_ptr< SkeletonInterface > interface);
Parameters (in):interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.5.1.2.2 FieldCommon(std::shared_ptr<SkeletonInterface>, std::shared_ptr<SkeletonDdsInterface>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:explicit FieldCommon(std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface);
Parameters (in):interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.5.1.3 Member Functions
21.5.1.3.1 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler) noexcept;
Parameters (in):handlerHandler of type ara::com::e2e::TransportFaultConditionHandler to be set
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Provides possibility to register a ara::com::e2e::TransportFaultConditionHandler for a given Skeleton Field Get/Set.
21.5.1.3.2 SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:template <typename ExecutorT>
void SetTransportFaultConditionHandler(ara::com::e2e::TransportFaultConditionHandler handler, ExecutorT &&executor) noexcept;
Parameters (in):handlerHandler of type ara::com::e2e::TransportFaultConditionHandler to be set
executorExecutor object in which any asynchronous computation spawn shall be invoked
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Execution Context overload for SetTransportFaultConditionHandler for a given Skeleton Field Get/Set.
21.5.1.3.3 UnsetTransportFaultConditionHandler
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldCommon
Syntax:void UnsetTransportFaultConditionHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Provides the possibility to unregister a previously set ara::com::e2e::TransportFaultConditionHandler for a given Skeleton Field Get/Set.

21.6 Class: FieldGetter

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldGetter
Syntax:template <typename T, typename DdsT, typename DdsReqT, typename DdsRepT>
class FieldGetter {...};
Template param:TThe field value type
DdsTDDS binding type. Used only when the DDS implementation is enabled
DdsReqTDDS request type. Used only when the DDS implementation is enabled
DdsRepTDDS reply type. Used only when the DDS implementation is enabled
Description:Abstract base class carrying the getter of a skeleton field — the registration point for the callback that answers a proxy Get() request. Field inherits it when the decorator contains FieldDecorator::Get, and inherits FieldNoGetter otherwise. The destructor is pure virtual, so the class cannot be instantiated on its own. Copying is deleted; moving is supported.

21.6.1 Public Member Functions

21.6.1.1 Special Member Functions
21.6.1.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:virtual ~FieldGetter()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
21.6.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:FieldGetter(const FieldGetter &other)=delete;
Description:Copy constructor deletion
21.6.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:FieldGetter(FieldGetter &&other) noexcept=default;
Description:Move constructor
21.6.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:FieldGetter & operator=(const FieldGetter &other)=delete;
Description:Copy assignment operator deletion
21.6.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:FieldGetter & operator=(FieldGetter &&other) noexcept=default;
Return value:FieldGetter &
Description:Move assignment operator
21.6.1.2 Constructors
21.6.1.2.1 FieldGetter(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:explicit FieldGetter(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Parameters (in):hashThe identifier of the field getter within the service interface
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.6.1.2.2 FieldGetter(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>, std::shared_ptr<SkeletonDdsInterface>, FieldDdsSerializer<DdsT, DdsRepT>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:explicit FieldGetter(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface, FieldDdsSerializer< DdsT, DdsRepT > serializer);
Parameters (in):hashThe identifier of the field getter within the service interface
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
serializerThe serializer for the DDS get reply
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.6.1.3 Member Functions
21.6.1.3.1 RegisterGetHandler(std::function<ara::core::Future<T>()>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:void RegisterGetHandler(std::function< ara::core::Future< T >() > handler) noexcept;
Parameters (in):handlerThe callback function to be invoked to process the Field get request
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Register a callback function to be invoked when a Get request is received. The method exists only if the offered service contains a Field and Field.Field.hasGetter ==TRUE
21.6.1.3.2 RegisterGetHandler(std::function<ara::core::Future<T>()>, ExecutorT&&)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldGetter
Syntax:template <typename ExecutorT>
void RegisterGetHandler(std::function< ara::core::Future< T >() > handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTWrapper type providing methods for asynchronous execution of Callables. AUTOSAR provides a standardized ara::core::Executor or implementations may use a custom type which provides the same interface.
Parameters (in):handlerAs per SWS_CM_00114
executorThe context in which this method shall be "executed"
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_00114 but the method shall execute in a provided context

21.7 Class: FieldNotifier

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldNotifier
Syntax:template <typename T, typename DdsT, typename DdsNotifierT, typename DdsNotifierPubSubT>
class FieldNotifier {...};
Template param:TThe field value type
DdsTDDS binding type. Used only when the DDS implementation is enabled
DdsNotifierTDDS notifier type. Used only when the DDS implementation is enabled
DdsNotifierPubSubTDDS notifier publish/subscribe type. Used only when the DDS implementation is enabled
Description:Abstract base class carrying the notifier of a skeleton field. It sends the updated field value to the subscribers and exposes the subscription state through a query method and a change handler. Field inherits it when the decorator contains FieldDecorator::Notify, and inherits FieldNoNotifier otherwise. The destructor is pure virtual, so the class cannot be instantiated on its own. Copying is deleted; moving is supported.

21.7.1 Public Member Functions

21.7.1.1 Special Member Functions
21.7.1.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:virtual ~FieldNotifier()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
21.7.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:FieldNotifier(const FieldNotifier &other)=delete;
Description:Copy constructor deletion
21.7.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:FieldNotifier(FieldNotifier &&other) noexcept=default;
Description:Move constructor
21.7.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:FieldNotifier & operator=(const FieldNotifier &other)=delete;
Description:Copy assignment operator deletion
21.7.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:FieldNotifier & operator=(FieldNotifier &&other) noexcept=default;
Return value:FieldNotifier &
Description:Move assignment operator
21.7.1.2 Constructors
21.7.1.2.1 FieldNotifier(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:explicit FieldNotifier(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Parameters (in):hashThe identifier of the field notifier within the service interface
propsThe serialization transformation properties applied to the field notification samples
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.7.1.2.2 FieldNotifier(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>, std::shared_ptr<SkeletonDdsInterface>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:explicit FieldNotifier(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface);
Parameters (in):hashThe identifier of the field notifier within the service interface
propsThe serialization transformation properties applied to the field notification samples
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.7.1.3 Member Functions
21.7.1.3.1 GetSubscriptionState
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:ara::com::SubscriptionState GetSubscriptionState() const noexcept;
Return value:ara::com::SubscriptionStateThe state of the subscription (as per SWS_CM_12008).
Exception Safety:exception safe
Description:Query ara::com::SubscriptionState of an event.
21.7.1.3.2 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler) noexcept;
Parameters (in):handlerThe handler (as per SWS_CM_00311) that shall be called by Communication Management as soon as the ara::com::SubscriptionState of the event has changed.
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Set/Register ara::com::SubscriptionState change handler
21.7.1.3.3 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:template <typename ExecutorT>
void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_12008
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_12008 but the method shall execute in a provided context
21.7.1.3.4 UnsetSubscriptionStateChangeHandler
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:void UnsetSubscriptionStateChangeHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Unset/Deregister the ara::com::SubscriptionState change handler
21.7.1.3.5 Update(const T &)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldNotifier
Syntax:ara::core::Result< void > Update(const T &value) noexcept;
Parameters (in):valueThe value to be sent to subscribers
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Errors:ara::com::ComErrc::kMinimumSendIntervalViolationErrorrollback_semantics
Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement.ServiceInterfaceDeploymentElement.minimumSendInterval for the service instance element has not yet expired.
Description:Initiate the transmission of updated field data to the subscribers. See SWS_CM_00162 for the required behavior. The Update function shall also update the fields internal value. An update notification shall be sent to any subscribers if:
• Field.Field.hasNotifier ==TRUE (according to SWS_CM_00120)

21.8 Class: FieldSetter

Kind:class
Header file:#include "para/com/skeleton/field.h"
Scope:namespace para::com::skeleton
Symbol:FieldSetter
Syntax:template <typename T, typename DdsT, typename DdsReqT, typename DdsRepT>
class FieldSetter {...};
Template param:TThe field value type
DdsTDDS binding type. Used only when the DDS implementation is enabled
DdsReqTDDS request type. Used only when the DDS implementation is enabled
DdsRepTDDS reply type. Used only when the DDS implementation is enabled
Description:Abstract base class carrying the setter of a skeleton field — the registration point for the callback that answers a proxy Set() request. Field inherits it when the decorator contains FieldDecorator::Set, and inherits FieldNoSetter otherwise. The destructor is pure virtual, so the class cannot be instantiated on its own. Copying is deleted; moving is supported.

21.8.1 Public Member Functions

21.8.1.1 Special Member Functions
21.8.1.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:virtual ~FieldSetter()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
21.8.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:FieldSetter(const FieldSetter &other)=delete;
Description:Copy constructor deletion
21.8.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:FieldSetter(FieldSetter &&other) noexcept=default;
Description:Move constructor
21.8.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:FieldSetter & operator=(const FieldSetter &other)=delete;
Description:Copy assignment operator deletion
21.8.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:FieldSetter & operator=(FieldSetter &&other) noexcept=default;
Return value:FieldSetter &
Description:Move assignment operator
21.8.1.2 Constructors
21.8.1.2.1 FieldSetter(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:explicit FieldSetter(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface);
Parameters (in):hashThe identifier of the field setter within the service interface
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
21.8.1.2.2 FieldSetter(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>, std::shared_ptr<SkeletonDdsInterface>, FieldDdsSetDeserializer<DdsT, DdsReqT>, FieldDdsSerializer<DdsT, DdsRepT>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:explicit FieldSetter(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface, FieldDdsSetDeserializer< DdsT, DdsReqT > ddsDeserializer, FieldDdsSerializer< DdsT, DdsRepT > ddsSerializer);
Parameters (in):hashThe identifier of the field setter within the service interface
propsThe serialization transformation properties applied to the field value
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
ddsDeserializerThe deserializer for the DDS set request
ddsSerializerThe serializer for the DDS set reply
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.
21.8.1.3 Member Functions
21.8.1.3.1 RegisterSetHandler(std::function<ara::core::Future<T>(const T &)>)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:void RegisterSetHandler(std::function< ara::core::Future< T >(const T &value) > handler) noexcept;
Parameters (in):handlerAs per SWS_CM_00114
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Register a callback function to be invoked when a Set request is received. The method exists only if the offered service contains a Field and Field.Field.hasSetter ==TRUE
21.8.1.3.2 RegisterSetHandler(std::function<ara::core::Future<T>(const T &)>, ExecutorT&&)
Kind:function
Header file:#include "para/com/skeleton/field.h"
Scope:para::com::skeleton::FieldSetter
Syntax:template <typename ExecutorT>
void RegisterSetHandler(std::function< ara::core::Future< T >(const T &value) > handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_00116
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_00116 but the method shall execute in a provided context

22 Header: para/com/skeleton/method.h

22.1 Class: Method

Kind:class
Header file:#include "para/com/skeleton/method.h"
Scope:namespace para::com::skeleton
Symbol:Method
Base class:para::com::skeleton::MethodBase< T >
Syntax:template <typename T, typename DdsReqT = nullptr_t, typename DdsRepT = nullptr_t>
class Method final {...};
Template param:TThe method output type — the structure wrapping the out arguments
DdsReqTDDS request type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
DdsRepTDDS reply type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
Description:Skeleton-side method class. One instance is held by the generated skeleton for each method of the service interface whose fireAndForget is FALSE. It receives the request from the binding, deserializes the arguments and calls the invoker it was constructed with — the invoker forwards to the pure virtual member that the application implements on the generated skeleton. Beyond construction the class exposes no member function: the application never calls it directly. Copying is deleted; moving is supported.

22.1.1 Public Member Functions

22.1.1.1 Special Member Functions
22.1.1.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method
Syntax:~Method() override=default;
Description:Destructor. Overrides the pure virtual destructor of MethodBase.
22.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method
Syntax:Method(const Method &other)=delete;
Description:Copy constructor deletion
22.1.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method
Syntax:Method(Method &&other) noexcept=default;
Description:Move constructor
22.1.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method
Syntax:Method & operator=(const Method &other)=delete;
Description:Copy assignment operator deletion
22.1.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method
Syntax:Method & operator=(Method &&other) noexcept=default;
Return value:Method &
Description:Move assignment operator
22.1.1.2 Constructors
22.1.1.2.1 Method(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>, Invoker<T>, Serializer<T>)
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method
Syntax:explicit Method(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, Invoker< T > invoker, Serializer< T > serializer);
Parameters (in):hashThe identifier of the method within the service interface
propsThe serialization transformation properties applied to the request and the reply
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
invokerThe callable that deserializes the request and invokes the application handler
serializerThe serializer for the reply
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined.
22.1.1.2.2 Method(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>, Invoker<T>, Serializer<T>, std::shared_ptr<SkeletonDdsInterface>, MethodDdsInvoker<T, DdsReqT>, MethodDdsSerializer<T, DdsRepT>)
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method
Syntax:explicit Method(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, Invoker< T > invoker, Serializer< T > serializer, std::shared_ptr< SkeletonDdsInterface > ddsInterface, MethodDdsInvoker< T, DdsReqT > ddsInvoker, MethodDdsSerializer< T, DdsRepT > ddsSerializer);
Parameters (in):hashThe identifier of the method within the service interface
propsThe serialization transformation properties applied to the request and the reply
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
invokerThe callable that deserializes the request and invokes the application handler
serializerThe serializer for the reply
ddsInterfaceThe skeleton binding interface used for DDS
ddsInvokerThe callable that invokes the application handler from a DDS request
ddsSerializerThe serializer for the DDS reply
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined.

22.2 Class: Method<void>

Kind:class
Header file:#include "para/com/skeleton/method.h"
Scope:namespace para::com::skeleton
Symbol:Method< void, DdsReqT, DdsRepT >
Base class:para::com::skeleton::MethodBase< void >
Syntax:template <typename DdsReqT, typename DdsRepT>
class Method< void, DdsReqT, DdsRepT > final {...};
Template param:DdsReqTDDS request type. Used only when the DDS implementation is enabled
DdsRepTDDS reply type. Used only when the DDS implementation is enabled
Description:Specialization of Method for a fire-and-forget method — one whose fireAndForget is TRUE. It takes an invoker that returns nothing and has no reply serializer, since no reply is sent. Copying is deleted; moving is supported.

22.2.1 Public Member Functions

22.2.1.1 Special Member Functions
22.2.1.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method< void, DdsReqT, DdsRepT >
Syntax:~Method() override=default;
Description:Destructor. Overrides the pure virtual destructor of MethodBase.
22.2.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method< void, DdsReqT, DdsRepT >
Syntax:Method(const Method &other)=delete;
Description:Copy constructor deletion
22.2.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method< void, DdsReqT, DdsRepT >
Syntax:Method(Method &&other) noexcept=default;
Description:Move constructor
22.2.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method< void, DdsReqT, DdsRepT >
Syntax:Method & operator=(const Method &other)=delete;
Description:Copy assignment operator deletion
22.2.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method< void, DdsReqT, DdsRepT >
Syntax:Method & operator=(Method &&other) noexcept=default;
Return value:Method &
Description:Move assignment operator
22.2.1.2 Constructors
22.2.1.2.1 Method(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>, InvokerNoReturn)
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method< void, DdsReqT, DdsRepT >
Syntax:explicit Method(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, InvokerNoReturn invoker);
Parameters (in):hashThe identifier of the method within the service interface
propsThe serialization transformation properties applied to the request
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
invokerThe callable that deserializes the request and invokes the application handler. It returns nothing
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined. There is no reply serializer — a fire-and-forget call sends no reply.
22.2.1.2.2 Method(const Hash, const serializer::TransformationProps, std::shared_ptr<SkeletonInterface>, InvokerNoReturn, std::shared_ptr<SkeletonDdsInterface>, MethodDdsInvokerNoReturn<DdsReqT>)
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::Method< void, DdsReqT, DdsRepT >
Syntax:explicit Method(const Hash hash, const serializer::TransformationProps props, std::shared_ptr< SkeletonInterface > interface, InvokerNoReturn invoker, std::shared_ptr< SkeletonDdsInterface > ddsInterface, MethodDdsInvokerNoReturn< DdsReqT > ddsInvoker);
Parameters (in):hashThe identifier of the method within the service interface
propsThe serialization transformation properties applied to the request
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
invokerThe callable that deserializes the request and invokes the application handler. It returns nothing
ddsInterfaceThe skeleton binding interface used for DDS
ddsInvokerThe callable that invokes the application handler from a DDS request. It returns nothing
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined. There is no reply serializer — a fire-and-forget call sends no reply.

22.3 Class: MethodBase

Kind:class
Header file:#include "para/com/skeleton/method.h"
Scope:namespace para::com::skeleton
Symbol:MethodBase
Syntax:template <typename T>
class MethodBase {...};
Template param:TThe method output type, or void for a fire-and-forget method
Description:Abstract base class shared by Method and its fire-and-forget specialization. It holds the binding implementation and nothing else — unlike its proxy-side namesake it declares no member function of its own. The destructor is pure virtual, so the class is never instantiated directly; copying is deleted and moving is supported.

22.3.1 Public Member Functions

22.3.1.1 Special Member Functions
22.3.1.1.1 Default Constructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::MethodBase
Syntax:MethodBase()=default;
Description:Default constructor. The binding implementation is left empty; the derived class installs it.
22.3.1.1.2 Destructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::MethodBase
Syntax:virtual ~MethodBase()=0;
Description:Destructor. Declared pure virtual and defined out of class, so the class serves only as a base class.
22.3.1.1.3 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::MethodBase
Syntax:MethodBase(const MethodBase &other)=delete;
Description:Copy constructor deletion
22.3.1.1.4 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::MethodBase
Syntax:MethodBase(MethodBase &&other) noexcept=default;
Description:Move constructor
22.3.1.1.5 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::MethodBase
Syntax:MethodBase & operator=(const MethodBase &other)=delete;
Description:Copy assignment operator deletion
22.3.1.1.6 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/method.h"
Scope:para::com::skeleton::MethodBase
Syntax:MethodBase & operator=(MethodBase &&other) noexcept=default;
Return value:MethodBase &
Description:Move assignment operator

23 Header: para/com/skeleton/trigger.h

23.1 Class: Trigger

Kind:class
Header file:#include "para/com/skeleton/trigger.h"
Scope:namespace para::com::skeleton
Symbol:Trigger
Syntax:template <typename DdsT = nullptr_t>
class Trigger final {...};
Template param:DdsTDDS binding type. Defaulted to nullptr_t and used only when the DDS implementation is enabled
Description:Skeleton-side trigger class. One instance is declared by the generated skeleton for each trigger of the service interface. A trigger carries no payload — sending one notifies the subscribers that the event occurred. Copying is deleted; moving is supported.

23.1.1 Public Member Functions

23.1.1.1 Special Member Functions
23.1.1.1.1 Destructor
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:~Trigger()=default;
Description:Destructor
23.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:Trigger(const Trigger &other)=delete;
Description:Copy constructor deletion
23.1.1.1.3 Move Constructor
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:Trigger(Trigger &&other) noexcept=default;
Description:Move constructor
23.1.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:Trigger & operator=(const Trigger &other)=delete;
Description:Copy assignment operator deletion
23.1.1.1.5 Move Assignment Operator
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:Trigger & operator=(Trigger &&other) noexcept=default;
Return value:Trigger &
Description:Move assignment operator
23.1.1.2 Constructors
23.1.1.2.1 Trigger(const Hash, std::shared_ptr<SkeletonInterface>)
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:explicit Trigger(const Hash hash, std::shared_ptr< SkeletonInterface > interface);
Parameters (in):hashThe identifier of the trigger within the service interface
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is not defined. There are no transformation properties — a trigger carries no payload to serialize.
23.1.1.2.2 Trigger(const Hash, std::shared_ptr<SkeletonInterface>, std::shared_ptr<SkeletonDdsInterface>)
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:explicit Trigger(const Hash hash, std::shared_ptr< SkeletonInterface > interface, std::shared_ptr< SkeletonDdsInterface > ddsInterface);
Parameters (in):hashThe identifier of the trigger within the service interface
interfaceThe skeleton binding interface. Its service protocol selects the binding implementation
ddsInterfaceThe skeleton binding interface used for DDS
Description:Constructor. Declared when PARA_DDS_IMPLEMENTATION is defined. There are no transformation properties — a trigger carries no payload to serialize.
23.1.1.3 Member Functions
23.1.1.3.1 GetSubscriptionState
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:ara::com::SubscriptionState GetSubscriptionState() const noexcept;
Return value:ara::com::SubscriptionStateThe state of the subscription (as per SWS_CM_12008).
Exception Safety:exception safe
Description:Query ara::com::SubscriptionState of an trigger.
23.1.1.3.2 Send
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:ara::core::Result< void > Send() noexcept;
Return value:ara::core::Result< void >• If successful: an ara::core::Result containing a ara::core::Result::value_type containing a void
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Errors:ara::com::ComErrc::kServiceNotOfferedrollback_semantics
Service has not yet been offered via OfferService
ara::com::ComErrc::kMinimumSendIntervalViolationErrorrollback_semantics
Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement.ServiceInterfaceDeploymentElement.minimumSendInterval for the service instance element has not yet expired.
Description:Send trigger to all subscribing applications.
23.1.1.3.3 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler)
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler) noexcept;
Parameters (in):handlerThe handler (as per SWS_CM_00311) that shall be called by Communication Management as soon as the ara::com::SubscriptionState of the trigger has changed.
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:Set/Register ara::com::SubscriptionState change handler
23.1.1.3.4 SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler, ExecutorT&&)
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:template <typename ExecutorT>
void SetSubscriptionStateChangeHandler(ara::com::SubscriptionStateChangeHandler handler, ExecutorT &&executor) noexcept;
Template param:ExecutorTAs per SWS_CM_11360
Parameters (in):handlerAs per SWS_CM_12008
executorAs per SWS_CM_11360
Return value:None
Exception Safety:exception safe
Violations:InvalidHandlerViolationProvided Callable handler does not exist or is null
Description:As per SWS_CM_12008 but the method shall execute in a provided context
23.1.1.3.5 UnsetSubscriptionStateChangeHandler
Kind:function
Header file:#include "para/com/skeleton/trigger.h"
Scope:para::com::skeleton::Trigger
Syntax:void UnsetSubscriptionStateChangeHandler() noexcept;
Return value:None
Exception Safety:exception safe
Description:Unset/Deregister the ara::com::SubscriptionState change handler

24 Generated header: {si-shortname-lower}_common.h

24.1 Class: {si-shortname}

Kind:class
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_common.h"
Scope:namespace ::{hierarchical-namespace-list-lower}::common
Symbol:{si-shortname}
Syntax:class {si-shortname} {...};
Description:Inner namespace for definitions common to a Service Skeleton Header File and Service Proxy Header File.

24.1.1 Public Member Types

24.1.1.1 Struct: {method-name}Output
Kind:struct
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_common.h"
Scope:{hierarchical-namespace-list-lower}::common::{si-shortname}
Symbol:{method-name}Output
Syntax:struct {method-name}Output {...};
Description:Structure wrapping the out arguments for a {method-name}. One is generated for each method of the service interface, whether or not the method has out arguments — a method without them yields an empty struct.
24.1.1.2 Member Variable: {method-out-arg-symbol}
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_common.h"
Scope:{hierarchical-namespace-list-lower}::common::{si-shortname}::{method-name}Output
Symbol:{method-out-arg-symbol}
Type:{method-out-arg-type}
Syntax:{method-out-arg-type} {method-out-arg-symbol}{};
Description:Member declaration representing an out argument in an {method-name}Output.

24.1.2 Public Member Variables

24.1.2.1 serviceContractVersionMajor
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_common.h"
Scope:{hierarchical-namespace-list-lower}::common::{si-shortname}
Symbol:serviceContractVersionMajor
Type:std::uint32_t
Syntax:std::uint32_t serviceContractVersionMajor = {major};
Description:Service Contract Major Version
24.1.2.2 serviceContractVersionMinor
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_common.h"
Scope:{hierarchical-namespace-list-lower}::common::{si-shortname}
Symbol:serviceContractVersionMinor
Type:std::uint32_t
Syntax:std::uint32_t serviceContractVersionMinor = {minor};
Description:Service Contract Minor Version
24.1.2.3 serviceIdentifier
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_common.h"
Scope:{hierarchical-namespace-list-lower}::common::{si-shortname}
Symbol:serviceIdentifier
Type:const ara::com::ServiceIdentifierType
Syntax:static const ara::com::ServiceIdentifierType serviceIdentifier;
Description:Service Identifier
24.1.2.4 serviceVersion
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_common.h"
Scope:{hierarchical-namespace-list-lower}::common::{si-shortname}
Symbol:serviceVersion
Type:const ara::com::ServiceVersionType
Syntax:static const ara::com::ServiceVersionType serviceVersion;
Description:Service Version

25 Generated header: {si-shortname-lower}_proxy.h

25.1 Class: {service-interface-name}Proxy

Kind:class
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_proxy.h"
Scope:namespace ::{hierarchical-namespace-list-lower}::proxy
Symbol:{service-interface-name}Proxy
Base class:common::{si-shortname}The common class generated into {si-shortname-lower}_common.h (§24)
para::com::proxy::ProxyThe runtime base class (§14). Service discovery, handle access and service state observation come from here
Syntax:class {service-interface-name}Proxy {...};
Description:Service Interface Proxy

25.1.1 Public Member Variables

25.1.1.1 {event-name}
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_proxy.h"
Scope:{hierarchical-namespace-list-lower}::proxy::{service-interface-name}Proxy
Symbol:{event-name}
Type:events::{event-name}
Syntax:events::{event-name} {event-name};
Description:Event member, one for each VariableDataPrototype defined in the ServiceInterface in the role ServiceInterface.event.
25.1.1.2 {field-name}
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_proxy.h"
Scope:{hierarchical-namespace-list-lower}::proxy::{service-interface-name}Proxy
Symbol:{field-name}
Type:fields::{field-name}
Syntax:fields::{field-name} {field-name};
Description:Field member, one for each Field defined in the ServiceInterface in the role ServiceInterface.field.
25.1.1.3 {method-name}
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_proxy.h"
Scope:{hierarchical-namespace-list-lower}::proxy::{service-interface-name}Proxy
Symbol:{method-name}
Type:methods::{method-name}
Syntax:methods::{method-name} {method-name};
Description:Method member, one for each ClientServerOperation defined in the ServiceInterface in the role ServiceInterface.method.

25.1.2 Public Member Functions

25.1.2.1 Constructors
25.1.2.1.1 {Si}Proxy(const HandleType &)
Kind:function
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_proxy.h"
Scope:{hierarchical-namespace-list-lower}::proxy::{service-interface-name}Proxy
Syntax:{service-interface-name}Proxy(const HandleType &handle);
Parameters (in):handleA found FindServiceHandle returned by any of the FindService() methods, or a FindServiceHandle found and sent to the assigned FindServiceHandler callback, by any of the StartFindService() methods
Exceptions:ara::com::ComExceptionAs per ara::com::ComErrc::kServiceNotAvailable
Exception Safety:not exception safe
Violations:ErroneousServiceHandleViolationProvided HandleType is null or corrupt
InsufficientPermissionsViolationRefused by Grant Enforcement
Description:Construction of the service proxy from the found handles (from any of the FindService()/ StartFindService() methods)
25.1.2.2 Named Constructors
25.1.2.2.1 Create
Kind:function
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_proxy.h"
Scope:{hierarchical-namespace-list-lower}::proxy::{service-interface-name}Proxy
Syntax:static ara::core::Result< {service-interface-name}Proxy > Create(const HandleType &handle) noexcept;
Parameters (in):handleAs per SWS_CM_00131
Return value:ara::core::Result< {service-interface-name}Proxy >• If successful: an ara::core::Result containing a ara::core::Result::value_type containing a {service-interface-name}Proxy
• If unsuccessful: an ara::core::Result containing an ara::core::Result::error_type i.e. a corresponding ara::com::ComErrc
Exception Safety:exception safe
Violations:ErroneousServiceHandleViolationProvided HandleType is null or corrupt
InsufficientPermissionsViolationRefused by Grant Enforcement
Errors:ara::com::ComErrc::kServiceNotAvailablerollback_semantics
Service is not available after being previously offered via OfferService
ara::com::ComErrc::kCommunicationFailurerollback_semantics
The network binding reported a recoverable communications error or a secure communication failure
Description:Exception-less construction of a {service-interface-name}Proxy from a {service-interface-name}Proxy::HandleType using the Named Constructor idiom.

26 Generated header: {si-shortname-lower}_skeleton.h

26.1 Class: {service-interface-name}Skeleton

Kind:class
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_skeleton.h"
Scope:namespace ::{hierarchical-namespace-list-lower}::skeleton
Symbol:{service-interface-name}Skeleton
Base class:common::{si-shortname}The common class generated into {si-shortname-lower}_common.h (§24)
para::com::skeleton::SkeletonThe runtime base class (§19). Service offering, the polling entry point and the E2E error handler come from here
Syntax:class {service-interface-name}Skeleton {...};
Description:Service skeleton class

26.1.1 Public Member Variables

26.1.1.1 {event-name}
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_skeleton.h"
Scope:{hierarchical-namespace-list-lower}::skeleton::{service-interface-name}Skeleton
Symbol:{event-name}
Type:events::{event-name}
Syntax:events::{event-name} {event-name};
Description:Event member, one for each VariableDataPrototype defined in the ServiceInterface in the role ServiceInterface.event.
26.1.1.2 {field-name}
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_skeleton.h"
Scope:{hierarchical-namespace-list-lower}::skeleton::{service-interface-name}Skeleton
Symbol:{field-name}
Type:fields::{field-name}
Syntax:fields::{field-name} {field-name};
Description:Field member, one for each Field defined in the ServiceInterface in the role ServiceInterface.field.
26.1.1.3 {trigger-name}
Kind:variable
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_skeleton.h"
Scope:{hierarchical-namespace-list-lower}::skeleton::{service-interface-name}Skeleton
Symbol:{trigger-name}
Type:triggers::{trigger-name}
Syntax:triggers::{trigger-name} {trigger-name};
Description:Trigger member, one for each Trigger defined in the ServiceInterface in the role ServiceInterface.trigger.

26.1.2 Public Member Functions

26.1.2.1 Constructors
26.1.2.1.1 {Si}Skeleton(ara::core::InstanceSpecifier, ara::com::MethodCallProcessingMode)
Kind:function
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_skeleton.h"
Scope:{hierarchical-namespace-list-lower}::skeleton::{service-interface-name}Skeleton
Syntax:{service-interface-name}Skeleton(ara::core::InstanceSpecifier instanceSpec, ara::com::MethodCallProcessingMode mode=ara::com::MethodCallProcessingMode::kEvent);
Parameters (in):instanceSpecThe specifier of a specific instance of a service.
modeMode (as per SWS_CM_00301) for processing incoming service method invocations. Default argument is ara::com::MethodCallProcessingMode.kEvent.
Exception Safety:exception safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of the executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationThe type of mapping does not match the expected type of PortInterface: ServiceInterface referenced by a ServiceInstanceToPortPrototypeMapping.
ProcessMappingViolationThe type of mapping does not match the expected type of PortInterface
InstanceSpecifierAlreadyInUseViolationThe constructor was called with an Instance Specifier already
WrongMethodCallProcessingModeViolationWrong processing mode passed to constructor
InsufficientPermissionsViolationRefused by Grant Enforcement
Description:Construct a {service-interface-name}Skeleton from an ara::core::InstanceSpecifier
26.1.2.2 Service Communication
26.1.2.2.1 {fnfmethod-name}
Kind:function
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_skeleton.h"
Scope:{hierarchical-namespace-list-lower}::skeleton::{service-interface-name}Skeleton
Syntax:virtual void {fnfmethod-name}({fnfmethod-in-arg-derived-type-0toN} {fnfmethod-in-arg-symbol-0toN}) = 0;
Parameters (in):{fnfmethod-in-arg-symbol-0toN}As per {method-in-arg-symbol-0toN} in SWS_CM_00191
Return value:None
Exception Safety:exception safe
Description:Provision of a fire-and-forget method (ClientServerOperation. ClientServerOperation.fireAndForget ==TRUE). The application implements this pure virtual member on its own class derived from the generated skeleton.
26.1.2.2.2 {method-name}
Kind:function
Header file:#include "{si-namespace-derived-directory-path-lower}/{si-shortname-lower}_skeleton.h"
Scope:{hierarchical-namespace-list-lower}::skeleton::{service-interface-name}Skeleton
Syntax:virtual ara::core::Future< {method-name}Output > {method-name}({method-in-arg-derived-type-0toN} {method-in-arg-symbol-0toN}) = 0;
Parameters (in):{method-in-arg-symbol-0toN}The symbol name of method ClientServerOperation.argument[0..N] in the ordered list of ClientServerOperation arguments, with ArgumentDataPrototype.direction == ArgumentDirectionEnum.in or ArgumentDataPrototype.direction == ArgumentDirectionEnum.inout
Return value:ara::core::Future< {method-name}Output >• If successful: an ara::core::Future containing a {method-name}Output object as per SWS_CM_99556
• If unsuccessful: an ara::core::Future containing a corresponding ara::com::ComErrc or ApApplicationError.
Exception Safety:exception safe
Errors:This function does not specify any standardized errors.
Description:Provision of a method (ClientServerOperation. ClientServerOperation.fireAndForget ==FALSE). The application implements this pure virtual member on its own class derived from the generated skeleton.

27 Generated header: impl_type_{cppidt-name-lower}.h

27.1 Content

One header is generated for each CppImplementationDataType reachable from the service interface, under {si-namespace-derived-directory-path-lower}/type/. What it declares follows the data type's category, so there is no fixed API surface to tabulate:

  • STRUCTURE — a struct with one public member per element, a defaulted default constructor, an all-element constructor, and a PARA_STRUCTURE(...) marker that registers the members for serialization.
  • TYPE_REFERENCE, VALUE — a type alias to the mapped C++ type.
  • VECTOR, ARRAY, MAP, STRING — a type alias to the corresponding ara::core container instantiated with the element type.
  • UNION — a type alias to ara::core::Variant over the alternative types.

When PARA_DDS_IMPLEMENTATION is defined the header also declares _convert specializations between the PARA type and its DDS counterpart.

These declarations carry no ara::com API item — they are the data types the service interface is built from, and their names come from the model.

28 Generated header: {error-set-name-lower}_error_domain.h

28.1 Non-Member Types

28.1.1 Enumeration: {error-set-name}Errc

Kind:enumeration
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:namespace ::{namespace-derived-directory-path-lower}::error
Symbol:{error-set-name}Errc
Underlying type:ara::core::ErrorDomain::CodeType
Syntax:enum class {error-set-name}Errc : ara::core::ErrorDomain::CodeType {...};
Description:The application errors of one ApApplicationErrorSet. One enumerator is generated for each ApApplicationError, named after its short name and set to its error code. The enumerators are emitted in alphabetical order, so the values are not consecutive.

28.2 Non-Member Functions

28.2.1 Other

28.2.1.1 Get{error-set-name}ErrorDomain
Kind:function
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:namespace ::{namespace-derived-directory-path-lower}::error
Syntax:constexpr const ara::core::ErrorDomain & Get{error-set-name}ErrorDomain() noexcept;
Return value:const ara::core::ErrorDomain &The single instance of the error domain
Exception Safety:exception safe
Description:Returns the error domain object of this ApApplicationErrorSet.
28.2.1.2 MakeErrorCode
Kind:function
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:namespace ::{namespace-derived-directory-path-lower}::error
Syntax:constexpr ara::core::ErrorCode MakeErrorCode({error-set-name}Errc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
Parameters (in):codeThe application error to wrap
dataVendor-defined supplementary data carried with the error code
Return value:ara::core::ErrorCodeAn error code bound to this error domain
Exception Safety:exception safe
Description:Creates an error code from this error domain. The skeleton returns one of these to report an application error from a method handler.

28.3 Class: {error-set-name}ErrorDomain

Kind:class
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:namespace ::{namespace-derived-directory-path-lower}::error
Symbol:{error-set-name}ErrorDomain
Base class:ara::core::ErrorDomain
Syntax:class {error-set-name}ErrorDomain final {...};
Description:Error domain for one ApApplicationErrorSet. Its domain identifier is fixed at generation time from the model.

28.3.1 Public Member Types

28.3.1.1 Type Alias: Errc
Kind:type
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:{namespace-derived-directory-path-lower}::error::{error-set-name}ErrorDomain
Symbol:Errc
Syntax:using Errc = {error-set-name}Errc;
Description:Alias for the error code enumeration of this domain.

28.3.2 Public Member Functions

28.3.2.1 Special Member Functions
28.3.2.1.1 Default Constructor
Kind:function
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:{namespace-derived-directory-path-lower}::error::{error-set-name}ErrorDomain
Syntax:constexpr {error-set-name}ErrorDomain() noexcept;
Description:Default constructor. Binds the domain identifier taken from the model.
28.3.2.2 Member Functions
28.3.2.2.1 Message
Kind:function
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:{namespace-derived-directory-path-lower}::error::{error-set-name}ErrorDomain
Syntax:const char * Message(ara::core::ErrorDomain::CodeType errorCode) const noexcept override;
Parameters (in):errorCodeThe error code to translate
Return value:const char *The message text of the error code. An unrecognised code yields the text of the generated fallback
Exception Safety:exception safe
Description:Translates an error code of this domain into a message text.
28.3.2.2.2 Name
Kind:function
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:{namespace-derived-directory-path-lower}::error::{error-set-name}ErrorDomain
Syntax:const char * Name() const noexcept override;
Return value:const char *The short name of the ApApplicationErrorSet
Exception Safety:exception safe
Description:Returns the name of this error domain.
28.3.2.2.3 ThrowAsException
Kind:function
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:{namespace-derived-directory-path-lower}::error::{error-set-name}ErrorDomain
Syntax:void ThrowAsException(const ara::core::ErrorCode &errorCode) const noexcept(false) override;
Parameters (in):errorCodeThe error code to throw
Return value:None
Exception Safety:not exception safe
Description:Throws the given error code as an exception, or terminates the process when exceptions are disabled.

28.4 Class: {error-set-name}Exception

Kind:class
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:namespace ::{namespace-derived-directory-path-lower}::error
Symbol:{error-set-name}Exception
Base class:ara::core::Exception
Syntax:class {error-set-name}Exception {...};
Description:Exception type thrown for errors of this ApApplicationErrorSet.

28.4.1 Public Member Functions

28.4.1.1 Constructors
28.4.1.1.1 {error-set-name}Exception
Kind:function
Header file:#include "{namespace-derived-directory-path-lower}/error/{error-set-name-lower}_error_domain.h"
Scope:{namespace-derived-directory-path-lower}::error::{error-set-name}Exception
Syntax:{error-set-name}Exception(ara::core::ErrorCode &err) noexcept;
Parameters (in):errThe error code to carry
Description:Constructs the exception from an error code.

See also

  • Communication Manager (CM) and the runtime model: PARA Overview
  • Service configuration: Service Interface configuration, Service Instance configuration