summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-10-05 23:52:16 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-10-05 23:52:16 +0000
commit11e66c51a60e0d6080a005250526f8579e772ef7 (patch)
tree97641b761a6a034da2a888c2cb0a856aaa317e3c
parent6ead053a82bc686d6f56cb0bb619613211798b2b (diff)
downloadATCD-11e66c51a60e0d6080a005250526f8579e772ef7.tar.gz
*** empty log message ***
-rw-r--r--TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp118
-rw-r--r--TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.h3
-rw-r--r--TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.cpp43
-rw-r--r--TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.h5
-rw-r--r--TAO/performance-tests/Cubit/TAO/IDL_Cubit/cubit.idl7
5 files changed, 169 insertions, 7 deletions
diff --git a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp
index 7f084e0bb38..1d9d65e0edc 100644
--- a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp
+++ b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.cpp
@@ -38,7 +38,10 @@ ACE_RCSID(IDL_Cubit, Cubit_Client, "$Id$")
"Cubit_Client::cube_long_sequence - end",
"Cubit_Client::cube_octet_sequence - start",
- "Cubit_Client::cube_octet_sequence - end"
+ "Cubit_Client::cube_octet_sequence - end",
+
+ "Cubit_Client::cube_many_sequence - start",
+ "Cubit_Client::cube_many_sequence - end",
"Cubit_Client::cube_rti_data - start",
"Cubit_Client::cube_rti_data - end"
@@ -75,9 +78,11 @@ enum
CUBIT_CLIENT_CUBE_OCTET_SEQUENCE_START,
CUBIT_CLIENT_CUBE_OCTET_SEQUENCE_END,
- CUBIT_CLIENT_CUBE_RTI_DATA_START,
- CUBIT_CLIENT_CUBE_RTI_DATA_END,
+ CUBIT_CLIENT_CUBE_MANY_SEQUENCE_START,
+ CUBIT_CLIENT_CUBE_MANY_SEQUENCE_END,
+ CUBIT_CLIENT_CUBE_RTI_DATA_START,
+ CUBIT_CLIENT_CUBE_RTI_DATA_END
};
// Setup Timeprobes
@@ -516,6 +521,7 @@ Cubit_Client::cube_long_sequence (int i, int l)
{
ACE_ERROR ((LM_ERROR, "** cube sequence, wrong length\n"));
this->error_count_++;
+ return;
}
u_int rl = output->length ();
@@ -585,6 +591,7 @@ Cubit_Client::cube_octet_sequence (int i, int l)
{
ACE_ERROR ((LM_ERROR, "** cube octet, wrong length\n"));
this->error_count_++;
+ return;
}
u_int rl = output->length ();
@@ -611,6 +618,91 @@ Cubit_Client::cube_octet_sequence (int i, int l)
}
}
+// Cube the many in a sequence
+
+void
+Cubit_Client::cube_many_sequence (int i, int l)
+{
+ this->call_count_++;
+
+ Cubit::many_seq input (l);
+ input.length (l);
+
+#if 0
+ // Fill in the input sequence...
+ for (int j = 0; j < l; ++j)
+ {
+ Cubit::Many &in = input[j];
+ in.l = j;
+ in.s = j;
+ in.o = j;
+ }
+#else
+ // Just set the first item, otherwise it is hard to compare the
+ // results for longer sequences, i.e. more than just marshalling
+ // gets in the way.
+ Cubit::Many &in = input[0];
+ in.l = 4;
+ in.s = 5;
+ in.o = 6;
+#endif
+
+ Cubit::many_seq_var output;
+ Cubit::many_seq_out vout (output);
+
+ // Cube the sequence
+ {
+ ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_LONG_SEQUENCE_START);
+
+ this->cubit_->cube_many_sequence (input, vout, this->env_);
+ }
+
+ if (this->env_.exception () != 0)
+ {
+ this->env_.print_exception ("from cube_many_sequence");
+ this->error_count_++;
+ }
+ else
+ {
+ if (output->length () != input.length ())
+ {
+ ACE_ERROR ((LM_ERROR, "** cube sequence, wrong length\n"));
+ this->error_count_++;
+ return;
+ }
+
+ u_int rl = output->length ();
+ if (input.length () < rl)
+ rl = input.length ();
+#if 0
+ for (u_int j = 0; j < rl; ++j)
+ {
+ Cubit::Many &in = input[j];
+ Cubit::Many &out = output[j];
+
+ if (in.l * in.l * in.l != out.l ||
+ in.s * in.s * in.s != out.s ||
+ in.o * in.o * in.o != out.o)
+ {
+ ACE_ERROR ((LM_ERROR, "** cube_long_sequence ERROR\n"));
+ this->error_count_++;
+ }
+ }
+#else
+ Cubit::Many &in = input[0];
+ Cubit::Many &out = output[0];
+
+ if (in.l * in.l * in.l != out.l ||
+ in.s * in.s * in.s != out.s ||
+ in.o * in.o * in.o != out.o)
+ {
+ ACE_ERROR ((LM_ERROR, "** cube_long_sequence ERROR\n"));
+ this->error_count_++;
+ }
+#endif
+ }
+}
+
void
Cubit_Client::cube_rti_data (int i, int numUpdates, int numAttrs)
{
@@ -846,6 +938,26 @@ Cubit_Client::run (int testing_collocation)
timer.elapsed_time (elapsed_time);
this->print_stats ("cube_large_sequence<octet>", elapsed_time);
+ // SMALL MANY SEQUENCES
+ this->call_count_ = 0;
+ this->error_count_ = 0;
+ timer.start ();
+ for (i = 0; i < this->loop_count_; i++)
+ this->cube_many_sequence (this->loop_count_, 4);
+ timer.stop ();
+ timer.elapsed_time (elapsed_time);
+ this->print_stats ("cube_small_sequence<many>", elapsed_time);
+
+ // LARGE many SEQUENCES
+ this->call_count_ = 0;
+ this->error_count_ = 0;
+ timer.start ();
+ for (i = 0; i < this->loop_count_; i++)
+ this->cube_many_sequence (this->loop_count_, 1024);
+ timer.stop ();
+ timer.elapsed_time (elapsed_time);
+ this->print_stats ("cube_large_sequence<many>", elapsed_time);
+
// MIXIN
this->call_count_ = 0;
this->error_count_ = 0;
diff --git a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.h b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.h
index c43d4641887..2afe1be97a5 100644
--- a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.h
+++ b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_Client.h
@@ -90,6 +90,9 @@ private:
void cube_octet_sequence (int i, int l);
// Cube a sequence of octets, <l> is the length of the sequence.
+ void cube_many_sequence (int i, int l);
+ // Cube a sequence of manys, <l> is the length of the sequence.
+
void cube_rti_data (int i, int numUpdates, int numAttrs);
// Cube a sequence <l> is the length of the sequence.
diff --git a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.cpp b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.cpp
index 1356da046ea..3d8d8891f0a 100644
--- a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.cpp
+++ b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.cpp
@@ -52,7 +52,10 @@ static const char *Cubit_i_Timeprobe_Description[] =
"Cubit_i::cube_long_sequence - end",
"Cubit_i::cube_octet_sequence - start",
- "Cubit_i::cube_octet_sequence - end"
+ "Cubit_i::cube_octet_sequence - end",
+
+ "Cubit_i::cube_many_sequence - start",
+ "Cubit_i::cube_many_sequence - end"
};
enum
@@ -83,7 +86,10 @@ enum
CUBIT_I_CUBE_LONG_SEQUENCE_END,
CUBIT_I_CUBE_OCTET_SEQUENCE_START,
- CUBIT_I_CUBE_OCTET_SEQUENCE_END
+ CUBIT_I_CUBE_OCTET_SEQUENCE_END,
+
+ CUBIT_I_CUBE_MANY_SEQUENCE_START,
+ CUBIT_I_CUBE_MANY_SEQUENCE_END
};
// Setup Timeprobes
@@ -288,6 +294,39 @@ Cubit_i::cube_octet_sequence (const Cubit::octet_seq &input,
#endif
}
+void
+Cubit_i::cube_many_sequence (const Cubit::many_seq & input,
+ Cubit::many_seq_out output,
+ CORBA::Environment &)
+{
+ ACE_FUNCTION_TIMEPROBE (CUBIT_I_CUBE_MANY_SEQUENCE_START);
+
+ if (output.ptr () == 0)
+ output = new Cubit::many_seq (input.length ());
+
+ output->length (input.length ());
+
+#if 0
+ for (CORBA::ULong i = 0; i < input.length (); ++i)
+ {
+ const Cubit::Many &in = input[i];
+ Cubit::Many &out = output[i];
+
+ out.o = in.o * in.o * in.o;
+ out.s = in.s * in.s * in.s;
+ out.l = in.l * in.l * in.l;
+ }
+#else
+ CORBA::ULong i = 0;
+ const Cubit::Many &in = input[i];
+ Cubit::Many &out = output[i];
+
+ out.o = in.o * in.o * in.o;
+ out.s = in.s * in.s * in.s;
+ out.l = in.l * in.l * in.l;
+#endif
+}
+
void
Cubit_i::cube_rti_data (const Cubit::RtiPacket &input,
Cubit::RtiPacket_out output,
diff --git a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.h b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.h
index c5af94a59ed..b4c43ab1e07 100644
--- a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.h
+++ b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/Cubit_i.h
@@ -73,6 +73,11 @@ public:
CORBA::Environment &_env);
// Cube an octet sequence.
+ virtual void cube_many_sequence (const Cubit::many_seq & input,
+ Cubit::many_seq_out output,
+ CORBA::Environment &_tao_environment);
+ // Cube an Many sequence.
+
virtual void cube_rti_data (const Cubit::RtiPacket &input,
Cubit::RtiPacket_out output,
CORBA::Environment &env);
diff --git a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/cubit.idl b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/cubit.idl
index 7f6e87ea8d8..7c149f965d0 100644
--- a/TAO/performance-tests/Cubit/TAO/IDL_Cubit/cubit.idl
+++ b/TAO/performance-tests/Cubit/TAO/IDL_Cubit/cubit.idl
@@ -67,16 +67,19 @@ interface Cubit
// cube a union.
typedef sequence<long> long_seq;
-
void cube_long_sequence (in long_seq input,
out long_seq output);
// Cube several longs.
-
typedef sequence<octet> octet_seq;
void cube_octet_sequence (in octet_seq input, out octet_seq output);
// Cube an octet sequence.
+ typedef sequence<Many> many_seq;
+ void cube_many_sequence (in many_seq input,
+ out many_seq output);
+ // Cube several manys.
+
oneway void shutdown ();
// shutdown the application.