summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1998-10-31 20:59:44 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1998-10-31 20:59:44 +0000
commitdd8750b3fcaa164a72b3da8ffacdc52e80be5746 (patch)
tree6ca35beb60f9b7c8f0fdb80a8629189d6773f454 /TAO
parent3f813bbdaae50baa076fdfa3e59ea6c414c03b28 (diff)
downloadATCD-dd8750b3fcaa164a72b3da8ffacdc52e80be5746.tar.gz
.
Diffstat (limited to 'TAO')
-rw-r--r--TAO/performance-tests/Demux/CodeGen/gen_names.cpp233
1 files changed, 115 insertions, 118 deletions
diff --git a/TAO/performance-tests/Demux/CodeGen/gen_names.cpp b/TAO/performance-tests/Demux/CodeGen/gen_names.cpp
index 77e7cdc8f54..79d452627b0 100644
--- a/TAO/performance-tests/Demux/CodeGen/gen_names.cpp
+++ b/TAO/performance-tests/Demux/CodeGen/gen_names.cpp
@@ -26,42 +26,40 @@ int
Demux_Test_CodeGenerator::gen_poa_names (void)
{
this->state_ = Demux_Test_CodeGenerator::CG_POA;
+
if (this->gen_names (this->poa_array_, this->num_POAs_) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::gen_poa_names - "
- "Failed to generate poa names\n"),
- -1);
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::gen_poa_names - "
+ "Failed to generate poa names\n"),
+ -1);
// We store the generated names in a file
- FILE *fp;
char poa_file [128];
-
ACE_OS::sprintf (poa_file, "poa_names_%d.dat", this->num_POAs_);
- if ((fp = ACE_OS::fopen (poa_file, "w")) == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::gen_poa_names - "
- "Failed to open file %s\n", poa_file),
- -1);
- }
+ FILE *fp = ACE_OS::fopen (poa_file, "w");
+
+ if (fp == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::gen_poa_names - "
+ "Failed to open file %s\n", poa_file),
+ -1);
- // now output the names
+ // Now output the names
ACE_CString *str;
ACE_Unbounded_Queue_Iterator <ACE_CString> iter (this->poa_array_);
- // start with the first element
- (void)iter.first ();
- while (!iter.done ())
+ // Start with the first element.
+ for (iter.first ();
+ !iter.done ();
+ (void) iter.advance ())
{
- // grab the next element waiting to be grabbed
+ // grab the next element waiting to be grabbed.
(void) iter.next (str);
- ACE_OS::fprintf (fp, "%s\n", str->c_str ());
-
- (void) iter.advance ();
+ ACE_OS::fprintf (fp,
+ "%s\n",
+ str->c_str ());
}
ACE_OS::fclose (fp);
@@ -69,48 +67,47 @@ Demux_Test_CodeGenerator::gen_poa_names (void)
return 0;
}
-// object table generator
+// Object table generator.
+
int
Demux_Test_CodeGenerator::gen_object_names (void)
{
this->state_ = Demux_Test_CodeGenerator::CG_OBJ;
- if (this->gen_names (this->obj_array_, this->num_objs_) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::gen_object_names - "
- "Failed to generate object names\n"),
- -1);
- }
+
+ if (this->gen_names (this->obj_array_,
+ this->num_objs_) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::gen_object_names - "
+ "Failed to generate object names\n"),
+ -1);
return 0;
}
-// method table generator
+// Method table generator.
+
int
Demux_Test_CodeGenerator::gen_operation_names (void)
{
this->state_ = Demux_Test_CodeGenerator::CG_OP;
- if (this->gen_names (this->op_array_, this->num_ops_) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::gen_object_names - "
- "Failed to generate object names\n"),
- -1);
- }
-
- // save it at this location
+ if (this->gen_names (this->op_array_,
+ this->num_ops_) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::gen_object_names - "
+ "Failed to generate object names\n"),
+ -1);
+
+ // Save it at this location.
if (this->op_array_.enqueue_tail (ACE_CString ("shutdown")) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::gen_operation_names - "
- "Failed to enqueue the shutdown operation\n"),
- -1);
- }
-
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::gen_operation_names - "
+ "Failed to enqueue the shutdown operation\n"),
+ -1);
return 0;
}
-// generic unique name generator
+// Generic unique name generator.
+
int
Demux_Test_CodeGenerator::gen_names (ACE_Unbounded_Queue<ACE_CString> &arr,
int limit)
@@ -118,22 +115,19 @@ Demux_Test_CodeGenerator::gen_names (ACE_Unbounded_Queue<ACE_CString> &arr,
int i; // loop index
// Generate "limit" number of distinct strings
+
for (i = 0; i < limit; i++)
- {
- // inserts a new string at the tail in array "arr"
- if (this->insert_unique_string (arr) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::gen_names - "
- "Failed to insert unique name\n"),
- -1);
- }
- }
-
+ // inserts a new string at the tail in array "arr"
+ if (this->insert_unique_string (arr) == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::gen_names - "
+ "Failed to insert unique name\n"),
+ -1);
return 0;
}
-// generate a distinct string and insert it at the tail
+// Generate a distinct string and insert it at the tail.
+
int
Demux_Test_CodeGenerator::insert_unique_string (ACE_Unbounded_Queue<ACE_CString> &arr)
{
@@ -141,64 +135,62 @@ Demux_Test_CodeGenerator::insert_unique_string (ACE_Unbounded_Queue<ACE_CString>
ACE_CString str;
int exists = 1;
- // get a random number between 3 and 32
- rnd = this->gen_rand (3,32);
+ // Get a random number between 3 and 32.
+ rnd = this->gen_rand (3, 32);
- // This random number is used as a string length of the distinct string to be
- // generated.
+ // This random number is used as a string length of the distinct
+ // string to be generated.
do
{
if (this->create_string (rnd, str) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::insert_unique_string - "
- "Failed to create string\n"),
- -1);
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::insert_unique_string - "
+ "Failed to create string\n"),
+ -1);
- // if we are generating operations, we do not want to generate the
- // operation "shutdown" that has special semantics
- if ((this->state_ == Demux_Test_CodeGenerator::CG_OP) &&
- (!ACE_OS::strcmp (str.c_str (), "shutdown")))
- {
- // repeat the loop since we cannot accept this string
- continue;
- }
+ // If we are generating operations, we do not want to generate
+ // the operation "shutdown" that has special semantics
+
+ if (this->state_ == Demux_Test_CodeGenerator::CG_OP
+ && ACE_OS::strcmp (str.c_str (), "shutdown") == 0)
+ // repeat the loop since we cannot accept this string
+ continue;
exists = this->is_present (arr, str);
+
if (exists == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::insert_unique_string - "
- "is_present check failed\n"),
- -1);
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::insert_unique_string - "
+ "is_present check failed\n"),
+ -1);
}
while (exists > 0);
- // we are here implies that the generated string did not exist in the queue
- // that has been created so far
+ // We are here implies that the generated string did not exist in
+ // the queue that has been created so far.
- // save it at this location
+ // Save it at this location.
if (arr.enqueue_tail (str) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%n:%l) Demux_Test_CodeGenerator::insert_unique_string - "
- "Failed to enqueue\n"),
- -1);
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%n:%l) Demux_Test_CodeGenerator::insert_unique_string - "
+ "Failed to enqueue\n"),
+ -1);
return 0;
}
-// generate a random number in the given limits
+// Generate a random number in the given limits.
+
long
Demux_Test_CodeGenerator::gen_rand (int low, int up)
{
+ // @@ Vishal, this call to lrand48 isn't portable. Can you please
+ // try to replace it with a call from ACE_OS, e.g., ACE_OS::rand()?
return (lrand48 () % (up - low + 1)) + low;
}
-// check if the given string is present in the array
+// Check if the given string is present in the array
+
int
Demux_Test_CodeGenerator:: is_present (ACE_Unbounded_Queue<ACE_CString> &arr,
ACE_CString &s)
@@ -208,56 +200,61 @@ Demux_Test_CodeGenerator:: is_present (ACE_Unbounded_Queue<ACE_CString> &arr,
// start with the first element
if (!iter.first ())
+ // queue is empty
+ return 0;
+
+ for (;
+ !iter.done ();
+ iter.advance ();
{
- // queue is empty
- return 0;
- }
- while (!iter.done ())
- {
- // grab the next element waiting to be grabbed
+ // Grab the next element waiting to be grabbed.
(void) iter.next (str);
// check if they match
if (!str->compare (s))
return 1; // they match
-
- (void) iter.advance ();
}
+
return 0; // not present
}
-// create a string of length = len
+// Create a string of length = len.
+
int
-Demux_Test_CodeGenerator::create_string (int len, ACE_CString &s)
+Demux_Test_CodeGenerator::create_string (int len,
+ ACE_CString &s)
{
- int i;
- char ch;
-
- for (i = 0; i < len; i++)
+ for (int i = 0; i < len; i++)
{
- ch = this->gen_valid_char (i);
- s += ACE_CString (&ch);
+ char ch = this->gen_valid_char (i);
+ s += ACE_CString (ch);
}
+
return 0;
}
-// Generate a valid character for a C++ variable
+// Generate a valid character for a C++ variable.
+
char
Demux_Test_CodeGenerator::gen_valid_char (int posn)
{
- // for posn == 0, we cannot return a digit or an _ as the first character as
- // that does not constitute a valid IDL identifier
+ // For posn == 0, we cannot return a digit or an _ as the first
+ // character as that does not constitute a valid IDL identifier
+
char ch;
- while (1)
+
+ for (;;)
{
ch = this->gen_rand (48, 122);
+
if (isdigit (ch) || isupper (ch) || islower (ch) || (ch == '_'))
{
- if ((posn == 0) && (isdigit (ch) || (ch == '_')))
+ if (posn == 0 && (isdigit (ch) || (ch == '_')))
continue;
- break; //otherwise
+ break; // otherwise
}
}
+
return ch;
}