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

ara::idsm

Overview

The Intrusion Detection System Manager Functional Cluster collects security events from sensors and qualifies them. This page specifies the public API of the ara::idsm namespace — event reporting, context and timestamp providers, the qualified-event receiver, and the associated error domain — organized by header file.

Library · Headers · Linking

  • Library: lib/libpara_idsm.so
  • CMake: find_package(para-idsm)para::idsm
  • Standard headers: include/ara/idsm/
  • Runtime daemon: bin/idsm

1 Header: ara/idsm/common.h

1.1 Non-Member Types

1.1.1 Type Alias: ContextDataType

Kind:type alias
Header file:#include "ara/idsm/common.h"
Scope:namespace ara::idsm
Symbol:ContextDataType
Syntax:using ContextDataType = ara::core::Span<const std::uint8_t>;
Description:ContextDataType used for sending context data to the IdsM .

1.1.2 Type Alias: CountType

Kind:type alias
Header file:#include "ara/idsm/common.h"
Scope:namespace ara::idsm
Symbol:CountType
Syntax:using CountType = std::uint16_t;
Description:CountType used for setting optional count for events pre-qualified by sensors .

1.1.3 Type Alias: EventIdType

Kind:type alias
Header file:#include "ara/idsm/common.h"
Scope:namespace ara::idsm
Symbol:EventIdType
Syntax:using EventIdType = std::uint16_t;
Description:EventIdType for an event .

1.1.4 Enumeration: ReportingModeType

Kind:enumeration
Header file:#include "ara/idsm/common.h"
Forwarding header file:#include "ara/idsm/idsm_fwd.h"
Scope:namespace ara::idsm
Symbol:ReportingModeType
Underlying type:std::uint8_t
Syntax:enum class ReportingModeType : std::uint8_t {...};
Values:kOff--
kBrief--
kDetailed--
kBriefBypassingFilters--
kDetailedBypassingFilters--
Description:Defines an enumeration class for the Reporting Modes. See SWS_AIDSM_00201 for definition. .

1.1.5 Type Alias: TimestampType

Kind:type alias
Header file:#include "ara/idsm/common.h"
Scope:namespace ara::idsm
Symbol:TimestampType
Syntax:using TimestampType = std::uint64_t;
Description:TimestampType used for setting optional sensor-specific timestamp for events.
Notes:Only 62 least-significant bits are used as timestamp value and stored or transmitted, respectively

1.1.6 Type Alias: VersionedContextDataType

Kind:type alias
Header file:#include "ara/idsm/common.h"
Scope:namespace ara::idsm
Symbol:VersionedContextDataType
Syntax:using VersionedContextDataType = std::pair<ContextDataType, std::uint16_t>;
Description:VersionedContextDataType used for sending a versioned context data to the IdsM.

2 Header: ara/idsm/context_data_provider.h

2.1 Class: ContextDataProvider

Kind:class
Port Interfaces:IdsmContextProviderInterface
Header file:#include "ara/idsm/context_data_provider.h"
Forwarding header file:#include "ara/idsm/idsm_fwd.h"
Scope:namespace ara::idsm
Symbol:ContextDataProvider
Syntax:class ContextDataProvider {...};
Description:Class for providing context data to the IdsM .

2.1.1 Public Member Functions

