这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用于网络游戏医学图像网关的高qos要求.更详细的内容可阅读相应的材料

源代码在线查看: sender.h

软件大小: 29384 K
上传用户: captainjn
关键词: qos 通信 开源 大容量
下载地址: 免注册下载 普通下载 VIP

相关代码

				/* -*- C++ -*- */
				// sender.h,v 1.7 2002/04/30 21:55:47 crodrigu Exp
				
				// ============================================================================
				//
				// = LIBRARY
				//    TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage
				//
				// = FILENAME
				//    sender.h
				//
				// = DESCRIPTION
				//    This application reads data from a file and sends it to s
				//    receiver.
				//
				// = AUTHOR
				//    Yamuna Krishnamurthy 
				//
				// ============================================================================
				
				#include "orbsvcs/Naming/Naming_Utils.h"
				#include "orbsvcs/AV/AVStreams_i.h"
				#include "orbsvcs/AV/Endpoint_Strategy.h"
				#include "orbsvcs/AV/Protocol_Factory.h"
				
				class Sender_StreamEndPoint : public TAO_Client_StreamEndPoint
				{
				  // = TITLE
				  //    Defines a sender stream endpoint.
				public:
				  int get_callback (const char *flowname,
				                    TAO_AV_Callback *&callback);
				  // Create the application callback and return its handle to
				  // AVStreams for further application callbacks.
				
				  int set_protocol_object (const char *flowname,
				                           TAO_AV_Protocol_Object *object);
				  // Set protocol object corresponding to the transport protocol
				  // chosen.
				
				protected:
				  TAO_AV_Callback callback_;
				  // Application callback.
				};
				
				typedef TAO_AV_Endpoint_Reactive_Strategy_A
				          				           TAO_VDev,
				           AV_Null_MediaCtrl>
				        SENDER_ENDPOINT_STRATEGY;
				
				class Sender
				{
				  // = TITLE
				  //    Sender Application.
				  //
				  // = DESCRIPTION
				  //    Class is responsible for streaming (and pacing) data to a
				  //    receiver.
				public:
				  Sender (void);
				  // Constructor
				
				  int init (int argc,
				            char **argv
				            ACE_ENV_ARG_DECL_NOT_USED);
				  // Method to initialize the various data components.
				
				  int pace_data (ACE_ENV_SINGLE_ARG_DECL_NOT_USED);
				  // Method to pace and send data from a file.
				
				  void protocol_object (TAO_AV_Protocol_Object *protocol_object);
				  // Set the protocol object corresponding to the transport protocol chosen.
				
				  void streamctrl (AVStreams::StreamCtrl_ptr streamctrl);
				
				private:
				  int parse_args (int argc, char **argv);
				  // Method to parse the command line arguments.
				
				  SENDER_ENDPOINT_STRATEGY endpoint_strategy_;
				  // The endpoint strategy used by the sender.
				
				  AVStreams::MMDevice_var receiver_mmdevice_;
				  // The receiver MMDevice that the sender connects to.
				
				  TAO_MMDevice *sender_mmdevice_;
				  // The sender MMDevice.
				
				  AVStreams::StreamCtrl_ptr streamctrl_;
				  // Stream controller
				
				  int frame_count_;
				  // Number of frames sent.
				
				  ACE_CString filename_;
				  // File from which data is read.
				
				  TAO_Naming_Client naming_client_;
				  // The Naming Service client.
				
				  FILE *input_file_;
				  // File handle of the file read from.
				
				  double frame_rate_;
				  // Rate at which the data will be sent.
				
				  ACE_Message_Block mb_;
				  // Message block into which data is read from a file and then sent.
				
				  TAO_AV_Protocol_Object *protocol_object_;
				  // Protocol object corresponding to the transport protocol selected.
				};
							

相关资源