diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-10-05 23:52:16 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-10-05 23:52:16 +0000 |
commit | 11e66c51a60e0d6080a005250526f8579e772ef7 (patch) | |
tree | 97641b761a6a034da2a888c2cb0a856aaa317e3c | |
parent | 6ead053a82bc686d6f56cb0bb619613211798b2b (diff) | |
download | ATCD-11e66c51a60e0d6080a005250526f8579e772ef7.tar.gz |
*** empty log message ***
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. |