diff options
Diffstat (limited to 'examples/IPC_SAP/TLI_SAP/db-server.cpp')
-rw-r--r-- | examples/IPC_SAP/TLI_SAP/db-server.cpp | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/examples/IPC_SAP/TLI_SAP/db-server.cpp b/examples/IPC_SAP/TLI_SAP/db-server.cpp deleted file mode 100644 index f363332317e..00000000000 --- a/examples/IPC_SAP/TLI_SAP/db-server.cpp +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -// Simple multi-threaded database server example. - -#include "ace/TLI_Acceptor.h" -#include "ace/Thread_Manager.h" - -ACE_RCSID(TLI_SAP, db_server, "$Id$") - -#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_TLI) - -// Global thread manager. -ACE_Thread_Manager thr_mgr; - -void * -lookup_name (ACE_HANDLE handle) -{ - enum - { - MAXLINE = 255, - EMPNAMELEN = 512 - }; - - static struct - { - int emp_id; - const char *emp_name; - } employee_db[] = - { - {123, "John Wayne Bobbit"}, - {124, "Woody Allen"}, - {125, "O. J. Simpson"}, - {126, "Bill Clinton"}, - {127, "Rush Limbaugh"}, - {128, "Michael Jackson"}, - {129, "Kenneth Starr"}, - {130, "Paula Jones"}, - {131, "Monica Lewinsky"}, - {132, "Marv Albert"}, - {0, ""} - }; - - int flags; - int employee_id; - int index; - int found; - ACE_TLI_Stream stream; - char recvline[MAXLINE]; - char sendline[MAXLINE]; - - ACE_DEBUG ((LM_DEBUG, - "stream handle = %d, thread id = %t\n", - handle)); - stream.set_handle (handle); - - ssize_t n = stream.recv (recvline, MAXLINE, &flags); - - if (n == -1) - ACE_OS::t_error ("stream.recv error"); - - employee_id = ACE_OS::atoi (recvline); - found = 0; - - for (index = 0; found == 0 && employee_db[index].emp_id; index++) - if (employee_id == employee_db[index].emp_id) - { - found = 1; - n = ACE_OS::sprintf (sendline, - "%s", employee_db[index].emp_name); - } - - if (found == 0) - n = ACE_OS::sprintf (sendline, "%s", "ERROR"); - - if (stream.send (sendline, n + 1, 0) == -1) - ACE_OS::t_error ("stream.send error"); - - if (stream.sndrel () == -1) - ACE_OS::t_error ("stream.send error"); - - if (stream.close () == -1) - ACE_OS::t_error ("stream.close error"); - - return 0; -} - -int -main (int argc, char *argv[]) -{ - u_short port = argc > 1 ? ACE_OS::atoi (argv[1]) : ACE_DEFAULT_SERVER_PORT; - ACE_INET_Addr l_addr (port); - ACE_TLI_Acceptor server (l_addr, 1); // Create server, reuse addr if in use. - ACE_TLI_Stream new_stream; - - // Wait for a connection from a client. This is an example of a - // concurrent server. - - for (;;) - { - if (server.accept (new_stream) == -1) - ACE_OS::t_error ("server.accept error"); - - if (thr_mgr.spawn (ACE_THR_FUNC (lookup_name), - (void *) new_stream.get_handle (), - THR_DETACHED) == -1) - ACE_DEBUG ((LM_ERROR, - "server: can't create worker thread %d\n")); - } - - ACE_NOTREACHED (return 0); -} -#else -#include <stdio.h> -int main (int, char *[]) -{ - ACE_ERROR_RETURN ((LM_ERROR, - "platform isn't configured to support TLI\n"), - 1); -} -#endif /* ACE_HAS_THREADS */ |