summaryrefslogtreecommitdiff
path: root/TAO/tests
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-09-11 20:34:27 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-09-11 20:34:27 +0000
commit74bc324609254cb7ab193f19105f4e40c2e7fc25 (patch)
tree4632f6a914920cc3c05ec3aa61b6a83bd5359ba9 /TAO/tests
parent4b3de67fefbc7c5cfe98b11d233cfb0c1821a9a6 (diff)
downloadATCD-74bc324609254cb7ab193f19105f4e40c2e7fc25.tar.gz
*** empty log message ***
Diffstat (limited to 'TAO/tests')
-rw-r--r--TAO/tests/Simple/chat/Broadcaster.idl26
-rw-r--r--TAO/tests/Simple/chat/Broadcaster_i.cpp85
-rw-r--r--TAO/tests/Simple/chat/Broadcaster_i.h29
-rw-r--r--TAO/tests/Simple/chat/Receiver.idl2
-rw-r--r--TAO/tests/Simple/chat/Receiver_i.cpp15
-rw-r--r--TAO/tests/Simple/chat/Receiver_i.h3
-rw-r--r--TAO/tests/Simple/chat/client.cpp (renamed from TAO/tests/Simple/chat/Chat.cpp)20
-rw-r--r--TAO/tests/Simple/chat/client.h (renamed from TAO/tests/Simple/chat/Chat.h)0
8 files changed, 75 insertions, 105 deletions
diff --git a/TAO/tests/Simple/chat/Broadcaster.idl b/TAO/tests/Simple/chat/Broadcaster.idl
index 932486f2a65..6398929e592 100644
--- a/TAO/tests/Simple/chat/Broadcaster.idl
+++ b/TAO/tests/Simple/chat/Broadcaster.idl
@@ -9,15 +9,25 @@ interface Broadcaster
// It broadcasts messages received from one registered client to all
// its registered clients.
- long register (in Receiver receiver, in string nickname);
- // registers a Receiver with the chat server.
- // a registered client must call un_register before it goes away.
- // returns 0 on success.
+ exception CannotAdd
+ {
+ string reason_;
+ };
- long un_register (in Receiver receiver);
- // unregisters a Receiver.
- // returns 0 on success.
+ exception CannotRemove
+ {
+ string reason_;
+ };
+
+ void add (in Receiver receiver)
+ raises (CannotAdd);
+ // Registers a Receiver with the chat server. A registered client
+ // must call un_register before it goes away.
+
+ void remove (in Receiver receiver)
+ raises (CannotRemove);
+ // Unregisters a Receiver.
void say (in string text);
- // say something to all registered clients.
+ // Say something to all registered clients.
};
diff --git a/TAO/tests/Simple/chat/Broadcaster_i.cpp b/TAO/tests/Simple/chat/Broadcaster_i.cpp
index 6a8f28ef421..543a0781346 100644
--- a/TAO/tests/Simple/chat/Broadcaster_i.cpp
+++ b/TAO/tests/Simple/chat/Broadcaster_i.cpp
@@ -19,93 +19,56 @@
#include "Broadcaster_i.h"
-Broadcaster_i::Broadcaster_i()
+Broadcaster_i::Broadcaster_i (void)
{
}
-Broadcaster_i::~Broadcaster_i()
+Broadcaster_i::~Broadcaster_i (void)
{
- // clean up the receiver_set_
- Receiver_Set_Iterator iter(receiver_set_);
-
- Receiver_Data **receiver_data_ptr;
-
- if (iter.first() == 1)
- while (iter.done() == 0)
- {
- iter.next(receiver_data_ptr);
-
- delete (*receiver_data_ptr)->nick_;
-
- iter.advance();
- }
}
-CORBA::Long Broadcaster_i:: _cxx_register (Receiver_ptr receiver,
- const char * nickname, CORBA::Environment &_tao_environment)
+void
+Broadcaster_i::add (Receiver_ptr receiver,
+ CORBA::Environment &environment)
{
- // check if the set is full.
- if (receiver_set_.is_full() == 1 )
- {
- return -1;
- }
-
- Receiver_Data *receiver_data_ptr;
-
- // create a Receiver_Data object.
- ACE_NEW_RETURN(receiver_data_ptr, Receiver_Data(), -1);
-
// store the client information.
- receiver_data_ptr->receiver_ptr_ = Receiver::_duplicate(receiver);
- receiver_data_ptr->nick_ = CORBA::string_dup (nickname);
+ Receiver_var receiver = Receiver::_duplicate (receiver);
// insert the Receiver reference to the set
- if (receiver_set_.insert(receiver_data_ptr) == -1)
+ if (receiver_set_.insert (receiver) == -1)
{
- return -1;
+ // Raise exception
+ environment.exception (new Broadcaster::CannotAdd (/* reason */));
}
-
- return 0;
}
-CORBA::Long Broadcaster_i::un_register (Receiver_ptr receiver,
- CORBA::Environment &_tao_environment)
+void
+Broadcaster_i::remove (Receiver_ptr receiver,
+ CORBA::Environment &environment)
{
- // NOT implemented yet..
- //
- return -1;
+
}
-void Broadcaster_i::say (const char * text,
- CORBA::Environment &_tao_environment)
+void
+Broadcaster_i::say (const char *text,
+ CORBA::Environment &environment)
{
- // broadcast the message to all registered clients
- Receiver_Set_Iterator iter(receiver_set_);
-
- Receiver_Data **receiver_data_ptr ;
-
CORBA::Environment TAO_TRY_ENV;
TAO_TRY
{
- if (iter.first() == 1)
- while (iter.done() == 0)
- {
- iter.next(receiver_data_ptr);
-
- char *msg = CORBA::string_dup(text);
- //char *nick = (*receiver_data_ptr)->nick_;
-
- //(*receiver_data_ptr)->receiver_ptr_->message (nick, TAO_TRY_ENV);
- (*receiver_data_ptr)->receiver_ptr_->message (msg, TAO_TRY_ENV);
-
- iter.advance();
- }
+ // Broadcast the message to all registered clients
+ for (RECEIVER_SET_ITERATOR iter = this->receiver_set_.begin ();
+ iter != this->receiver_set_.done ();
+ iter++)
+ {
+ (*iter)->message (msg, TAO_TRY_ENV);
+ }
}
TAO_CATCHANY
{
TAO_TRY_ENV.print_exception ("Broadcaster_i::say\t\n");
}
-
+
TAO_ENDTRY;
}
diff --git a/TAO/tests/Simple/chat/Broadcaster_i.h b/TAO/tests/Simple/chat/Broadcaster_i.h
index 75ebe5556f5..4b09a343265 100644
--- a/TAO/tests/Simple/chat/Broadcaster_i.h
+++ b/TAO/tests/Simple/chat/Broadcaster_i.h
@@ -23,6 +23,7 @@
#include "ReceiverC.h"
#include "tao/TAO.h"
#include "ace/Containers.h"
+#include "ace/SString.h"
class Broadcaster_i : public POA_Broadcaster
{
@@ -30,40 +31,42 @@ class Broadcaster_i : public POA_Broadcaster
// The implementation of the Broadcaster class which is the servant
// object for the chat server.
- public:
- Broadcaster_i();
+public:
+ Broadcaster_i (void);
// Constructor
- ~Broadcaster_i();
+ ~Broadcaster_i (void);
// Destructor
- virtual CORBA::Long _cxx_register (Receiver_ptr receiver,
- const char * nickname, CORBA::Environment &_tao_environment);
+ virtual CORBA::Long add (Receiver_ptr receiver,
+ const char * nickname,
+ CORBA::Environment &_tao_environment);
// saves receiver references in a list.
- virtual CORBA::Long un_register (Receiver_ptr receiver, CORBA::Environment &_tao_environment);
+ virtual CORBA::Long remove (Receiver_ptr receiver,
+ CORBA::Environment &_tao_environment);
// removes receiver references from the list.
virtual void say (const char * text,
CORBA::Environment &_tao_environment);
// called by Broadcaster clients to send messages.
- private:
+private:
TAO_ORB_Manager orb_manager_;
// the ORB manager.
struct Receiver_Data
{
- Receiver_ptr receiver_ptr_;
- char* nick_;
+ Receiver_var receiver_;
+ ACE_CString nick_;
};
// per client info
- typedef ACE_Unbounded_Set<Receiver_Data*> Receiver_Set;
- typedef ACE_Unbounded_Set_Iterator<Receiver_Data*> Receiver_Set_Iterator;
+ typedef ACE_Unbounded_Set<Receiver_Data> RECEIVER_SET;
+ typedef ACE_Unbounded_Set_Iterator<Receiver_Data> RECEIVER_SET_ITERATOR;
- Receiver_Set receiver_set_;
- //set of registered clients.
+ RECEIVER_SET receiver_set_;
+ // set of registered clients.
};
#endif /* BROADCASTER_I_H */
diff --git a/TAO/tests/Simple/chat/Receiver.idl b/TAO/tests/Simple/chat/Receiver.idl
index 4f6ed3619aa..3a8ae47b3a7 100644
--- a/TAO/tests/Simple/chat/Receiver.idl
+++ b/TAO/tests/Simple/chat/Receiver.idl
@@ -9,6 +9,6 @@ interface Receiver
void message (in string msg);
// displays the message in the client application.
- oneway void shutdown();
+ oneway void shutdown ();
// called by the chat server before it goes away.
};
diff --git a/TAO/tests/Simple/chat/Receiver_i.cpp b/TAO/tests/Simple/chat/Receiver_i.cpp
index a76780c7fbe..2797dfa7098 100644
--- a/TAO/tests/Simple/chat/Receiver_i.cpp
+++ b/TAO/tests/Simple/chat/Receiver_i.cpp
@@ -18,7 +18,8 @@
#include "Receiver_i.h"
-Receiver_i::Receiver_i (void) : orb_(0)
+Receiver_i::Receiver_i (void)
+ : orb_ (0)
{
}
@@ -28,19 +29,17 @@ Receiver_i::~Receiver_i (void)
}
void
-Receiver_i::message (const char * msg, CORBA::Environment &_tao_environment)
+Receiver_i::message (const char *msg,
+ CORBA::Environment &)
{
- ACE_OS::printf(": ");
- ACE_OS::printf(msg);
- ACE_OS::printf("\n");
+ ACE_DEBUG ((LM_DEBUG, ": %s\n", msg));
}
void
-Receiver_i::shutdown (CORBA::Environment &_tao_environment)
+Receiver_i::shutdown (CORBA::Environment &)
{
ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- "Receiver_i is shutting down"));
+ "Receiver_i is shutting down\n"));
// Instruct the ORB to shutdown.
this->orb_->shutdown ();
diff --git a/TAO/tests/Simple/chat/Receiver_i.h b/TAO/tests/Simple/chat/Receiver_i.h
index ddf2abf91c0..5dc74c82336 100644
--- a/TAO/tests/Simple/chat/Receiver_i.h
+++ b/TAO/tests/Simple/chat/Receiver_i.h
@@ -39,7 +39,8 @@ public:
~Receiver_i (void);
// Destructor
- virtual void message (const char * msg, CORBA::Environment &_tao_environment);
+ virtual void message (const char *msg,
+ CORBA::Environment &_tao_environment);
// receives a message string
virtual void shutdown (CORBA::Environment &_tao_environment);
diff --git a/TAO/tests/Simple/chat/Chat.cpp b/TAO/tests/Simple/chat/client.cpp
index 9d25b4504b2..356c65aa1ad 100644
--- a/TAO/tests/Simple/chat/Chat.cpp
+++ b/TAO/tests/Simple/chat/client.cpp
@@ -24,32 +24,26 @@ main(int argc, char* argv[])
{
printf("\n============= Simple Chat ===========\n");
- char *nick;
- char def_nick[] = "chat client";
+ char *nick = "chat client";
- if (argc >=2 )
- {
- nick = argv[1];
- }
+ if (argc >= 2)
+ nick = argv[1];
else
- {
- printf("\n usage: Chat <nickname>\n");
- nick = def_nick;
- }
+ printf("\n usage: Chat <nickname>\n");
TAO_TRY
{
Chat_i chat_i ("chat.ior", nick);
- if (chat_i.init (argc, argv) == -1 || chat_i.run() == -1)
+ if (chat_i.init (argc, argv) == -1 || chat_i.run () == -1)
{
- return 1;
+ return -1;
}
}
TAO_CATCHANY
{
TAO_TRY_ENV.print_exception ("chat::main\t\n");
- return 1;
+ return -1;
}
TAO_ENDTRY;
diff --git a/TAO/tests/Simple/chat/Chat.h b/TAO/tests/Simple/chat/client.h
index d4108612b8d..d4108612b8d 100644
--- a/TAO/tests/Simple/chat/Chat.h
+++ b/TAO/tests/Simple/chat/client.h