Lumiera  0.pre.03
»edit your freedom«
output-designation.cpp File Reference

Go to the source code of this file.

Description

Implementation details of OutputDesignation and OutputMapping.

Both of these are mostly intended as interface elements to represent the intention to connect to another MObject, or a translation and mapping of such connection intentions. But parts of the implementation are kept here in a translation unit separate of the usage site: The implementation of the various kinds of OutputDesignation spec (absolute, indirect, relative) and the connection between OutputMapping and the rules based system.

See also
OutputDesignation
OutputMapping
OutputMapping_test

Definition in file output-designation.cpp.

#include "lib/error.hpp"
#include "lib/symbol.hpp"
#include "lib/query-util.hpp"
#include "common/query/query-resolver.hpp"
#include "steam/mobject/mobject.hpp"
#include "steam/mobject/placement-ref.hpp"
#include "steam/mobject/output-designation.hpp"
#include "steam/mobject/output-mapping.hpp"
#include "steam/config-resolver.hpp"
#include "lib/util.hpp"
#include <boost/functional/hash.hpp>
#include <cstdlib>

Classes

struct  AbsoluteSpec
 
struct  IndirectSpec
 
struct  RelativeSpec
 

Typedefs

typedef OutputDesignation::PID PID
 
typedef OutputDesignation::PPipe PPipe
 
typedef OutputDesignation::TargetSpec TargetSpec
 

Functions

Query< asset::Pipebuild_corresponding_sourceQuery (Query< asset::Pipe > const &)
 ..and build the corresponding defaults source query for this case
 
uint is_defaults_query_with_channel (Query< asset::Pipe > const &)
 detect the special case, when actually the Nth solution of a defaults query is requested
 
HashVal resolveQuery (Query< asset::Pipe > const &)
 delegate target pipe resolution to the rules system More...
 
HashVal slot (Query< asset::Pipe > const &)
 yield a suitable table slot for this query More...
 

Variables

Symbol SEQNR_PREDICATE = "ord"
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::mobject
 Media-Objects, edit operations and high-level session.
 

Function Documentation

◆ slot()

HashVal slot ( Query< asset::Pipe > const &  query)

yield a suitable table slot for this query

to allow for the use of queries mixed with normal Pipe-IDs in a single table, we rely on the hash_value() function, to be picked up by ADL

Examples:
/Werk/devel/lumi/src/lib/hetero-data.hpp.

Definition at line 153 of file output-designation.cpp.

References steam::mobject::_mapping::slot().

Referenced by steam::mobject::_mapping::slot().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resolveQuery()

HashVal resolveQuery ( Query< asset::Pipe > const &  query4pipe)

delegate target pipe resolution to the rules system

Parameters
Queryfor pipe, which is handed over as-is to the rules engine.
Returns
key for a table slot to hold the associated mapping. This slot is assumed to contain the mapped Pipe-ID for the given query – including the possibility of a zero hash to signal an unconnected mapping.

Definition at line 164 of file output-designation.cpp.

References ConfigResolver::instance, QueryHandler< TY >::resolve(), and steam::mobject::_mapping::resolveQuery().

Referenced by steam::mobject::_mapping::resolveQuery().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: