source: XIOS/dev/XIOS_DEV_CMIP6/src/filter/filter_engine.hpp @ 1358

Last change on this file since 1358 was 637, checked in by rlacroix, 9 years ago

Add the base classes for the new filter framework.

File size: 814 bytes
Line 
1#ifndef __XIOS_IFilterEngine__
2#define __XIOS_IFilterEngine__
3
4#include "data_packet.hpp"
5
6namespace xios
7{
8  /*!
9   * An engine filter processes the data handled by a filter.
10   */
11  class IFilterEngine
12  {
13    public:
14      /*!
15       * Processes the data and returns a new packet if needed.
16       * Temporal filter engines will not return a new packet
17       * for every call being that they accumulate data.
18       * The filter engine is not allowed to modify the data
19       * in place.
20       *
21       * \param data a vector of packets corresponding to each slot
22       * \return a new data packet or null if the engine is accumulating data
23       */
24       CDataPacketPtr virtual apply(std::vector<CDataPacketPtr> data) = 0;
25  }; // class IFilterEngine
26} // namespace xios
27
28#endif //__XIOS_IFilterEngine__
Note: See TracBrowser for help on using the repository browser.