myserver-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myserver-commit] [3063] The new SocketHandle type was added.


From: Giuseppe Scrivano
Subject: [myserver-commit] [3063] The new SocketHandle type was added.
Date: Thu, 30 Apr 2009 22:52:57 +0000

Revision: 3063
          http://svn.sv.gnu.org/viewvc/?view=rev&root=myserver&revision=3063
Author:   gscrivano
Date:     2009-04-30 22:52:57 +0000 (Thu, 30 Apr 2009)
Log Message:
-----------
The new SocketHandle type was added.

Modified Paths:
--------------
    trunk/myserver/include/base/process/process_server_manager.h
    trunk/myserver/include/base/socket/socket.h
    trunk/myserver/include/base/socket_pair/socket_pair.h
    trunk/myserver/include/base/unix_socket/unix_socket.h
    trunk/myserver/include/base/utility.h
    trunk/myserver/include/connections_scheduler/connections_scheduler.h
    trunk/myserver/include/filter/stream.h
    trunk/myserver/src/base/socket/socket.cpp
    trunk/myserver/src/base/socket_pair/socket_pair.cpp
    trunk/myserver/src/base/unix_socket/unix_socket.cpp
    trunk/myserver/src/base/utility.cpp
    trunk/myserver/src/connections_scheduler/connections_scheduler.cpp
    trunk/myserver/src/filter/stream.cpp

Modified: trunk/myserver/include/base/process/process_server_manager.h
===================================================================
--- trunk/myserver/include/base/process/process_server_manager.h        
2009-04-30 22:52:51 UTC (rev 3062)
+++ trunk/myserver/include/base/process/process_server_manager.h        
2009-04-30 22:52:57 UTC (rev 3063)
@@ -42,7 +42,7 @@
                union 
                {
                        unsigned long fileHandle;
-                       SOCKET sock;
+                       SocketHandle sock;
                        unsigned int value;
                }DESCRIPTOR;
 

Modified: trunk/myserver/include/base/socket/socket.h
===================================================================
--- trunk/myserver/include/base/socket/socket.h 2009-04-30 22:52:51 UTC (rev 
3062)
+++ trunk/myserver/include/base/socket/socket.h 2009-04-30 22:52:57 UTC (rev 
3063)
@@ -46,11 +46,17 @@
 #include <unistd.h>
 }
 
-#define SOCKET int
 #define INVALID_SOCKET -1
 #define SD_BOTH SHUT_RDWR
 #endif
 
+#ifdef WIN32
+typedef SOCKET SocketHandle;
+#else
+typedef int SocketHandle;
+#endif
+
+
 #ifdef INET6_ADDRSTRLEN
 #define MAX_IP_STRING_LEN  INET6_ADDRSTRLEN
 #else
@@ -71,8 +77,8 @@
   Socket* getServerSocket();
 
   static void stopBlockingOperations(bool);
-  virtual FileHandle getHandle();
-  void setHandle(FileHandle);
+  virtual Handle getHandle();
+  void setHandle(SocketHandle);
   static MYSERVER_HOSTENT *gethostbyaddr(char* addr, int len, int type);
   static MYSERVER_HOSTENT *gethostbyname(const char*);
   static int gethostname(char*, int);
@@ -81,7 +87,7 @@
   int listen(int);
   Socket();
   Socket(Socket*);
-  Socket(FileHandle);
+  Socket(SocketHandle);
 
   Socket accept(MYSERVER_SOCKADDR*, int*);
   int setsockopt(int,int, const char*,int);
@@ -111,11 +117,7 @@
   virtual int write(const char* buffer, u_long len, u_long *nbw);
 
 protected:
-#ifdef WIN32
-  SOCKET socketHandle;
-#else
-  FileHandle socketHandle;
-#endif
+  SocketHandle socketHandle;
 
   /*! Pointer to the socket that has accepted this connection.  */
   Socket *serverSocket;

Modified: trunk/myserver/include/base/socket_pair/socket_pair.h
===================================================================
--- trunk/myserver/include/base/socket_pair/socket_pair.h       2009-04-30 
22:52:51 UTC (rev 3062)
+++ trunk/myserver/include/base/socket_pair/socket_pair.h       2009-04-30 
22:52:57 UTC (rev 3063)
@@ -32,27 +32,19 @@
 public:
        SocketPair ();
        int create ();
