OTX-Runtime for C++  
OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation Class Referenceabstract

Allows users to implement their own ExternalServiceProvider extension. More...

#include <IExternalServiceProviderImplementation.h>

Inheritance diagram for OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation:
Inheritance graph

Public Member Functions

virtual void CreateProvider (std::shared_ptr< IRuntimeContext > runtimeContext, std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider, std::shared_ptr< ExternalServiceProviderImplementation::IConstructor > constructor, std::list< std::shared_ptr< ExternalServiceProviderImplementation::IExternalParameter >> constructorParameters)=0
 Invoked when a CreateProvider occurs in OTX-Runtime. More...
 
virtual void DisposeProvider (std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider)=0
 Invoked when a DisposeProvider occurs in OTX-Runtime. More...
 
virtual void ExecuteService (std::shared_ptr< IRuntimeContext > runtimeContext, std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider, std::shared_ptr< ExternalServiceProviderImplementation::IService > service, std::list< std::shared_ptr< ExternalServiceProviderImplementation::IExternalParameter >> serviceParameters, bool executeAsync)=0
 Invoked when an ExecuteService occurs in OTX-Runtime. More...
 
virtual std::shared_ptr< ObjectGetProperty (std::shared_ptr< IRuntimeContext > runtimeContext, std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider, std::shared_ptr< ExternalServiceProviderImplementation::IProperty > property)=0
 Invoked when a GetProperty occurs in OTX-Runtime. More...
 
virtual void GetServiceProviderEventValues (std::shared_ptr< IRuntimeContext > runtimeContext, std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider, std::shared_ptr< ExternalServiceProviderImplementation::IEvent > event, std::list< std::shared_ptr< ExternalServiceProviderImplementation::IEventParameter >> eventValues)=0
 Invoked when a GetServiceProviderEventValues occurs in OTX-Runtime. More...
 
virtual bool IsDisposed (std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider)=0
 Invoked when an IsDisposed occurs in OTX-Runtime. More...
 
virtual bool IsServiceRunning (std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider, std::shared_ptr< ExternalServiceProviderImplementation::IService > service)=0
 Invoked when an IsServiceRunning occurs in OTX-Runtime. More...
 
virtual void SetProperty (std::shared_ptr< IRuntimeContext > runtimeContext, std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider, std::shared_ptr< ExternalServiceProviderImplementation::IProperty > property, std::shared_ptr< Object > propertyValue)=0
 Invoked when a SetProperty occurs in OTX-Runtime. More...
 
virtual bool TerminateService (std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider > serviceProvider, std::shared_ptr< ExternalServiceProviderImplementation::IService > service)=0
 Invoked when a TerminateService occurs in OTX-Runtime. More...
 
virtual void UpdateExternalParameterValues (std::string serviceId, std::vector< std::string > parameterNames, std::shared_ptr< Object > value)=0
 Invoked when one ore more InOut ExternalParameters was changed in OTX-Runtime to the same value. More...
 

Detailed Description

Allows users to implement their own ExternalServiceProvider extension.

The OTX ExternalServiceProvider extension provides actions, terms, events and data types for accessing external services. These services can be a part of a system, a device, a database or a simple library. The purpose of the ExternalServiceProvider is to extend OTX to functionality that is encapsulated in these services to help fulfill the requirements of vehicle manufacturing and diagnosis. The existing OTX signature concept gives the author a very flexible construction kit to add existing functionality into OTX test sequences without any knowledge of the complex schema structure of OTX. To extend OTX for general purpose functionality a new OTX extension will be introduced. The criteria for new extensions are:

  • As general as possible, as specific as necessary.
  • Each new extension must be able to be potentially standardized.

Use cases for the ExternalServiceProvider extension :

  1. Add the seed / key functionality of a third party company that is encapsulated in a library must be added into an OTX test sequence.
  2. Add an existing proprietary test sequence of an existing test system into an OTX test sequence.In this use case new OTX test sequences can be easily added to an existing test sequence.A step by step migration of the test logic to OTX is possible as well as the possibility to add new functionality written in OTX into proprietary test sequences.So the introduction to use OTX test sequences is not complex.The author has the possibility to add small and simple pieces of OTX code into an already running code.With this knowledge the author is able to write larger and more complex OTX programs.
  3. Add any external functionality to an OTX test sequence. Keep in mind.The usage of the ExternalServiceProvider Extension guarantees the exchangeability of the OTX source code itself, but not the exchangeability of the functionality.If you want to add e.g. a proprietary library into OTX, with the help of the ExternalServiceProvider, the binding between the OTX-Runtime system and the library must be separately implemented and is not part of the standard.

Member Function Documentation

◆ CreateProvider()

virtual void OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::CreateProvider ( std::shared_ptr< IRuntimeContext runtimeContext,
std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider,
std::shared_ptr< ExternalServiceProviderImplementation::IConstructor constructor,
std::list< std::shared_ptr< ExternalServiceProviderImplementation::IExternalParameter >>  constructorParameters 
)
pure virtual

