本文整理汇总了C++中ACE_CString::rfind方法的典型用法代码示例。如果您正苦于以下问题:C++ ACE_CString::rfind方法的具体用法?C++ ACE_CString::rfind怎么用?C++ ACE_CString::rfind使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ACE_CString
的用法示例。
在下文中一共展示了ACE_CString::rfind方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
bool
ImR_Locator_i::split_key (ACE_CString &full, ACE_CString &key, Server_Info_Ptr &si)
{
key = full;
if (this->get_info_for_name (full.c_str(), si))
{
return true;
}
ACE_CString::size_type pos = full.rfind ('/');
while (pos != ACE_CString::npos)
{
ACE_CString server = full.substring (0, pos);
if (this->get_info_for_name (server.c_str (), si))
{
return true;
}
pos = server.rfind ('/');
}
return false;
}
示例2: answer
ACE_TCHAR *
ACE::HTBP::ID_Requestor::get_HTID ()
{
if (ACE::HTBP::ID_Requestor::htid_.length() != 0)
return ACE::HTBP::ID_Requestor::htid_.rep();
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, ACE::HTBP::ID_Requestor::htid_lock_, 0);
if (ACE::HTBP::ID_Requestor::htid_.length() != 0)
return ACE::HTBP::ID_Requestor::htid_.rep();
ACE_SOCK_Stream cli_stream;
ACE_TCHAR * htid = 0;
if (this->url_.length() == 0 ||
this->connect_to_server (&cli_stream) == -1 ||
this->send_request (&cli_stream) == -1)
{
ACE_Utils::UUID_Generator gen;
ACE_Utils::UUID *uuid = gen.generate_UUID ();
const ACE_CString *uuidstr = uuid->to_string();
ACE::HTBP::ID_Requestor::htid_ = ACE_TEXT_CHAR_TO_TCHAR (uuidstr->c_str());
delete uuid;
return ACE::HTBP::ID_Requestor::htid_.rep();
}
iovec recv_buf;
ssize_t result = cli_stream.recvv (&recv_buf);
cli_stream.close();
if (result > 0)
{
ACE_CString answer ((char *)recv_buf.iov_base,recv_buf.iov_len);
ACE_CString::size_type start = answer.rfind (ACE_TEXT('\n'));
if (start == ACE_CString::npos)
start = 0;
else
start++;
ACE::HTBP::ID_Requestor::htid_ = ACE_TEXT_CHAR_TO_TCHAR(answer.substr (start).c_str());
htid = ACE::HTBP::ID_Requestor::htid_.rep();
}
return htid;
}
示例3: path
void
Library::set_path (const char *p)
{
char abspath[1000];
ACE_OS::memset (abspath,0,1000);
ssize_t abspathlen = ACE_OS::readlink(p,abspath,999);
ACE_CString path (p);
if (abspathlen > 0) {
abspath[abspathlen] = 0;
path = abspath;
}
ACE_CString::size_type pathsep = path.rfind('/');
if (pathsep == ACE_CString::npos) {
path_ = ".";
} else {
path_ = path.substr(0,pathsep);
}
}
示例4: fn
int
BE_GlobalData::outfile_init (TAO_OutStream *& os,
const char *file_prefix,
const char *file_suffix,
const char *guard_prefix,
const char *guard_suffix)
{
ACE_NEW_RETURN (os,
TAO_SunSoft_OutStream,
-1);
ACE_CString fn (idl_global->stripped_filename ()->get_string ());
fn = fn.substr (0, fn.rfind ('.'));
fn += file_suffix;
const char *path = be_global->output_dir ();
ACE_CString target_name;
if (path != 0)
{
target_name = path;
target_name += "/";
}
target_name += file_prefix;
target_name += fn;
if (os->open (target_name.c_str ()) != 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
"Failed to open file %s for writing.\n",
target_name.c_str ()),
-1);
}
*os << be_nl;
os->gen_ifndef_string (fn.c_str (), guard_prefix, guard_suffix);
return 0;
}
示例5: dup_src_file
//
// get_target_basename
//
const ACE_CString & BE_GlobalData::get_target_basename (void) const
{
if (!this->target_basename_.empty ())
return this->target_basename_;
// Normalize the source file name.
ACE_CString dup_src_file (this->source_file_);
std::replace (dup_src_file.begin (), dup_src_file.end (), '\\', '/');
// Extract the basename of the source file. This include removing
// the path from the source file, and removing its extension.
size_t pos = dup_src_file.rfind ('/');
ACE_CString filename;
BE_GlobalData::get_filename (dup_src_file, filename);
pos = filename.rfind ('.');
this->target_basename_ = pos == ACE_CString::npos ? filename : filename.substring (0, pos);
this->target_basename_ += this->suffix_;
return this->target_basename_;
}
示例6: holder
int
be_visitor_servant_svh::visit_consumes (be_consumes *node)
{
if(!be_global->gen_noeventccm ())
{
const char *obj_name = node->consumes_type ()->full_name ();
const char *port_name = node->local_name ()->get_string ();
ACE_CString holder (obj_name);
ACE_CString::size_type pos = holder.rfind (':');
const char *ev_lname = 0;
if (pos == ACE_CString::npos)
{
ev_lname = obj_name;
}
else
{
holder = holder.substr (pos + 1);
ev_lname = holder.c_str ();
}
os_ << be_uidt_nl << be_nl
<< "public:" << be_idt_nl;
os_ << "// Servant class for the " << port_name
<< " consumer." << be_nl
<< "class " << export_macro_.c_str () << " " << ev_lname
<< "Consumer_" << port_name << "_Servant" << be_idt_nl
<< ": public virtual ::POA_" << obj_name << "Consumer"
<< be_uidt_nl
<< "{" << be_nl
<< "public:" << be_idt_nl;
ACE_CString sname_str (
ScopeAsDecl (node_->defined_in ())->full_name ());
const char *sname = sname_str.c_str ();
const char *lname = node_->local_name ();
const char *global = (sname_str == "" ? "" : "::");
os_ << ev_lname << "Consumer_" << port_name
<< "_Servant (" << be_idt_nl
<< global << sname << "::CCM_" << lname
<< "_ptr executor," << be_nl
<< global << sname << "::CCM_" << lname
<< "_Context_ptr c);" << be_uidt_nl << be_nl;
os_ << "virtual ~" << ev_lname << "Consumer_" << port_name
<< "_Servant (void);";
os_ << be_nl_2
<< "virtual void" << be_nl
<< "push_" << ev_lname << " (" << be_idt_nl
<< "::" << obj_name << " * evt);" << be_uidt;
os_ << be_nl_2
<< "/// Inherited from ::Components::EventConsumerBase." << be_nl
<< "virtual void" << be_nl
<< "push_event ( ::Components::EventBase * ev);";
os_ << be_nl_2
<< "/// Get component implementation." << be_nl
<< "virtual ::CORBA::Object_ptr" << be_nl
<< "_get_component (void);";
os_ << be_uidt_nl << be_nl
<< "protected:" << be_idt_nl;
os_ << global << sname << "::CCM_" << lname << "_var" << be_nl
<< "executor_;";
os_ << be_nl_2
<< global << sname << "::CCM_"
<< lname << "_Context_var" << be_nl
<< "ctx_;";
os_ << be_uidt_nl
<< "};";
if (!be_global->gen_lwccm ())
{
os_ << be_nl_2
<< "virtual ::" << obj_name << "Consumer_ptr" << be_nl
<< "get_consumer_" << port_name << " (void);";
}
os_ << be_uidt_nl << be_nl
<< "private:" << be_idt_nl;
os_ << "void" << be_nl
<< "setup_consumer_" << port_name << "_i (void);";
os_ << be_uidt_nl << be_nl
<< "private:" << be_idt_nl;
os_ << "::" << obj_name << "Consumer_var" << be_nl
<< "consumes_" << port_name << "_;";
}
return 0;
}
示例7: path
void
Obj_Module::add_source(const char *p, int imports_only)
{
ACE_Process nmproc;
ACE_Process_Options nm_opts;
ACE_CString path (p);
ACE_CString::size_type pathsep = path.rfind('/');
ACE_CString src_name;
ACE_CString workpath;
if (pathsep == ACE_CString::npos) {
src_name = path;
workpath = ".";
} else {
src_name = path.substr(pathsep+1);
workpath= path.substr(0,pathsep);
}
ACE_HANDLE pipe[2];
ACE_Pipe io(pipe);
nm_opts.working_directory (workpath.c_str());
nm_opts.set_handles (ACE_STDIN,pipe[1]);
// Options for the command line shown here are for the GNU nm 2.9.5
int result = nm_opts.command_line ("nm -C %s",src_name.c_str());
// Prevent compiler warning about "unused variable" if ACE_ASSERT is
// an empty macro.
ACE_UNUSED_ARG (result);
ACE_ASSERT (result == 0);
nmproc.spawn (nm_opts);
if (ACE_OS::close(pipe[1]) == -1)
ACE_DEBUG ((LM_DEBUG, "%p\n", "close"));
nm_opts.release_handles();
int import_lines = 0;
int export_lines = 0;
ACE_Message_Block im_buffer (102400);
ACE_Message_Block ex_buffer (102400);
ACE_Message_Block *im_buf_cur = &im_buffer;
ACE_Message_Block *ex_buf_cur = &ex_buffer;
char dummy;
int eoln = 1;
// ACE_Time_Value timeout (1,0);
int is_import = 1;
int is_export = 1;
while (eoln == 1) {
for (int i = 0; i < 10; i++) {
if (ACE_OS::read(pipe[0],&dummy,1) != 1) {
eoln = 2;
break;
}
}
if (eoln == 2)
break;
is_import = dummy == 'U';
is_export = !imports_only && (ACE_OS::strchr("BCDRTVW",dummy) != 0);
// if (ACE::recv(pipe[0],&dummy,1,&timeout) != 1)
if (ACE_OS::read(pipe[0],&dummy,1) != 1)
break;
eoln = this->read_line (pipe[0], is_import ? &im_buf_cur :
(is_export ? &ex_buf_cur : 0));
import_lines += is_import;
export_lines += is_export;
}
// ACE_DEBUG ((LM_DEBUG, "read %d import lines and %d export lines\n",
// import_lines, export_lines));
nmproc.wait ();
ACE_OS::close (pipe[0]);
this->populate_sig_list (imports_,import_lines,&im_buffer);
if (!imports_only)
this->populate_sig_list (exports_,export_lines,&ex_buffer);
}
示例8: comp_sname_str
//.........这里部分代码省略.........
}
os_ << be_uidt_nl << "}";
os_ << be_nl_2
<< "void" << be_nl
<< comp_lname << "_Servant::" << lname << "Consumer_"
<< port_name << "_Servant::push_" << lname
<< " (" << be_idt_nl
<< "::" << fname << " * evt)" << be_uidt_nl
<< "{" << be_idt_nl
<< "this->executor_->push_" << port_name
<< " (evt);" << be_uidt_nl
<< "}";
os_ << be_nl_2
<< "/// Inherited from ::Components::EventConsumerBase."
<< be_nl
<< "void" << be_nl
<< comp_lname << "_Servant::" << lname << "Consumer_"
<< port_name << "_Servant::push_event (" << be_idt_nl
<< "::Components::EventBase * ev)" << be_uidt_nl
<< "{" << be_idt_nl
<< "::" << fname << " * ev_type =" << be_idt_nl
<< "::" << fname << "::_downcast (ev);"
<< be_uidt_nl << be_nl
<< "if (ev_type != 0)" << be_idt_nl
<< "{" << be_idt_nl
<< "this->push_" << lname << " (ev_type);" << be_nl
<< "return;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl
<< "throw ::Components::BadEventType ();" << be_uidt_nl
<< "}";
if (!be_global->gen_lwccm ())
{
os_ << be_nl_2
<< "::" << fname << "Consumer_ptr" << be_nl
<< node_->local_name () << "_Servant::get_consumer_"
<< port_name << " (void)" << be_nl
<< "{" << be_idt_nl
<< "return" << be_idt_nl
<< "::" << fname << "Consumer::_duplicate (" << be_idt_nl
<< "this->consumes_" << port_name << "_.in ());"
<< be_uidt << be_uidt << be_uidt_nl
<< "}";
}
os_ << be_nl_2
<< "void" << be_nl
<< node_->local_name () << "_Servant::setup_consumer_"
<< port_name << "_i (void)" << be_nl
<< "{" << be_idt_nl
<< "ACE_CString obj_id (this->ins_name_);" << be_nl
<< "obj_id += \"_" << port_name << "\";" << be_nl_2
<< "::CIAO::Container_var cnt_safe =" << be_idt_nl
<< "::CIAO::Container::_duplicate ("
<< "this->container_.in ());" << be_uidt_nl << be_nl
<< "if (::CORBA::is_nil (cnt_safe.in ()))" << be_idt_nl
<< "{" << be_idt_nl << "throw ::CORBA::INV_OBJREF ();" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl
<< "PortableServer::POA_var POA = cnt_safe->the_port_POA ();" << be_nl
<< node_->local_name () << "_Servant::" << lname
<< "Consumer_" << port_name << "_Servant *"
<< port_name << "_servant_impl = " << be_idt_nl
<< "new " << node_->local_name () << "_Servant::" << lname
<< "Consumer_" << port_name << "_Servant (" << be_idt_nl
<< " this->executor_, this->context_);" << be_uidt_nl << be_uidt_nl << be_nl
<< "PortableServer::ServantBase_var safe_base_servant ("
<< port_name << "_servant_impl);" << be_nl
<< "PortableServer::ObjectId_var " << port_name << "_servant_oid =" << be_idt_nl
<< "PortableServer::string_to_ObjectId (obj_id.c_str());" << be_uidt_nl << be_nl
<< "POA->activate_object_with_id(" << be_idt_nl
<< port_name << "_servant_oid.in()," << be_nl
<< port_name << "_servant_impl);" << be_uidt_nl << be_nl
<< "::CORBA::Object_var " << port_name << "_servant_impl_obj = " << be_idt_nl
<< "cnt_safe->generate_reference ( " << be_idt_nl
<< "obj_id.c_str ()," << be_nl
<< "\"";
ACE_CString work (obj->repoID ());
ACE_CString result (work.substr (0, work.rfind (':')));
result += "Consumer:1.0";
os_ << result.c_str ();
os_ << "\"," << be_nl
<< "::CIAO::Container_Types::FACET_CONSUMER_t);"
<< be_uidt_nl << be_uidt_nl
<< "::Components::EventConsumerBase_var ecb =" << be_idt_nl
<< "::Components::EventConsumerBase::_narrow ("
<< port_name << "_servant_impl_obj.in ());"
<< be_uidt_nl << be_nl
<< "this->add_consumer (\"" << port_name << "\", ecb.in ());"
<< be_uidt_nl
<< "}";
return 0;
}