$darkmode
cloe::SimulatorSchema Class Reference
Inheritance diagram for cloe::SimulatorSchema:
Collaboration diagram for cloe::SimulatorSchema:

Public Member Functions

bool validate (const Conf &c, std::optional< SchemaError > &err) const override
 
- Public Member Functions inherited from cloe::FactoryPlugin< SimulatorConf, SimulatorFactory >
void add_plugin (const std::string &name, std::shared_ptr< Plugin > p)
 
- Public Member Functions inherited from fable::schema::FactoryPointerless< T >
 FactoryPointerless (const FactoryPointerless< T > &other)=default
 
 FactoryPointerless (FactoryPointerless< T > &&other) noexcept=default
 
FactoryPointerless< T > & operator= (const FactoryPointerless< T > &other)=default
 
FactoryPointerless< T > & operator= (FactoryPointerless< T > &&other) noexcept=default
 
- Public Member Functions inherited from fable::schema::FactoryBase< T, FactoryPointerless< T > >
 FactoryBase (std::string desc="")
 
 FactoryBase (std::string desc, FactoryPairList fs)
 
 FactoryBase (std::string desc, FactoryMap &&fs)
 
FactoryPointerless< T > factory_key (const std::string &keyword) &&
 
FactoryPointerless< T > args_key (const std::string &keyword) &&
 
FactoryPointerless< T > args_subset (bool value) &&
 
FactoryPointerless< T > transform_schema (TransformFunc f) &&
 
void set_factory_key (const std::string &keyword)
 
void set_args_key (const std::string &keyword)
 
void set_args_subset (bool value)
 
void set_transform_schema (TransformFunc f)
 
const TypeFactory & get_factory (const std::string &key) const
 
std::vector< std::string > get_factory_keys () const
 
bool has_factory (const std::string &key) const
 
bool add_factory (const std::string &key, Box &&s, MakeFunc f)
 
void set_factory (const std::string &key, Box &&s, MakeFunc f)
 
void add_default_factory (const std::string &key)
 
Json json_schema () const override
 
bool validate (const Conf &c, std::optional< SchemaError > &err) const override
 
Type make (const Conf &c) const
 
Type deserialize (const Conf &c) const
 
Json serialize (const Type &x) const
 
void serialize_into (Json &j, const Type &x) const
 
void deserialize_into (const Conf &c, Type &x) const
 
void from_conf (const Conf &) override
 
void to_json (Json &) const override
 
virtual Json to_json () const
 
virtual void to_json (Json &) const =0
 
void reset_ptr () override
 
- Public Member Functions inherited from fable::schema::Base< FactoryPointerless< T > >
std::unique_ptr< Interfaceclone () const override
 
 operator Box () const
 
JsonType type () const override
 
std::string type_string () const override
 
Json usage () const override
 
bool is_required () const override
 
FactoryPointerless< T > require () &&
 
FactoryPointerless< T > required (bool value) &&
 
FactoryPointerless< T > reset_pointer () &&
 
bool has_description () const
 
void set_description (std::string s) override
 
const std::string & description () const override
 
FactoryPointerless< T > description (std::string desc) &&
 
- Public Member Functions inherited from fable::schema::Interface
virtual bool is_variant () const
 
virtual void validate_or_throw (const Conf &c) const final
 
virtual std::optional< SchemaErrorfail (const Conf &c) const final
 
virtual bool is_valid (const Conf &c) const final
 
virtual Json to_json () const
 

Additional Inherited Members

- Public Types inherited from fable::schema::FactoryBase< T, FactoryPointerless< T > >
using Type = T
 
using MakeFunc = std::function< T(const Conf &c)>
 
using TransformFunc = std::function< Box(Struct &&)>
 
using FactoryMap = std::map< std::string, TypeFactory >
 
using FactoryPairList = std::initializer_list< std::pair< std::string, TypeFactory > >
 
- Protected Member Functions inherited from fable::schema::FactoryBase< T, FactoryPointerless< T > >
 FactoryBase (const FactoryBase &other)
 
 FactoryBase (FactoryBase &&) noexcept=default
 
FactoryBaseoperator= (const FactoryBase &other)
 
FactoryBaseoperator= (FactoryBase &&) noexcept=default
 
void reset_schema ()
 
std::vector< Boxfactory_schemas () const
 
std::vector< Jsonfactory_json_schemas () const
 
- Protected Member Functions inherited from fable::schema::Base< FactoryPointerless< T > >
 Base (const Base< FactoryPointerless< T > > &)=default
 
 Base (Base< FactoryPointerless< T > > &&) noexcept=default
 
 Base (JsonType t, std::string desc)
 
 Base (JsonType t)
 
 Base (std::string desc)
 
Base< FactoryPointerless< T > > & operator= (const Base< FactoryPointerless< T > > &)=default
 
Base< FactoryPointerless< T > > & operator= (Base< FactoryPointerless< T > > &&) noexcept=default
 
bool validate_type (const Conf &c, std::optional< SchemaError > &err) const
 
SchemaError error (const Conf &c, std::string_view format, Args &&... args) const
 
SchemaError error (const ConfError &e) const
 
SchemaError wrong_type (const Conf &c) const
 
bool set_error (std::optional< SchemaError > &err, const Conf &c, std::string_view format, Args &&... args) const
 
bool set_error (std::optional< SchemaError > &err, const ConfError &e) const
 
bool set_error (std::optional< SchemaError > &err, SchemaError &&e) const
 
bool set_wrong_type (std::optional< SchemaError > &err, const Conf &c) const
 
void augment_schema (Json &j) const
 
- Protected Member Functions inherited from fable::schema::Interface
 Interface (const Interface &)=default
 
 Interface (Interface &&) noexcept=default
 
Interfaceoperator= (const Interface &)=default
 
Interfaceoperator= (Interface &&) noexcept=default
 
- Protected Attributes inherited from fable::schema::FactoryBase< T, FactoryPointerless< T > >
std::unique_ptr< Variantschema_
 
TransformFunc transform_func_
 
FactoryMap available_
 
std::string factory_key_
 
std::string args_key_
 
bool args_subset_
 
- Protected Attributes inherited from fable::schema::Base< FactoryPointerless< T > >
JsonType type_
 
bool required_
 
std::string desc_
 

Member Function Documentation

◆ validate()

bool cloe::SimulatorSchema::validate ( const Conf c,
std::optional< SchemaError > &  error 
) const
overridevirtual

Validate the input JSON configuration for correctness.

  • This method should only set error if there is an error. This method should not reset error if there is no error. Therefore, the content of error is only valid if the method returns false. This allows you to chain validates and check at the end if there was an error.
  • This method should not throw if there is a schema error!
Parameters
cJSON to check
errorreference to store error if occurred
Returns
true if valid

Implements fable::schema::Interface.


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