~awuerl/blitzortung-tracker/0.9

« back to all changes in this revision

Viewing changes to source/lib/data/EventsHeader.cc

  • Committer: Andreas Wuerl
  • Date: 2012-03-08 22:02:31 UTC
  • Revision ID: andi@debian-20120308220231-8dc444kpv5b4s72p
backported most of the 1.0 features

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
    }
22
22
 
23
23
    EventsHeader::EventsHeader(Format::CP dataFormat, const gr::date& date) :
 
24
      version_(1),
24
25
      date_(date),
25
26
      dataFormat_(dataFormat),
26
27
      logger_("data.EventsHeader")
88
89
        }
89
90
      }
90
91
 
 
92
      fstream.read((char*)&version_, sizeof(version_));
 
93
      if (logger_.isDebugEnabled())
 
94
        logger_.debugStream() << "read() version: " << version_;
 
95
 
91
96
      {
92
97
        unsigned int fileEpochDays;
93
98
 
94
99
        // read file version from file
95
 
        fstream.read((char*)&fileEpochDays, sizeof(unsigned int));
 
100
        fstream.read((char*)&fileEpochDays, sizeof(fileEpochDays));
96
101
        date_ = STARTOFEPOCH + gr::days(fileEpochDays);
 
102
 
97
103
        if (logger_.isDebugEnabled())
98
104
          logger_.debugStream() << "read() epoch: " << fileEpochDays << " = " << date_;
99
105
      }
108
114
 
109
115
      fstream.seekg(0, std::ios::end);
110
116
      unsigned int filesize = fstream.tellg();
111
 
 
112
117
      
113
118
      fstream.close();
114
119
      
117
122
      numberOfEvents_ = filesize / getEventSize();
118
123
 
119
124
      if (logger_.isDebugEnabled())
 
125
        logger_.debugStream() << "read() numberofevents: " << filesize << " / " << getEventSize() << " = " << filesize / getEventSize() << " => filesize = " << numberOfEvents_ * getEventSize();
 
126
 
 
127
      if (logger_.isDebugEnabled())
120
128
        logger_.debugStream() << "read() date " << date_ << " #events " << numberOfEvents_ << " eventsize " << getEventSize() << " filesize " << filesize;
121
129
 
122
130
      if (numberOfEvents_ * getEventSize() != filesize)
158
166
 
159
167
      fstream.write(ID, 4);
160
168
 
 
169
      fstream.write((char*)&version_, sizeof(version_));
 
170
 
161
171
      {
162
172
        unsigned int fileEpochDays = (date_ - STARTOFEPOCH).days();
163
 
        fstream.write((char*) &fileEpochDays, sizeof(unsigned int));
 
173
        fstream.write((char*) &fileEpochDays, sizeof(fileEpochDays));
164
174
      }
165
175
 
166
176
      dataFormat_->toStream(fstream);
188
198
      return Event::AP(new Event(dataFormat_, date_, stream));
189
199
    }
190
200
        
 
201
    Event::AP EventsHeader::createEvent(std::iostream& stream, const Format::CP& dataFormat) const {
 
202
      return Event::AP(new Event(dataFormat, date_, stream));
 
203
    }
 
204
        
191
205
    unsigned int EventsHeader::getSize() const {
192
 
      return 12;
 
206
      return 14;
193
207
    }
194
208
    
195
209
    std::ostream& operator<<(std::ostream& os, const EventsHeader& header) {