summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/Trading_Service/Trading_Service.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/Trading_Service/Trading_Service.h')
-rw-r--r--TAO/orbsvcs/Trading_Service/Trading_Service.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/TAO/orbsvcs/Trading_Service/Trading_Service.h b/TAO/orbsvcs/Trading_Service/Trading_Service.h
new file mode 100644
index 00000000000..951b67e6ecf
--- /dev/null
+++ b/TAO/orbsvcs/Trading_Service/Trading_Service.h
@@ -0,0 +1,84 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// ========================================================================
+//
+// = BINARY
+// trader
+//
+// = FILENAME
+// Trading_Service.h
+//
+// = AUTHOR
+// Seth Widoff <sbw1@cs.wustl.edu>
+//
+// =======================================================================
+
+#ifndef _TRADING_SERVICE_H
+#define _TRADING_SERVICE_H
+
+#include "ace/Auto_Ptr.h"
+#include "ace/Sig_Handler.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "orbsvcs/IOR_Multicast.h"
+#include "orbsvcs/Trader/Trader.h"
+#include "orbsvcs/Trader/Service_Type_Repository.h"
+#include "orbsvcs/Trader/Trading_Loader.h"
+
+class Trading_Service;
+
+class Trading_Shutdown : public ACE_Event_Handler
+{
+ // = TITLE
+ // A class that shutsdown a Trading Service instance.
+public:
+ Trading_Shutdown (Trading_Service& trader);
+ // Constructor.
+
+ virtual int handle_signal (int,
+ siginfo_t *,
+ ucontext_t *);
+ // Signal handler.
+
+protected:
+ Trading_Service &trader_;
+ ACE_Sig_Handler shutdown_;
+};
+
+class Trading_Service
+{
+ // = TITLE
+ // A class that initializes a Trading Service instance.
+public:
+
+ Trading_Service (void);
+ // Default constructor.
+
+ ~Trading_Service (void);
+ // Destructor
+
+ int init (int argc,
+ ACE_TCHAR *argv[]
+ ACE_ENV_ARG_DECL);
+ // Initialize the Trading Service with arguments.
+
+ int run (ACE_ENV_SINGLE_ARG_DECL);
+ // Run the Trading Service.
+
+ int shutdown (void);
+
+protected:
+
+ auto_ptr<TAO_Trader_Factory::TAO_TRADER> trader_;
+ // Pointer to the linked trader.
+
+ TAO_Trading_Loader trading_loader_;
+ // Instance of TAO_Trading_Laoder
+};
+
+#endif /* _TRADING_SERVICE_H */