Merge pull request #2303 from jwillemsen/jwi-803
[ACE_TAO.git] / TAO / tests / DIOP / UDP_i.h
blobc0becf8bff00acb01f7bc5575e6bc1db63e82dd9
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file UDP_i.h
7 * This class implements the server functionality of the UDP test.
8 * We support only single threaded servers, as we have a null mutex
9 * for locking our state.
11 * @author Michael Kircher <Michael.Kircher@mchp.siemens.de>
13 //=============================================================================
16 #ifndef UDP_I_H
17 #define UDP_I_H
19 #include "UDPS.h"
20 #include "ace/Hash_Map_Manager.h"
21 #include "ace/Null_Mutex.h"
23 /**
24 * @class UDP_i:
26 * @brief UDP Object Implementation
28 * This class implements the UDP object, which accepts two methods.
29 * The first, <invoke> accepts a string identifying the client
30 * and a request_id so that the server can verify if the requests
31 * arrived in order.
33 class UDP_i: public POA_UDP
35 public:
36 /// Constructor
37 UDP_i (CORBA::ORB_ptr o);
39 /// Destructor
40 ~UDP_i ();
42 virtual void invoke (const char *client_name,
43 UDP_ptr udpHandler,
44 CORBA::Long request_id);
46 /// Shutdown the server.
47 virtual void shutdown ();
49 private:
50 /// ORB pointer.
51 CORBA::ORB_var orb_;
53 ACE_Hash_Map_Manager_Ex < CORBA::String_var,
54 CORBA::Long,
55 ACE_Hash < const char * >,
56 ACE_Equal_To < const char * >,
57 ACE_Null_Mutex > request_id_table_;
60 #endif /* UDP_I_H */