Invoked when a CreateProvider occurs in OTX-Runtime.

Parameters
runtimeContextThe related runtime context.
serviceProviderServiceProvider represents an OTX ServiceProvider.
constructorConstructor that shall be called.
constructorParametersList of arguments for the construtor.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ DisposeProvider()

virtual void OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::DisposeProvider ( std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider)
pure virtual

Invoked when a DisposeProvider occurs in OTX-Runtime.

Parameters
serviceProviderServiceProvider represents an OTX ServiceProvider.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ ExecuteService()

virtual void OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::ExecuteService ( std::shared_ptr< IRuntimeContext runtimeContext,
std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider,
std::shared_ptr< ExternalServiceProviderImplementation::IService service,
std::list< std::shared_ptr< ExternalServiceProviderImplementation::IExternalParameter >>  serviceParameters,
bool  executeAsync 
)
pure virtual

Invoked when an ExecuteService occurs in OTX-Runtime.

Parameters
runtimeContextThe related runtime context.
serviceProviderServiceProvider represents an OTX ServiceProvider.
serviceService represents an OTX Service.
serviceParametersList of arguments.
executeAsyncTrue if the service is executed asynchronously.Otherwise, false.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ GetProperty()

virtual std::shared_ptr<Object> OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::GetProperty ( std::shared_ptr< IRuntimeContext runtimeContext,
std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider,
std::shared_ptr< ExternalServiceProviderImplementation::IProperty property 
)
pure virtual

Invoked when a GetProperty occurs in OTX-Runtime.

Parameters
runtimeContextThe related runtime context.
serviceProviderServiceProvider represents an OTX ServiceProvider.
propertyProperty represents an OTX Property.
Returns
The value of the property.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ GetServiceProviderEventValues()

virtual void OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::GetServiceProviderEventValues ( std::shared_ptr< IRuntimeContext runtimeContext,
std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider,
std::shared_ptr< ExternalServiceProviderImplementation::IEvent event,
std::list< std::shared_ptr< ExternalServiceProviderImplementation::IEventParameter >>  eventValues 
)
pure virtual

Invoked when a GetServiceProviderEventValues occurs in OTX-Runtime.

Parameters
runtimeContextThe related runtime context.
serviceProviderServiceProvider represents an OTX ServiceProvider.
eventEventSignature in the given ServiceProviderSignature for which event the values shall be returned.
eventValueseventValues is as a result of GetServiceProviderEventValues.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ IsDisposed()

virtual bool OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::IsDisposed ( std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider)
pure virtual

Invoked when an IsDisposed occurs in OTX-Runtime.

Parameters
serviceProviderServiceProvider represents an OTX ServiceProvider.
Returns
True if the ServiceProvider is disposed; otherwise, false.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ IsServiceRunning()

virtual bool OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::IsServiceRunning ( std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider,
std::shared_ptr< ExternalServiceProviderImplementation::IService service 
)
pure virtual

Invoked when an IsServiceRunning occurs in OTX-Runtime.

Parameters
serviceProviderServiceProvider represents an OTX ServiceProvider.
serviceService represents an OTX Service.
Returns
True if the Service is running; otherwise, false.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ SetProperty()

virtual void OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::SetProperty ( std::shared_ptr< IRuntimeContext runtimeContext,
std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider,
std::shared_ptr< ExternalServiceProviderImplementation::IProperty property,
std::shared_ptr< Object propertyValue 
)
pure virtual

Invoked when a SetProperty occurs in OTX-Runtime.

Parameters
runtimeContextThe related runtime context.
serviceProviderServiceProvider represents an OTX ServiceProvider.
propertyProperty represents an OTX Property.
propertyValueValue which is set to the property.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ TerminateService()

virtual bool OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::TerminateService ( std::shared_ptr< ExternalServiceProviderImplementation::IServiceProvider serviceProvider,
std::shared_ptr< ExternalServiceProviderImplementation::IService service 
)
pure virtual

Invoked when a TerminateService occurs in OTX-Runtime.

Parameters
serviceProviderServiceProvider represents an OTX ServiceProvider.
serviceService represents an OTX Service.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.

◆ UpdateExternalParameterValues()

virtual void OpenTestSystem::Otx::Runtime::Api::Custom::IExternalServiceProviderImplementation::UpdateExternalParameterValues ( std::string  serviceId,
std::vector< std::string >  parameterNames,
std::shared_ptr< Object value 
)
pure virtual

Invoked when one ore more InOut ExternalParameters was changed in OTX-Runtime to the same value.

Parameters
serviceIdRepresents a service id.
parameterNamesNames of the parameters which value was changed.
valueValue to all listed parameters was changed.

Implemented in OpenTestSystem::Otx::Runtime::Api::Custom::DefaultExternalServiceProviderImplementation.


The documentation for this class was generated from the following file: