ADTF  3.18.2
ValidationServiceInfo

Validation Service Info used only as one global instance at the dd::DataDefinition. More...

Inheritance diagram for ValidationServiceInfo:
[legend]

Classes

struct  Dependency
 dependency More...
 
struct  InvalidatedTypes
 Return structure for forceRevalidationOfTypeDependencies call. More...
 
class  ValidationProblem
 A Validation problem. More...
 

Public Types

enum  DependencyType : uint8_t {
  unit_to_unit_prefix , unit_to_base_unit , data_type_to_unit , data_type_to_base_unit ,
  enum_type_to_data_type , struct_type_to_data_type , struct_type_to_enum_type , struct_type_to_struct_type ,
  struct_type_to_unit , struct_type_to_base_unit , stream_meta_type_to_stream_meta_type , stream_to_stream_meta_type ,
  stream_to_struct_type
}
 dependency type for loose coupling More...
 
typedef std::unordered_map< std::string, std::unordered_set< std::string > > ToFromMap
 dependencies are stored in ToFrom maps (not in FromTo maps) to raise performance.
 
using ValidationProblemId = void *
 Id to identify a concrete validation problem entry.
 

Public Member Functions

DEV_ESSENTIAL_DEPRECATED_VALIDATION_API ValidationServiceInfo ()=default
 default CTOR
 
void addDependency (const Dependency &dependency)
 add the dependency to the depemndency model More...
 
void removed (const datamodel::BaseUnit &base_unit, datamodel::DataDefinition &parent_dd)
 A base unit was removed. More...
 
void removed (const datamodel::UnitPrefix &unit_prefix, datamodel::DataDefinition &parent_dd)
 A unit prefix was removed. More...
 
void removed (const datamodel::Unit &unit, datamodel::DataDefinition &parent_dd)
 A unit was removed. More...
 
void removed (const datamodel::DataType &data_type, datamodel::DataDefinition &parent_dd)
 A data_type was removed. More...
 
void removed (const datamodel::EnumType &enum_type, datamodel::DataDefinition &parent_dd)
 A enum_type was removed. More...
 
void removed (const datamodel::StructType &struct_type, datamodel::DataDefinition &parent_dd)
 A struct_type was removed. More...
 
void removed (const datamodel::StreamMetaType &stream_meta_type, datamodel::DataDefinition &parent_dd)
 A stream_meta_type was removed. More...
 
void removed (const datamodel::Stream &stream, datamodel::DataDefinition &parent_dd)
 A stream was removed. More...
 
void renamed (const datamodel::BaseUnit &base_unit, const std::string &old_name, datamodel::DataDefinition &parent_dd)
 Update all dependency to the renamed base_unit. More...
 
void renamed (const datamodel::UnitPrefix &unit_prefix, const std::string &old_name, datamodel::DataDefinition &parent_dd)
 Update all dependency to the renamed unit_prefix. More...
 
void renamed (const datamodel::Unit &unit, const std::string &old_name, datamodel::DataDefinition &parent_dd)
 Update all dependency to the renamed unit. More...
 
void renamed (const datamodel::DataType &data_type, const std::string &old_name, datamodel::DataDefinition &parent_dd)
 Update all dependency to the renamed data_type. More...
 
void renamed (const datamodel::EnumType &enum_type, const std::string &old_name, datamodel::DataDefinition &parent_dd)
 Update all dependency to the renamed enum_type. More...
 
void renamed (const datamodel::StructType &struct_type, const std::string &old_name, datamodel::DataDefinition &parent_dd)
 Update all dependency to the renamed struct_type. More...
 
void renamed (const datamodel::StreamMetaType &stream_meta_type, const std::string &old_name, datamodel::DataDefinition &parent_dd)
 Update all dependency to the renamed base_stream_meta_typeunit. More...
 
void renamed (const datamodel::Stream &stream, const std::string &old_name, datamodel::DataDefinition &parent_dd)
 Update all dependency to the renamed stream. More...
 
bool validationNeeded () const
 this will internally prevent multiple revalidations More...
 
void forceRevalidationOfTypeDependencies (const std::string &type_name, ddl::dd::TypeOfType type, datamodel::DataDefinition &parent_dd, InvalidatedTypes &invalidated_types_to_return) const
 Collect all dependent types to the given one and sets them invalid. More...
 
void updateProblem (ValidationProblemId id, const std::shared_ptr< const ValidationProblem > &problem)
 updates or add a problem entry by id More...
 
void removeProblem (ValidationProblemId id, ValidationLevel level)
 Removes a validation propbelm entry by id and level. More...
 
ValidationLevel getValidationLevel () const
 Get the current Validation Level. More...
 
std::vector< ProblemgetProblems () const
 Get all current known problems of validation. More...
 
- Public Member Functions inherited from IInfo
virtual ~IInfo ()=default
 virtual DTOR for IInfo object
 

Static Public Attributes

static constexpr const uint8_t INFO_TYPE_ID = dd::InfoType::validation_service_info
 definiton of info type to use the datamodel::Info
 

Private Attributes

std::unordered_map< uint8_t, ToFromMap_dependencies
 dependencies are stored in ToFrom maps (not in FromTo maps)
 
std::map< uint8_t, std::unordered_map< ValidationProblemId, std::shared_ptr< const ValidationProblem > > > _validation_problems
 
bool _validation_needed = true
 

Additional Inherited Members

- Protected Member Functions inherited from Info< ValidationServiceInfo >
uint8_t getInfoType () const override
 Get the Info Type object. More...
 

Detailed Description

Validation Service Info used only as one global instance at the dd::DataDefinition.

It keeps the model consistent while renaming types, unit, enum values, streammetatypes while using a loose coupling.

Remarks
: This internal API is part of the internal infomodel of the ddl::DataDefinition class for Validation. It must not be used by you directly while it is not part of the binary compatibility promise! @dev_essential_deprecated Use ddl::dd::DataDefinition::isValid() and ddl::dd::DataDefinition::getValidationProtocol() instead.

Definition at line 47 of file dd_validationinfomodel.h.

Member Enumeration Documentation

◆ DependencyType

enum DependencyType : uint8_t

dependency type for loose coupling

Enumerator
unit_to_unit_prefix 

dependency unit depends on a unit prefix

unit_to_base_unit 

dependency unit depends on a base unit

data_type_to_unit 

dependency data type depends on a unit

data_type_to_base_unit 

dependency data type depends on a base unit

enum_type_to_data_type 

dependency enum type depends on a data type

struct_type_to_data_type 

dependency struct type depends on a data type

struct_type_to_enum_type 

dependency struct type depends on a enum type

struct_type_to_struct_type 

dependency struct type depends on a struct type

struct_type_to_unit 

dependency struct type depends on a unit, if one element belongs to it

struct_type_to_base_unit 

dependency struct type depends on a base unit, if one element belongs to it

stream_meta_type_to_stream_meta_type 

dependency stream_meta_type depends on a stream_meta_type

stream_to_stream_meta_type 

dependency stream depends on a stream_meta_type

stream_to_struct_type 

dependency stream depends on a struct_type

Definition at line 56 of file dd_validationinfomodel.h.

Member Function Documentation

◆ addDependency()

void addDependency ( const Dependency dependency)

add the dependency to the depemndency model

Parameters
dependencyto add.

◆ forceRevalidationOfTypeDependencies()

void forceRevalidationOfTypeDependencies ( const std::string &  type_name,
ddl::dd::TypeOfType  type,
datamodel::DataDefinition parent_dd,
InvalidatedTypes invalidated_types_to_return 
) const

Collect all dependent types to the given one and sets them invalid.

Parameters
type_namethe type_name looking for dependencies
typethe type of the given type_name
parent_ddthe dd where to set forceRevalidation
invalidated_types_to_returnthe invalidated types collection as return value

◆ getProblems()

std::vector<Problem> getProblems ( ) const

Get all current known problems of validation.

Returns
std::vector<Problem>

◆ getValidationLevel()

ValidationLevel getValidationLevel ( ) const

Get the current Validation Level.

Returns
ValidationLevel

◆ removed() [1/8]

void removed ( const datamodel::BaseUnit base_unit,
datamodel::DataDefinition parent_dd 
)

A base unit was removed.

Parameters
base_unitthe base unit that is removed
parent_ddthe parent DD

◆ removed() [2/8]

void removed ( const datamodel::DataType data_type,
datamodel::DataDefinition parent_dd 
)

A data_type was removed.

This will invalidate all dependent structs using the data_type!

Parameters
data_typethe data_type that is removed
parent_ddthe parent DD

◆ removed() [3/8]

void removed ( const datamodel::EnumType enum_type,
datamodel::DataDefinition parent_dd 
)

A enum_type was removed.

This will invalidate all dependent structs using the enum_type!

Parameters
enum_typethe enum_type that is removed
parent_ddthe parent DD

◆ removed() [4/8]

void removed ( const datamodel::Stream stream,
datamodel::DataDefinition parent_dd 
)

