本文整理匯總了C++中ACE_TEXT_ALWAYS_CHAR函數的典型用法代碼示例。如果您正苦於以下問題:C++ ACE_TEXT_ALWAYS_CHAR函數的具體用法?C++ ACE_TEXT_ALWAYS_CHAR怎麽用?C++ ACE_TEXT_ALWAYS_CHAR使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了ACE_TEXT_ALWAYS_CHAR函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。
示例1: ACE_TMAIN
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try {
// Initialize orb
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
if (parse_args (argc, argv) != 0)
return 1;
//Get reference to Root POA
CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
// Activate POA Manager
PortableServer::POAManager_var mgr = poa->the_POAManager();
mgr->activate();
// Find the Naming Service
obj = orb->resolve_initial_references("NameService");
CosNaming::NamingContextExt_var root =
CosNaming::NamingContextExt::_narrow(obj.in());
if (CORBA::is_nil(root.in())) {
std::cerr << "Nil Naming Context reference" << std::endl;
return 1;
}
// Bind a new context.
CosNaming::Name name;
name.length( 1 );
name[0].id = CORBA::string_dup( "root.esc-dot" );
name[0].kind = CORBA::string_dup( "kind1" );
try {
obj = root->resolve(name);
}
catch(const CosNaming::NamingContext::NotFound&) {
CosNaming::NamingContext_var dummy = root->bind_new_context(name);
}
name.length( 2 );
name[1].id = CORBA::string_dup( "leaf/esc-slash" );
name[1].kind = CORBA::string_dup( "kind2" );
// Create an object
PortableServer::Servant_var<Messenger_i> servant = new Messenger_i;
PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var messenger_obj = poa->id_to_reference(oid.in());
root->rebind(name, messenger_obj.in());
// Also try rebinding to a simple path.
CosNaming::Name_var simp_name = root->to_name("Simple");
try {
obj = root->resolve(simp_name.in());
}
catch(const CosNaming::NamingContext::NotFound&) {
CosNaming::NamingContext_var dummy =
root->bind_new_context(simp_name.in());
}
simp_name = root->to_name("Simple/Messenger");
root->rebind(simp_name.in(), messenger_obj.in());
// Convert Name to String Name.
CORBA::String_var str_name = root->to_string(name);
std::cout << "str_name: " << str_name.in() << std::endl;
CORBA::String_var str_simple = root->to_string(simp_name.in());
std::cout << "simple: " << str_simple.in() << std::endl;
// Convert String Name to Name.
CosNaming::Name_var tname = root->to_name(str_name.in());
std::cout << "converted back to a CosNaming::Name: " << std::endl;
std::cout << " name[0] = " << (* tname)[0].id.in() << " , "
<< (* tname)[0].kind.in() << std::endl;
std::cout << " name[1] = " << (* tname)[1].id.in() << " , "
<< (* tname)[1].kind.in() << std::endl;
// Find the application object by resolve_str.
try {
obj = root->resolve_str(str_name.in());
}
catch(const CosNaming::NamingContext::NotFound&) {
std::cerr<<"Couldn't resolve the string name: " << str_name << std::endl;
return 1;
}
ACE_CString base_address (":");
base_address += ACE_TEXT_ALWAYS_CHAR (hostname);
base_address += ":";
base_address += ACE_TEXT_ALWAYS_CHAR (port);
ACE_CString addr ("");
addr = base_address + "/key/str";
// Create an URL string for application object.
CORBA::String_var address = CORBA::string_dup (addr.c_str());
std::cout << "call to_url(\"" << address.in() << "\"" << std::endl;
std::cout << " ,\"" << str_simple.in() << "\")"<< std::endl;
CORBA::String_var url_string = root->to_url(address.in(), str_simple.in());
//.........這裏部分代碼省略.........
示例2: defined
int
TAO_Naming_Server::init_new_naming (CORBA::ORB_ptr orb,
PortableServer::POA_ptr poa,
const ACE_TCHAR *persistence_location,
void *base_addr,
size_t context_size,
int enable_multicast,
int use_storable_context,
int round_trip_timeout,
int use_round_trip_timeout)
{
try
{
#if defined (CORBA_E_MICRO)
ACE_UNUSED_ARG (persistence_location);
ACE_UNUSED_ARG (base_addr);
ACE_UNUSED_ARG (use_storable_context);
#else
if (use_storable_context)
{
// In lieu of a fully implemented service configurator version
// of this Reader and Writer, let's just take something off the
// command line for now.
TAO::Storable_Factory* pf = 0;
ACE_CString directory (ACE_TEXT_ALWAYS_CHAR (persistence_location));
ACE_NEW_RETURN (pf, TAO::Storable_FlatFileFactory (directory), -1);
auto_ptr<TAO::Storable_Factory> persFactory(pf);
// Use an auto_ptr to ensure that we clean up the factory in the case
// of a failure in creating and registering the Activator.
TAO_Storable_Naming_Context_Factory* cf =
this->storable_naming_context_factory (context_size);
// Make sure we got a factory
if (cf == 0) return -1;
auto_ptr<TAO_Storable_Naming_Context_Factory> contextFactory (cf);
// This instance will either get deleted after recreate all or,
// in the case of a servant activator's use, on destruction of the
// activator.
// Was a location specified?
if (persistence_location == 0)
{
// No, assign the default location "NameService"
persistence_location = ACE_TEXT ("NameService");
}
// Now make sure this directory exists
if (ACE_OS::access (persistence_location, W_OK|X_OK))
{
ORBSVCS_ERROR_RETURN ((LM_ERROR, "Invalid persistence directory\n"), -1);
}
#if (TAO_HAS_MINIMUM_POA == 0) && !defined (CORBA_E_COMPACT)
if (this->use_servant_activator_)
{
ACE_NEW_THROW_EX (this->servant_activator_,
TAO_Storable_Naming_Context_Activator (orb,
persFactory.get(),
contextFactory.get (),
persistence_location),
CORBA::NO_MEMORY ());
this->ns_poa_->set_servant_manager(this->servant_activator_);
}
#endif /* TAO_HAS_MINIMUM_POA */
try { // The following might throw an exception.
this->naming_context_ =
TAO_Storable_Naming_Context::recreate_all (orb,
poa,
TAO_ROOT_NAMING_CONTEXT,
context_size,
0,
contextFactory.get (),
persFactory.get (),
use_redundancy_);
}
catch (const CORBA::Exception& ex)
{
// The activator already took over the factories so we need to release the auto_ptr
if (this->use_servant_activator_)
{
// The context factory is now owned by the activator
// so we should release it
contextFactory.release ();
// If using a servant activator, the activator now owns the
// factory, so we should release it
persFactory.release ();
}
// Print out the exception and return failure
ex._tao_print_exception (
"TAO_Naming_Server::init_new_naming");
return -1;
}
// Kind of a duplicate of the above here, but we must also release the
// factory autoptrs in the good case as well.
if (this->use_servant_activator_)
{
// The context factory is now owned by the activator
// so we should release it
//.........這裏部分代碼省略.........
示例3: defined
ACE_TCHAR *
ACE_OS::strenvdup (const ACE_TCHAR *str)
{
#if defined (ACE_HAS_WINCE)
// WinCE doesn't have environment variables so we just skip it.
return ACE_OS::strdup (str);
#elif defined (ACE_LACKS_STRENVDUP)
ACE_UNUSED_ARG (str);
ACE_NOTSUP_RETURN (0);
#else
const ACE_TCHAR * start = 0;
if ((start = ACE_OS::strchr (str, ACE_TEXT ('$'))) != 0)
{
ACE_TCHAR buf[ACE_DEFAULT_ARGV_BUFSIZ];
size_t var_len = ACE_OS::strcspn (&start[1],
ACE_TEXT ("$~!#%^&*()-+=\\|/?,.;:'\"`[]{} \t\n\r"));
ACE_OS::strncpy (buf, &start[1], var_len);
buf[var_len++] = ACE_TEXT ('\0');
# if defined (ACE_WIN32)
// Always use the ACE_TCHAR for Windows.
ACE_TCHAR *temp = ACE_OS::getenv (buf);
# else
// Use char * for environment on non-Windows.
char *temp = ACE_OS::getenv (ACE_TEXT_ALWAYS_CHAR (buf));
# endif /* ACE_WIN32 */
size_t buf_len = ACE_OS::strlen (str) + 1;
if (temp != 0)
buf_len += ACE_OS::strlen (temp) - var_len;
ACE_TCHAR * buf_p = buf;
if (buf_len > ACE_DEFAULT_ARGV_BUFSIZ)
{
buf_p =
(ACE_TCHAR *) ACE_OS::malloc (buf_len * sizeof (ACE_TCHAR));
if (buf_p == 0)
{
errno = ENOMEM;
return 0;
}
}
ACE_TCHAR * p = buf_p;
size_t len = start - str;
ACE_OS::strncpy (p, str, len);
p += len;
if (temp != 0)
{
# if defined (ACE_WIN32)
p = ACE_OS::strecpy (p, temp) - 1;
# else
p = ACE_OS::strecpy (p, ACE_TEXT_CHAR_TO_TCHAR (temp)) - 1;
# endif /* ACE_WIN32 */
}
else
{
ACE_OS::strncpy (p, start, var_len);
p += var_len;
*p = ACE_TEXT ('\0');
}
ACE_OS::strcpy (p, &start[var_len]);
return (buf_p == buf) ? ACE_OS::strdup (buf) : buf_p;
}
else
return ACE_OS::strdup (str);
#endif /* ACE_HAS_WINCE */
}
示例4: ACE_TMAIN
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
if (parse_args (argc, argv) != 0)
{
return 1;
}
/// Get the MC object reference that the client has exposed.
CORBA::Object_var obj =
orb->string_to_object (monitor_ior);
if (CORBA::is_nil (obj.in ()))
{
ACE_ERROR_RETURN ((LM_ERROR,
"Monitor client - string_to_object failed\n"),
-1);
}
Monitor::MC_var monitor = Monitor::MC::_narrow (obj.in ());
if (CORBA::is_nil (monitor.in ()))
{
ACE_ERROR_RETURN ((LM_ERROR,
"Monitor client - narrow failed\n"),
-1);
}
if (monitor_point != 0)
{
/// Access the monitor's value a few times and watch it grow.
for (int i = 0; i < n_iterations; ++i)
{
Monitor::DataList_var data;
if (mp_clear)
{
data = monitor->get_and_clear_statistics (*monitor_point);
}
else
{
data = monitor->get_statistics (*monitor_point);
}
for (CORBA::ULong index = 0; index < data->length (); ++index)
{
ACE_DEBUG ((LM_DEBUG, "MP <%C>:\n", data[index].itemname.in ()));
Monitor::Data dlist = data[index];
if (dlist.data_union._d() == Monitor::DATA_TEXT)
{
for (CORBA::ULong valueindex = 0;
valueindex < dlist.data_union.num().dlist.length ();
++valueindex)
{
Monitor::DataValue d = dlist.data_union.num().dlist[valueindex];
ACE_DEBUG ((LM_DEBUG, "\t value <%A>:\n", d.value));
}
}
}
ACE_OS::sleep (sleep_time);
}
}
else
{
Monitor::NameList_var list = monitor->get_statistic_names (ACE_TEXT_ALWAYS_CHAR (filter));
for (CORBA::ULong index = 0; index < list->length (); ++index)
{
ACE_DEBUG ((LM_DEBUG, "MP: <%C>\n", list[index].in ()));
}
}
orb->destroy ();
}
catch (const CORBA::Exception &ex)
{
ex._tao_print_exception ("Monitor_client: Exception caught:");
return 1;
}
return 0;
}
示例5: ACE_TMAIN
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
MessageLog logger(HELLO_CALL_NUMBER);
try
{
CORBA::ORB_var orb =
CORBA::ORB_init (argc, argv);
CORBA::Object_var poa_object =
orb->resolve_initial_references("RootPOA");
PortableGroup::GOA_var root_poa =
PortableGroup::GOA::_narrow (poa_object.in ());
if (CORBA::is_nil (root_poa.in ()))
ACE_ERROR_RETURN ((LM_ERROR,
" (%P|%t) Panic: nil RootPOA\n"),
1);
PortableServer::POAManager_var poa_manager =
root_poa->the_POAManager ();
// servant
Hello_Impl* hello_impl;
ACE_NEW_RETURN (hello_impl,
Hello_Impl (orb.in (), &logger),
1);
PortableServer::ServantBase_var owner_transfer (hello_impl);
if (parse_args (argc, argv) != 0)
return 2;
// create UIPMC reference
CORBA::String_var multicast_url =
CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR(uipmc_url));
CORBA::Object_var miop_ref =
orb->string_to_object (multicast_url.in ());
// create id
PortableServer::ObjectId_var id =
root_poa->create_id_for_reference (miop_ref.in ());
// activate Hello Object
root_poa->activate_object_with_id (id.in (),
hello_impl);
CORBA::String_var ior =
orb->object_to_string (miop_ref.in ());
ACE_DEBUG ((LM_DEBUG, "Activated as <%C>\n", ior.in ()));
// If the ior_output_file exists, output the ior to it
if (ior_output_file != 0)
{
FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
if (output_file == 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
"Cannot open output file for writing IOR: %s",
ior_output_file),
1);
}
ACE_OS::fprintf (output_file, "%s", ior.in ());
ACE_OS::fclose (output_file);
}
poa_manager->activate ();
orb->run ();
root_poa->destroy (1, 1);
orb->destroy ();
if (logger.report_statistics () == 0)
ACE_ERROR_RETURN ((LM_ERROR,
"\n (%P|%t) ERROR: No single call got through to the server\n"),
3);
}
catch (const CORBA::Exception& ex)
{
ex._tao_print_exception ("Exception caught in server main ():");
return 4;
}
ACE_DEBUG ((LM_DEBUG,
"\n (%P|%t) server finished successfully..\n"));
return 0;
}
示例6: ACE_TMAIN
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
Consumer_Client client;
int status = client.init (argc, argv);
ACE_ASSERT(status == 0);
ACE_UNUSED_ARG(status);
CosNotifyChannelAdmin::EventChannel_var ec =
client.create_event_channel ("MyEventChannel", 1);
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
ACE_ASSERT(! CORBA::is_nil (sig.in ()));
CosNotifyChannelAdmin::ConsumerAdmin_var admin =
create_consumeradmin (ec.in ());
if (filter)
{
CosNotifyFilter::FilterFactory_var ffact =
ec->default_filter_factory ();
CosNotifyFilter::Filter_var filter =
ffact->create_filter ("TCL");
ACE_ASSERT(! CORBA::is_nil(filter.in()));
CosNotifyFilter::ConstraintExpSeq constraint_list (1);
constraint_list.length(1);
constraint_list[0].event_types.length (0);
constraint_list[0].constraint_expr = CORBA::string_dup(ACE_TEXT_ALWAYS_CHAR (constraintString));
filter->add_constraints (constraint_list);
admin->add_filter(filter.in());
}
ACE_ASSERT (!CORBA::is_nil (admin.in ()));
create_consumers(admin.in (), &client);
// Tell the supplier to go
sig->go ();
client.ORB_run( );
ACE_DEBUG((LM_DEBUG, "Consumer done.\n"));
sig->done ();
return 0;
}
catch (const CORBA::Exception& e)
{
e._tao_print_exception ("Error: Consumer exception: ");
}
return 1;
}
示例7: get_opt
int
ECT_Consumer_Driver::parse_args (int argc, ACE_TCHAR *argv [])
{
ACE_Get_Opt get_opt (argc, argv, ACE_TEXT("xdc:s:h:p:o:"));
int opt;
while ((opt = get_opt ()) != EOF)
{
switch (opt)
{
case 'x':
this->shutdown_event_channel_ = 0;
break;
case 'c':
this->n_consumers_ = ACE_OS::atoi (get_opt.opt_arg ());
break;
case 's':
this->n_suppliers_ = ACE_OS::atoi (get_opt.opt_arg ());
break;
case 'h':
{
char* aux;
char* arg = ACE_OS::strtok_r (ACE_TEXT_ALWAYS_CHAR(get_opt.opt_arg ()), ",", &aux);
this->type_start_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg);
arg = ACE_OS::strtok_r (0, ",", &aux);
this->type_count_ = ACE_OS::atoi (arg);
}
break;
case 'p':
this->pid_file_name_ = get_opt.opt_arg ();
break;
case 'o':
this->stall_length_ = ACE_OS::atoi (get_opt.opt_arg ());
break;
case '?':
default:
ACE_DEBUG ((LM_DEBUG,
"Usage: %s "
"[ORB options] "
"-d -x "
"-c <n_consumers> "
"-s <n_suppliers> "
"-h <type_start,type_count> "
"-p <pid file name> "
"\n",
argv[0]));
return -1;
}
}
if (this->n_suppliers_ <= 0)
{
ACE_DEBUG ((LM_DEBUG,
"%s: number of suppliers (%d) is out of range, "
"reset to default (%d)\n",
argv[0], this->n_suppliers_,
1));
this->n_suppliers_ = 1;
}
if (this->n_consumers_ <= 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
"%s: number of consumers or "
"suppliers out of range\n", argv[0]), -1);
}
if (this->type_count_ <= 0)
{
this->type_count_ = 1;
ACE_ERROR_RETURN ((LM_ERROR,
"%s: number of event types "
"suppliers out of range, reset to default (1)\n",
argv[0]), -1);
}
return 0;
}
示例8: defined
int
ACE_Logging_Strategy::handle_timeout (const ACE_Time_Value &,
const void *)
{
#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
if ((size_t) ACE_OS::fseek (this->log_msg_->msg_ostream (),
0,
SEEK_CUR) > this->max_size_)
#else
if ((size_t) this->log_msg_->msg_ostream ()->tellp ()
> this->max_size_)
#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
{
// Lock out any other logging.
if (this->log_msg_->acquire ())
ACE_ERROR_RETURN ((LM_ERROR,
ACE_LIB_TEXT ("Cannot acquire lock!\n")),
-1);
// Close the current ostream.
#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
FILE *output_file = (FILE *) this->log_msg_->msg_ostream ();
ACE_OS::fclose (output_file);
// We'll call msg_ostream() modifier later.
#else
ofstream *output_file =
(ofstream *) this->log_msg_->msg_ostream ();
output_file->close ();
#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
// Save current logfile to logfile.old analyze if it was set any
// fixed number for the log_files.
if (fixed_number_)
{
if (max_file_number_ < 1) //we only want one file
{
// Just unlink the file.
ACE_OS::unlink (this->filename_);
// Open a new log file with the same name.
#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
output_file = ACE_OS::fopen (this->filename_,
ACE_LIB_TEXT ("wt"));
if (output_file == 0)
return -1;
this->log_msg_->msg_ostream (output_file);
#else
output_file->open (ACE_TEXT_ALWAYS_CHAR (this->filename_),
ios::out);
#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
// Release the lock previously acquired.
this->log_msg_->release ();
return 0;
}
}
count_++;
// Set the number of digits of the log_files labels.
int digits = 1, res = count_;
while((res = (res / 10))>0)
digits++;
if (ACE_OS::strlen (this->filename_) + digits <= MAXPATHLEN)
{
ACE_TCHAR backup[MAXPATHLEN+1];
// analyse if it was chosen the mode which will order the
// log_files
if (order_files_)
{
ACE_TCHAR to_backup[MAXPATHLEN+1];
// reorder the logs starting at the oldest (the biggest
// number) watch if we reached max_file_number_.
int max_num;
if (fixed_number_ && count_ > max_file_number_)
// count_ will always be bigger than max_file_number_,
// so do nothing so to always reorder files from
// max_file_number_.
max_num = max_file_number_;
else
max_num = count_;
for (int i = max_num ; i > 1 ;i--)
{
ACE_OS::sprintf (backup,
ACE_LIB_TEXT ("%s.%d"),
this->filename_,
i);
ACE_OS::sprintf (to_backup,
ACE_LIB_TEXT ("%s.%d"),
this->filename_,
i - 1);
// Remove any existing old file; ignore error as
// file may not exist.
ACE_OS::unlink (backup);
//.........這裏部分代碼省略.........
示例9: teardown_plan
int
teardown_plan (const Options &opts,
DAnCE::Plan_Launcher_Base *pl_base,
const ::Deployment::DeploymentPlan *plan,
CORBA::ORB_ptr orb)
{
DANCE_TRACE ("teardown_plan");
int rc = 0;
try
{
CORBA::Object_var am;
CORBA::Object_var app;
if (opts.am_ior_ && opts.app_ior_)
{
DANCE_DEBUG (DANCE_LOG_MAJOR_EVENT,
(LM_DEBUG, DLINFO
ACE_TEXT ("Plan_Launcher::teardown_plan - ")
ACE_TEXT ("Tearing down plan with explicitly ")
ACE_TEXT ("nominated App and AM IORs.\n")));
am = orb->string_to_object (opts.am_ior_);
app = orb->string_to_object (opts.app_ior_);
}
else
{
// Need to perform lookup by uuid,
// either explicitly provided or in plan.
ACE_CString uuid;
if (plan)
uuid = plan->UUID.in ();
else
uuid = ACE_TEXT_ALWAYS_CHAR (opts.uuid_);
DAnCE::EM_Launcher *em_launcher =
dynamic_cast <DAnCE::EM_Launcher *> (pl_base);
if (!em_launcher)
{
DANCE_ERROR (DANCE_LOG_TERMINAL_ERROR,
(LM_ERROR, DLINFO
ACE_TEXT ("Plan_Launcher::teardown_plan - ")
ACE_TEXT ("Error: Attempting UUID lookup on non")
ACE_TEXT ("-EM managed plan not supported\n")));
return 1;
}
if (em_launcher->lookup_by_uuid (uuid.c_str (),
am.out (),
app.out ()))
{
DANCE_DEBUG (DANCE_LOG_MAJOR_EVENT,
(LM_DEBUG, DLINFO
ACE_TEXT ("Plan_Launcher::teardown_plan - ")
ACE_TEXT ("Tearing down plan with UUID %C\n"),
uuid.c_str ()));
}
else
{
DANCE_ERROR (DANCE_LOG_TERMINAL_ERROR,
(LM_ERROR, DLINFO
ACE_TEXT ("Plan_Launcher::teardown_plan - ")
ACE_TEXT ("Error: Lookup by UUID failed\n")));
return 1;
}
}
try
{
pl_base->teardown_application (am, app);
}
catch (const DAnCE::Deployment_Failure &ex)
{
if (!opts.quiet_)
{
DANCE_ERROR (DANCE_LOG_EMERGENCY, (LM_ERROR, DLINFO
ACE_TEXT ("Plan_Launcher::teardown_plan - ")
ACE_TEXT ("Application Teardown failed, exception: %C\n"),
ex.ex_.c_str ()));
}
rc = 1;
}
catch (const CORBA::Exception &ex)
{
if (!opts.quiet_)
{
DANCE_ERROR (DANCE_LOG_EMERGENCY, (LM_ERROR, DLINFO
ACE_TEXT ("Plan_Launcher::teardown_plan - ")
ACE_TEXT ("Application Teardown failed, ")
ACE_TEXT ("caught CORBA exception %C\n"),
ex._info ().c_str ()));
}
rc = 1;
}
catch (...)
{
if (!opts.quiet_)
{
DANCE_ERROR (DANCE_LOG_EMERGENCY, (LM_ERROR, DLINFO
ACE_TEXT ("Plan_Launcher::teardown_plan - ")
ACE_TEXT ("Application Teardown failed, ")
//.........這裏部分代碼省略.........
示例10: RPG_TRACE
bool
RPG_Net_Server_Common_Tools::getNextLogFilename (const std::string& directory_in,
std::string& FQLogFilename_out)
{
RPG_TRACE (ACE_TEXT ("RPG_Net_Server_Common_Tools::getNextLogFilename"));
// initialize return value(s)
FQLogFilename_out.resize (0);
// sanity check(s): log directory exists ?
// No ? --> try to create it then !
if (!Common_File_Tools::isDirectory (directory_in))
{
if (!Common_File_Tools::createDirectory (directory_in))
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to Common_File_Tools::createDirectory(\"%s\"), aborting\n"),
ACE_TEXT (directory_in.c_str ())));
return false;
} // end IF
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("created directory: \"%s\"...\n"),
ACE_TEXT (directory_in.c_str ())));
} // end IF
// construct correct logfilename...
FQLogFilename_out = directory_in;
FQLogFilename_out += ACE_DIRECTORY_SEPARATOR_CHAR_A;
std::string logFileName = ACE_TEXT_ALWAYS_CHAR (RPG_NET_SERVER_LOG_FILENAME_PREFIX);
logFileName += ACE_TEXT_ALWAYS_CHAR (COMMON_LOG_FILENAME_SUFFIX);
FQLogFilename_out += logFileName;
// retrieve all existing logs and sort them alphabetically...
ACE_Dirent_Selector entries;
int result = entries.open (directory_in.c_str (),
&RPG_Net_Server_Common_Tools::selector,
&RPG_Net_Server_Common_Tools::comparator);
if (result == -1)
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("failed to ACE_Dirent_Selector::open(\"%s\"): \"%s\", aborting\n"),
ACE_TEXT (directory_in.c_str ()),
ACE_TEXT (ACE_OS::strerror (ACE_OS::last_error()))));
return false;
} // end IF
// ACE_DEBUG ((LM_DEBUG,
// ACE_TEXT ("found %d logfiles...\n"),
// entries.length ()));
// OK: iterate over the entries and perform some magic...
// *NOTE*: entries have been sorted alphabetically:
// 1 current 2 4 3 --> current 1 2 3 4
// *TODO*: some malicious user could inject "fake" logfiles which can
// "confuse" this algorithm...
// skip handling of "<PREFIX><SUFFIX>" (if found)...
// *NOTE*: <PREFIX><SUFFIX> will become <PREFIX>_1<SUFFIX>...
bool found_current = false;
// sscanf settings
int number = 0;
int return_val = -1;
std::string format_string ("%d");
format_string += ACE_TEXT_ALWAYS_CHAR (COMMON_LOG_FILENAME_SUFFIX);
std::stringstream converter;
for (int i = entries.length () - 1, index = RPG_Net_Server_Common_Tools::maxNumberOfLogFiles_ - 1;
i >= 0;
i--)
{
// perform "special treatment" if "<PREFIX><SUFFIX>" found...
// *TODO*: do this in C++...
if (ACE_OS::strcmp (entries[i]->d_name,
logFileName.c_str ()) == 0)
{
found_current = true;
// skip this one for now
continue;
} // end IF
// scan number...
try
{
// *TODO*: do this in C++...
return_val = ::sscanf (entries[i]->d_name +
// skip some characters...
(ACE_OS::strlen (ACE_TEXT_ALWAYS_CHAR (RPG_NET_SERVER_LOG_FILENAME_PREFIX)) + 1),
format_string.c_str (),
&number);
if (return_val != 1)
{
if (return_val != 0)
{
ACE_DEBUG ((LM_ERROR,
ACE_TEXT ("::sscanf() failed for \"%s\": \"%s\", continuing\n"),
entries[i]->d_name,
ACE_TEXT (ACE_OS::strerror (ACE_OS::last_error ()))));
} // end IF
continue;
} // end IF
//.........這裏部分代碼省略.........
示例11: ACE_TRACE
int
ACE_Logging_Strategy::init (int argc, ACE_TCHAR *argv[])
{
ACE_TRACE ("ACE_Logging_Strategy::init");
// Store current priority masks for changes in <parse_args>.
this->process_priority_mask_ =
this->log_msg_->priority_mask (ACE_Log_Msg::PROCESS);
this->thread_priority_mask_ =
this->log_msg_->priority_mask (ACE_Log_Msg::THREAD);
// Use the options hook to parse the command line arguments.
this->parse_args (argc, argv);
// Setup priorities (to original if not specified on command line)
this->log_msg_->priority_mask (thread_priority_mask_,
ACE_Log_Msg::THREAD);
this->log_msg_->priority_mask (process_priority_mask_,
ACE_Log_Msg::PROCESS);
// Check if any flags were specified. If none were specified, let
// the default behavior take effect.
if (this->flags_ != 0)
{
// Clear all flags
this->log_msg_->clr_flags (ACE_Log_Msg::STDERR
| ACE_Log_Msg::LOGGER
| ACE_Log_Msg::OSTREAM
| ACE_Log_Msg::VERBOSE
| ACE_Log_Msg::VERBOSE_LITE
| ACE_Log_Msg::SILENT
| ACE_Log_Msg::SYSLOG);
// Check if OSTREAM bit is set
if (ACE_BIT_ENABLED (this->flags_,
ACE_Log_Msg::OSTREAM))
{
#if defined (ACE_LACKS_IOSTREAM_TOTALLY)
FILE *output_file = 0;
if (wipeout_logfile_)
output_file = ACE_OS::fopen (this->filename_, ACE_LIB_TEXT ("wt"));
else
output_file = ACE_OS::fopen (this->filename_, ACE_LIB_TEXT ("at"));
if (output_file == 0)
return -1;
#else
ofstream *output_file = 0;
// Create a new ofstream to direct output to the file.
if (wipeout_logfile_)
ACE_NEW_RETURN
(output_file,
ofstream (ACE_TEXT_ALWAYS_CHAR (this->filename_)),
-1);
else
ACE_NEW_RETURN
(output_file,
ofstream (ACE_TEXT_ALWAYS_CHAR (this->filename_),
ios::app | ios::out),
-1);
if (output_file->rdstate () != ios::goodbit)
{
delete output_file;
return -1;
}
#endif /* ACE_LACKS_IOSTREAM_TOTALLY */
// Set the <output_file> that'll be used by the rest of the
// code.
this->log_msg_->msg_ostream (output_file);
// Setup a timeout handler to perform the maximum file size
// check (if required).
if (this->interval_ > 0 && this->max_size_ > 0)
{
if (this->reactor () == 0)
// Use singleton.
this->reactor (ACE_Reactor::instance ());
this->reactor ()->schedule_timer
(this, 0,
ACE_Time_Value (this->interval_),
ACE_Time_Value (this->interval_));
}
}
// Now set the flags for Log_Msg
this->log_msg_->set_flags (this->flags_);
}
return this->log_msg_->open (this->program_name_,
this->log_msg_->flags (),
this->logger_key_);
}
示例12: ACE_TEXT_ALWAYS_CHAR
std::string Directory::name() const
{
return ACE_TEXT_ALWAYS_CHAR(logical_dirname_.c_str());
}
示例13: ACE_TEXT_ALWAYS_CHAR
void
TAO_Notify_Tests_Filter_Command::init (ACE_Arg_Shifter& arg_shifter)
{
if (arg_shifter.is_anything_left ())
{
if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-CreateFactory")) == 0) // -Create factory_name ec
{
this->command_ = CREATE_FACTORY;
arg_shifter.consume_arg ();
this->name_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); // FF name
arg_shifter.consume_arg ();
this->factory_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); //EC
arg_shifter.consume_arg ();
}
else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-CreateFilter")) == 0) // -CreateFilter filter_name filterfactory_name
{
this->command_ = CREATE_FILTER;
arg_shifter.consume_arg ();
this->name_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); // Filter name
arg_shifter.consume_arg ();
this->factory_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); //FF
arg_shifter.consume_arg ();
}
else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-Add_Constraint")) == 0) // -Add_Constraint filter_name constraint_expr
{
this->command_ = ADD_CONSTRAINT;
arg_shifter.consume_arg ();
this->name_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); // Filter name
arg_shifter.consume_arg ();
this->constraint_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); //Constraint
arg_shifter.consume_arg ();
}
else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-Add_Filter")) == 0) // -Add_Filter filter_name FilterAdmin_Name
{
this->command_ = ADD_FILTER;
arg_shifter.consume_arg ();
this->name_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); // Filter name
arg_shifter.consume_arg ();
this->factory_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); //FilterAdmin
arg_shifter.consume_arg ();
}
else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-Destroy")) == 0) // -Destroy filter_name
{
this->command_ = DESTROY;
arg_shifter.consume_arg ();
this->name_ = ACE_TEXT_ALWAYS_CHAR(arg_shifter.get_current ()); // filter
arg_shifter.consume_arg ();
}
}
}
示例14: ACE_TRACE
void
XML_Parser::parseFile(const std::string& emitClassQualifier_in,
const bool& emitStringConversionUtilities_in,
const bool& emitTaggedUnions_in,
const std::string& filename_in,
const bool& generateIncludeHeader_in,
const std::string& directory_in,
const std::string& preambleFilename_in,
const bool& filePerDefinition_in,
const std::string& typePrefix_in,
const std::string& typePostfix_in,
const bool& validate_in)
{
ACE_TRACE(ACE_TEXT("XML_Parser::parseFile"));
ACE_DEBUG((LM_DEBUG,
ACE_TEXT("parsing (XML) file \"%s\"...\n"),
filename_in.c_str()));
// Create a SAX parser object. Then, according to what we were told on
// the command line, set it to validate or not
SAX2XMLReader* reader = NULL;
try
{
reader = XMLReaderFactory::createXMLReader();
}
catch (...)
{
ACE_DEBUG((LM_ERROR,
ACE_TEXT("caught exception in XMLReaderFactory::createXMLReader, returning\n")));
return;
}
if (!reader)
{
ACE_DEBUG((LM_ERROR,
ACE_TEXT("failed to XMLReaderFactory::createXMLReader, returning\n")));
return;
} // end IF
// Then, according to what we were told on
// the command line, set it to validate or not.
if (validate_in)
{
// "automatic" validation...
reader->setFeature(XMLUni::fgSAX2CoreValidation, true);
reader->setFeature(XMLUni::fgXercesDynamic, true);
// reader->setFeature(XMLUni::fgXercesDynamic, false);
} // end IF
else
{
reader->setFeature(XMLUni::fgSAX2CoreValidation, false);
} // end ELSE
reader->setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
reader->setFeature(XMLUni::fgXercesSchema, true);
// reader->setFeature(XMLUni::fgXercesHandleMultipleImports, true);
reader->setFeature(XMLUni::fgXercesSchemaFullChecking, true);
reader->setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, true);
// Create the handler object and install it as the document and error
// handler for the parser. Then parse the file and catch any exceptions
// that propogate out
int errorCount = 0;
std::string schemaFilename = ACE::basename(filename_in.c_str());
std::string preamble;
ACE_stat stat;
if (!preambleFilename_in.empty() &&
(ACE_OS::stat(preambleFilename_in.c_str(), &stat) != -1)) // exists ?
{
std::ifstream preambleStream(preambleFilename_in.c_str(), std::ios_base::in);
if (!preambleStream.is_open())
{
ACE_DEBUG((LM_ERROR,
ACE_TEXT("failed to open preamble file: \"%s\", returning\n"),
preambleFilename_in.c_str()));
return;
} // end IF
std::string line;
while (std::getline(preambleStream, line))
{
preamble += line;
preamble += ACE_TEXT_ALWAYS_CHAR("\n");
} // end WHILE
preambleStream.close();
} // end IF
XML_Handler handler(emitClassQualifier_in,
emitStringConversionUtilities_in,
emitTaggedUnions_in,
schemaFilename,
generateIncludeHeader_in,
directory_in,
preamble,
filePerDefinition_in,
typePrefix_in,
typePostfix_in);
try
{
//.........這裏部分代碼省略.........
示例15: ACE_TMAIN
int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
{
try
{
// First initialize the ORB, that will remove some arguments...
CORBA::ORB_var orb =
CORBA::ORB_init (argc, argv);
if (argc < 2)
{
ACE_DEBUG ((LM_DEBUG, "\nUsage:\n %s [NAME to insert in Naming Service]\n", argv[0]));
return -1;
}
// Get a reference to the RootPOA
CORBA::Object_var poa_object =
orb->resolve_initial_references ("RootPOA");
// narrow down to the correct reference
PortableServer::POA_var poa =
PortableServer::POA::_narrow (poa_object.in ());
// Set a POA Manager
PortableServer::POAManager_var poa_manager =
poa->the_POAManager ();
// Activate the POA Manager
poa_manager->activate ();
// Create the servant
corbaloc_Status_i status_i;
status_i.set_name (ACE_TEXT_ALWAYS_CHAR (argv[1]));
// Activate it to obtain the reference
PortableServer::ObjectId_var id =
poa->activate_object (&status_i);
CORBA::Object_var object = poa->id_to_reference (id.in ());
corbaloc::Status_var status =
corbaloc::Status::_narrow (object.in ());
// Get a reference to Naming Context
CORBA::Object_var naming_context_object =
orb->resolve_initial_references ("NameService");
// Narrow down the reference
CosNaming::NamingContext_var naming_context =
CosNaming::NamingContext::_narrow (naming_context_object.in ());
// Bind Iterator_Factory to the Naming Context
CosNaming::Name name (1);
name.length (1);
name[0].id = CORBA::string_dup (ACE_TEXT_ALWAYS_CHAR (argv[1]));
naming_context->rebind (name, status.in ());
// Run the orb
orb->run ();
// Destroy the POA, waiting until the destruction terminates
poa->destroy (1, 1);
orb->destroy ();
}
catch (const CORBA::SystemException& ex){
ex._tao_print_exception ("CORBA exception raised! ");
}
catch (const CORBA::Exception& ex){
ex._tao_print_exception ("Exception caught in server");
}
return 0;
}