本文整理汇总了C++中ACE_CString::substr方法的典型用法代码示例。如果您正苦于以下问题:C++ ACE_CString::substr方法的具体用法?C++ ACE_CString::substr怎么用?C++ ACE_CString::substr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ACE_CString
的用法示例。
在下文中一共展示了ACE_CString::substr方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rec
void
info_out_data_listener_exec_i::on_one_data (
const ::DDSHello & datum,
const ::CCM_DDS::ReadInfo & /* info */)
{
++this->received_;
ACE_CString rec (datum.hello.in ());
ACE_Date_Time now;
int const sec_rec = ACE_OS::atoi (rec.substr (0, 2).c_str() );
if (sec_rec > 0)
{
int usec_rec = ACE_OS::atoi (rec.substr (3, 6).c_str ());
if (sec_rec != now.second ())
{
usec_rec += 10000000;
}
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("<%C> received <%C> - <%d>. difference <%d>\n"),
this->name_.c_str (),
datum.hello.in (),
datum.iterator,
now.microsec () - usec_rec));
}
else
{
ACE_DEBUG ((LM_DEBUG, ACE_TEXT("<%C> received <%C> - <%d>.\n"),
this->name_.c_str (),
datum.hello.in (),
datum.iterator));
}
}
示例2: str
Identifier::Identifier (const char *s)
: pv_string (0),
escaped_ (false)
{
bool shift = false;
if (*s == '_')
{
// Only one leading underscore is allowed.
if (s[1] == '_')
{
idl_global->err ()->error0 (UTL_Error::EIDL_UNDERSCORE);
}
shift = true;
this->escaped_ = true;
ACE_CString str (s);
const char *c_prefix = "_cxx_";
if (str.find ("_tc_") == 0
|| str.find ("_tao_") == 0)
{
shift = false;
}
else if (str.find (c_prefix) == 0)
{
str = str.substr (ACE_OS::strlen (c_prefix));
const char *eh_suffix = "_excep";
ACE_CString::size_type pos =
str.length () - ACE_OS::strlen (eh_suffix);
// If we have an AMI exception holder suffix, strip it off.
if (str.find (eh_suffix) == pos)
{
str = str.substr (0, pos);
}
TAO_IDL_CPP_Keyword_Table cpp_key_tbl;
unsigned int len =
static_cast<unsigned int> (str.length ());
const TAO_IDL_CPP_Keyword_Entry *entry =
cpp_key_tbl.lookup (str.c_str (), len);
if (entry != 0)
{
shift = false;
}
}
}
if (shift)
{
this->pv_string = ACE::strnew (s + 1);
}
else
{
this->pv_string = ACE::strnew (s);
}
}
示例3: fromString
bool BACIValue::fromString(const ACE_CString value, bool specifyType)
{
ACE_CString strType;
ACE_CString strContent;
const char *szType;
const char *szContent;
unsigned long ulBound = 0;
if (specifyType)
{
ACE_CString::size_type nPos0 = value.find('<');
ACE_CString::size_type nPos1 = value.find(':');
ACE_CString::size_type nPos2 = value.find('>');
if((nPos1 != ACE_CString::npos) && (nPos1 < (nPos2-1)))
ulBound = atoi(value.substr(nPos1+1, nPos2-nPos1-1).c_str());
else
nPos1 = nPos2;
strType = value.substr(nPos0+1, nPos1-nPos0-1);
strContent = value.substr(nPos2+1);
szType = strType.c_str();
szContent = strContent.c_str();
}
else
{
strType = typeName[type_m];
strContent = value;
szType = strType.c_str();
szContent = strContent.c_str();
}
/// User defined
// special threathment for string (no conversion needed)
if(strType.compare(BACIValue::typeName[type_string]) == 0)
{
if ((ulBound != 0) && (strContent.length() > ulBound))
return false;
if(!setType(type_string, ulBound))
return 0;
return stringValue(szContent);
}
PROCESS_INLINE_TYPE(double, BACIdouble)
PROCESS_INLINE_TYPE(float, BACIfloat)
PROCESS_INLINE_TYPE(long, BACIlong)
PROCESS_INLINE_TYPE(longLong, BACIlongLong)
PROCESS_INLINE_TYPE(uLongLong, BACIuLongLong)
//TBDeleted PROCESS_INLINE_TYPE(pattern, BACIpattern)
return false;
}
示例4: GetCmdLine
bool GetCmdLine(const ACE_CString& input, ACE_CString& cmd, ACE_CString& remain_input)
{
if(input.find('\n') != ACE_TString::npos)
{
size_t pos = input.find('\n');
cmd = input.substr(0, pos+1);
size_t len = input.length();
remain_input = input.substr(pos+1, len-pos+1);
return true;
}
return false;
}
示例5: str
UTL_ScopedName *
FE_Utils::string_to_scoped_name (const char *s)
{
UTL_ScopedName *retval = 0;
ACE_CString str (s);
Identifier *id = 0;
UTL_ScopedName *sn = 0;
while (! str.empty ())
{
// Skip a leading double colon.
if (str.find (':') == 0)
{
str = str.substr (2);
}
// Find the next double colon (if any) and get the next
// name segment.
ACE_CString::size_type pos = str.find (':');
ACE_CString lname (str.substr (0, pos));
// Construct a UTL_ScopedName segment.
ACE_NEW_RETURN (id,
Identifier (lname.c_str ()),
0);
ACE_NEW_RETURN (sn,
UTL_ScopedName (id, 0),
0);
// Either make it the head of a new list or the tail of
// an existing one.
if (retval == 0)
{
retval = sn;
}
else
{
retval->nconc (sn);
}
// Update the working string.
str = str.substr (pos);
}
return retval;
}
示例6: GetCmd
bool GetCmd(const ACE_CString& input, ACE_CString& cmd)
{
size_t nEndCommand = 0;
while(nEndCommand < input.length() &&
input[nEndCommand] != ' '
&& input[nEndCommand] != '\r' &&
input[nEndCommand] != '\n')nEndCommand++;
if(nEndCommand)
cmd = input.substr(0,nEndCommand);
return nEndCommand>0;
}
示例7:
bool
FE_Utils::is_include_file_found (ACE_CString & inc_file,
UTL_String * idl_file_name)
{
char abspath[MAXPATHLEN] = "";
char *full_path = 0;
// If the include path has literal "s (because of an include
// of a Windows path with spaces), we must remove them here.
const char *tmp_inc_file = inc_file.c_str ();
if (tmp_inc_file
&& FE_Utils::hasspace (tmp_inc_file)
&& tmp_inc_file[0] == '\"')
{
inc_file =
inc_file.substr (1, inc_file.length () - 2);
}
inc_file += ACE_DIRECTORY_SEPARATOR_STR_A;
inc_file += idl_file_name->get_string ();
full_path =
ACE_OS::realpath (inc_file.c_str (), abspath);
if (full_path != 0)
{
FILE *test = ACE_OS::fopen (abspath, "r");
if (test == 0)
{
return false;
}
else
{
// Overwrite inc_file with abspath since the later
// is normalized to the native OS representation.
inc_file = abspath;
ACE_OS::fclose (test);
return true;
}
}
return false;
}
示例8: 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;
}
示例9: 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);
}
}
示例10: 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;
}
示例11: name
UTL_ScopedName *
ast_visitor_reifying::template_module_rel_name (AST_Decl *d)
{
AST_Decl *tmp = d;
ACE_CString name (d->full_name ());
while (tmp != 0)
{
if (AST_Template_Module::narrow_from_decl (tmp) != 0)
{
ACE_CString head (tmp->local_name ()->get_string ());
ACE_CString::size_type start = name.find (head) + 2;
ACE_CString tail (name.substr (start + head.length ()));
return FE_Utils::string_to_scoped_name (tail.c_str ());
}
tmp = ScopeAsDecl (tmp->defined_in ());
}
return 0;
}
示例12: name
UTL_ScopedName *
be_visitor_xplicit_pre_proc::xplicit_iface_rel_name (AST_Decl *d)
{
AST_Decl *tmp = d;
ACE_CString name (d->full_name ());
while (tmp != 0)
{
if (be_home::narrow_from_decl (tmp) != 0)
{
ACE_CString head (tmp->local_name ()->get_string ());
ACE_CString::size_type start = name.find (head) + 2;
ACE_CString tail (name.substr (start + head.length ()));
return FE_Utils::string_to_scoped_name (tail.c_str ());
}
tmp = ScopeAsDecl (tmp->defined_in ());
}
return 0;
}
示例13: if
static ACE_THR_FUNC_RETURN
process(void* arg){
ACE_INET_Addr addr;
ACE_SOCK_Stream stream;
ACE_HANDLE handle = (ACE_HANDLE) (intptr_t) arg;
stream.set_handle(handle);
/*make sure we're not in non-blocking mode.*/
if(stream.disable(ACE_NONBLOCK) == -1){
ACE_ERROR_RETURN ((LM_ERROR,
"%p\n",
"disable"),
0);
}
else if(stream.get_remote_addr(addr) == -1){
ACE_ERROR_RETURN ((LM_ERROR,
"%p\n",
"get_remote_addr"),
0);
}
ACE_DEBUG ((LM_INFO,
"(%P|%t:%l) client %s connected from %d\n",
addr.get_host_name (),
addr.get_port_number ()));
int r_bytes = 0;
char buf[SIZE];
ACE_CString cs;
do{
r_bytes = stream.recv(buf, SIZE);
if(r_bytes == 0 || r_bytes == -1){
ACE_DEBUG((LM_INFO,
"(%P|%t:%l) r_bytes = %d, exit from the loop\n", r_bytes));
break;
}
for(int i=0; i< r_bytes; i++){
cs += buf[i];
}
}while(true);
stream.close_reader();
/*
ACE_DEBUG((LM_INFO,
"%s\n", cs.c_str()));
*/
/*the layout of the message would be:
* ^^pq||step1$$
* 1st step: get the d by pq
* 2nd calculate
* 3rd send back the digest
*/
int p0, p1;
int len = cs.length();
p0 = 2;
p1 = cs.find("||");
ACE_CString pq = cs.substr(2, p1 - 2);
ACE_CString step1 = cs.substr(p1 + 2, len - p1 -4);
/*
ACE_DEBUG((LM_INFO,
"pq = %s\n step1 = %s\n", pq.c_str(), step1.c_str()));
*/
//get the d
ACE_CString sql = "select d,textid from player0 where pq='";
sql += pq;
sql += "'";
/*
ACE_DEBUG((LM_INFO,
"sql = %s\n", sql.c_str()));
*/
PGconn* con;
con = PQconnectdb("host=45.33.3.188 port=5432 dbname=nv user=dec");
PGresult* res;
if(PQstatus(con)!= CONNECTION_OK){
ACE_DEBUG((LM_INFO,
"Connection to database failed:%s\n",
PQerrorMessage(con)));
reclaim_conn(con);
}
res = PQexec(con, sql.c_str());
int n = PQntuples(res);
if(n != 1){
ACE_ERROR((LM_ERROR,
"there is significant error: %d\n", n));
// return 0;
}
ACE_CString d = "";
d += PQgetvalue(res, 0, 0);
/*
ACE_DEBUG((LM_INFO,
"d = %s\n", d.c_str()));
*/
bn* pq_ = from_hex(&pq);
bn* d_ = from_hex(&d);
bn* step1_ = from_hex(&step1);
bn* step2_ = npmod(step1_ , d_ , pq_ );
ACE_CString* step2 = step2_->to_hex();
//check if the pq is taking the ownnership?
/* if pq is 'centralbank', bypass the check, otherwise check the payer whether has the ownnership of the note;
* select count(*) from ownership0 o, player0 p where o.owner = p.textid and o.note='0x12345678' and p.pq='0x12345678';
//.........这里部分代码省略.........
示例14: tmp
CORBA::ULong
TAO_SCIOP_Endpoint::preferred_interfaces (TAO_ORB_Core *oc)
{
ACE_CString tmp (
oc->orb_params ()->preferred_interfaces ());
ACE_CString::size_type pos = 0;
pos = tmp.find (this->host_.in ());
TAO_SCIOP_Endpoint *latest = this;
CORBA::ULong count = 0;
while (pos != ACE_CString::npos)
{
// Do we have a "," or an '\0'?
ACE_CString::size_type new_pos = tmp.find (",", pos + 1);
// Length of the preferred path
ACE_CString::size_type length = 0;
if (new_pos == ACE_CString::npos)
length = tmp.length () - pos;
else
length = new_pos - pos;
ACE_CString rem_tmp = tmp.substr (pos, length);
// Search for the ":"
ACE_CString::size_type col_pos = rem_tmp.find (":");
if (col_pos == ACE_CString::npos)
{
pos = tmp.find (latest->host_.in (),
pos + length);
continue;
}
ACE_CString path = rem_tmp.substr (col_pos + 1);
latest->preferred_path_.host =
CORBA::string_dup (path.c_str ());
if (TAO_debug_level > 3)
TAOLIB_DEBUG ((LM_DEBUG,
"(%P|%t) Adding path [%C] "
" as preferred path for [%C]\n",
path.c_str (), this->host_.in ()));
pos = tmp.find (latest->host_.in (),
pos + length);
if (pos != ACE_CString::npos)
{
TAO_Endpoint *tmp_ep =
latest->duplicate ();
latest->next_ = dynamic_cast<TAO_SCIOP_Endpoint *> (tmp_ep);
if (latest->next_ == 0) return count;
latest = latest->next_;
++count;
}
}
if (tmp.length () != 0 &&
!oc->orb_params ()->enforce_pref_interfaces ())
{
TAO_Endpoint *tmp_ep = latest->duplicate ();
latest->next_ =
dynamic_cast<TAO_SCIOP_Endpoint *> (tmp_ep);
if (latest->next_ == 0) return count;
latest->next_->preferred_path_.host = (const char *) 0;
++count;
}
return count;
}
示例15: lname
int
be_visitor_ami_pre_proc::visit_interface (be_interface *node)
{
// We check for an imported node after generating the reply handler.
if (node->is_local () || node->is_abstract ())
{
return 0;
}
// The following 3 IF blocks are checks for CCM-related nodes, which
// we want to skip until we get AMI integrated with CIAO.
// Skip the *EventConsumer added for each eventtype.
if (node->is_event_consumer ())
{
return 0;
}
// Check for home equivalent interface. The lookup will find the
// home itself, which was declared first.
Identifier *node_lname = node->AST_Decl::local_name ();
AST_Decl *first_stored =
node->defined_in ()->lookup_by_name_local (node_lname, false);
if (0 != first_stored && first_stored->node_type () == AST_Decl::NT_home)
{
return 0;
}
ACE_CString lname (node_lname->get_string ());
// Skip the *Explict and *Implicit interfaces added for a home.
if (lname.substr (lname.length () - 6) == "plicit")
{
UTL_Scope *s = node->defined_in ();
Identifier local_id (lname.substr (0, lname.length () - 8).c_str ());
AST_Decl *d = s->lookup_by_name_local (&local_id, false);
local_id.destroy ();
if (0 != d)
{
return 0;
}
}
AST_Module *module =
AST_Module::narrow_from_scope (node->defined_in ());
if (!module)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_ami_pre_proc::"
"visit_interface - "
"module is null\n"),
-1);
}
be_interface *reply_handler = this->create_reply_handler (node);
if (reply_handler)
{
reply_handler->set_defined_in (node->defined_in ());
// Insert the ami handler after the node, the
// exception holder will be placed between these two later.
module->be_add_interface (reply_handler, node);
// Remember from whom we were cloned
reply_handler->original_interface (node);
// If this was created for an imported node, it will be wrong
// unless we set it.
reply_handler->set_imported (node->imported ());
}
else
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_ami_pre_proc::"
"visit_interface - "
"creating the reply handler failed\n"),
-1);
}
if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_ami_pre_proc::"
"visit_interface - "
"visit scope failed\n"),
-1);
}
return 0;
}