static void test_find (ACE_Naming_Context &ns_context, int sign, int result) { char temp_val[BUFSIZ]; char temp_type[BUFSIZ]; int array [ACE_NS_MAX_ENTRIES]; randomize (array, sizeof array / sizeof (int)); // do the finds for (size_t i = 0; i < ACE_NS_MAX_ENTRIES; i++) { if (sign == 1) { ACE_OS::sprintf (temp_val, "%s%d", "value", array[i]); ACE_OS::sprintf (temp_type, "%s%d", "type", array[i]); } else { ACE_OS::sprintf (temp_val, "%s%d", "value", -array[i]); ACE_OS::sprintf (temp_type, "%s%d", "type", -array[i]); } ACE_OS::sprintf (name, "%s%d", "name", array[i]); ACE_WString w_name (name); ACE_WString w_value; char *type_out = 0; ACE_WString val (temp_val); ACE_ASSERT (ns_context.resolve (w_name, w_value, type_out) == result); char *l_value = w_value.char_rep (); if (l_value) { ACE_ASSERT (w_value == val); if (ns_context.name_options ()->debug ()) { if (type_out) ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Name: %s\tValue: %s\tType: %s\n"), name, l_value, type_out)); else ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Name: %s\tValue: %s\n"), name, l_value)); } if (type_out) { ACE_ASSERT (ACE_OS::strcmp (type_out, temp_type) == 0); delete[] type_out; } } delete[] l_value; } }
int main (int argc, char **argv) { const char *host = argc > 1 ? argv[1] : "-hlocalhost"; const char *port = argc > 2 ? argv[2] : "-p20012"; ACE_STATIC_SVC_REGISTER(ACE_Naming_Context); ACE_Naming_Context ns; ACE_Name_Options *name_options = ns.name_options (); const char *m_argv[] = { "MyName", "-cNET_LOCAL", host, port, NULL }; int m_argc = sizeof (m_argv) / sizeof (char *) -1; name_options->parse_args (m_argc, (char **) m_argv); int result = ns.open (ACE_Naming_Context::NET_LOCAL); ACE_DEBUG ((LM_DEBUG, "ACE_Naming_Context::open returned %d\n", result)); if (result != 0) return result; else { char key[128]; char val[32]; char type[2]; type[0] = '-'; type[1] = '\0'; int i = 0; for (int l = 1; l <= 1000 ; l++) { ACE_OS::sprintf (key, "K_%05d_%05d", (int) ACE_OS::getpid (), l); ACE_OS::sprintf (val, "Val%05d", l); i = ns.bind (key, val, type); ACE_DEBUG ((LM_DEBUG, "%d: bind of %s: %d\n", ACE_OS::getpid (), key, i)); if (i != 0) return -1; } result = ns.close (); ACE_DEBUG ((LM_DEBUG, "ACE_Naming_Context::close returned %d\n", result)); } return result; }