summaryrefslogtreecommitdiff
path: root/examples/C++NPv2/Service_Reporter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/C++NPv2/Service_Reporter.cpp')
-rw-r--r--examples/C++NPv2/Service_Reporter.cpp125
1 files changed, 0 insertions, 125 deletions
diff --git a/examples/C++NPv2/Service_Reporter.cpp b/examples/C++NPv2/Service_Reporter.cpp
deleted file mode 100644
index ad9cd05d26c..00000000000
--- a/examples/C++NPv2/Service_Reporter.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
-** $Id$
-**
-** Copyright 2002 Addison Wesley. All Rights Reserved.
-*/
-
-#include "ace/OS_NS_stdio.h"
-#include "ace/OS_NS_string.h"
-#include "ace/Get_Opt.h"
-#include "ace/INET_Addr.h"
-#include "ace/Log_Msg.h"
-#include "ace/Service_Config.h"
-#include "ace/Service_Repository.h"
-#include "ace/Service_Types.h"
-#include "ace/SOCK_Stream.h"
-#include "Service_Reporter.h"
-
-
-int Service_Reporter::init (int argc, ACE_TCHAR *argv[]) {
- ACE_INET_Addr local_addr (Service_Reporter::DEFAULT_PORT);
-
- // Start at argv[0].
- ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("p:"), 0);
- get_opt.long_option (ACE_TEXT ("port"),
- 'p',
- ACE_Get_Opt::ARG_REQUIRED);
-
- for (int c; (c = get_opt ()) != -1; )
- switch (c) {
- case 'p':
- local_addr.set_port_number
- (ACE_OS::atoi (get_opt.opt_arg ()));
- }
-
- acceptor_.open (local_addr);
- return reactor ()->register_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK);
-}
-
-
-int Service_Reporter::handle_input (ACE_HANDLE) {
- ACE_SOCK_Stream peer_stream;
- acceptor_.accept (peer_stream);
-
- ACE_Service_Repository_Iterator iterator
- (*ACE_Service_Repository::instance (), 0);
-
- for (const ACE_Service_Type *st;
- iterator.next (st) != 0;
- iterator.advance ()) {
- iovec iov[3];
- iov[0].iov_base = const_cast<ACE_TCHAR *> (st->name ());
- iov[0].iov_len =
- ACE_OS::strlen (st->name ()) * sizeof (ACE_TCHAR);
- const ACE_TCHAR *state = st->active () ?
- ACE_TEXT (" (active) ") : ACE_TEXT (" (paused) ");
- iov[1].iov_base = const_cast<ACE_TCHAR *> (state);
- iov[1].iov_len =
- ACE_OS::strlen (state) * sizeof (ACE_TCHAR);
- ACE_TCHAR *report = 0; // Ask info() to allocate buffer
- int len = st->type ()->info (&report, 0);
- iov[2].iov_base = static_cast<ACE_TCHAR *> (report);
- iov[2].iov_len = static_cast<size_t> (len);
- iov[2].iov_len *= sizeof (ACE_TCHAR);
- peer_stream.sendv_n (iov, 3);
- ACE::strdelete (report);
- }
-
- peer_stream.close ();
- return 0;
-}
-
-
-int Service_Reporter::info (ACE_TCHAR **bufferp,
- size_t length) const {
- ACE_INET_Addr local_addr;
- acceptor_.get_local_addr (local_addr);
-
- ACE_TCHAR buf[BUFSIZ];
- ACE_OS::sprintf
- (buf, ACE_TEXT ("%hu"), local_addr.get_port_number ());
- ACE_OS::strcat
- (buf, ACE_TEXT ("/tcp # lists services in daemon\n"));
- if (*bufferp == 0)
- *bufferp = ACE::strnew (buf);
- else
- ACE_OS::strncpy (*bufferp, buf, length);
- return ACE_OS::strlen (*bufferp);
-}
-
-
-int Service_Reporter::suspend ()
-{ return reactor ()->suspend_handler (this); }
-
-int Service_Reporter::resume ()
-{ return reactor ()->resume_handler (this); }
-
-
-int Service_Reporter::fini () {
- reactor ()->remove_handler
- (this,
- ACE_Event_Handler::ACCEPT_MASK
- | ACE_Event_Handler::DONT_CALL);
- return acceptor_.close ();
-}
-
-// Define the service object make and gobble functions.
-ACE_FACTORY_DEFINE (ACE_Local_Service, Service_Reporter)
-
-// Define the ACE_Static_Svc_Descriptor that conveys the service information
-// to the ACE_Service_Config.
-ACE_STATIC_SVC_DEFINE (
- Reporter_Descriptor,
- ACE_TEXT ("Service_Reporter"),
- ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (Service_Reporter),
- ACE_Service_Type::DELETE_THIS
- | ACE_Service_Type::DELETE_OBJ,
- 0 // This object is not initially active.
-)
-
-// Define the class that will register this service with ACE_Service_Config
-// at program startup.
-ACE_STATIC_SVC_REQUIRE (Reporter_Descriptor)