1
#ifndef __PERCONA_PLAYBACK__PROCESSOR__H__
2
#define __PERCONA_PLAYBACK__PROCESSOR__H__
7
Query_Generator (SLow Query Log Parser / TCP-dump parser / libpcap)
8
Query_Sheduler (Exact, Split-by-connection, Split-by-transaction) / Query_Producer
9
Query_Processor (Dry, Client, Split) / Query_Result_Producer
10
Query_Result_Processor
12
Query_Generator ===shedule[query]===> Query_Sheduler
14
Query_Sheduler ===start_thread[thread_id, name, Query_Producer*]===> Query_Processor
15
Query_Producer <===[query]===/ implementation details /=== Query_Sheduler
16
Query_Sheduler ===stop_thread [Query_Producer*]===> Query_Processor
18
Query_Processor <===| Worker_Pool<Task>
20
Query_Processor ===start_thread[thread_id, name, Query_Result_Producer*]===> Query_Result_Processor
21
Query_Result_Producer <===[query]===/ implementation details /=== Query_Processor
22
Query_Processor ===stop_thread [Query_Result_Producer*]===> Query_Result_Processor
29
virtual ~Query_Processor() {}
31
virtual void start()= 0;
32
virtual void stop()= 0;
33
virtual void wait()= 0;
34
virtual void flush()= 0;
35
virtual void run(Query const &)= 0;
37
typedef boost::shared_ptr<Query_Processor> Query_Processor_Pointer;
39
#endif // __PERCONA_PLAYBACK__PROCESSOR__H__