Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

streams.h

00001 #pragma once
00002 #include <winsock2.h>
00003 
00004 int close(int fd);
00005 int read(int fd, void *buf, size_t count);
00006 int write(int fd, const void *buf, size_t count);
00007 
00008 // this little trick allows us to define our own close/read/write  
00009 // (in streams.cc) that optionally call _close/_read/_write (defined in <io.h>)
00010 #define __STDC__ 1 // prevents io.h from dllimporting close/read/write
00011 #include <io.h>
00012 
00013 struct socket_fd_pair
00014 {
00015     SOCKET socket;
00016     int fd;
00017 };
00018 
00019 class SocketFromFDMaker
00020 {
00021 protected:
00022     HANDLE m_hThread;
00023     socket_fd_pair m_pair;
00024     SOCKET m_socket;
00025     bool m_wait;
00026 public:
00027     SocketFromFDMaker(int fd, LPTHREAD_START_ROUTINE lpt, bool wait_for_termination = false);
00028     ~SocketFromFDMaker();
00029     SOCKET GetSocket() { return m_socket; }
00030 };
00031 
00032 DWORD WINAPI fd2socket_fwd(LPVOID lpThreadParameter);
00033 DWORD WINAPI socket2fd_fwd(LPVOID lpThreadParameter);

Generated on Sun Jul 10 18:25:50 2005 for WvStreams by  doxygen 1.4.0