00001 00002 00003 00004 00005 00006 00007 00008 00009 // No longer used as I no longer support IO Completion ports 00010 /* 00011 #ifdef __USE_IO_COMPLETION_PORTS 00012 #ifndef __EXTENDED_OVERLAPPED_POOL 00013 #define __EXTENDED_OVERLAPPED_POOL 00014 #include "SimpleMutex.h" 00015 #include "ClientContextStruct.h" 00016 #include "DS_Queue.h" 00017 00019 class ExtendedOverlappedPool 00020 { 00021 00022 public: 00023 ExtendedOverlappedPool(); 00024 ~ExtendedOverlappedPool(); 00025 ExtendedOverlappedStruct* GetPointer( void ); 00026 void ReleasePointer( ExtendedOverlappedStruct *p ); 00027 static inline ExtendedOverlappedPool* Instance() 00028 { 00029 return & I; 00030 } 00031 00032 private: 00033 DataStructures::Queue<ExtendedOverlappedStruct*> pool; 00034 SimpleMutex poolMutex; 00035 static ExtendedOverlappedPool I; 00036 }; 00037 00038 #endif 00039 #endif 00040 00041 */