You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ak...@apache.org on 2010/05/07 23:19:22 UTC

svn commit: r942234 - in /trafficserver/traffic/branches/UserFiber/samples: ./ echoServer.C

Author: akundu
Date: Fri May  7 21:19:22 2010
New Revision: 942234

URL: http://svn.apache.org/viewvc?rev=942234&view=rev
Log:
sample echoServer code using the server framework

Added:
    trafficserver/traffic/branches/UserFiber/samples/
    trafficserver/traffic/branches/UserFiber/samples/echoServer.C

Added: trafficserver/traffic/branches/UserFiber/samples/echoServer.C
URL: http://svn.apache.org/viewvc/trafficserver/traffic/branches/UserFiber/samples/echoServer.C?rev=942234&view=auto
==============================================================================
--- trafficserver/traffic/branches/UserFiber/samples/echoServer.C (added)
+++ trafficserver/traffic/branches/UserFiber/samples/echoServer.C Fri May  7 21:19:22 2010
@@ -0,0 +1,56 @@
+#include <iostream>
+#include <stdlib.h>
+
+#include "UFIO.H"
+#include "UFServer.H"
+
+using namespace std;
+
+struct EchoServer : public UFServer
+{
+    EchoServer(char* interfaceIP, unsigned int port)
+    {
+        _addressToBindTo = interfaceIP ? interfaceIP : "";
+        _port = port;
+    }
+    void handleNewConnection(UFIO* ufio);
+};
+
+unsigned long long int readTimeout = 0;
+void EchoServer::handleNewConnection(UFIO* ufio)
+{
+    if(!ufio)
+    {
+        cerr<<"couldnt create UFIO object"<<endl;
+        return;
+    }
+
+    char buf[256];
+    while ( ((n = ufio->read(buf, 255, readTimeout)) > 0) && ((n = ufio->write(buf, 255)) > 0) ) {}
+}
+
+
+int main(int argc, char** argv)
+{
+    unsigned int numThreads = 8;
+    unsigned int numProcesses = 1;
+    unsigned short int port = 8080;
+    if(argc > 1)
+        numThreads = atoi(argv[1]);
+    if(argc > 2)
+        port = atoi(argv[2]);
+    if(argc > 3)
+        readTimeout = atoi(argv[3]);
+    if(argc > 4)
+        numProcesses = atoi(argv[4]);
+
+    EchoServer ufecho(0, port);
+    ufecho.MAX_ACCEPT_THREADS_ALLOWED   = 1;
+    ufecho.MAX_THREADS_ALLOWED          = numThreads;
+    ufecho.MAX_PROCESSES_ALLOWED        = numProcesses;
+    ufecho.UF_STACK_SIZE                = 8192;
+
+    ufecho.run();
+
+    return 0;
+}