12345678910111213141516171819202122232425262728293031323334 |
- #pragma once
- #include "constdef.h"
- // sql语句缓存队列
- class QueueStrManager
- {
- typedef DWORD (WINAPI *PFCALLBACK)(const char* lparam);
- private:
- char* m_chr; // 需要执行的语句
- int m_couter; //
- int m_length; // 长度
- int m_max_couter; // 最大字符数
- int m_max_length; // 最大长度
- ULONGLONG m_last_exec_time; // 最后一次执行时间,如果长时间没有新的语句产生,可根据时间执行缓存的数据。
- PFCALLBACK m_pfunc; // 回调方法
- CRITICAL_SECTION m_csQueueList; // 锁
- public:
- QueueStrManager(void);
- QueueStrManager(int c, int l, PFCALLBACK func ):
- m_max_couter(c),
- m_max_length(l),
- m_couter(0),
- m_length(0),
- m_pfunc(func),
- m_last_exec_time(::GetCurrentTime())
- {
- m_chr = new char[m_max_length];
- InitializeCriticalSectionAndSpinCount(&m_csQueueList, MAXCRITICALSECTIONSPINCOUNT);
- };
- ~QueueStrManager(void);
- void AddString(const char * chr);
- void Execute(bool bExit = true);
- };
|