Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

wvwinstreamclone.h

Go to the documentation of this file.
00001 /* -*- Mode: C++ -*- */ 00002 #pragma once 00003 #include "wvstreamclone.h" 00004 #include <map> 00005 #include <vector> 00006 00007 #define WM_SELECT (WM_USER) 00008 #define WM_DONESELECT (WM_USER+1) 00009 00010 class WvWinStreamClone : 00011 public WvStreamClone 00012 { 00013 public: 00014 WvWinStreamClone(WvStream *_cloned); 00015 ~WvWinStreamClone(); 00016 static DWORD Initialize(); 00017 00018 private: 00019 // types 00020 typedef std::map<SOCKET, long> SocketEventsMap; 00021 typedef std::map<HWND, WvWinStreamClone *> WndStreamMap; 00022 typedef std::vector<HWND> WndVector; 00023 00024 // class members 00025 static ATOM s_aClass; 00026 static WndVector s_wndpool; 00027 static WndStreamMap s_wndmap; 00028 const static UINT_PTR TIMER_ID = 12345; 00029 static LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 00030 00031 // instance members 00032 SelectInfo m_si; 00033 int m_msec_timeout; 00034 HWND m_hWnd; 00035 bool m_pending_callback; 00036 bool m_select_in_progress; 00037 00038 void pre_poll(); 00039 void post_poll(); 00040 void select_set(SocketEventsMap &sockmap, fd_set *set, long event ); 00041 void select_callback(SOCKET socket, int event, int error); 00042 HWND alloc_wnd(); 00043 void free_wnd(HWND w); 00044 00045 }; 00046 00047

Generated on Tue Oct 5 01:09:21 2004 for WvStreams by doxygen 1.3.7