23#ifndef RECORDING_BACKEND_SIONLIB_H
24#define RECORDING_BACKEND_SIONLIB_H
216 const std::vector< std::
string >& double_value_names,
217 const std::vector< std::
string >& long_value_names ) override;
225 const std::vector<
double >& double_values,
226 const std::vector<
long >& long_values ) override;
262 void reserve(
size_t size );
263 void ensure_space(
size_t size );
264 void write(
const char* v,
size_t n );
281 return max_size_ - ptr_;
296 template <
typename T >
337 typedef std::vector< std::map< size_t, DeviceEntry > >
device_map;
Dictionary class for interface to Python and C++ API.
Definition dictionary.h:213
Encapsulate information sent between nodes.
Definition event.h:103
Definition recording_backend_sionlib.h:251
size_t get_size()
Definition recording_backend_sionlib.h:273
char * read()
Definition recording_backend_sionlib.h:291
size_t get_free()
Definition recording_backend_sionlib.h:279
SIONBuffer & operator<<(const T data)
size_t get_capacity()
Definition recording_backend_sionlib.h:267
char * buffer_
Definition recording_backend_sionlib.h:253
void clear()
Definition recording_backend_sionlib.h:285
size_t ptr_
Definition recording_backend_sionlib.h:254
size_t max_size_
Definition recording_backend_sionlib.h:255
Definition recording_backend_sionlib.h:196
void get_device_defaults(Dictionary &) const override
Return the per-device defaults by writing it to the given params dictionary.
Definition recording_backend_sionlib.cpp:704
MPI_Comm local_comm_
Definition recording_backend_sionlib.h:344
void set_status(const Dictionary &) override
Set the status of the recording backend using the key-value pairs contained in the params dictionary.
Definition recording_backend_sionlib.cpp:651
std::vector< std::map< size_t, DeviceEntry > > device_map
Definition recording_backend_sionlib.h:337
device_map devices_
Definition recording_backend_sionlib.h:338
const std::string build_filename_() const
Definition recording_backend_sionlib.cpp:515
void disenroll(const RecordingDevice &device) override
Disenroll a RecordingDevice from the RecordingBackend.
Definition recording_backend_sionlib.cpp:101
std::map< size_t, FileEntry > file_map
Definition recording_backend_sionlib.h:340
RecordingBackendSIONlib()
Definition recording_backend_sionlib.cpp:50
void prepare() override
Prepare the backend at begin of the NEST Simulate function.
Definition recording_backend_sionlib.cpp:669
size_t num_enrolled_devices_
Definition recording_backend_sionlib.h:248
~RecordingBackendSIONlib()
Definition recording_backend_sionlib.cpp:56
void get_status(Dictionary &) const override
Return the status of the recording backend by writing it to the given params dictionary.
Definition recording_backend_sionlib.cpp:661
void open_files_()
Definition recording_backend_sionlib.cpp:145
static const unsigned int DEV_NAME_BUFFERSIZE
Definition recording_backend_sionlib.h:199
void cleanup() override
Clean up the backend at the end of a user level call to the NEST Simulate function.
Definition recording_backend_sionlib.cpp:255
void set_value_names(const RecordingDevice &device, const std::vector< std::string > &double_value_names, const std::vector< std::string > &long_value_names) override
To make the names of recorded quantities known to the RecordingBackend, the vectors double_value_name...
Definition recording_backend_sionlib.cpp:114
void close_files_()
Definition recording_backend_sionlib.cpp:261
void finalize() override
Definition recording_backend_sionlib.cpp:69
void post_step_hook() override
Do work required at the end of each simulation step.
Definition recording_backend_sionlib.cpp:680
file_map files_
Definition recording_backend_sionlib.h:341
void write(const RecordingDevice &device, const Event &event, const std::vector< double > &double_values, const std::vector< long > &long_values) override
Write the data from the event to the backend specific channel together with the values given.
Definition recording_backend_sionlib.cpp:421
void pre_run_hook() override
Initialize global backend-specific data structures.
Definition recording_backend_sionlib.cpp:140
double t_start_
Definition recording_backend_sionlib.h:349
std::string filename_
Definition recording_backend_sionlib.h:343
void post_run_hook() override
Clean up the backend at the end of a Run.
Definition recording_backend_sionlib.cpp:675
void get_device_status(const RecordingDevice &device, Dictionary ¶ms_dictionary) const override
Return the per-device status of the given recording device by writing it to the given params dictiona...
Definition recording_backend_sionlib.cpp:710
Parameters_ P_
Definition recording_backend_sionlib.h:365
static const unsigned int DEV_LABEL_BUFFERSIZE
Definition recording_backend_sionlib.h:200
void check_device_status(const Dictionary &) const override
Check if the given per-device properties are valid and usable by the backend.
Definition recording_backend_sionlib.cpp:698
static const unsigned int NEST_VERSION_BUFFERSIZE
Definition recording_backend_sionlib.h:202
void initialize() override
Definition recording_backend_sionlib.cpp:62
static const unsigned int VALUE_NAME_BUFFERSIZE
Definition recording_backend_sionlib.h:201
bool files_opened_
Definition recording_backend_sionlib.h:247
static const unsigned int SIONLIB_REC_BACKEND_VERSION
Definition recording_backend_sionlib.h:198
void enroll(const RecordingDevice &device, const Dictionary ¶ms) override
Enroll a RecordingDevice with the RecordingBackend.
Definition recording_backend_sionlib.cpp:74
Abstract base class for all NESTio recording backends.
Definition recording_backend.h:67
Base class for all recording devices.
Definition recording_device.h:157
Namespace for the NEST simulation kernel.
Definition beta_normalization_factor.h:33
Definition recording_backend_sionlib.h:320
const RecordingDevice & device
Definition recording_backend_sionlib.h:327
DeviceEntry(const RecordingDevice &device)
Definition recording_backend_sionlib.h:321
DeviceInfo info
Definition recording_backend_sionlib.h:328
Definition recording_backend_sionlib.h:301
std::vector< std::string > double_value_names
Definition recording_backend_sionlib.h:315
unsigned long int n_rec
Definition recording_backend_sionlib.h:314
long t_start
Definition recording_backend_sionlib.h:312
unsigned int type
Definition recording_backend_sionlib.h:308
size_t node_id
Definition recording_backend_sionlib.h:307
std::string name
Definition recording_backend_sionlib.h:309
long origin
Definition recording_backend_sionlib.h:312
DeviceInfo()
Definition recording_backend_sionlib.h:302
std::string label
Definition recording_backend_sionlib.h:310
std::vector< std::string > long_value_names
Definition recording_backend_sionlib.h:316
long t_stop
Definition recording_backend_sionlib.h:312
Definition recording_backend_sionlib.h:332
int sid
Definition recording_backend_sionlib.h:333
SIONBuffer buffer
Definition recording_backend_sionlib.h:334
Definition recording_backend_sionlib.h:352
void set(const RecordingBackendSIONlib &, const Dictionary &)
Definition recording_backend_sionlib.cpp:628
long sion_chunksize_
the size of SIONlib's buffer.
Definition recording_backend_sionlib.h:355
Parameters_()
Definition recording_backend_sionlib.cpp:608
void get(const RecordingBackendSIONlib &, Dictionary &) const
Definition recording_backend_sionlib.cpp:618
bool sion_collective_
use SIONlib's collective mode.
Definition recording_backend_sionlib.h:354
std::string filename_
the file name extension to use, without .
Definition recording_backend_sionlib.h:353
long buffer_size_
the size of the internal buffer.
Definition recording_backend_sionlib.h:357
int sion_n_files_
the number of SIONLIB container files used.
Definition recording_backend_sionlib.h:356