00001
00002 #ifndef SENDS_PARSE_STAGE_HH
00003 #define SENDS_PARSE_STAGE_HH
00004
00005 #include "seda_stage.hh"
00006 #include "buffer_pool.hh"
00007
00008 namespace sends {
00009
00010 const int parse_buffer_length=32768;
00011 class buffer;
00012
00049 class parse_stage : public seda_stage {
00050 public:
00054 typedef thread::mt_queue<buffer*> buffer_queue;
00055
00056 public:
00066 parse_stage(int nThread, int nTrans);
00067
00071 virtual ~parse_stage(void);
00072
00079 void filter(transaction* trans);
00080
00084 void init_thread(void);
00085
00088 buffer_pool& ref_resource(void);
00089
00093 virtual void shut(void);
00094
00100 const char* stage_name(void) const;
00101
00102 private:
00103 buffer_pool resource;
00104
00105
00106 long quit_count;
00107 };
00108
00109 inline buffer_pool&
00110 parse_stage::ref_resource(void) {
00111 return resource;
00112 }
00113 }
00114
00115 #endif // !defined(SENDS_PARSE_STAGE_HH)