-#ifdef WIN32
-       SOCKET getFirstHandle ();
-       SOCKET getSecondHandle ();
-#else
-       FileHandle getFirstHandle ();
-       FileHandle getSecondHandle ();
-#endif
+       SocketHandle getFirstHandle ();
+       SocketHandle getSecondHandle ();
+
        void inverted (SocketPair&);
        virtual int close ();
        void closeFirstHandle ();
        void closeSecondHandle ();
   void setNonBlocking (bool blocking);
 
-  int readHandle (FileHandle*);
-  int writeHandle (FileHandle);
+  int readHandle (Handle*);
+  int writeHandle (Handle);
 
 protected:
-#ifdef WIN32
-       SOCKET handles[2];
-#else
-       FileHandle handles[2];
-#endif
+       SocketHandle handles[2];
 };
 #endif

Modified: trunk/myserver/include/base/unix_socket/unix_socket.h
===================================================================
--- trunk/myserver/include/base/unix_socket/unix_socket.h       2009-04-30 
22:52:51 UTC (rev 3062)
+++ trunk/myserver/include/base/unix_socket/unix_socket.h       2009-04-30 
22:52:57 UTC (rev 3063)
@@ -49,8 +49,8 @@
   sockaddr_un addr;
 #endif
 
-  int readHandle (FileHandle* fd);
-  int writeHandle (FileHandle fd);
+  int readHandle (Handle* fd);
+  int writeHandle (Handle fd);
 
 private:
 #ifdef AF_UNIX

Modified: trunk/myserver/include/base/utility.h
===================================================================
--- trunk/myserver/include/base/utility.h       2009-04-30 22:52:51 UTC (rev 
3062)
+++ trunk/myserver/include/base/utility.h       2009-04-30 22:52:57 UTC (rev 
3063)
@@ -55,7 +55,7 @@
 int setcwd(const char * cwd);
 int freecwdBuffer();
 
-int readFileHandle (FileHandle s, FileHandle* fd);
-int writeFileHandle (FileHandle s, FileHandle fd);
+int readFileHandle (SocketHandle s, Handle* fd);
+int writeFileHandle (SocketHandle s, Handle fd);
 
 #endif

Modified: trunk/myserver/include/connections_scheduler/connections_scheduler.h
===================================================================
--- trunk/myserver/include/connections_scheduler/connections_scheduler.h        
2009-04-30 22:52:51 UTC (rev 3062)
+++ trunk/myserver/include/connections_scheduler/connections_scheduler.h        
2009-04-30 22:52:57 UTC (rev 3063)
@@ -102,7 +102,7 @@
 
   u_long getNumTotalConnections();
 
-  void newData(short event, FileHandle handle);
+  void newData(short event, SocketHandle handle);
 
 private:
   Server* server;
@@ -116,7 +116,7 @@
   Mutex eventsMutex;
   Mutex eventsSocketMutex;
   queue<ConnectionPtr> *ready;
-  HashMap<FileHandle, ConnectionPtr> connections;
+  HashMap<SocketHandle, ConnectionPtr> connections;
   list<ListenerArg*> listeners;
   u_long currentPriority;
   u_long currentPriorityDone;

Modified: trunk/myserver/include/filter/stream.h
===================================================================
--- trunk/myserver/include/filter/stream.h      2009-04-30 22:52:51 UTC (rev 
3062)
+++ trunk/myserver/include/filter/stream.h      2009-04-30 22:52:57 UTC (rev 
3063)
@@ -22,8 +22,14 @@
 #include "stdafx.h"
 
 #ifdef WIN32
-typedef void* FileHandle;
+typedef void* Handle;
 #else
+typedef int Handle;
+#endif
+
+#ifdef WIN32
+typedef HANDLE FileHandle;
+#else
 typedef int  FileHandle;
 #endif
 
@@ -36,7 +42,7 @@
   virtual int read(char* buffer, u_long len, u_long*);
   virtual int write(const char* buffer, u_long len, u_long*);
        virtual int flush(u_long*);
-  virtual FileHandle getHandle();
+  virtual Handle getHandle();
   virtual int close();
   Stream();
   /*! Avoid direct instances of this class. */

Modified: trunk/myserver/src/base/socket/socket.cpp
===================================================================
--- trunk/myserver/src/base/socket/socket.cpp   2009-04-30 22:52:51 UTC (rev 
3062)
+++ trunk/myserver/src/base/socket/socket.cpp   2009-04-30 22:52:57 UTC (rev 
3063)
@@ -59,21 +59,17 @@
 /*!
  *Returns the socket handle
  */
