NEST main@caf0ae8
 
Loading...
Searching...
No Matches
nest::DataEvent< D > Class Template Reference

Event for transmitting arbitrary data. More...

#include <event.h>

Inheritance diagram for nest::DataEvent< D >:
[legend]
Collaboration diagram for nest::DataEvent< D >:
[legend]

Public Member Functions

void set_pointer (D &data)
 
std::shared_ptr< D > get_pointer () const
 
- Public Member Functions inherited from nest::Event
 Event ()
 
virtual ~Event ()
 
virtual Event * clone () const =0
 
virtual void operator() ()=0
 Deliver the event to receiver.
 
void set_receiver (Node &)
 Change pointer to receiving Node.
 
Node & get_receiver () const
 Return reference to receiving Node.
 
size_t get_receiver_node_id () const
 Return node ID of receiving Node.
 
Node & get_sender () const
 Return reference to sending Node.
 
void set_sender (Node &)
 Change pointer to sending Node.
 
size_t get_sender_node_id () const
 Sender is local.
 
size_t retrieve_sender_node_id_from_source_table () const
 Sender is not local.
 
void set_sender_node_id (const size_t)
 Change node ID of sending Node.
 
void set_sender_node_id_info (const size_t tid, const synindex syn_id, const size_t lcid)
 Set tid, syn_id, lcid of spike_data_.
 
Time const & get_stamp () const
 Return time stamp of the event.
 
void set_delay_steps (long)
 Set the transmission delay of the event.
 
long get_delay_steps () const
 Return transmission delay of the event.
 
long get_rel_delivery_steps (const Time &t) const
 Relative spike delivery time in steps.
 
size_t get_port () const
 Return the sender port number of the event.
 
size_t get_rport () const
 Return the receiver port number of the event.
 
void set_port (size_t p)
 Set the port number.
 
void set_rport (size_t p)
 Set the receiver port number (r-port).
 
double get_offset () const
 Return the creation time offset of the Event.
 
void set_offset (double t)
 Set the creation time of the Event.
 
double get_weight () const
 Return the weight.
 
void set_weight (double t)
 Set weight of the event.
 
virtual void set_drift_factor (double)
 Set drift_factor of the event (see DiffusionConnectionEvent).
 
virtual void set_diffusion_factor (double)
 Set diffusion_factor of the event (see DiffusionConnectionEvent).
 
bool sender_is_valid () const
 Returns true if the pointer to the sender node is valid.
 
bool receiver_is_valid () const
 Returns true if the pointer to the receiver node is valid.
 
bool is_valid () const
 Check integrity of the event.
 
void set_stamp (Time const &)
 Set the time stamp of the event.
 
void set_flush_event_flag (bool is_flush_event)
 Sets the flush event flag.
 
bool is_flush_event ()
 Returns whether this spike is a flush event.
 

Private Attributes

std::shared_ptr< D > data_
 

Additional Inherited Members

- Protected Attributes inherited from nest::Event
size_t sender_node_id_
 node ID of sender or 0
 
SpikeData sender_spike_data_
 spike data of sender node, in some cases required to retrieve node ID
 
Node * sender_
 Pointer to sender or nullptr.
 
Node * receiver_
 Pointer to receiver or nullptr.
 
size_t p_
 Sender port number.
 
size_t rp_
 Receiver port number (r-port).
 
long d_
 Transmission delay.
 
Time stamp_
 Time stamp.
 
long stamp_steps_
 Time stamp in steps.
 
double offset_
 Offset for precise spike times.
 
double w_
 Weight of the connection.
 

Detailed Description

template<typename D>
class nest::DataEvent< D >

Event for transmitting arbitrary data.

This event type may be used for transmitting arbitrary data between events, e.g., images or their FFTs. A shared_ptr to the data is transmitted. The date type is given as a template parameter.

Note
: Data is passed via a shared_ptr. The receiver should copy the data at once, otherwise it may be modified by the sender. I hope this scheme is thread-safe, as long as the receiver copies the data at once. HEP.
: This is a base class. Actual event types had to be derived, since operator() cannot be instantiated otherwise.

Member Function Documentation

◆ get_pointer()

template<typename D >
std::shared_ptr< D > nest::DataEvent< D >::get_pointer ( ) const
inline

◆ set_pointer()

template<typename D >
void nest::DataEvent< D >::set_pointer ( D &  data)
inline

Member Data Documentation

◆ data_

template<typename D >
std::shared_ptr< D > nest::DataEvent< D >::data_
private

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