46 # include <iostream.h>
51 #ifdef HAVE_STD_IOSTREAM
55 #include "CosEventChannelAdmin.hh"
58 static void usage(
int argc,
char **argv);
61 main(
int argc,
char **argv)
67 #if defined(HAVE_OMNIORB4)
68 CORBA::ORB_ptr
orb = CORBA::ORB_init(argc,argv,
"omniORB4");
70 CORBA::ORB_ptr
orb = CORBA::ORB_init(argc,argv,
"omniORB3");
76 CosNaming::Name ecName =
str2name(
"EventChannel");
78 while ((c =
getopt(argc,argv,
"n:h")) != EOF)
85 case 'h':
usage(argc,argv);
88 default :
usage(argc,argv);
96 const char* action =
"start";
99 CORBA::Object_var obj;
106 action=
"convert URI from command line into object reference";
113 action=
"resolve initial reference 'NameService'";
114 obj=
orb->resolve_initial_references(
"NameService");
115 CosNaming::NamingContext_var rootContext=
116 CosNaming::NamingContext::_narrow(obj);
117 if(CORBA::is_nil(rootContext))
118 throw CORBA::OBJECT_NOT_EXIST();
122 action=
"find Event Channel in naming service";
123 obj=rootContext->resolve(ecName);
127 action=
"unbind Event Channel from naming service";
128 rootContext->unbind(ecName);
131 action=
"narrow object reference to event channel";
132 CosEventChannelAdmin::EventChannel_var channel =
133 CosEventChannelAdmin::EventChannel::_narrow(obj);
134 if(CORBA::is_nil(channel))
135 throw CORBA::OBJECT_NOT_EXIST();
139 action=
"destroy Event Channel";
144 action=
"destroy orb";
152 catch(CORBA::ORB::InvalidName& ex) {
153 cerr<<
"Failed to "<<action<<
". ORB::InvalidName"<<endl;
155 catch(CosNaming::NamingContext::InvalidName& ex) {
156 cerr<<
"Failed to "<<action<<
". NamingContext::InvalidName"<<endl;
158 catch(CosNaming::NamingContext::NotFound& ex) {
159 cerr<<
"Failed to "<<action<<
". NamingContext::NotFound"<<endl;
161 catch(CosNaming::NamingContext::CannotProceed& ex) {
162 cerr<<
"Failed to "<<action<<
". NamingContext::CannotProceed"<<endl;
164 catch(CORBA::TRANSIENT& ex) {
165 cerr<<
"Failed to "<<action<<
". TRANSIENT"<<endl;
167 catch(CORBA::OBJECT_NOT_EXIST& ex) {
168 cerr<<
"Failed to "<<action<<
". OBJECT_NOT_EXIST"<<endl;
170 catch(CORBA::SystemException& ex) {
171 cerr<<
"Failed to "<<action<<
".";
172 #if defined(HAVE_OMNIORB4)
173 cerr<<
" "<<ex._name();
174 if(ex.NP_minorString())
175 cerr<<
" ("<<ex.NP_minorString()<<
")";
179 catch(CORBA::Exception& ex) {
180 cerr<<
"Failed to "<<action<<
"."
181 #if defined(HAVE_OMNIORB4)
194 "\nDestroy an EventChannel.\n"
195 "syntax: "<<(argc?argv[0]:
"rmeventc")<<
" OPTIONS [CHANNEL_URI]\n"
197 "CHANNEL_URI: The event channel may be specified as a URI.\n"
198 " This may be an IOR, or a corbaloc::: or corbaname::: URI.\n"
200 "OPTIONS: DEFAULT:\n"
201 " -n NAME channel name (if URI is not specified) [\"EventChannel\"]\n"
202 " -h display this help text\n" << endl;
int getopt(int argc, char *argv[], const char *optionS)
CosNaming::Name str2name(const char *namestr)
Converts stringified name to naming service name.
int main(int argc, char **argv)
The main process entry point.
static void usage(int argc, char **argv)