4 #include <sio/io_device.h>
5 #include <sio/version.h>
11 SIO_DATA( device , &nIntParameters , 1 ) ;
12 for(
int i=0; i< nIntParameters ; i++ ) {
14 SIO_SDATA( device, key ) ;
16 SIO_DATA( device , &nInt , 1 ) ;
18 for(
int j=0; j< nInt ; j++ ) {
19 SIO_DATA( device , &intVec[j] , 1 ) ;
23 int nFloatParameters ;
24 SIO_DATA( device , &nFloatParameters , 1 ) ;
25 for(
int i=0; i< nFloatParameters ; i++ ) {
27 SIO_SDATA( device, key ) ;
29 SIO_DATA( device , &nFloat , 1 ) ;
31 for(
int j=0; j< nFloat ; j++ ) {
32 SIO_DATA( device , &floatVec[j] , 1 ) ;
36 if( vers > SIO_VERSION_ENCODE( 2, 16 ) ) {
38 int nDoubleParameters ;
39 SIO_DATA( device , &nDoubleParameters , 1 ) ;
40 for(
int i=0; i< nDoubleParameters ; i++ ) {
42 SIO_SDATA( device, key ) ;
44 SIO_DATA( device , &nDouble , 1 ) ;
46 for(
int j=0; j< nDouble ; j++ ) {
47 SIO_DATA( device , &doubleVec[j] , 1 ) ;
52 int nStringParameters ;
53 SIO_DATA( device , &nStringParameters , 1 ) ;
54 for(
int i=0; i< nStringParameters ; i++ ) {
56 SIO_SDATA( device, key ) ;
58 SIO_DATA( device , &nString , 1 ) ;
60 for(
int j=0; j< nString ; j++ ){
62 SIO_SDATA( device, val ) ;
72 SIO_DATA( device , &nIntParameters , 1 ) ;
73 for(
int i=0; i< nIntParameters ; i++ ) {
76 int nInt = intVec.
size() ;
77 SIO_SDATA( device, intKeys[i] ) ;
78 SIO_DATA( device , &nInt , 1 ) ;
79 for(
int j=0; j< nInt ; j++ ) {
80 SIO_SDATA( device, intVec[j] ) ;
85 SIO_DATA( device , &nFloatParameters , 1 ) ;
86 for(
int i=0; i< nFloatParameters ; i++ ) {
89 int nFloat = floatVec.
size() ;
90 SIO_SDATA( device, floatKeys[i] ) ;
91 SIO_DATA( device , &nFloat , 1 ) ;
92 for(
int j=0; j< nFloat ; j++ ){
93 SIO_SDATA( device, floatVec[j] ) ;
98 SIO_DATA( device , &nDoubleParameters , 1 ) ;
99 for(
int i=0; i< nDoubleParameters ; i++ ) {
102 int nDouble = doubleVec.
size() ;
103 SIO_SDATA( device, doubleKeys[i] ) ;
104 SIO_DATA( device , &nDouble , 1 ) ;
105 for(
int j=0; j< nDouble ; j++ ){
106 SIO_SDATA( device, doubleVec[j] ) ;
111 SIO_DATA( device , &nStringParameters , 1 ) ;
112 for(
int i=0; i< nStringParameters ; i++ ){
115 int nString = stringVec.
size() ;
116 SIO_SDATA( device, stringKeys[i] ) ;
117 SIO_DATA( device , &nString , 1 ) ;
118 for(
int j=0; j< nString ; j++ ){
119 SIO_SDATA( device, stringVec[j] ) ;
virtual DoubleVec & getDoubleVals(const std::string &key, DoubleVec &values) const =0
Adds all double values for the given key to values.
static void write(sio::write_device &device, const EVENT::LCParameters ¶ms)
Writes lcio objects to an SIO stream.
virtual const StringVec & getIntKeys(StringVec &keys) const =0
Returns a list of all keys of integer parameters.
virtual const StringVec & getStringKeys(StringVec &keys) const =0
Returns a list of all keys of string parameters.
virtual const StringVec & getDoubleKeys(StringVec &keys) const =0
Returns a list of all keys of double parameters.
Simple interface to store generic named parameters of type int, float and string. ...
virtual void setValues(const std::string &key, const IntVec &values)=0
Set integer values for the given key.
virtual const StringVec & getFloatKeys(StringVec &keys) const =0
Returns a list of all keys of float parameters.
virtual StringVec & getStringVals(const std::string &key, StringVec &values) const =0
Adds all string values for the given key to values.
static void read(sio::read_device &device, EVENT::LCParameters ¶ms, sio::version_type vers)
Reads objects from an SIO stream.
virtual IntVec & getIntVals(const std::string &key, IntVec &values) const =0
Adds all integer values for the given key to values.
virtual FloatVec & getFloatVals(const std::string &key, FloatVec &values) const =0
Adds all float values for the given key to values.