2.1.1.1 Special Member Functions
2.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:ContextDataProvider (ContextDataProvider &&ra) noexcept;
Parameters (in):raThe ContextDataProvider object to be moved.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructor for ContextDataProvider.
2.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:ContextDataProvider (const ContextDataProvider &) noexcept=delete;
Description:The copy constructor for ContextDataProvider shall not be used.
2.1.1.1.3 Copy Assignment Operator
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:ara::idsm::ContextDataProvider & operator= (const ara::idsm::ContextDataProvider &) noexcept=delete;
Description:The copy assignment operator for ContextDataProvider shall not be used.
2.1.1.1.4 Move Assignment Operator
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:ara::idsm::ContextDataProvider & operator= (ara::idsm::ContextDataProvider &&ra) noexcept;
Parameters (in):raThe ContextDataProvider object to be moved.
Return value:ContextDataProvider &The moved ContextDataProvider object.
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Move assignment operator for ContextDataProvider.
2.1.1.1.5 Destructor
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:virtual ~ContextDataProvider () noexcept;
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Destructor for ContextDataProvider.
2.1.1.2 Constructors
2.1.1.2.1 ContextDataProvider
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:explicit ContextDataProvider (const ara::core::InstanceSpecifier &instance, std::size_t additionalBytes, std::size_t originalContextDataOffset) noexcept;
Parameters (in):instanceinstance specifier identifying the PPortPrototype of a IdsmContextDataProviderInterface
additionalBytesThe number of bytes to be additionally allocated by IdsM for the context data buffer.
originalContextDataOffsetThe offset of the original context data in the context data buffer. This value has to be smaller or equal to the parameter additionalBytes.
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InvalidOriginalContextDataOffsetViolationIf the parameter originalContextDataOffset is larger than the parameter additionalBytes.
InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationThe type of mapping does not match the expected type of PortInterface: IdsmContextProviderInterface referenced by a IdsmContextProviderMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Creation of a ContextDataProvider.
2.1.1.3 Member Functions
2.1.1.3.1 ModifyContextData
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:virtual ara::core::Result< std::size_t > ModifyContextData (ara::core::Span< std::uint8_t > contextData, ara::idsm::EventIdType event) noexcept=0;
Parameters (in):eventEvent ID of the QSEv
Parameters (inout):contextDataSpan to the context data buffer in big endian format to be modified by application with a size of the original context data plus additionalBytes.
Return value:ara::core::Result< std::size_t >Size of modified context data.
Exception Safety:exception safe
Thread Safety:non_threadsafe
Errors:This function does not specify any standardized errors.
Description:ModifyContextData to be invoked by IdsM.

IdsM will place the original context data according to the parameter originalContextDataOffset passed to the constructor of the ContextDataProvider. The application that implements this function may modify the context data arbitrarily.
2.1.1.3.2 Offer
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >A Result, being either empty or containing any of the errors defined below.
Exception Safety:exception safe
Thread Safety:non_threadsafe
Errors:This function does not specify any standardized errors.
Description:Enables potential invocations of ModifyContextData by IdsM. Offer() ignores repeated calls without calling StopOffer() in between. .
2.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/idsm/context_data_provider.h"
Scope:ara::idsm::ContextDataProvider
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Disables invocations of ModifyContextData. StopOffer ignores repeated calls without calling Offer() in between. .

3 Header: ara/idsm/event_reporter.h

3.1 Class: EventReporter

Kind:class
Port Interfaces:SecurityEventReportInterface
Header file:#include "ara/idsm/event_reporter.h"
Forwarding header file:#include "ara/idsm/idsm_fwd.h"
Scope:namespace ara::idsm
Symbol:EventReporter
Syntax:class EventReporter {...};
Description:Class for reporting security events to the IdsM .

3.1.1 Public Member Functions

