NEURON
nrncore_io.h
Go to the documentation of this file.
1 #pragma once
2 #include "hocdec.h"
3 
4 #include <string>
5 #include <vector>
6 
7 class CellGroup;
8 struct NrnThread;
9 struct NrnMappingInfo;
10 
11 void create_dir_path(const std::string& path);
12 std::string get_write_path();
13 std::string get_filename(const std::string& path, std::string file_name);
14 
15 // returns start pointer of the container's data
16 template <typename T>
17 inline T* begin_ptr(std::vector<T>& v) {
18  return v.empty() ? NULL : &v[0];
19 }
20 
21 
22 // to avoid incompatible dataset between neuron and coreneuron
23 // add version string to the dataset files
24 extern const char* bbcore_write_version;
25 extern int chkpnt;
26 
27 void write_memb_mech_types(const char* fname);
28 void write_globals(const char* fname);
29 void write_nrnthread(const char* fname, NrnThread& nt, CellGroup& cg);
30 void writeint_(int* p, size_t size, FILE* f);
31 void writedbl_(double* p, size_t size, FILE* f);
32 
33 void write_uint32vec(std::vector<uint32_t>& vec, FILE* f);
34 
35 #define writeint(p, size) writeint_(p, size, f)
36 #define writedbl(p, size) writedbl_(p, size, f)
37 // also for read
38 struct Memb_list;
39 using bbcore_write_t = void (*)(double*,
40  int*,
41  int*,
42  int*,
43  Memb_list*,
44  std::size_t,
45  Datum*,
46  Datum*,
47  double*,
48  NrnThread*);
49 
50 void write_nrnthread_task(const char*, CellGroup* cgs, bool append);
51 void nrnbbcore_vecplay_write(FILE* f, NrnThread& nt);
52 
53 void nrn_write_mapping_info(const char* path, int gid, NrnMappingInfo& minfo);
#define v
Definition: md1redef.h:11
void append(Item *ql, Item *q)
Definition: list.cpp:289
void write_uint32vec(std::vector< uint32_t > &vec, FILE *f)
Definition: nrncore_io.cpp:310
void write_memb_mech_types(const char *fname)
Definition: nrncore_io.cpp:58
void create_dir_path(const std::string &path)
create directory with given path
Definition: nrncore_io.cpp:28
std::string get_filename(const std::string &path, std::string file_name)
Definition: nrncore_io.cpp:51
void write_globals(const char *fname)
Definition: nrncore_io.cpp:74
void(*)(double *, int *, int *, int *, Memb_list *, std::size_t, Datum *, Datum *, double *, NrnThread *) bbcore_write_t
Definition: nrncore_io.h:48
void writeint_(int *p, size_t size, FILE *f)
Definition: nrncore_io.cpp:298
T * begin_ptr(std::vector< T > &v)
Definition: nrncore_io.h:17
void nrn_write_mapping_info(const char *path, int gid, NrnMappingInfo &minfo)
dump mapping information to gid_3.dat file
Definition: nrncore_io.cpp:531
void writedbl_(double *p, size_t size, FILE *f)
Definition: nrncore_io.cpp:304
int chkpnt
Definition: nrncore_io.cpp:24
void nrnbbcore_vecplay_write(FILE *f, NrnThread &nt)
Definition: nrncore_io.cpp:319
void write_nrnthread(const char *fname, NrnThread &nt, CellGroup &cg)
Definition: nrncore_io.cpp:116
std::string get_write_path()
Definition: nrncore_io.cpp:43
const char * bbcore_write_version
Definition: nrncore_io.cpp:25
void write_nrnthread_task(const char *, CellGroup *cgs, bool append)
Write all dataset ids to files.dat.
Definition: nrncore_io.cpp:366
size_t p
#define NULL
Definition: spdefs.h:105
A view into a set of mechanism instances.
Definition: nrnoc_ml.h:34
Compartment mapping information for NrnThread.
size_t size()
number of cells
Represent main neuron object computed by single thread.
Definition: multicore.h:58
Non-template stable handle to a generic value.