39 std::map<std::string, boost::shared_ptr<TriggerFanOut>>
triggerImpl;
52 std::map<std::string, NetworkInformation>
_networks{};
59 template<
typename UserType>
61 const std::string& description, AccessModeFlags flags);
63 template<
typename... Args>
67 template<
typename UserType>
68 using AccessorMap = std::map<std::string, boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>>>;
101 std::set<Model::ProcessVariableProxy, ProcessVariableComperator> _triggers;
105 void makeDirectConnectionForFeederWithImplementation(NetworkInformation& net);
106 void makeFanOutConnectionForFeederWithImplementation(
108 void makeConnectionForFeederWithoutImplementation(NetworkInformation& net);
109 void makeConnectionForConstantFeeder(NetworkInformation& net);
111 template<
typename UserType>
112 boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>> getProcessVariable(
const VariableNetworkNode& node);
114 template<
typename UserType>
115 boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>> createDeviceVariable(
VariableNetworkNode const& node);
117 template<
typename UserType>
120 template<
typename UserType>
121 std::pair<boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>>,
122 boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>>>
Pseudo type to identify nodes which can have arbitrary types.
void finalise()
Finalise the model and register all PVs with the control system adapter.
ConnectionMaker(Application &app)
void connect()
Realise connections.
void optimiseUnmappedVariables(const std::set< std::string > &names)
Execute the optimisation request from the control system adapter (remove unused variables)
std::string getFullyQualifiedPath() const
Return the fully qualified path.
std::map< std::string, boost::shared_ptr< ChimeraTK::NDRegisterAccessor< UserType > > > AccessorMap
void setDebugConnections(bool enable)
ChimeraTK::TemplateUserTypeMap< AccessorMap > _decoratedPvImpls
std::set< std::string > _triggerNetworks
NetworkInformation checkAndFinaliseNetwork(Model::ProcessVariableProxy &proxy)
void createProcessVariable(const VariableNetworkNode &node, size_t length, const std::string &unit, const std::string &description, AccessModeFlags flags)
NetworkVisitor(Application &app)
void finaliseNetwork(NetworkInformation &net)
std::map< std::string, NetworkInformation > _networks
NetworkInformation checkNetwork(Model::ProcessVariableProxy &proxy)
Class describing a node of a variable network.
InvalidityTracer application module.
std::list< std::pair< boost::shared_ptr< ChimeraTK::NDRegisterAccessor< UserType > >, VariableNetworkNode > > ConsumerImplementationPairs
Helper predicate to put ProcessVariableProxies into std::set.
bool operator()(const Model::ProcessVariableProxy &a, const Model::ProcessVariableProxy &b) const