source: XIOS/trunk/src/filter/file_writer_filter.hpp @ 639

Last change on this file since 639 was 639, checked in by rlacroix, 6 years ago

Add a basic garbage collector to ensure no packets linger in the filter graph.

File size: 1.0 KB
Line 
1#ifndef __XIOS_CFileWriterFilter__
2#define __XIOS_CFileWriterFilter__
3
4#include "input_pin.hpp"
5
6namespace xios
7{
8  class CField;
9
10  /*!
11   * A terminal filter which transmits the packets it receives to a field for writting in a file.
12   */
13  class CFileWriterFilter : public CInputPin
14  {
15    public:
16      /*!
17       * Constructs the filter (with one input slot) associated to the specified field
18       * and a garbage collector.
19       *
20       * \param gc the associated garbage collector
21       * \param field the associated field
22       */
23      CFileWriterFilter(CGarbageCollector& gc, CField* field);
24
25    protected:
26      /*!
27       * Callbacks a field to write a packet to a file.
28       *
29       * \param data a vector of packets corresponding to each slot
30       */
31      void virtual onInputReady(std::vector<CDataPacketPtr> data);
32
33    private:
34      CField* field; //<! The associated field
35      std::map<Time, CDataPacketPtr> packets; //<! The stored packets
36  }; // class CFileWriterFilter
37} // namespace xios
38
39#endif //__XIOS_CFileWriterFilter__
Note: See TracBrowser for help on using the repository browser.