00001 #ifndef CLASSLIB_SYSAPI_IO_PLATFORM_DATA_H 00002 # define CLASSLIB_SYSAPI_IO_PLATFORM_DATA_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "classlib/sysapi/system.h" 00007 # ifdef _WIN32 00008 # include <windows.h> 00009 # endif 00010 00011 namespace lat { 00012 //<<<<<< PUBLIC DEFINES >>>>>> 00013 //<<<<<< PUBLIC CONSTANTS >>>>>> 00014 //<<<<<< PUBLIC TYPES >>>>>> 00015 //<<<<<< PUBLIC VARIABLES >>>>>> 00016 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00017 //<<<<<< CLASS DECLARATIONS >>>>>> 00018 00019 #ifdef _WIN32 00020 struct IOPlatformData 00021 { 00022 // FIXME: what if we get a random handle and can't do olap? 00023 // FIXME: maintain level-triggered state -- when read ready, 00024 // maintain it until it would return EWOULDBLOCK, then 00025 // null it out (similar to write, ...) 00026 // FIXME: simulate unix? files are always ready? 00027 DWORD m_state; 00028 OVERLAPPED m_olap; 00029 }; 00030 #else 00031 struct IOPlatformData {}; 00032 #endif 00033 00034 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00035 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00036 00037 } // namespace lat 00038 #endif // CLASSLIB_SYSAPI_IO_PLATFORM_DATA_H