-FileHandle Socket::getHandle()
+Handle Socket::getHandle()
 {
-  return (FileHandle) socketHandle;
+  return (Handle) socketHandle;
 }
 
 /*!
  *Set the handle for the socket
  */
-void Socket::setHandle(FileHandle h)
+void Socket::setHandle(SocketHandle h)
 {
-#ifdef WIN32
-  socketHandle = (SOCKET) h;
-#else
   socketHandle = h;
-#endif
 }
 
 /*!
@@ -112,7 +108,7 @@
 /*!
  *Set the base/socket/socket.handle.
  */
-Socket::Socket(FileHandle handle)
+Socket::Socket(SocketHandle handle)
 {
   throttlingRate = 0;
   setHandle (handle);
@@ -200,19 +196,12 @@
 {
   Socket s;
 
-#ifdef WIN32
-  FileHandle h = (FileHandle)::accept(socketHandle,(struct sockaddr*)sa,
-                                          sockaddrlen);
-  s.setHandle(h);
-#else
   socklen_t connectSize;
-  int acceptHandle;
   connectSize = (socklen_t) *sockaddrlen;
 
-  acceptHandle = ::accept((int)socketHandle, (struct sockaddr *)sa,
-                           (socklen_t*)&connectSize);
+  SocketHandle acceptHandle = ::accept((int)socketHandle, (struct sockaddr 
*)sa,
+                                       (socklen_t*)&connectSize);
   s.setHandle(acceptHandle);
-#endif
 
   return s;
 }

Modified: trunk/myserver/src/base/socket_pair/socket_pair.cpp
===================================================================
--- trunk/myserver/src/base/socket_pair/socket_pair.cpp 2009-04-30 22:52:51 UTC 
(rev 3062)
+++ trunk/myserver/src/base/socket_pair/socket_pair.cpp 2009-04-30 22:52:57 UTC 
(rev 3063)
@@ -142,11 +142,7 @@
 /*!
  *Get the first handle used by the socket pair.
  */
-#ifdef WIN32
-SOCKET SocketPair::getFirstHandle ()
-#else
-FileHandle SocketPair::getFirstHandle ()
-#endif
+SocketHandle SocketPair::getFirstHandle ()
 {
   return handles[0];
 }
@@ -154,11 +150,7 @@
 /*!
  *Get the second handle used by the socket pair.
  */
-#ifdef WIN32
-SOCKET SocketPair::getSecondHandle ()
-#else
-FileHandle SocketPair::getSecondHandle ()
-#endif
+SocketHandle SocketPair::getSecondHandle ()
 {
   return handles[1];
 }
@@ -194,7 +186,7 @@
  */
 void SocketPair::closeFirstHandle ()
 {
-  Socket sock ((FileHandle)handles[0]);
+  Socket sock (handles[0]);
   sock.close ();
 }
 
@@ -203,7 +195,7 @@
  */
 void SocketPair::closeSecondHandle ()
 {
-  Socket sock ((FileHandle)handles[1]);
+  Socket sock (handles[1]);
   sock.close ();
 }
 
@@ -213,10 +205,10 @@
  */
 void SocketPair::setNonBlocking (bool notBlocking)
 {
-  Socket sock0 ((FileHandle)handles[0]);
+  Socket sock0 (handles[0]);
    sock0.setNonBlocking (notBlocking);
 
-   Socket sock1 ((FileHandle)handles[1]);
+   Socket sock1 (handles[1]);
    sock1.setNonBlocking (notBlocking);
 }
 
@@ -225,9 +217,9 @@
  *\param fd The file descriptor to read.
  *\return 0 on success.
  */
-int SocketPair::readHandle (FileHandle* fd)
+int SocketPair::readHandle (Handle* fd)
 {
-  return readFileHandle ((FileHandle)handles[0], fd);
+  return readFileHandle (handles[0], fd);
 }
 
 /*!
@@ -235,7 +227,7 @@
  *\param fd The file descriptor to transmit.
  *\return 0 on success.
  */
-int SocketPair::writeHandle (FileHandle fd)
+int SocketPair::writeHandle (Handle fd)
 {
-  return writeFileHandle ((FileHandle)handles[0], fd);
+  return writeFileHandle (handles[0], fd);
 }

Modified: trunk/myserver/src/base/unix_socket/unix_socket.cpp
===================================================================
--- trunk/myserver/src/base/unix_socket/unix_socket.cpp 2009-04-30 22:52:51 UTC 
(rev 3062)
+++ trunk/myserver/src/base/unix_socket/unix_socket.cpp 2009-04-30 22:52:57 UTC 
(rev 3063)
@@ -128,9 +128,9 @@
  *\param fd The file descriptor to read.
  *\return 0 on success.
  */
-int UnixSocket::readHandle (FileHandle* fd)
+int UnixSocket::readHandle (Handle* fd)
 {
-  return readFileHandle (getHandle (), fd);
+  return readFileHandle (socketHandle, fd);
 }
 
 /*!
@@ -138,7 +138,7 @@
  *\param fd The file descriptor to transmit.
  *\return 0 on success.
  */
-int UnixSocket::writeHandle (FileHandle fd)
+int UnixSocket::writeHandle (Handle fd)
 {
-  return writeFileHandle (getHandle (), fd);
+  return writeFileHandle (socketHandle, fd);
 }

Modified: trunk/myserver/src/base/utility.cpp
===================================================================
--- trunk/myserver/src/base/utility.cpp 2009-04-30 22:52:51 UTC (rev 3062)
+++ trunk/myserver/src/base/utility.cpp 2009-04-30 22:52:57 UTC (rev 3063)
@@ -325,7 +325,7 @@
  *\param File handle received.
  *\return 0 on success.
  */
-int readFileHandle (FileHandle s, FileHandle* fd)
+int readFileHandle (SocketHandle s, Handle* fd)
 {
 #ifdef WIN32
   return -1;
@@ -361,7 +361,7 @@
  *\param File handle received.
  *\return 0 on success.
  */
-int writeFileHandle (FileHandle s, FileHandle fd)
+int writeFileHandle (SocketHandle s, Handle fd)
 {
 #ifdef WIN32
   return -1;

Modified: trunk/myserver/src/connections_scheduler/connections_scheduler.cpp
===================================================================
--- trunk/myserver/src/connections_scheduler/connections_scheduler.cpp  
2009-04-30 22:52:51 UTC (rev 3062)
+++ trunk/myserver/src/connections_scheduler/connections_scheduler.cpp  
2009-04-30 22:52:57 UTC (rev 3063)
@@ -68,13 +68,13 @@
   ConnectionsScheduler::DispatcherArg* arg = 
(ConnectionsScheduler::DispatcherArg*) param;
 
   if(!arg->terminate && arg->scheduler)
-    arg->scheduler->newData(event, (FileHandle)fd);
+    arg->scheduler->newData(event, fd);
 }
 
 
-void ConnectionsScheduler::newData(short event, FileHandle handle)
+void ConnectionsScheduler::newData(short event, SocketHandle handle)
 {
-  ConnectionPtr connection = connections.get(handle);
+  ConnectionPtr connection = connections.get (handle);
 
   if(connection == NULL || server == NULL)
     return;
@@ -100,7 +100,7 @@
   u_long nbr;
   if (event == EV_READ || event == EV_TIMEOUT)
   {
-    Socket sock ((FileHandle) da->socketPair.getFirstHandle ());
+    Socket sock (da->socketPair.getFirstHandle ());
 
     while (da->socketPair.bytesToRead())
     {
@@ -111,15 +111,15 @@
         /*
          *Schedule a new connection.
          *The 'c' command is followed by:
-         *FileHandle  -> Socket to monitor for new data.
+         *SocketHandle  -> Socket to monitor for new data.
          *ConnectionPtr -> Related Connection.
          *timeval       -> Timeout.
          */
-        FileHandle handle;
+        SocketHandle handle;
         ConnectionPtr c;
         timeval tv = {10, 0};
 
-        da->socketPair.read ((char*)&handle, sizeof(FileHandle), &nbr);
+        da->socketPair.read ((char*)&handle, sizeof(SocketHandle), &nbr);
         da->socketPair.read ((char*)&c, sizeof(ConnectionPtr), &nbr);
         da->socketPair.read ((char*)&tv, sizeof(timeval), &nbr);
 
@@ -152,8 +152,7 @@
     asockInLen = sizeof (asockIn);
     asock = s->serverSocket->accept (&asockIn, &asockInLen);
 
-    if (s->server &&
-       asock.getHandle() != (FileHandle)INVALID_SOCKET)
+    if (s->server && (SocketHandle)asock.getHandle() != INVALID_SOCKET)
     {
       s->server->addConnection (asock, &asockIn);
     }
@@ -186,7 +185,7 @@
   event_add(&(arg->ev), &tv);
 
   u_long nbw;
-  Socket sock ((FileHandle)dispatcherArg.socketPair.getSecondHandle ());
+  Socket sock (dispatcherArg.socketPair.getSecondHandle ());
 
   eventsSocketMutex.lock();
   sock.write("l", 1, &nbw);  
@@ -386,7 +385,7 @@
 void ConnectionsScheduler::addWaitingConnectionImpl(ConnectionPtr c, int lock)
 {
   static timeval tv = {10, 0};
-  FileHandle handle = c->socket ? c->socket->getHandle() : NULL;
+  SocketHandle handle = c->socket ? (SocketHandle) c->socket->getHandle() : 
NULL;
 
   if(server)
     tv.tv_sec = server->getTimeout() / 1000;
@@ -408,11 +407,11 @@
   if(lock)
   {
     u_long nbw;
-    Socket sock ((FileHandle)dispatcherArg.socketPair.getSecondHandle ());
+    Socket sock (dispatcherArg.socketPair.getSecondHandle ());
 
     eventsSocketMutex.lock();
     sock.write("c", 1, &nbw);
-    sock.write((char*)&handle, sizeof(FileHandle), &nbw);
+    sock.write((char*)&handle, sizeof(SocketHandle), &nbw);
     sock.write((char*)&c, sizeof(ConnectionPtr), &nbw);
     sock.write((char*)&tv, sizeof(timeval), &nbw);
     eventsSocketMutex.unlock();
@@ -482,8 +481,8 @@
     readySemaphore->unlock();
   }
 
-  Socket sockR ((FileHandle)dispatcherArg.socketPair.getFirstHandle ());
-  Socket sockW ((FileHandle)dispatcherArg.socketPair.getSecondHandle ());
+  Socket sockR (dispatcherArg.socketPair.getFirstHandle ());
+  Socket sockW (dispatcherArg.socketPair.getSecondHandle ());
 
   eventsSocketMutex.lock();
   sockW.write("r", 1, &nbw);
@@ -525,7 +524,7 @@
 
   connectionsMutex.lock();
 
-  HashMap<FileHandle, ConnectionPtr>::Iterator it = connections.begin();
+  HashMap<SocketHandle, ConnectionPtr>::Iterator it = connections.begin();
   for(; it != connections.end(); it++)
     out.push_back(*it);
 
@@ -547,7 +546,7 @@
 {
   connectionsMutex.lock();
   if(connection->socket)
-    connections.remove(connection->socket->getHandle());
+    connections.remove((SocketHandle)connection->socket->getHandle());
   connectionsMutex.unlock();
   delete connection;
 }
@@ -563,7 +562,7 @@
   {
     connectionsMutex.lock();
 
-    HashMap<FileHandle, ConnectionPtr>::Iterator it = connections.begin();
+    HashMap<SocketHandle, ConnectionPtr>::Iterator it = connections.begin();
     for(; it != connections.end(); it++)
     {
       ConnectionPtr c = *it;
@@ -601,7 +600,7 @@
   try
   {
 
-    for(HashMap<FileHandle, ConnectionPtr>::Iterator it = connections.begin(); 
+    for(HashMap<SocketHandle, ConnectionPtr>::Iterator it = 
connections.begin(); 
         it != connections.end()  && !ret; 
         it++)
     {

Modified: trunk/myserver/src/filter/stream.cpp
===================================================================
--- trunk/myserver/src/filter/stream.cpp        2009-04-30 22:52:51 UTC (rev 
3062)
+++ trunk/myserver/src/filter/stream.cpp        2009-04-30 22:52:57 UTC (rev 
3063)
@@ -1,6 +1,6 @@
 /*
 MyServer
-Copyright (C) 2002, 2003, 2004, 2008 Free Software Foundation, Inc.
+Copyright (C) 2002, 2003, 2004, 2008, 2009 Free Software Foundation, Inc.
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
@@ -70,7 +70,7 @@
 /*! 
  *Get the file handle.
  */
-FileHandle Stream::getHandle()
+Handle Stream::getHandle()
 {
   return 0;
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]