📄 client_test.cpp
字号:
ACE_DEBUG ((LM_DEBUG, " ----------------------\n"));
ACE_DEBUG ((LM_DEBUG, "<P> Use Process Local Database\n"));
ACE_DEBUG ((LM_DEBUG, "<N> Use Node Local Database\n"));;
ACE_DEBUG ((LM_DEBUG, "<H> Set Remote Name server <host> and <port>\n\n"));
ACE_DEBUG ((LM_DEBUG, "<B> Bind <key> <value> [<type>]\n"));
ACE_DEBUG ((LM_DEBUG, "<U> Unbind <key>\n"));
ACE_DEBUG ((LM_DEBUG, "<R> Rebind <key> <value> [<type>]\n"));
ACE_DEBUG ((LM_DEBUG, "<F> Find <key>\n"));
ACE_DEBUG ((LM_DEBUG, "<J> Lookup keys matching <pattern>\n"));
ACE_DEBUG ((LM_DEBUG, "<K> Lookup values matching <pattern>\n"));
ACE_DEBUG ((LM_DEBUG, "<L> Lookup types matching <pattern>\n"));
ACE_DEBUG ((LM_DEBUG, "<C> Complete lookup keys matching <pattern>\n"));
ACE_DEBUG ((LM_DEBUG, "<D> Complete lookup values matching <pattern>\n"));
ACE_DEBUG ((LM_DEBUG, "<E> Complete lookup types matching <pattern>\n"));
ACE_DEBUG ((LM_DEBUG, "<Q> or ^C (exit)\n"));
}
void
Client_Test::list_options (void)
{
switch (this->name_options_->context ())
{
case ACE_Naming_Context::PROC_LOCAL:
ACE_DEBUG ((LM_DEBUG,
" *** Using Process Local Database\n"));
break;
case ACE_Naming_Context::NODE_LOCAL:
ACE_DEBUG ((LM_DEBUG,
" *** Using Node Local Database\n"));
break;
case ACE_Naming_Context::NET_LOCAL:
ACE_DEBUG ((LM_DEBUG,
" *** Hostname: %s\n",
this->name_options_->nameserver_host ()));
ACE_DEBUG ((LM_DEBUG,
" *** Port Number: %d\n",
this->name_options_->nameserver_port ()));
break;
default:
assert (!"shouldn't occur!\n");
/* NOTREACHED */
}
ACE_DEBUG ((LM_DEBUG,
" *** Namespace directory is %s ***\n",
this->name_options_->namespace_dir ()));
}
int
Client_Test::set_proc_local (void)
{
// Close down original name space
NAMING_CONTEXT ()->close ();
this->name_options_->nameserver_host ("localhost");
this->name_options_->context (ACE_Naming_Context::PROC_LOCAL);
return NAMING_CONTEXT ()->open (ACE_Naming_Context::PROC_LOCAL);
}
int
Client_Test::set_node_local (void)
{
// Close down original name space
NAMING_CONTEXT ()->close ();
this->name_options_->nameserver_host ("localhost");
this->name_options_->context (ACE_Naming_Context::NODE_LOCAL);
return NAMING_CONTEXT ()->open (ACE_Naming_Context::NODE_LOCAL);
}
int
Client_Test::set_host (const char *hostname, int port)
{
// Close down original name space
NAMING_CONTEXT ()->close ();
this->name_options_->context (ACE_Naming_Context::NET_LOCAL);
// Set Name Options
this->name_options_->nameserver_host (hostname);
this->name_options_->nameserver_port (port);
return NAMING_CONTEXT ()->open (ACE_Naming_Context::NET_LOCAL);
}
int
Client_Test::quit (void)
{
// Send ourselves a SIGINT!
return ACE_OS::kill (ACE_OS::getpid (), SIGINT);
}
int
Client_Test::bind (const char *key,
const char *value,
const char *type)
{
if (NAMING_CONTEXT ()->bind (key, value, type) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Bind failed! Key %s exists\n",
"Client_Test::bind",
key),
0);
return 0;
}
int
Client_Test::unbind (const char *key)
{
if (NAMING_CONTEXT ()->unbind (key) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Unbind failed! Key %s not found\n",
"Client_Test::unbind",
key),
0);
return 0;
}
int
Client_Test::rebind (const char *key,
const char *value,
const char *type)
{
int result = NAMING_CONTEXT ()->rebind (key, value, type );
return result == 1 ? 0 : result;
}
int
Client_Test::list_names (const char *pattern)
{
ACE_PWSTRING_SET set;
if (NAMING_CONTEXT ()->list_names (set, pattern) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Pattern matching failed!\n",
"Client_Test::list_names"),
0);
else
{
ACE_PWSTRING_ITERATOR set_iterator (set);
for (ACE_NS_WString *name = 0;
set_iterator.next (name) !=0;
set_iterator.advance())
ACE_DEBUG ((LM_DEBUG,
"%s\n",
name->char_rep ()));
}
return 0;
}
int
Client_Test::list_values (const char *pattern)
{
ACE_PWSTRING_SET set;
if (NAMING_CONTEXT ()->list_values (set, pattern) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Pattern matching failed!\n",
"Client_Test::list_values"),
0);
else
{
ACE_PWSTRING_ITERATOR set_iterator (set);
for (ACE_NS_WString *value = 0;
set_iterator.next (value) !=0;
set_iterator.advance())
ACE_DEBUG ((LM_DEBUG,
"%s\n",
value->char_rep ()));
}
return 0;
}
int
Client_Test::list_types (const char *pattern)
{
ACE_PWSTRING_SET set;
if (NAMING_CONTEXT ()->list_types (set, pattern) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Pattern matching failed!\n",
"Client_Test::list_types"),
0);
else
{
ACE_PWSTRING_ITERATOR set_iterator (set);
for (ACE_NS_WString *type = 0;
set_iterator.next (type) !=0;
set_iterator.advance())
ACE_DEBUG ((LM_DEBUG,
"%s\n",
type->char_rep ()));
}
return 0;
}
int
Client_Test::list_name_entries (const char *pattern)
{
ACE_BINDING_SET set;
if (NAMING_CONTEXT ()->list_name_entries (set, pattern) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Pattern matching failed!\n",
"Client_Test::list_names"),
0);
else
{
ACE_BINDING_ITERATOR set_iterator (set);
for (ACE_Name_Binding *entry = 0;
set_iterator.next (entry) !=0;
set_iterator.advance())
{
ACE_DEBUG ((LM_DEBUG,
"%s\t",
entry->name_.char_rep ()));
ACE_DEBUG ((LM_DEBUG,
"%s\t",
entry->value_.char_rep ()));
if (entry->type_)
ACE_DEBUG ((LM_DEBUG,
"%s\n",
entry->type_));
}
}
return 0;
}
int
Client_Test::list_value_entries (const char *pattern)
{
ACE_BINDING_SET set;
if (NAMING_CONTEXT ()->list_value_entries (set, pattern) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Pattern matching failed!\n",
"Client_Test::list_values"),
0);
else
{
ACE_BINDING_ITERATOR set_iterator (set);
for (ACE_Name_Binding *entry = 0;
set_iterator.next (entry) !=0;
set_iterator.advance())
{
ACE_DEBUG ((LM_DEBUG,
"%s\t",
entry->name_.char_rep ()));
ACE_DEBUG ((LM_DEBUG,
"%s\t",
entry->value_.char_rep ()));
if (entry->type_)
ACE_DEBUG ((LM_DEBUG,
"%s\n",
entry->type_));
}
}
return 0;
}
int
Client_Test::list_type_entries (const char *pattern)
{
ACE_BINDING_SET set;
if (NAMING_CONTEXT ()->list_type_entries (set, pattern) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Pattern matching failed!\n",
"Client_Test::list_types"),
0);
else
{
ACE_BINDING_ITERATOR set_iterator (set);
for (ACE_Name_Binding *entry = 0;
set_iterator.next (entry) !=0;
set_iterator.advance())
{
ACE_DEBUG ((LM_DEBUG,
"%s\t",
entry->name_.char_rep ()));
ACE_DEBUG ((LM_DEBUG,
"%s\t",
entry->value_.char_rep ()));
ACE_DEBUG ((LM_DEBUG,
"%s\n",
entry->type_));
}
}
return 0;
}
int
Client_Test::find (const char *key)
{
char *value = 0;
char *type = 0;
if (NAMING_CONTEXT ()->resolve (key, value, type) != 0)
ACE_ERROR_RETURN ((LM_ERROR,
"%p Find failed! Key %s not found\n",
"Client_Test::list_find",
key),
0);
else
{
ACE_DEBUG ((LM_DEBUG,
"Binding for %s : value = %s\ttype = %s\n",
key,
value,
type));
if (type)
delete [] type;
return 0;
}
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template class ACE_Dynamic_Service<ACE_Naming_Context>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#pragma instantiate ACE_Dynamic_Service<ACE_Naming_Context>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -