CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FileHandler.h
Go to the documentation of this file.
1 // $Id: FileHandler.h,v 1.16.4.1 2011/03/07 11:33:04 mommsen Exp $
3 
4 #ifndef EventFilter_StorageManager_FileHandler_h
5 #define EventFilter_StorageManager_FileHandler_h
6 
12 
13 #include "boost/shared_ptr.hpp"
14 
15 #include <stdint.h>
16 #include <string>
17 #include <sys/types.h>
18 
19 
20 namespace stor {
21 
22  class I2OChain;
23 
33  {
34  public:
35 
37  (
39  const DbFileHandlerPtr,
40  const DiskWritingParams&,
41  const uint64_t& maxFileSize
42  );
43 
44  virtual ~FileHandler() {};
45 
49  void writeEvent(const I2OChain&);
50 
54  bool tooOld(const utils::TimePoint_t currentTime = utils::getCurrentTime());
55 
59  bool isFromLumiSection(const uint32_t lumiSection);
60 
65  bool tooLarge(const uint64_t& dataSize);
66 
67 
69  // File parameter getters //
71 
75  uint32_t events() const;
76 
80  uint32_t lumiSection() const
81  { return fileRecord_->lumiSection; }
82 
86  uint64_t fileSize() const;
87 
92 
93 
94  protected:
95 
99  virtual void do_writeEvent(const I2OChain& event) = 0;
100 
101 
103  // File parameter setters //
105 
109  inline void setAdler(uint32_t s)
110  { adler_ = s; }
111 
112 
114  // File bookkeeping //
116 
120  void writeToSummaryCatalog() const;
121 
126  void updateDatabase() const;
127 
128 
133  void insertFileInDatabase() const;
134 
135 
137  // File system interaction //
139 
143  void moveFileToClosed
144  (
146  );
147 
148 
149  private:
150 
155  uint64_t checkFileSizeMatch(const std::string& fileName, const uint64_t& size) const;
156 
160  bool sizeMismatch(const uint64_t& initialSize, const uint64_t& finalSize) const;
161 
165  void makeFileReadOnly(const std::string& fileName) const;
166 
170  void renameFile(const std::string& openFileName, const std::string& closedFileName) const;
171 
176  void checkDirectories() const;
177 
181  std::string logFile(const DiskWritingParams&) const;
182 
186  double calcPctDiff(const uint64_t&, const uint64_t&) const;
187 
188 
189  private:
190 
191  //Prevent copying of the FileHandler
192  FileHandler(FileHandler const&);
194 
195 
196  protected:
197 
200 
201  utils::TimePoint_t firstEntry_; // time when first event was writen
202  utils::TimePoint_t lastEntry_; // time when latest event was writen
203 
205 
206  private:
207 
208  const uint64_t maxFileSize_; // maximal file size in bytes
209 
210  const std::string logPath_; // log path
211  const std::string logFile_; // log file including path
212  std::string cmsver_; // CMSSW version string
213 
214  uint32_t adler_; // adler32 checksum for streamer file
215  };
216 
217 } // stor namespace
218 
219 #endif // EventFilter_StorageManager_FileHandler_h
220 
221 
TimePoint_t getCurrentTime()
Definition: Utils.h:158
uint64_t fileSize() const
Definition: FileHandler.cc:198
void moveFileToClosed(const FilesMonitorCollection::FileRecord::ClosingReason &)
Definition: FileHandler.cc:210
virtual void closeFile(const FilesMonitorCollection::FileRecord::ClosingReason &)=0
const uint64_t maxFileSize_
Definition: FileHandler.h:208
FileHandler(FilesMonitorCollection::FileRecordPtr, const DbFileHandlerPtr, const DiskWritingParams &, const uint64_t &maxFileSize)
Definition: FileHandler.cc:23
std::string cmsver_
Definition: FileHandler.h:212
virtual ~FileHandler()
Definition: FileHandler.h:44
void insertFileInDatabase() const
Definition: FileHandler.cc:119
boost::shared_ptr< FileRecord > FileRecordPtr
utils::TimePoint_t firstEntry_
Definition: FileHandler.h:201
const std::string logFile_
Definition: FileHandler.h:211
void setAdler(uint32_t s)
Definition: FileHandler.h:109
bool sizeMismatch(const uint64_t &initialSize, const uint64_t &finalSize) const
Definition: FileHandler.cc:271
boost::shared_ptr< DbFileHandler > DbFileHandlerPtr
Definition: DbFileHandler.h:65
const std::string logPath_
Definition: FileHandler.h:210
utils::TimePoint_t lastEntry_
Definition: FileHandler.h:202
void updateDatabase() const
Definition: FileHandler.cc:88
boost::posix_time::ptime TimePoint_t
Definition: Utils.h:35
void writeEvent(const I2OChain &)
Definition: FileHandler.cc:46
const DiskWritingParams & diskWritingParams_
Definition: FileHandler.h:204
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
void makeFileReadOnly(const std::string &fileName) const
Definition: FileHandler.cc:278
FileHandler & operator=(FileHandler const &)
bool tooOld(const utils::TimePoint_t currentTime=utils::getCurrentTime())
Definition: FileHandler.cc:149
void renameFile(const std::string &openFileName, const std::string &closedFileName) const
Definition: FileHandler.cc:291
unsigned long long uint64_t
Definition: Time.h:15
virtual void do_writeEvent(const I2OChain &event)=0
FilesMonitorCollection::FileRecordPtr fileRecord_
Definition: FileHandler.h:198
uint32_t lumiSection() const
Definition: FileHandler.h:80
uint64_t checkFileSizeMatch(const std::string &fileName, const uint64_t &size) const
Definition: FileHandler.cc:235
void checkDirectories() const
Definition: FileHandler.cc:307
std::string logFile(const DiskWritingParams &) const
string s
Definition: asciidump.py:422
bool tooLarge(const uint64_t &dataSize)
Definition: FileHandler.cc:178
const DbFileHandlerPtr dbFileHandler_
Definition: FileHandler.h:199
tuple size
Write out results.
double calcPctDiff(const uint64_t &, const uint64_t &) const
Definition: FileHandler.cc:316
void writeToSummaryCatalog() const
Definition: FileHandler.cc:69
bool isFromLumiSection(const uint32_t lumiSection)
Definition: FileHandler.cc:164
uint32_t events() const
Definition: FileHandler.cc:192