A stream was removed.

Parameters
streamthe stream that is removed
parent_ddthe parent DD

◆ removed() [5/8]

void removed ( const datamodel::StreamMetaType stream_meta_type,
datamodel::DataDefinition parent_dd 
)

A stream_meta_type was removed.

This will invalidate all dependent streams and other stream_meta_type using the stream_meta_type!

Parameters
stream_meta_typethe stream_meta_type that is removed
parent_ddthe parent DD

◆ removed() [6/8]

void removed ( const datamodel::StructType struct_type,
datamodel::DataDefinition parent_dd 
)

A struct_type was removed.

This will invalidate all dependent structs using the struct_type!

Parameters
struct_typethe struct_type that is removed
parent_ddthe parent DD

◆ removed() [7/8]

void removed ( const datamodel::Unit unit,
datamodel::DataDefinition parent_dd 
)

A unit was removed.

This will invalidate all dependent struct_types and data_types using the unit!

Parameters
unitthe unit that is removed
parent_ddthe parent DD

◆ removed() [8/8]

void removed ( const datamodel::UnitPrefix unit_prefix,
datamodel::DataDefinition parent_dd 
)

A unit prefix was removed.

Parameters
unit_prefixthe unit prefix that is removed
parent_ddthe parent DD

◆ removeProblem()

void removeProblem ( ValidationProblemId  id,
ValidationLevel  level 
)

Removes a validation propbelm entry by id and level.

Parameters
idthe id to find the problem
levelthe level the entry belongs to

◆ renamed() [1/8]

void renamed ( const datamodel::BaseUnit base_unit,
const std::string &  old_name,
datamodel::DataDefinition parent_dd 
)

Update all dependency to the renamed base_unit.

Parameters
base_unitthe base_unit renamed
old_namethe old name of the base_unit
parent_ddthe parent DD

◆ renamed() [2/8]

void renamed ( const datamodel::DataType data_type,
const std::string &  old_name,
datamodel::DataDefinition parent_dd 
)

Update all dependency to the renamed data_type.

Parameters
data_typethe data_type renamed
old_namethe old name of the data_type
parent_ddthe parent DD

◆ renamed() [3/8]

void renamed ( const datamodel::EnumType enum_type,
const std::string &  old_name,
datamodel::DataDefinition parent_dd 
)

Update all dependency to the renamed enum_type.

Parameters
enum_typethe enum_type renamed
old_namethe old name of the enum_type
parent_ddthe parent DD

◆ renamed() [4/8]

void renamed ( const datamodel::Stream stream,
const std::string &  old_name,
datamodel::DataDefinition parent_dd 
)

Update all dependency to the renamed stream.

Parameters
streamthe stream renamed
old_namethe old name of the stream
parent_ddthe parent DD

◆ renamed() [5/8]

void renamed ( const datamodel::StreamMetaType stream_meta_type,
const std::string &  old_name,
datamodel::DataDefinition parent_dd 
)

Update all dependency to the renamed base_stream_meta_typeunit.

Parameters
stream_meta_typethe stream_meta_type renamed
old_namethe old name of the stream_meta_type
parent_ddthe parent DD

◆ renamed() [6/8]

void renamed ( const datamodel::StructType struct_type,
const std::string &  old_name,
datamodel::DataDefinition parent_dd 
)

Update all dependency to the renamed struct_type.

Parameters
struct_typethe struct_type renamed
old_namethe old name of the struct_type
parent_ddthe parent DD

◆ renamed() [7/8]

void renamed ( const datamodel::Unit unit,
const std::string &  old_name,
datamodel::DataDefinition parent_dd 
)

Update all dependency to the renamed unit.

Parameters
unitthe unit renamed
old_namethe old name of the unit
parent_ddthe parent DD

◆ renamed() [8/8]

void renamed ( const datamodel::UnitPrefix unit_prefix,
const std::string &  old_name,
datamodel::DataDefinition parent_dd 
)

Update all dependency to the renamed unit_prefix.

Parameters
unit_prefixthe unit_prefix renamed
old_namethe old name of the unit_prefix
parent_ddthe parent DD

◆ updateProblem()

void updateProblem ( ValidationProblemId  id,
const std::shared_ptr< const ValidationProblem > &  problem 
)

updates or add a problem entry by id

Parameters
idthe id of the problem
problemthe problem entry

◆ validationNeeded()

bool validationNeeded ( ) const

this will internally prevent multiple revalidations

Returns
true a validation is needed
false a validation is not needed