summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-24 18:38:32 +0000
committeryamuna <yamuna@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-24 18:38:32 +0000
commitd51bacad6b00da68c9b3ef8a2361408fbcf0b48a (patch)
treec29c6275c40fd01b1db6717e7ce43c60d1d795a9
parentcf91c47b3c68b89a5a8da4de622a3ad7074f75be (diff)
downloadATCD-d51bacad6b00da68c9b3ef8a2361408fbcf0b48a.tar.gz
*** empty log message ***
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.cpp113
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.h2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp8
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/receiver.cpp8
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp10
5 files changed, 108 insertions, 33 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.cpp b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.cpp
index e7ebc01b795..3cf4cf1ae21 100644
--- a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.cpp
@@ -11,15 +11,17 @@ Connection_Manager::~Connection_Manager (void)
}
void
-Connection_Manager::load_ep_addr (char* file_name)
+Connection_Manager::load_ep_addr (const char* file_name)
{
FILE* addr_file = ACE_OS::fopen (file_name, "r");
if (addr_file == 0)
- ACE_ERROR_RETURN ((LM_DEBUG,
- "Cannot open addr file %s\n",
- file_name),
- -1);
+ {
+ ACE_ERROR ((LM_DEBUG,
+ "Cannot open addr file %s\n",
+ file_name));
+ return;
+ }
else
ACE_DEBUG ((LM_DEBUG,
"Addr file opened successfully\n"));
@@ -27,48 +29,71 @@ Connection_Manager::load_ep_addr (char* file_name)
while (1)
{
char buf [BUFSIZ];
+
// Read from the file into a buffer
+
+
+ /*
int n = ACE_OS::fread (buf,
1,
BUFSIZ,
addr_file);
-
- if (n < 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Sender::pace_data fread failed\n"),
- -1);
+ */
- if (n == 0)
+ if ((ACE_OS::fgets (buf,BUFSIZ,addr_file)) == NULL)
{
// At end of file break the loop and end the sender.
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG,"End of Addr file\n"));
break;
}
+
+
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "%s\n",
+ buf));
Endpoint_Addresses* addr;
ACE_NEW (addr,
Endpoint_Addresses);
- TAO_Tokenizer addr_tokenizer (address,'/');
+ TAO_Tokenizer addr_tokenizer (buf,'/');
ACE_CString flowname;
if (addr_tokenizer [0] == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Corresponding flow name not specified for endpoint addresses\n"),
- -1);
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Corresponding flow name not specified for endpoint addresses\n"));
+ return;
+ }
else
- flowname += addr_tokenizer [0];
+ flowname += addr_tokenizer [0];
if (addr_tokenizer [1] != 0)
- addr->sender_addr += addr_tokenizer [1];
+ addr->sender_addr += CORBA::string_dup (addr_tokenizer [1]);
if (addr_tokenizer [2] != 0)
- addr->receiver_addr += addr_tokenizer [2];
+ addr->receiver_addr += CORBA::string_dup (addr_tokenizer [2]);
+
+ int result = ep_addr_.bind (flowname,
+ addr);
+ if (result == 0)
+ {
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "Flowname %s Bound Successfully\n",
+ flowname.c_str ()));
+ }
+ else if (result == 1)
+ ACE_DEBUG ((LM_DEBUG,
+ "Flowname %s already exists\n",
+ flowname.c_str ()));
+ else ACE_DEBUG ((LM_DEBUG,
+ "Flowname %s Bound Failed\n",
+ flowname.c_str ()));
- ep_addr_.bind (flowname,
- addr);
}
@@ -264,12 +289,26 @@ Connection_Manager::connect_to_receivers (AVStreams::MMDevice_ptr sender
ACE_CString flowname =
(*iterator).ext_id_;
- Endpoint_Addresses* addr;
- ep_addr_.find (floname,
+
+ Endpoint_Addresses* addr = 0;
+ ep_addr_.find (flowname,
addr);
- ACE_INET_Addr sender_addr (addr->sender_addr.c_str ());
- ACE_INET_Addr receiver_addr (addr->receiver_addr);
+ ACE_CString sender_addr_str;
+ ACE_CString receiver_addr_str;
+
+ if (addr != 0)
+ {
+ sender_addr_str = addr->sender_addr;
+ receiver_addr_str = addr->receiver_addr;
+ }
+ else ACE_DEBUG ((LM_DEBUG,
+ "No endpoint address for flowname %s\n",
+ flowname.c_str ()));
+
+ ACE_INET_Addr receiver_addr (receiver_addr_str.c_str ());
+ ACE_INET_Addr sender_addr (sender_addr_str.c_str ());
+
// Create the forward flow specification to describe the flow.
TAO_Forward_FlowSpec_Entry sender_entry (flowname.c_str (),
@@ -281,6 +320,7 @@ Connection_Manager::connect_to_receivers (AVStreams::MMDevice_ptr sender
sender_entry.set_peer_addr (&receiver_addr);
+
// Set the flow specification for the stream between receiver
// and distributer
AVStreams::flowSpec flow_spec (1);
@@ -446,24 +486,39 @@ Connection_Manager::connect_to_sender (ACE_ENV_SINGLE_ARG_DECL)
"_" +
this->receiver_name_;
+
Endpoint_Addresses* addr;
- ep_addr_.find (floname,
+ ep_addr_.find (flowname,
addr);
- ACE_INET_Addr sender_addr (addr->sender_addr.c_str ());
- ACE_INET_Addr receiver_addr (addr->receiver_addr.c_str ());
+ ACE_CString sender_addr_str;
+ ACE_CString receiver_addr_str;
+ if (addr != 0)
+ {
+ sender_addr_str = addr->sender_addr;
+ receiver_addr_str = addr->receiver_addr;
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Address Strings %s %s\n",
+ sender_addr_str.c_str (),
+ receiver_addr_str.c_str ()));
+ }
+ ACE_INET_Addr sender_addr (sender_addr_str.c_str ());
+ ACE_INET_Addr receiver_addr (receiver_addr_str.c_str ());
+
// Create the forward flow specification to describe the flow.
TAO_Forward_FlowSpec_Entry sender_entry (flowname.c_str (),
"IN",
"USER_DEFINED",
"",
"UDP",
- &local_addr);
-
+ &sender_addr);
+
sender_entry.set_peer_addr (&receiver_addr);
+
// Set the flow specification for the stream between sender and
// receiver.
AVStreams::flowSpec flow_spec (1);
diff --git a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.h b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.h
index 1d79d1e6e3d..f27b97eef2f 100644
--- a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.h
+++ b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/Connection_Manager.h
@@ -112,7 +112,7 @@ public:
Protocol_Objects &protocol_objects (void);
StreamCtrls &streamctrls (void);
- void load_ep_addr (char* file_name);
+ void load_ep_addr (const char* file_name);
protected:
diff --git a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp
index 5c21b5c9225..de4512bf7da 100644
--- a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/distributer.cpp
@@ -97,6 +97,7 @@ Distributer::Distributer (void)
: sender_name_ ("sender")
, distributer_name_ ("distributer")
, done_ (0)
+ , addr_file_ ("addr_file")
{
}
@@ -115,13 +116,16 @@ Distributer::parse_args (int argc,
char **argv)
{
// Parse command line arguments
- ACE_Get_Opt opts (argc, argv, "s:r:");
+ ACE_Get_Opt opts (argc, argv, "s:r:a:");
int c;
while ((c= opts ()) != -1)
{
switch (c)
{
+ case 'a':
+ this->addr_file_ = opts.opt_arg ();
+ break;
case 's':
this->sender_name_ = opts.opt_arg ();
break;
@@ -168,6 +172,8 @@ Distributer::init (int argc,
if (result != 0)
return result;
+ this->connection_manager_.load_ep_addr (this->addr_file_.c_str ());
+
ACE_NEW_RETURN (this->distributer_sender_mmdevice_,
TAO_MMDevice (&this->sender_endpoint_strategy_),
-1);
diff --git a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/receiver.cpp b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/receiver.cpp
index a2cd8fade22..4c1d94125a0 100644
--- a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/receiver.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/receiver.cpp
@@ -84,6 +84,7 @@ Receiver_Callback::handle_destroy (void)
Receiver::Receiver (void)
: mmdevice_ (0),
output_file_name_ ("output"),
+ addr_file_ ("addr_file"),
sender_name_ ("distributer"),
receiver_name_ ("receiver")
{
@@ -111,6 +112,8 @@ Receiver::init (int,
if (result != 0)
return result;
+ this->connection_manager_.load_ep_addr (this->addr_file_.c_str ());
+
// Register the receiver mmdevice object with the ORB
ACE_NEW_RETURN (this->mmdevice_,
TAO_MMDevice (&this->reactive_strategy_),
@@ -145,13 +148,16 @@ Receiver::parse_args (int argc,
// Parse the command line arguments
ACE_Get_Opt opts (argc,
argv,
- "f:s:r:");
+ "f:s:r:a:");
int c;
while ((c = opts ()) != -1)
{
switch (c)
{
+ case 'a':
+ this->addr_file_ = opts.opt_arg ();
+ break;
case 'f':
this->output_file_name_ = opts.opt_arg ();
break;
diff --git a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp
index d440d1f55fb..6fb8655f858 100644
--- a/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/sender.cpp
@@ -41,6 +41,7 @@ Sender::Sender (void)
frame_count_ (0),
filename_ ("input"),
input_file_ (0),
+ addr_file_ ("addr_file"),
frame_rate_ (10.0),
mb_ (BUFSIZ),
sender_name_ ("sender")
@@ -52,13 +53,16 @@ Sender::parse_args (int argc,
char **argv)
{
// Parse command line arguments
- ACE_Get_Opt opts (argc, argv, "s:f:r:d");
+ ACE_Get_Opt opts (argc, argv, "s:f:r:da:");
int c;
while ((c= opts ()) != -1)
{
switch (c)
{
+ case 'a':
+ this->addr_file_ = opts.opt_arg ();
+ break;
case 'f':
this->filename_ = opts.opt_arg ();
break;
@@ -97,6 +101,8 @@ Sender::init (int argc,
if (result != 0)
return result;
+
+
// Parse the command line arguments
result =
this->parse_args (argc,
@@ -104,6 +110,8 @@ Sender::init (int argc,
if (result != 0)
return result;
+ this->connection_manager_.load_ep_addr (this->addr_file_.c_str ());
+
// Open file to read.
this->input_file_ =
ACE_OS::fopen (this->filename_.c_str (),