3.1.1.1 Constructors
3.1.1.1.1 EventReporter
Kind:function
Header file:#include "ara/idsm/event_reporter.h"
Scope:ara::idsm::EventReporter
Syntax:EventReporter (const ara::core::InstanceSpecifier &instanceSpecifier) noexcept;
Parameters (in):instanceSpecifierInstanceSpecifier of the RPortPrototype of type SecurityEventReportInterface that is mapped to the SecurityEventDefinition by means of the SecurityEventMapping (in case an Application reports the security event) or InstanceSpecifier of the FunctionalClusterToSecurityEventDefinitionMapping that maps a module instantiation to the SecurityEventDefinition (in case a module instantiation reports the security event).
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationThe type of mapping does not match the expected type of PortInterface: SecurityEventReportInterface referenced by a SecurityEventMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
Description:Construct a new Event Reporter object. Called by the sensor for each event type using the instance specified of the event type .
3.1.1.2 Member Functions
3.1.1.2.1 ReportEvent(ContextDataType, const CountType)
Kind:function
Header file:#include "ara/idsm/event_reporter.h"
Scope:ara::idsm::EventReporter
Syntax:void ReportEvent (ara::idsm::ContextDataType contextData, const ara::idsm::CountType count=1) noexcept;
Parameters (in):contextDatacontext data in big endian format
countoptional application provided number of event occurences to be reported
Return value:None
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new security event with sensor-provided context data at the IdsM. Please check chapter 7 for more information about context data endianess. .
3.1.1.2.2 ReportEvent(ContextDataType, const TimestampType, const CountType)
Kind:function
Header file:#include "ara/idsm/event_reporter.h"
Scope:ara::idsm::EventReporter
Syntax:void ReportEvent (ara::idsm::ContextDataType contextData, const ara::idsm::TimestampType timestamp, const ara::idsm::CountType count=1) noexcept;
Parameters (in):contextDatacontext data in big endian format
timestampapplication provided timestamp
countoptional application provided number of event occurences to be reported
Return value:None
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new security event with sensor-provided context data and with a sensor-provided timestamp at the IdsM. Please check chapter 7 for more information about context data endianess. .
3.1.1.2.3 ReportEvent(VersionedContextDataType, const CountType)
Kind:function
Header file:#include "ara/idsm/event_reporter.h"
Scope:ara::idsm::EventReporter
Syntax:void ReportEvent (ara::idsm::VersionedContextDataType contextData, const ara::idsm::CountType count=1) noexcept;
Parameters (in):contextDatacontext data in big endian format
countoptional application provided number of event occurences to be reported
Return value:None
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new security event with sensor-provided, versioned context data at the IdsM. Please check chapter 7 for more information about context data endianess. .
3.1.1.2.4 ReportEvent(VersionedContextDataType, const TimestampType, const CountType)
Kind:function
Header file:#include "ara/idsm/event_reporter.h"
Scope:ara::idsm::EventReporter
Syntax:void ReportEvent (ara::idsm::VersionedContextDataType contextData, const ara::idsm::TimestampType timestamp, const ara::idsm::CountType count=1) noexcept;
Parameters (in):contextDatacontext data in big endian format
timestampapplication provided timestamp
countoptional application provided number of event occurences to be reported
Return value:None
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new security event with sensor-provided, versioned context data and with a sensor-provided timestamp at the IdsM. Please check chapter 7 for more information about context data endianess. .
3.1.1.2.5 ReportEvent(const CountType)
Kind:function
Header file:#include "ara/idsm/event_reporter.h"
Scope:ara::idsm::EventReporter
Syntax:void ReportEvent (const ara::idsm::CountType count=1) noexcept;
Parameters (in):countoptional application provided number of event occurences to be reported
Return value:None
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new security event at the IdsM. .
3.1.1.2.6 ReportEvent(const TimestampType, const CountType)
Kind:function
Header file:#include "ara/idsm/event_reporter.h"
Scope:ara::idsm::EventReporter
Syntax:void ReportEvent (const ara::idsm::TimestampType timestamp, const ara::idsm::CountType count=1) noexcept;
Parameters (in):timestampapplication provided timestamp
countoptional application provided number of event occurences to be reported
Return value:None
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Create a new security event with a sensor-provided timestamp at the IdsM. .

4 Header: ara/idsm/idsm_error_domain.h

4.1 Non-Member Types

4.1.1 Enumeration: IdsmErrc

Kind:enumeration
Header file:#include "ara/idsm/idsm_error_domain.h"
Forwarding header file:#include "ara/idsm/idsm_fwd.h"
Scope:namespace ara::idsm
Symbol:IdsmErrc
Underlying type:ara::core::ErrorDomain::CodeType
Syntax:enum class IdsmErrc : ara::core::ErrorDomain::CodeType {...};
Values:kUnknownEventId= 3
An unknown event ID was provided.
Description:Defines the error codes for the ara::idsm::IdsmErrorDomain

4.2 Non-Member Functions

4.2.1 Other

