NEST  2.6.0,not_revisioned_source_dir@0
Public Member Functions | Private Member Functions | List of all members
nest::proxynode Class Reference

Proxy Node to provide Nodes, where there aren't real Nodes to be. More...

#include <proxynode.h>

Inheritance diagram for nest::proxynode:
nest::Node

Public Member Functions

 proxynode ()
 
 proxynode (index, index, index, index)
 Construct proxy node for internal use from. More...
 
port send_test_event (Node &, rport, synindex, bool)
 Send an event to the receiving_node passed as an argument. More...
 
void handle (SpikeEvent &)
 Handle incoming spike events. More...
 
void get_status (DictionaryDatum &) const
 
void set_status (const DictionaryDatum &)
 Proxy nodes have no properties. More...
 
bool is_proxy () const
 Returns true if the node is a proxy node. More...
 
- Public Member Functions inherited from nest::Node
 Node ()
 
 Node (Node const &)
 
virtual ~Node ()
 
virtual Node * clone () const
 Virtual copy constructor. More...
 
virtual bool has_proxies () const
 Returns true if the node has proxies on remote threads. More...
 
virtual bool potential_global_receiver () const
 Returns true for potential global receivers (e.g. More...
 
virtual void set_has_proxies (const bool)
 Sets has_proxies_ member variable (to switch to global spike detection mode) More...
 
virtual void set_local_receiver (const bool)
 Sets local_receiver_ member variable (to switch to global spike detection mode) More...
 
virtual bool local_receiver () const
 Returns true if the node only receives events from nodes/devices on the same thread. More...
 
virtual bool one_node_per_process () const
 Returns true if the node exists only once per process, but does not have proxies on remote threads. More...
 
virtual bool is_off_grid () const
 Returns true if the node if it sends/receives -grid events This is used to discriminate between different types of nodes, when adding new nodes to the network. More...
 
std::string get_name () const
 Return class name. More...
 
index get_gid () const
 Return global Network ID. More...
 
index get_lid () const
 Return local node ID. More...
 
index get_subnet_index () const
 Return the index to the node in the node array of the parent subnet. More...
 
int get_model_id () const
 Return model ID of the node. More...
 
Subnet * get_parent () const
 Return pointer to parent subnet. More...
 
virtual std::string print_network (int, int, std::string="")
 Prints out one line of the tree view of the network. More...
 
bool is_frozen () const
 Returns true if node is frozen, i.e., shall not be updated. More...
 
bool is_local () const
 Returns true if the node is allocated in the local process. More...
 
void init_state ()
 Set state variables to the default values for the model. More...
 
void init_buffers ()
 Initialize buffers of a node. More...
 
virtual void finalize ()
 Finalize node. More...
 
virtual void set_status (const DictionaryDatum &)=0
 Change properties of the node according to the entries in the dictionary. More...
 
virtual void get_status (DictionaryDatum &) const =0
 Export properties of the node by setting entries in the status dictionary. More...
 
virtual port handles_test_event (SpikeEvent &, rport receptor_type)
 Check if the node can handle a particular event and receptor type. More...
 
virtual port handles_test_event (RateEvent &, rport receptor_type)
 
virtual port handles_test_event (DataLoggingRequest &, rport receptor_type)
 
virtual port handles_test_event (CurrentEvent &, rport receptor_type)
 
virtual port handles_test_event (ConductanceEvent &, rport receptor_type)
 
virtual port handles_test_event (DoubleDataEvent &, rport receptor_type)
 
virtual port handles_test_event (DSSpikeEvent &, rport receptor_type)
 
virtual port handles_test_event (DSCurrentEvent &, rport receptor_type)
 
virtual void register_stdp_connection (double_t)
 Register a STDP connection. More...
 
virtual void unregister_stdp_connection (double_t)
 Unregister a STDP connection. More...
 
virtual void handle (RateEvent &e)
 Handler for rate events. More...
 
virtual void handle (DataLoggingRequest &e)
 Handler for universal data logging request. More...
 
virtual void handle (DataLoggingReply &e)
 Handler for universal data logging request. More...
 
virtual void handle (CurrentEvent &e)
 Handler for current events. More...
 
virtual void handle (ConductanceEvent &e)
 Handler for conductance events. More...
 
virtual void handle (DoubleDataEvent &e)
 Handler for DoubleData events. More...
 
virtual double_t get_K_value (double_t t)
 return the Kminus value at t (in ms). More...
 
virtual void get_K_values (double_t t, double_t &Kminus, double_t &triplet_Kminus)
 write the Kminus and triplet_Kminus values at t (in ms) to the provided locations. More...
 
virtual void get_history (double_t t1, double_t t2, std::deque< histentry >::iterator *start, std::deque< histentry >::iterator *finish)
 return the spike history for (t1,t2]. More...
 
virtual void event_hook (DSSpikeEvent &)
 Modify Event object parameters during event delivery. More...
 
virtual void event_hook (DSCurrentEvent &)
 
void set_thread (thread)
 Store the number of the thread to which the node is assigned. More...
 
thread get_thread () const
 Retrieve the number of the thread to which the node is assigned. More...
 
void set_vp (thread)
 Store the number of the virtual process to which the node is assigned. More...
 
thread get_vp () const
 Retrieve the number of the virtual process to which the node is assigned. More...
 
void set_model_id (int)
 Set the model id. More...
 
virtual bool is_subnet () const
 
DictionaryDatum get_status_base ()
 Return a dictionary with the node's properties. More...
 
void set_status_base (const DictionaryDatum &)
 Set status dictionary of a node. More...
 
bool is_model_prototype () const
 Returns true if node is model prototype. More...
 
void set_thread_lid (const index)
 set thread local index More...
 
index get_thread_lid () const
 get thread local index More...
 
bool buffers_initialized () const
 True if buffers have been initialized. More...
 
void set_buffers_initialized (bool initialized)
 

Private Member Functions

void init_state_ (const Node &)
 Private function to initialize the state of a node to model defaults. More...
 
void init_buffers_ ()
 Private function to initialize the buffers of a node. More...
 
void calibrate ()
 Re-calculate dependent parameters of the node. More...
 
void update (Time const &, const long_t, const long_t)
 Bring the node from state $t$ to $t+n*dt$. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from nest::Node
static Network * network ()
 Return pointer to network driver class. More...
 
- Protected Member Functions inherited from nest::Node
virtual size_t num_thread_siblings_ () const
 Return the number of thread siblings in SiblingContainer. More...
 
virtual Node * get_thread_sibling_ (index) const
 Return the specified member of a SiblingContainer. More...
 
virtual Node * get_thread_sibling_safe_ (index) const
 Return specified member of a SiblingContainer, with access control. More...
 
Model & get_model_ () const
 
void set_frozen_ (bool frozen)
 Mark node as frozen. More...
 
template<typename ConcreteNode >
const ConcreteNode & downcast (const Node &)
 Auxiliary function to downcast a Node to a concrete class derived from Node. More...
 
- Static Protected Attributes inherited from nest::Node
static Network * net_ =NULL
 Pointer to global network driver. More...
 

Detailed Description

Proxy Node to provide Nodes, where there aren't real Nodes to be.

Constructor & Destructor Documentation

nest::proxynode::proxynode ( )
inline
nest::proxynode::proxynode ( index  gid,
index  parent_gid,
index  model_id,
index  vp 
)

Construct proxy node for internal use from.

Parameters
GIDof represented node
GIDof parent of represented node
modelid of represented node
vpof represented node

References assert(), nest::Network::get_node(), nest::Node::network(), nest::names::parent, nest::Node::set_frozen_(), nest::Node::set_gid_(), nest::Node::set_model_id(), nest::Node::set_parent_(), and nest::Node::set_vp().

Member Function Documentation

void nest::proxynode::calibrate ( )
inlineprivatevirtual

Re-calculate dependent parameters of the node.

This function is called each time a simulation is begun/resumed. It must re-calculate all internal Variables of the node required for spike handling or updating the node.

Implements nest::Node.

void nest::proxynode::get_status ( DictionaryDatum &  ) const
inline
void nest::proxynode::handle ( SpikeEvent &  e)
inlinevirtual

Handle incoming spike events.

Default implementation of event handlers just throws an UnexpectedEvent exception.

Parameters
thrdId of the calling thread.
eEvent object.

This handler has to be implemented if a Node should accept spike events.

See also
class SpikeEvent
class UnexpectedEvent
Exceptions
UnexpectedEventThis is the default event to throw.

Reimplemented from nest::Node.

void nest::proxynode::init_buffers_ ( )
inlineprivatevirtual

Private function to initialize the buffers of a node.

This function, which must be overloaded by all derived classes, provides the implementation for initializing the buffers of a node.

See also
Node::init_buffers()

Implements nest::Node.

void nest::proxynode::init_state_ ( const Node &  )
inlineprivatevirtual

Private function to initialize the state of a node to model defaults.

This function, which must be overloaded by all derived classes, provides the implementation for initializing the state of a node to the model defaults; the state is the set of observable dynamic variables.

Parameters
Referenceto model prototype object.
See also
Node::init_state()
Note
To provide a reasonable behavior during the transition to the new scheme, init_state_() has a default implementation calling init_dynamic_state_().

Implements nest::Node.

bool nest::proxynode::is_proxy ( ) const
inlinevirtual

Returns true if the node is a proxy node.

This is implemented because the use of RTTI is rather expensive.

Reimplemented from nest::Node.

port nest::proxynode::send_test_event ( Node &  receiving_node,
rport  receptor_type,
synindex  syn_id,
bool  dummy_target 
)
virtual

Send an event to the receiving_node passed as an argument.

Default implementation of check_connection just throws UnexpectedEvent.

This is required during the connection handshaking to test, if the receiving_node can handle the event type and receptor_type sent by the source node.

If dummy_target is true, this indicates that receiving_node is derived from ConnTestDummyNodeBase and used in the first call to send_test_event(). This can be ignored in most cases, but Nodes sending DS*Events to their own event hooks and then *Events to their proper targets must send DS*Events when called with the dummy target, and *Events when called with the real target, see #478.

Reimplemented from nest::Node.

References nest::Network::get_model(), nest::Node::get_model_id(), nest::Node::network(), and nest::Model::send_test_event().

void nest::proxynode::set_status ( const DictionaryDatum &  )
inline

Proxy nodes have no properties.

If set_status() gets called for a proxy node, this is and error; we must prevent this from happening, since the user might otherwise thaw a proxy node. It also causes problems with dictionary entry checking

References assert().

void nest::proxynode::update ( Time const &  ,
const long_t  ,
const long_t   
)
inlineprivatevirtual

Bring the node from state $t$ to $t+n*dt$.

n->update(T, from, to) performs the update steps beginning at T+from .. T+to-1, ie, emitting events with time stamps T+from+1 .. T+to.

Parameters
Timenetwork time at beginning of time slice.
long_tinitial step inside time slice
long_tpost-final step inside time slice

Implements nest::Node.


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