00001
00002
00003
00004
00005
00006 #ifndef CSV4_
00007 #define CSV4_
00008
00009 #include "eleve/config.hpp"
00010
00011 #include <boost/regex.hpp>
00012
00013 #include "eleve/src/typing0.hpp"
00014 #include "eleve/src0/csv1.hpp"
00015
00016 namespace eepgwde { namespace detail {
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 struct Filter0 {
00029 public:
00030 struct Impl;
00031 friend struct Impl;
00032
00033 protected:
00034 std::auto_ptr<Impl> impl;
00035 virtual void add0(std::vector<DataFrame::Record *> &);
00036
00037 public:
00038 static const std::string strike0_;
00039 static const std::string maturity0_;
00040
00041
00042
00043
00044 std::string strike;
00045
00046 std::string maturity;
00047
00048
00049 Filter0(const std::string & service0,
00050 const DataFrame::ma_any_t & frame) throw(std::exception);
00051
00052 ~Filter0() throw();
00053
00054
00055 virtual operator DataFrame * ();
00056
00057
00058
00059
00060 template <typename T>
00061 void add(T & attr0) {
00062
00063 std::vector<DataFrame::Record *> s =
00064 pointerize<std::vector<DataFrame::Record *>,
00065 std::vector< typename T::value_type> >(attr0);
00066 add0(s);
00067 }
00068
00069
00070 virtual DataFrame::ma_any_t partition(DataFrame::Comparor &);
00071
00072 };
00073
00074 }}
00075
00076 #endif