4.2.1.1 GetIdsmErrorDomain
Kind:function
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:namespace ara::idsm
Syntax:constexpr const ara::core::ErrorDomain & GetIdsmErrorDomain () noexcept;
Return value:const ara::core::ErrorDomain &Reference to the ara::idsm::IdsmErrorDomain object
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Returns a reference to the ara::idsm::IdsmErrorDomain object
4.2.1.2 MakeErrorCode
Kind:function
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:namespace ara::idsm
Syntax:constexpr ara::core::ErrorCode MakeErrorCode (ara::idsm::IdsmErrc 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
Thread Safety:thread-safe
Description:Creates an instance of ara::core::ErrorCode

4.3 Class: IdsmErrorDomain

Kind:class
Header file:#include "ara/idsm/idsm_error_domain.h"
Forwarding header file:#include "ara/idsm/idsm_fwd.h"
Scope:namespace ara::idsm
Symbol:IdsmErrorDomain
Base class:ara::core::ErrorDomain
Syntax:class IdsmErrorDomain final : public ara::core::ErrorDomain {...};
Description:A class representing a firewall error domain.

4.3.1 Public Member Types

4.3.1.1 Type Alias: Errc
Kind:type alias
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:ara::idsm::IdsmErrorDomain
Symbol:Errc
Syntax:using Errc = IdsmErrc;
Description:Alias for the error code value enumeration
4.3.1.2 Type Alias: Exception
Kind:type alias
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:ara::idsm::IdsmErrorDomain
Symbol:Exception
Syntax:using Exception = IdsmException;
Description:Alias for the exception base class

4.3.2 Public Member Functions

4.3.2.1 Special Member Functions
4.3.2.1.1 Default Constructor
Kind:function
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:ara::idsm::IdsmErrorDomain
Syntax:IdsmErrorDomain ()=delete;
Description:Constructs a new ara::idsm::IdsmErrorDomain object
4.3.2.2 Member Functions
4.3.2.2.1 Message
Kind:function
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:ara::idsm::IdsmErrorDomain
Syntax:const char * Message (CodeType errorCode) const noexcept override;
Parameters (in):errorCodeThe error code number.
Return value:const char *The message associated with the error code
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Returns the message associated with the error code
4.3.2.2.2 Name
Kind:function
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:ara::idsm::IdsmErrorDomain
Syntax:const char * Name () const noexcept override;
Return value:const char *As per ara::idsm::IdsmErrorDomain in SWS_CORE_90023
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Retrieve the name of the error domain
4.3.2.2.3 ThrowAsException
Kind:function
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:ara::idsm::IdsmErrorDomain
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
Thread Safety:thread-safe
Description:Throws the exception associated with the error code. As per SWS_CORE_10304, this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.

4.4 Class: IdsmException

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

4.4.1 Public Member Functions

4.4.1.1 Constructors
4.4.1.1.1 IdsmException
Kind:function
Header file:#include "ara/idsm/idsm_error_domain.h"
Scope:ara::idsm::IdsmException
Syntax:explicit IdsmException (ara::core::ErrorCode errorCode) noexcept;
Parameters (in):errorCodeThe error code.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Constructs a new ara::idsm::IdsmException containing an ara::core::ErrorCode

5 Header: ara/idsm/qualified_events_receiver.h

5.1 Class: QualifiedEventsReceiver

Kind:class
Port Interfaces:IdsmQualifiedEventReceiverInterface
Header file:#include "ara/idsm/qualified_events_receiver.h"
Forwarding header file:#include "ara/idsm/idsm_fwd.h"
Scope:namespace ara::idsm
Symbol:QualifiedEventsReceiver
Syntax:class QualifiedEventsReceiver {...};
Description:Class for receiving qualified events from the IdsM .

5.1.1 Public Member Functions

5.1.1.1 Special Member Functions
5.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:QualifiedEventsReceiver (QualifiedEventsReceiver &&ra) noexcept;
Parameters (in):raThe QualifiedEventsReceiver object to be moved.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructor for QualifiedEventsReceiver.
5.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:QualifiedEventsReceiver (const QualifiedEventsReceiver &)=delete;
Description:The copy constructor for QualifiedEventsReceiver shall not be used.
5.1.1.1.3 Move Assignment Operator
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:ara::idsm::QualifiedEventsReceiver & operator= (ara::idsm::QualifiedEventsReceiver &&ra) noexcept;
Parameters (in):raThe QualifiedEventsReceiver object to be moved.
Return value:QualifiedEventsReceiver &The moved QualifiedEventsReceiver object .
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Move assignment operator for QualifiedEventsReceiver.
5.1.1.1.4 Copy Assignment Operator
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:ara::idsm::QualifiedEventsReceiver & operator= (const ara::idsm::QualifiedEventsReceiver &)=delete;
Description:The copy assignment operator for QualifiedEventsReceiver shall not be used.
5.1.1.1.5 Destructor
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:virtual ~QualifiedEventsReceiver () noexcept;
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Destructor for QualifiedEventsReceiver.
5.1.1.2 Constructors
5.1.1.2.1 QualifiedEventsReceiver
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:explicit QualifiedEventsReceiver (const ara::core::InstanceSpecifier &instance) noexcept;
Parameters (in):instanceinstance specifier to the PPortPrototype of a IdsmQualifiedEventReceiverInterface
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationThe type of mapping does not match the expected type of PortInterface: IdsmQualifiedEventReceiverInterface referenced by a IdsmQualifiedEventReceiverMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Creation of an QualifiedEventsReceiver.
5.1.1.3 Member Functions
5.1.1.3.1 Offer
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >A Result, being either empty or containing an error
Exception Safety:exception safe
Thread Safety:non_threadsafe
Errors:This function does not specify any standardized errors.
Description:Enables potential invocations of OnEventQualification by IdsM.

Offer ignores repeated calls (without calling StopOffer in between).
5.1.1.3.2 OnEventQualification(EventIdType, ara::core::Optional<ContextDataType>, ara::core::Optional<TimestampType>)
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:virtual void OnEventQualification (ara::idsm::EventIdType event, ara::core::Optional< ara::idsm::ContextDataType > contextData, ara::core::Optional< ara::idsm::TimestampType > timestamp) noexcept=0;
Parameters (in):eventThe eventId of the qualified security event
contextDataThe optional unversioned context data of the qualified security event
timestampThe optional timestamp of the qualified security event
Return value:None
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:OnEventQualification is implementated by the application and invoked by IdsM on qualification of a security event with unversioned context data.

The invocation needs to be enabled before by a call of QualifiedEventsReceiver::Offer.
5.1.1.3.3 OnEventQualification(EventIdType, ara::core::Optional<VersionedContextDataType>, ara::core::Optional<TimestampType>)
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:virtual void OnEventQualification (ara::idsm::EventIdType event, ara::core::Optional< ara::idsm::VersionedContextDataType > contextData, ara::core::Optional< ara::idsm::TimestampType > timestamp) noexcept=0;
Parameters (in):eventThe eventId of the qualified security event
contextDataThe optional versionedcontext data of the qualified security event
timestampThe optional timestamp of the qualified security event
Return value:None
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:OnEventQualification is implementated by the application and invoked by IdsM on qualification of a security event with versioned context data.

The invocation needs to be enabled before by a call of QualifiedEventsReceiver::Offer.
5.1.1.3.4 StopOffer
Kind:function
Header file:#include "ara/idsm/qualified_events_receiver.h"
Scope:ara::idsm::QualifiedEventsReceiver
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Disables invocations of OnEventQualification.

6 Header: ara/idsm/reporting_mode_provider.h

6.1 Class: ReportingModeProvider

Kind:class
Port Interfaces:IdsmReportingModeProviderInterface
Header file:#include "ara/idsm/reporting_mode_provider.h"
Forwarding header file:#include "ara/idsm/idsm_fwd.h"
Scope:namespace ara::idsm
Symbol:ReportingModeProvider
Syntax:class ReportingModeProvider final {...};
Description:Class for providing ReportingModes to the IdsM .

6.1.1 Public Member Functions

6.1.1.1 Constructors
6.1.1.1.1 ReportingModeProvider
Kind:function
Header file:#include "ara/idsm/reporting_mode_provider.h"
Scope:ara::idsm::ReportingModeProvider
Syntax:explicit ReportingModeProvider (const ara::core::InstanceSpecifier &instance) noexcept;
Parameters (in):instanceinstance specifier to the PPortPrototype of a IdsmReportingModeProviderInterface
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationThe type of mapping does not match the expected type of PortInterface: IdsmReportingModeProviderInterface referenced by a IdsmReportingModeProviderMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Creation of an ReportingModeProvider.
6.1.1.2 Member Functions
6.1.1.2.1 GetReportingMode
Kind:function
Header file:#include "ara/idsm/reporting_mode_provider.h"
Scope:ara::idsm::ReportingModeProvider
Syntax:ara::core::Result< ara::idsm::ReportingModeType > GetReportingMode (ara::idsm::EventIdType eventId) noexcept;
Parameters (in):eventIdID of the event for which the reporting mode shall be queried.
Return value:ara::core::Result< ReportingModeType >A Result, being either the current reporting mode, or containing any of the errors defined below.
Exception Safety:exception safe
Thread Safety:non_threadsafe
Errors:IdsmErrc::kUnknownEventIdrollback_semantics
Returned if the eventId does not identify a configured event.
Description:Get the ReportingMode for the event identified by an Event ID. .
6.1.1.2.2 SetReportingMode
Kind:function
Header file:#include "ara/idsm/reporting_mode_provider.h"
Scope:ara::idsm::ReportingModeProvider
Syntax:ara::core::Result< void > SetReportingMode (ara::idsm::EventIdType eventId, ara::idsm::ReportingModeType reportingMode) noexcept;
Parameters (in):eventIdID of the event for which the reporting mode shall be changed.
reportingModeThe reporting mode to be set.
Return value:ara::core::Result< void >A Result, being either empty or containing any of the errors defined below.
Exception Safety:exception safe
Thread Safety:non_threadsafe
Errors:IdsmErrc::kUnknownEventIdrollback_semantics
Returned if the eventId does not identify a configured event.
Description:Set the ReportingMode for the event identified by an Event ID.

7 Header: ara/idsm/timestamp_provider.h

7.1 Class: TimestampProvider

Kind:class
Port Interfaces:IdsmTimestampProviderInterface
Header file:#include "ara/idsm/timestamp_provider.h"
Forwarding header file:#include "ara/idsm/idsm_fwd.h"
Scope:namespace ara::idsm
Symbol:TimestampProvider
Syntax:class TimestampProvider {...};
Description:Class for providing timestamps to the IdsM .

7.1.1 Public Member Functions

7.1.1.1 Special Member Functions
7.1.1.1.1 Move Constructor
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:TimestampProvider (TimestampProvider &&ra) noexcept;
Parameters (in):raThe TimestampProvider object to be moved.
Exception Safety:exception safe
Thread Safety:thread-safe
Description:Move constructor for TimestampProvider.
7.1.1.1.2 Copy Constructor
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:TimestampProvider (const TimestampProvider &) noexcept=delete;
Description:The copy constructor for TimestampProvider shall not be used.
7.1.1.1.3 Copy Assignment Operator
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:ara::idsm::TimestampProvider & operator= (const ara::idsm::TimestampProvider &) noexcept=delete;
Description:The copy assignment operator for TimestampProvider shall not be used.
7.1.1.1.4 Move Assignment Operator
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:ara::idsm::TimestampProvider & operator= (ara::idsm::TimestampProvider &&ra) noexcept;
Parameters (in):raThe TimestampProvider object to be moved.
Return value:TimestampProvider &The moved TimestampProvider object.
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Move assignment operator for TimestampProvider.
7.1.1.1.5 Destructor
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:virtual ~TimestampProvider () noexcept;
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Destructor for TimestampProvider.
7.1.1.2 Constructors
7.1.1.2.1 TimestampProvider
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:explicit TimestampProvider (const ara::core::InstanceSpecifier &instance) noexcept;
Parameters (in):instanceinstance specifier to the PPortPrototype of a IdsmTimestampProviderInterface
Exception Safety:exception safe
Thread Safety:thread-safe
Violations:InstanceSpecifierMappingIntegrityViolationInstanceSpecifier either cannot be resolved in the model in the context of your executable, or it refers to a model element other than a PortPrototype.
PortInterfaceMappingViolationThe type of mapping does not match the expected type of PortInterface: IdsmTimestampProviderInterface referenced by a IdsmTimestampProviderMapping.
ProcessMappingViolationMatching InstanceRef exists, but no matching (modelled) Process found that matches the (runtime) process.
InstanceSpecifierAlreadyInUseViolationViolation message that is sent in case a constructor in the ara framework was called with an InstanceSpecifier already in use in this process.
Description:Creation of an TimestampProvider.
7.1.1.3 Member Functions
7.1.1.3.1 GetTimestamp
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:virtual ara::idsm::TimestampType GetTimestamp () noexcept=0;
Return value:TimestampTypeThe application provided Timestamp
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:GetTimestamp to be invoked by IdsM.

The invocation needs to be enabled before by a call of TimestampProvider::Offer.
7.1.1.3.2 Offer
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:ara::core::Result< void > Offer () noexcept;
Return value:ara::core::Result< void >A Result, being either empty or containing any of the errors defined below.
Exception Safety:exception safe
Thread Safety:non_threadsafe
Errors:This function does not specify any standardized errors.
Description:Enables potential invocations of GetTimestamp by IdsM. Offer() ignores repeated calls without calling StopOffer() in between. .
7.1.1.3.3 StopOffer
Kind:function
Header file:#include "ara/idsm/timestamp_provider.h"
Scope:ara::idsm::TimestampProvider
Syntax:void StopOffer () noexcept;
Return value:None
Exception Safety:exception safe
Thread Safety:non_threadsafe
Description:Disables invocations of GetTimestamp. StopOffer ignores repeated calls without calling Offer() in between. .

See also

  • Security event reporting in the runtime model: PARA Overview
  • Security event configuration: SecurityEventDefinition, SecurityEventMapping