NEST main@caf0ae8
 
Loading...
Searching...
No Matches
conn_builder_factory.h
Go to the documentation of this file.
1/*
2 * conn_builder_factory.h
3 *
4 * This file is part of NEST.
5 *
6 * Copyright (C) 2004 The NEST Initiative
7 *
8 * NEST is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * NEST is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with NEST. If not, see <http://www.gnu.org/licenses/>.
20 *
21 */
22
23#ifndef CONN_BUILDER_FACTORY_H
24#define CONN_BUILDER_FACTORY_H
25
26// C++ includes:
27#include <map>
28
29// Includes from nestkernel:
30#include "conn_builder.h"
31
32
33namespace nest
34{
35
44{
45public:
49
61 const Dictionary&,
62 const std::vector< Dictionary >& ) const = 0;
63};
64
68template < typename ConnBuilderType >
70{
71public:
74 NodeCollectionPTR targets,
75 ThirdOutBuilder* third_out,
76 const Dictionary& conn_spec,
77 const std::vector< Dictionary >& syn_specs ) const override
78 {
79 return new ConnBuilderType( sources, targets, third_out, conn_spec, syn_specs );
80 }
81};
82
91{
92public:
96
103 const Dictionary&,
104 const std::vector< Dictionary >& ) const = 0;
105};
106
110template < typename ThirdConnBuilderType >
112{
113public:
116 NodeCollectionPTR targets,
117 ThirdInBuilder* third_in,
118 const Dictionary& conn_spec,
119 const std::vector< Dictionary >& syn_specs ) const override
120 {
121 return new ThirdConnBuilderType( sources, targets, third_in, conn_spec, syn_specs );
122 }
123};
124
125} // namespace nest
126
127#endif
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Factory class for bipartite ConnBuilders.
Definition conn_builder_factory.h:70
BipartiteConnBuilder * create(NodeCollectionPTR sources, NodeCollectionPTR targets, ThirdOutBuilder *third_out, const Dictionary &conn_spec, const std::vector< Dictionary > &syn_specs) const override
Definition conn_builder_factory.h:73
Abstract base class for Bipartite ConnBuilders which form the components of ConnBuilder.
Definition conn_builder.h:69
Generic factory class for bipartite ConnBuilder objects.
Definition conn_builder_factory.h:44
virtual BipartiteConnBuilder * create(NodeCollectionPTR, NodeCollectionPTR, ThirdOutBuilder *, const Dictionary &, const std::vector< Dictionary > &) const =0
virtual ~GenericBipartiteConnBuilderFactory()
Definition conn_builder_factory.h:46
Generic factory class for tripartite ConnBuilder objects.
Definition conn_builder_factory.h:91
virtual ~GenericThirdConnBuilderFactory()
Definition conn_builder_factory.h:93
virtual ThirdOutBuilder * create(NodeCollectionPTR, NodeCollectionPTR, ThirdInBuilder *, const Dictionary &, const std::vector< Dictionary > &) const =0
Factory method for builders for tripartite connection rules.
Factory class for Third-factor ConnBuilders.
Definition conn_builder_factory.h:112
ThirdOutBuilder * create(NodeCollectionPTR sources, NodeCollectionPTR targets, ThirdInBuilder *third_in, const Dictionary &conn_spec, const std::vector< Dictionary > &syn_specs) const override
Factory method for builders for tripartite connection rules.
Definition conn_builder_factory.h:115
Builder creating "thírd in" connections based on data from "third out" builder.
Definition conn_builder.h:333
Builder for connections from third-factor nodes to primary target populations.
Definition conn_builder.h:408
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
std::shared_ptr< NodeCollection > NodeCollectionPTR
Definition node_collection.h:50