diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-08-10 01:35:38 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2000-08-10 01:35:38 +0000 |
commit | d17b1c9f1f38a6723a2f2105a29fb0267780f6df (patch) | |
tree | 07a14c4b9e0aaa80db64fdb1b0b4bb099c3666bb /tests/RMCast/RMCast_Fragment_Test.cpp | |
parent | 08b69395778460c45103748cafe19819657dfa4b (diff) | |
download | ATCD-d17b1c9f1f38a6723a2f2105a29fb0267780f6df.tar.gz |
ChangeLogTag:Wed Aug 9 18:16:26 2000 Carlos O'Ryan <coryan@uci.edu>
Diffstat (limited to 'tests/RMCast/RMCast_Fragment_Test.cpp')
-rw-r--r-- | tests/RMCast/RMCast_Fragment_Test.cpp | 62 |
1 files changed, 25 insertions, 37 deletions
diff --git a/tests/RMCast/RMCast_Fragment_Test.cpp b/tests/RMCast/RMCast_Fragment_Test.cpp index 847d6d91963..36b52255e6f 100644 --- a/tests/RMCast/RMCast_Fragment_Test.cpp +++ b/tests/RMCast/RMCast_Fragment_Test.cpp @@ -11,17 +11,19 @@ // ============================================================================ #include "test_config.h" +#include "ace/Task.h" #include "ace/RMCast/RMCast_Fragment.h" ACE_RCSID(tests, RMCast_Fragment_Test, "$Id$") -class ACE_RMCast_Fragment_Tester : public ACE_Task<ACE_MT_SYNCH> +class ACE_RMCast_Fragment_Tester + : public ACE_Task_Base + , public ACE_RMCast_Module { public: ACE_RMCast_Fragment_Tester (void); - virtual int put (ACE_Message_Block *mb, - ACE_Time_Value *tv = 0); + virtual int put_data (ACE_RMCast::Data &data); virtual int svc (void); private: @@ -32,7 +34,7 @@ private: // Compare the message block to <received_> private: - ACE_RMCast_Fragment<ACE_MT_SYNCH> fragment_; + ACE_RMCast_Fragment fragment_; ACE_Message_Block received_; ACE_UINT32 received_bytes_; @@ -64,7 +66,6 @@ main (int, ACE_TCHAR *[]) ACE_RMCast_Fragment_Tester::ACE_RMCast_Fragment_Tester (void) { this->fragment_.next (this); - this->next (&this->fragment_); } int @@ -81,12 +82,14 @@ ACE_RMCast_Fragment_Tester::svc (void) this->initialize (&big_blob); - if (this->fragment_.put (&big_blob) == -1) + ACE_RMCast::Data data; + data.payload = &big_blob; + if (this->fragment_.put_data (data) == -1) return -1; if (this->received_bytes_ != n) ACE_ERROR_RETURN ((LM_ERROR, - "Unpexpected number of " + "Unexpected number of " "received bytes (%d/%d)\n", this->received_bytes_, n), -1); @@ -121,7 +124,9 @@ ACE_RMCast_Fragment_Tester::svc (void) } this->initialize (small); - if (this->fragment_.put (small) == -1) + ACE_RMCast::Data data; + data.payload = small; + if (this->fragment_.put_data (data) == -1) return -1; ACE_UINT32 total = n * size; @@ -169,7 +174,9 @@ ACE_RMCast_Fragment_Tester::svc (void) } this->initialize (small); - if (this->fragment_.put (small) == -1) + ACE_RMCast::Data data; + data.payload = small; + if (this->fragment_.put_data (data) == -1) return -1; if (this->received_bytes_ != total) @@ -239,30 +246,22 @@ ACE_RMCast_Fragment_Tester::compare (ACE_Message_Block *mb) } int -ACE_RMCast_Fragment_Tester::put (ACE_Message_Block *mb, - ACE_Time_Value *) +ACE_RMCast_Fragment_Tester::put_data (ACE_RMCast::Data &data) { - ACE_UINT32 header[3]; - size_t fragment_header_size = sizeof(header); - - if (mb->length () < fragment_header_size) - ACE_ERROR_RETURN ((LM_ERROR, - "Message block too small, " - "not enough room for the header\n"), - -1); - - ACE_OS::memcpy (header, mb->rd_ptr (), fragment_header_size); + ACE_UINT32 sequence_number = data.sequence_number; + ACE_UINT32 message_size = data.total_size; + size_t offset = data.fragment_offset; + ACE_Message_Block *mb = data.payload; - ACE_UINT32 message_size = ACE_NTOHL(header[2]); if (this->received_bytes_ == 0) { this->received_.size (message_size); this->received_.wr_ptr (message_size); - this->message_sequence_number_ = ACE_NTOHL(header[0]); + this->message_sequence_number_ = sequence_number; } else { - if (this->message_sequence_number_ != ACE_NTOHL(header[0])) + if (this->message_sequence_number_ != sequence_number) ACE_ERROR_RETURN ((LM_ERROR, "Mismatched sequence number\n"), -1); @@ -272,13 +271,12 @@ ACE_RMCast_Fragment_Tester::put (ACE_Message_Block *mb, -1); } - size_t offset = ACE_NTOHL(header[1]); - size_t payload_size = mb->length () - fragment_header_size; + size_t payload_size = mb->length (); size_t fragment_size = payload_size; if (payload_size > 0) { ACE_OS::memcpy (this->received_.rd_ptr () + offset, - mb->rd_ptr () + fragment_header_size, + mb->rd_ptr (), payload_size); this->received_bytes_ += payload_size; offset += payload_size; @@ -303,13 +301,3 @@ ACE_RMCast_Fragment_Tester::put (ACE_Message_Block *mb, return 0; } - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - -template class ACE_RMCast_Fragment<ACE_MT_SYNCH>; - -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_RMCast_Fragment<ACE_MT_SYNCH> - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ |