summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h')
-rw-r--r--TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h152
1 files changed, 152 insertions, 0 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h
new file mode 100644
index 00000000000..82e501650c8
--- /dev/null
+++ b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h
@@ -0,0 +1,152 @@
+/* -*- C++ -*- */
+/* $Id$ */
+
+/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology
+ * P.O.Box 91000-1000, Portland, OR 97291, USA;
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of O.G.I. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. O.G.I. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ *
+ * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ * O.G.I. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+ * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Author: Shanwei Cen
+ * Department of Computer Science and Engineering
+ * email: scen@cse.ogi.edu
+ */
+
+#ifndef MPEG_VIDEO_SERVER_H
+#define MPEG_VIDEO_SERVER_H
+
+#include "ace/Reactor.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/Event_Handler.h"
+
+#include "tao/PortableServer/ORB_Manager.h"
+#include "include/common.h"
+#include "mpeg_shared/fileio.h"
+#include "mpeg_shared/com.h"
+#include "mpeg_shared/routine.h"
+#include "mpeg_shared/sendpt.h"
+#include "mpeg_shared/Video_ControlS.h"
+#include "mpeg_server/server_proto.h"
+#include "mpeg_server/Video_Control_State.h"
+#include "mpeg_server/Globals.h"
+#include "mpeg_server/Video_Control_i.h"
+#include "orbsvcs/AV/AVStreams_i.h"
+
+class Video_Control_i;
+
+class Video_Sig_Handler
+ : public virtual ACE_Event_Handler
+{
+ // = TITLE
+ // Defines a video signal handler class which registers itself with the
+ // default ACE_Reactor::instance () . Handles the
+ // SIGALRM signal.
+ //
+ // = DESCRIPTION
+ // This class contains a pointer to a Video_Control_Handler
+ // instance and decides the signal action depending on its state.
+ // An object of this class is used to periodically send the video
+ // frames to the client using the Video_Timer_Global class.
+public:
+ Video_Sig_Handler ();
+
+ virtual ACE_HANDLE get_handle (void) const;
+
+ int register_handler (void);
+ // this will register this sig_handler
+ // with the reactor for SIGALRM
+
+ virtual int shutdown (ACE_HANDLE,
+ ACE_Reactor_Mask);
+
+ virtual int handle_input (ACE_HANDLE);
+
+ virtual int handle_signal (ACE_HANDLE signum,
+ siginfo_t * = 0,
+ ucontext_t* = 0);
+private:
+ ACE_HANDLE handle_;
+ // my handle
+
+ Video_Control_i *vci_;
+ // Pointer to the Video_Control_i for accessing
+ // the current state of the server.
+};
+
+class Video_Data_Handler : public virtual ACE_Event_Handler
+{
+
+ // = TITLE
+ // Defines a event handler for video data using a datagram i.e UDP
+ // socket.
+ //
+ // = DESCRIPTION
+ // This takes a pointer to a Video_Control_Handler instance and
+ // reacts differently to the events based on the
+ // video_control_handler's state.
+public:
+ Video_Data_Handler ();
+ // Constructor
+
+ virtual int handle_input (ACE_HANDLE fd = ACE_INVALID_HANDLE);
+ // Called when data shows up.
+
+ virtual ACE_HANDLE get_handle (void) const;
+ // Get the handle used by this event handler
+
+private:
+ Video_Control_i *vci_;
+
+};
+
+// The stream endpoint
+class Video_Server_StreamEndPoint :
+ public virtual TAO_Server_StreamEndPoint
+{
+public:
+ virtual int handle_open (void) ;
+ // called when streamendpoint is instantiated
+
+ virtual int handle_close (void) ;
+ // called when streamendpoint is being destructed
+
+ virtual int handle_stop (const AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env) ;
+ // Application needs to define this
+
+ virtual int handle_start (const AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env) ;
+ // Application needs to define this
+
+
+ virtual int handle_destroy (const AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env) ;
+ // Application needs to define this
+
+ virtual CORBA::Boolean handle_connection_requested (AVStreams::flowSpec &the_spec,
+ CORBA::Environment &env) ;
+
+private:
+ ACE_SOCK_CODgram dgram_;
+
+};
+
+#endif /* MPEG_VIDEO_SERVER_H */