diff options
-rw-r--r-- | ChangeLog | 108 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-02a | 108 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 108 | ||||
-rw-r--r-- | ace/CORBA_macros.h | 2 | ||||
-rw-r--r-- | ace/RMCast/Makefile | 3 | ||||
-rw-r--r-- | ace/RMCast/RMCast_Header_Size.cpp | 15 | ||||
-rw-r--r-- | ace/RMCast/RMCast_Header_Size.h | 55 | ||||
-rw-r--r-- | ace/RMCast/RMCast_Header_Size.i | 14 | ||||
-rw-r--r-- | ace/RMCast/RMCast_Partial_Message.cpp | 3 | ||||
-rw-r--r-- | protocols/ace/RMCast/Makefile | 3 | ||||
-rw-r--r-- | protocols/ace/RMCast/RMCast_Header_Size.cpp | 15 | ||||
-rw-r--r-- | protocols/ace/RMCast/RMCast_Header_Size.h | 55 | ||||
-rw-r--r-- | protocols/ace/RMCast/RMCast_Header_Size.i | 14 | ||||
-rw-r--r-- | protocols/ace/RMCast/RMCast_Partial_Message.cpp | 3 |
14 files changed, 350 insertions, 156 deletions
diff --git a/ChangeLog b/ChangeLog index ceb798b113d..9c08fddc7eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Jun 20 19:37:53 2000 Carlos O'Ryan <coryan@uci.edu> + + * ace/CORBA_macros.h: + Fixed the definition of ACE_RE_THROW_EX, there was a space + between the macro name and the ( that starts its arguments. + Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu> * ace/OS.cpp: Applied patches for ACE_BEGINTHREADEX and @@ -7,32 +13,32 @@ Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu> Tue Jun 20 12:04:24 2000 Ossama Othman <ossama@uci.edu> - * ace/Makefile (ssl): + * ace/Makefile (ssl): - Reverted change that causes the SSL wrappers to be built when - SSL support isn't explicitly disabled. It caused SSL support to - always be built, which was not the desired effect. + Reverted change that causes the SSL wrappers to be built when + SSL support isn't explicitly disabled. It caused SSL support to + always be built, which was not the desired effect. Tue Jun 20 12:57:12 2000 Nanbor Wang <nanbor@cs.wustl.edu> * ace/config-freebsd-pthread.h: Undefined ACE_LACKS_SETSCHED if we are compiling on R4.0 or above. Thanks to Sergey A. Osokin - <osa@freebsd.org.ru> for reporting this for Nick Logvinov - <nl@rpb.ru>. + <osa@freebsd.org.ru> for reporting this for Nick Logvinov + <nl@rpb.ru>. Tue Jun 20 07:37:18 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/Select_Reactor_T.h, - * ace/Select_Reactor_T.cpp, - * ace/Reactor.h, - * ace/Reactor.i, - * ace/Reactor_Impl.h, - * ace/WFMO_Reactor.h, - * ace/WFMO_Reactor.cpp: - Added a new method to access the Reactor's timer queue. Also - renamed the accessors timer_queue(ACE_Timer_Queue *) and - ACE_Timer_Queue *timer_queue() to be more consistent with ACE - naming conventions. Thanks to Jody Hagins for reporting this. + * ace/Select_Reactor_T.h, + * ace/Select_Reactor_T.cpp, + * ace/Reactor.h, + * ace/Reactor.i, + * ace/Reactor_Impl.h, + * ace/WFMO_Reactor.h, + * ace/WFMO_Reactor.cpp: + Added a new method to access the Reactor's timer queue. Also + renamed the accessors timer_queue(ACE_Timer_Queue *) and + ACE_Timer_Queue *timer_queue() to be more consistent with ACE + naming conventions. Thanks to Jody Hagins for reporting this. Tue Jun 20 02:06:15 2000 Craig Rodrigues <crodrigu@bbn.com> @@ -44,69 +50,69 @@ Tue Jun 20 02:06:15 2000 Craig Rodrigues <crodrigu@bbn.com> Mon Jun 19 22:14:26 2000 Alex Arulanthu <Alex.Arulanthu@sylantro.com> - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Proactor.h: - * ace/POSIX_Proactor.cpp: - * examples/Reactor/Proactor/Makefile - * examples/Reactor/Proactor/test_proactor2.cpp: + * ace/POSIX_Asynch_IO.h: + * ace/POSIX_Asynch_IO.cpp: + * ace/POSIX_Proactor.h: + * ace/POSIX_Proactor.cpp: + * examples/Reactor/Proactor/Makefile + * examples/Reactor/Proactor/test_proactor2.cpp: - Thanks to Alex Libman <alibman@baltimore.com>, the following - changes have been integrated onto POSIX Proactor. + Thanks to Alex Libman <alibman@baltimore.com>, the following + changes have been integrated onto POSIX Proactor. - - Enabling the completion call backs even if aio_return - fails. We will call the completion call back methods with 0 - transferred data parameter. + - Enabling the completion call backs even if aio_return + fails. We will call the completion call back methods with 0 + transferred data parameter. - - MT safe'ing AIOCB proactor. It would not improve the - efficiency. + - MT safe'ing AIOCB proactor. It would not improve the + efficiency. Mon Jun 19 19:44:05 2000 Ossama Othman <ossama@uci.edu> - * ace/Makefile (ssl): + * ace/Makefile (ssl): - Fixed conditional so that the SSL wrappers are built when SSL is - not explicitly disabled, i.e. when the "ssl" make variable is - not equal to zero. Note that the default is not to build the - SSL wrappers. + Fixed conditional so that the SSL wrappers are built when SSL is + not explicitly disabled, i.e. when the "ssl" make variable is + not equal to zero. Note that the default is not to build the + SSL wrappers. - * ace/OS.i (thr_yield): + * ace/OS.i (thr_yield): - Corrected typo in comment. + Corrected typo in comment. - * m4/platform.m4 (ACE_CPPFLAGS): + * m4/platform.m4 (ACE_CPPFLAGS): - Define necessary feature test macros on the command line, not in - the configuration header. This allows ACE applications to - utilize those macro definitions without having to worry about - header inclusion ordering. + Define necessary feature test macros on the command line, not in + the configuration header. This allows ACE applications to + utilize those macro definitions without having to worry about + header inclusion ordering. - (ACE_DEFAULT_SELECT_REACTOR_SIZE): + (ACE_DEFAULT_SELECT_REACTOR_SIZE): It is no longer necessary to hard-code the default reactor size for older Linux kernels that had a file descriptor limit less than FD_SETSIZE since the Select Reactor now falls back on the run-time file descriptor limit for the given process. - (ACE_HAS_IRIX62_THREADS): + (ACE_HAS_IRIX62_THREADS): - Removed redundant definition. Only define - ACE_HAS_IRIX62_THREADS for IRIX 6.2. + Removed redundant definition. Only define + ACE_HAS_IRIX62_THREADS for IRIX 6.2. Mon Jun 19 17:33:28 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/OS.h: Removed the special case check for + * ace/OS.h: Removed the special case check for # if defined (ACE_HAS_IRIX62_THREADS) - # define THR_SCOPE_SYSTEM 0x00100000 - # else + # define THR_SCOPE_SYSTEM 0x00100000 + # else and just used this: - # define THR_SCOPE_SYSTEM THR_BOUND + # define THR_SCOPE_SYSTEM THR_BOUND Thanks to John Foresteire <John_J_Foresteire@res.raytheon.com> - for this suggestion. + for this suggestion. Mon Jun 19 12:38:58 2000 Carlos O'Ryan <coryan@uci.edu> diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a index ceb798b113d..9c08fddc7eb 100644 --- a/ChangeLogs/ChangeLog-02a +++ b/ChangeLogs/ChangeLog-02a @@ -1,3 +1,9 @@ +Tue Jun 20 19:37:53 2000 Carlos O'Ryan <coryan@uci.edu> + + * ace/CORBA_macros.h: + Fixed the definition of ACE_RE_THROW_EX, there was a space + between the macro name and the ( that starts its arguments. + Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu> * ace/OS.cpp: Applied patches for ACE_BEGINTHREADEX and @@ -7,32 +13,32 @@ Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu> Tue Jun 20 12:04:24 2000 Ossama Othman <ossama@uci.edu> - * ace/Makefile (ssl): + * ace/Makefile (ssl): - Reverted change that causes the SSL wrappers to be built when - SSL support isn't explicitly disabled. It caused SSL support to - always be built, which was not the desired effect. + Reverted change that causes the SSL wrappers to be built when + SSL support isn't explicitly disabled. It caused SSL support to + always be built, which was not the desired effect. Tue Jun 20 12:57:12 2000 Nanbor Wang <nanbor@cs.wustl.edu> * ace/config-freebsd-pthread.h: Undefined ACE_LACKS_SETSCHED if we are compiling on R4.0 or above. Thanks to Sergey A. Osokin - <osa@freebsd.org.ru> for reporting this for Nick Logvinov - <nl@rpb.ru>. + <osa@freebsd.org.ru> for reporting this for Nick Logvinov + <nl@rpb.ru>. Tue Jun 20 07:37:18 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/Select_Reactor_T.h, - * ace/Select_Reactor_T.cpp, - * ace/Reactor.h, - * ace/Reactor.i, - * ace/Reactor_Impl.h, - * ace/WFMO_Reactor.h, - * ace/WFMO_Reactor.cpp: - Added a new method to access the Reactor's timer queue. Also - renamed the accessors timer_queue(ACE_Timer_Queue *) and - ACE_Timer_Queue *timer_queue() to be more consistent with ACE - naming conventions. Thanks to Jody Hagins for reporting this. + * ace/Select_Reactor_T.h, + * ace/Select_Reactor_T.cpp, + * ace/Reactor.h, + * ace/Reactor.i, + * ace/Reactor_Impl.h, + * ace/WFMO_Reactor.h, + * ace/WFMO_Reactor.cpp: + Added a new method to access the Reactor's timer queue. Also + renamed the accessors timer_queue(ACE_Timer_Queue *) and + ACE_Timer_Queue *timer_queue() to be more consistent with ACE + naming conventions. Thanks to Jody Hagins for reporting this. Tue Jun 20 02:06:15 2000 Craig Rodrigues <crodrigu@bbn.com> @@ -44,69 +50,69 @@ Tue Jun 20 02:06:15 2000 Craig Rodrigues <crodrigu@bbn.com> Mon Jun 19 22:14:26 2000 Alex Arulanthu <Alex.Arulanthu@sylantro.com> - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Proactor.h: - * ace/POSIX_Proactor.cpp: - * examples/Reactor/Proactor/Makefile - * examples/Reactor/Proactor/test_proactor2.cpp: + * ace/POSIX_Asynch_IO.h: + * ace/POSIX_Asynch_IO.cpp: + * ace/POSIX_Proactor.h: + * ace/POSIX_Proactor.cpp: + * examples/Reactor/Proactor/Makefile + * examples/Reactor/Proactor/test_proactor2.cpp: - Thanks to Alex Libman <alibman@baltimore.com>, the following - changes have been integrated onto POSIX Proactor. + Thanks to Alex Libman <alibman@baltimore.com>, the following + changes have been integrated onto POSIX Proactor. - - Enabling the completion call backs even if aio_return - fails. We will call the completion call back methods with 0 - transferred data parameter. + - Enabling the completion call backs even if aio_return + fails. We will call the completion call back methods with 0 + transferred data parameter. - - MT safe'ing AIOCB proactor. It would not improve the - efficiency. + - MT safe'ing AIOCB proactor. It would not improve the + efficiency. Mon Jun 19 19:44:05 2000 Ossama Othman <ossama@uci.edu> - * ace/Makefile (ssl): + * ace/Makefile (ssl): - Fixed conditional so that the SSL wrappers are built when SSL is - not explicitly disabled, i.e. when the "ssl" make variable is - not equal to zero. Note that the default is not to build the - SSL wrappers. + Fixed conditional so that the SSL wrappers are built when SSL is + not explicitly disabled, i.e. when the "ssl" make variable is + not equal to zero. Note that the default is not to build the + SSL wrappers. - * ace/OS.i (thr_yield): + * ace/OS.i (thr_yield): - Corrected typo in comment. + Corrected typo in comment. - * m4/platform.m4 (ACE_CPPFLAGS): + * m4/platform.m4 (ACE_CPPFLAGS): - Define necessary feature test macros on the command line, not in - the configuration header. This allows ACE applications to - utilize those macro definitions without having to worry about - header inclusion ordering. + Define necessary feature test macros on the command line, not in + the configuration header. This allows ACE applications to + utilize those macro definitions without having to worry about + header inclusion ordering. - (ACE_DEFAULT_SELECT_REACTOR_SIZE): + (ACE_DEFAULT_SELECT_REACTOR_SIZE): It is no longer necessary to hard-code the default reactor size for older Linux kernels that had a file descriptor limit less than FD_SETSIZE since the Select Reactor now falls back on the run-time file descriptor limit for the given process. - (ACE_HAS_IRIX62_THREADS): + (ACE_HAS_IRIX62_THREADS): - Removed redundant definition. Only define - ACE_HAS_IRIX62_THREADS for IRIX 6.2. + Removed redundant definition. Only define + ACE_HAS_IRIX62_THREADS for IRIX 6.2. Mon Jun 19 17:33:28 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/OS.h: Removed the special case check for + * ace/OS.h: Removed the special case check for # if defined (ACE_HAS_IRIX62_THREADS) - # define THR_SCOPE_SYSTEM 0x00100000 - # else + # define THR_SCOPE_SYSTEM 0x00100000 + # else and just used this: - # define THR_SCOPE_SYSTEM THR_BOUND + # define THR_SCOPE_SYSTEM THR_BOUND Thanks to John Foresteire <John_J_Foresteire@res.raytheon.com> - for this suggestion. + for this suggestion. Mon Jun 19 12:38:58 2000 Carlos O'Ryan <coryan@uci.edu> diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index ceb798b113d..9c08fddc7eb 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,3 +1,9 @@ +Tue Jun 20 19:37:53 2000 Carlos O'Ryan <coryan@uci.edu> + + * ace/CORBA_macros.h: + Fixed the definition of ACE_RE_THROW_EX, there was a space + between the macro name and the ( that starts its arguments. + Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu> * ace/OS.cpp: Applied patches for ACE_BEGINTHREADEX and @@ -7,32 +13,32 @@ Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu> Tue Jun 20 12:04:24 2000 Ossama Othman <ossama@uci.edu> - * ace/Makefile (ssl): + * ace/Makefile (ssl): - Reverted change that causes the SSL wrappers to be built when - SSL support isn't explicitly disabled. It caused SSL support to - always be built, which was not the desired effect. + Reverted change that causes the SSL wrappers to be built when + SSL support isn't explicitly disabled. It caused SSL support to + always be built, which was not the desired effect. Tue Jun 20 12:57:12 2000 Nanbor Wang <nanbor@cs.wustl.edu> * ace/config-freebsd-pthread.h: Undefined ACE_LACKS_SETSCHED if we are compiling on R4.0 or above. Thanks to Sergey A. Osokin - <osa@freebsd.org.ru> for reporting this for Nick Logvinov - <nl@rpb.ru>. + <osa@freebsd.org.ru> for reporting this for Nick Logvinov + <nl@rpb.ru>. Tue Jun 20 07:37:18 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/Select_Reactor_T.h, - * ace/Select_Reactor_T.cpp, - * ace/Reactor.h, - * ace/Reactor.i, - * ace/Reactor_Impl.h, - * ace/WFMO_Reactor.h, - * ace/WFMO_Reactor.cpp: - Added a new method to access the Reactor's timer queue. Also - renamed the accessors timer_queue(ACE_Timer_Queue *) and - ACE_Timer_Queue *timer_queue() to be more consistent with ACE - naming conventions. Thanks to Jody Hagins for reporting this. + * ace/Select_Reactor_T.h, + * ace/Select_Reactor_T.cpp, + * ace/Reactor.h, + * ace/Reactor.i, + * ace/Reactor_Impl.h, + * ace/WFMO_Reactor.h, + * ace/WFMO_Reactor.cpp: + Added a new method to access the Reactor's timer queue. Also + renamed the accessors timer_queue(ACE_Timer_Queue *) and + ACE_Timer_Queue *timer_queue() to be more consistent with ACE + naming conventions. Thanks to Jody Hagins for reporting this. Tue Jun 20 02:06:15 2000 Craig Rodrigues <crodrigu@bbn.com> @@ -44,69 +50,69 @@ Tue Jun 20 02:06:15 2000 Craig Rodrigues <crodrigu@bbn.com> Mon Jun 19 22:14:26 2000 Alex Arulanthu <Alex.Arulanthu@sylantro.com> - * ace/POSIX_Asynch_IO.h: - * ace/POSIX_Asynch_IO.cpp: - * ace/POSIX_Proactor.h: - * ace/POSIX_Proactor.cpp: - * examples/Reactor/Proactor/Makefile - * examples/Reactor/Proactor/test_proactor2.cpp: + * ace/POSIX_Asynch_IO.h: + * ace/POSIX_Asynch_IO.cpp: + * ace/POSIX_Proactor.h: + * ace/POSIX_Proactor.cpp: + * examples/Reactor/Proactor/Makefile + * examples/Reactor/Proactor/test_proactor2.cpp: - Thanks to Alex Libman <alibman@baltimore.com>, the following - changes have been integrated onto POSIX Proactor. + Thanks to Alex Libman <alibman@baltimore.com>, the following + changes have been integrated onto POSIX Proactor. - - Enabling the completion call backs even if aio_return - fails. We will call the completion call back methods with 0 - transferred data parameter. + - Enabling the completion call backs even if aio_return + fails. We will call the completion call back methods with 0 + transferred data parameter. - - MT safe'ing AIOCB proactor. It would not improve the - efficiency. + - MT safe'ing AIOCB proactor. It would not improve the + efficiency. Mon Jun 19 19:44:05 2000 Ossama Othman <ossama@uci.edu> - * ace/Makefile (ssl): + * ace/Makefile (ssl): - Fixed conditional so that the SSL wrappers are built when SSL is - not explicitly disabled, i.e. when the "ssl" make variable is - not equal to zero. Note that the default is not to build the - SSL wrappers. + Fixed conditional so that the SSL wrappers are built when SSL is + not explicitly disabled, i.e. when the "ssl" make variable is + not equal to zero. Note that the default is not to build the + SSL wrappers. - * ace/OS.i (thr_yield): + * ace/OS.i (thr_yield): - Corrected typo in comment. + Corrected typo in comment. - * m4/platform.m4 (ACE_CPPFLAGS): + * m4/platform.m4 (ACE_CPPFLAGS): - Define necessary feature test macros on the command line, not in - the configuration header. This allows ACE applications to - utilize those macro definitions without having to worry about - header inclusion ordering. + Define necessary feature test macros on the command line, not in + the configuration header. This allows ACE applications to + utilize those macro definitions without having to worry about + header inclusion ordering. - (ACE_DEFAULT_SELECT_REACTOR_SIZE): + (ACE_DEFAULT_SELECT_REACTOR_SIZE): It is no longer necessary to hard-code the default reactor size for older Linux kernels that had a file descriptor limit less than FD_SETSIZE since the Select Reactor now falls back on the run-time file descriptor limit for the given process. - (ACE_HAS_IRIX62_THREADS): + (ACE_HAS_IRIX62_THREADS): - Removed redundant definition. Only define - ACE_HAS_IRIX62_THREADS for IRIX 6.2. + Removed redundant definition. Only define + ACE_HAS_IRIX62_THREADS for IRIX 6.2. Mon Jun 19 17:33:28 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu> - * ace/OS.h: Removed the special case check for + * ace/OS.h: Removed the special case check for # if defined (ACE_HAS_IRIX62_THREADS) - # define THR_SCOPE_SYSTEM 0x00100000 - # else + # define THR_SCOPE_SYSTEM 0x00100000 + # else and just used this: - # define THR_SCOPE_SYSTEM THR_BOUND + # define THR_SCOPE_SYSTEM THR_BOUND Thanks to John Foresteire <John_J_Foresteire@res.raytheon.com> - for this suggestion. + for this suggestion. Mon Jun 19 12:38:58 2000 Carlos O'Ryan <coryan@uci.edu> diff --git a/ace/CORBA_macros.h b/ace/CORBA_macros.h index f501412a349..e5ba16c9062 100644 --- a/ace/CORBA_macros.h +++ b/ace/CORBA_macros.h @@ -330,7 +330,7 @@ ACE_TRY_ENV = ACE_CAUGHT_ENV; \ goto ACE_TRY_LABEL; \ } while (0) -# define ACE_RE_THROW_EX (LABEL) \ +# define ACE_RE_THROW_EX(LABEL) \ do {\ ACE_TRY_ENV = ACE_CAUGHT_ENV; \ goto ACE_TRY_LABEL ## LABEL; \ diff --git a/ace/RMCast/Makefile b/ace/RMCast/Makefile index 87d640afe74..8ffb9265813 100644 --- a/ace/RMCast/Makefile +++ b/ace/RMCast/Makefile @@ -9,7 +9,8 @@ LIB = libACE_RMCast.a SHLIB = libACE_RMCast.$(SOEXT) FILES= \ - RMCast_Partial_Message + RMCast_Partial_Message \ + RMCast_Header_Size TEMPLATE_FILES = \ RMCast_Fragment \ RMCast_Reassembly diff --git a/ace/RMCast/RMCast_Header_Size.cpp b/ace/RMCast/RMCast_Header_Size.cpp new file mode 100644 index 00000000000..f98259eb255 --- /dev/null +++ b/ace/RMCast/RMCast_Header_Size.cpp @@ -0,0 +1,15 @@ +// $Id$ + +#include "RMCast_Header_Size.h" + +#if !defined (__ACE_INLINE__) +#include "RMCast_Header_Size.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(ace, RMCast_Header_Size, "$Id$") + +ACE_RMCast_Header_Size:: +ACE_RMCast_Header_Size (void) + : ACE_Message_Block (0, ACE_Message_Block::MB_PROTO) +{ +} diff --git a/ace/RMCast/RMCast_Header_Size.h b/ace/RMCast/RMCast_Header_Size.h new file mode 100644 index 00000000000..eb6aa9599af --- /dev/null +++ b/ace/RMCast/RMCast_Header_Size.h @@ -0,0 +1,55 @@ +// $Id$ + +// ============================================================================ +// +// = DESCRIPTION +// Helper class used in the reassembly layer of the realiable +// multicast library. +// +// = AUTHOR +// Carlos O'Ryan <coryan@cs.wustl.edu> +// +// ============================================================================ + +#ifndef ACE_RMCAST_HEADER_SIZE_H +#define ACE_RMCAST_HEADER_SIZE_H +#include "ace/pre.h" + +#include "RMCast_Export.h" +#include "ace/Task.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class ACE_RMCast_Export ACE_RMCast_Header_Size : public ACE_Message_Block +{ + // = TITLE + // A control message to compute the total header size in the stack + // + // = DESCRIPTION + // As layers are pushed into the stack it is often required to add + // headers in one or more layers. The headers could be appended + // using the message block chain. + // +public: + ACE_RMCast_Header_Size (void); + // Constructor + + void add_to_header_size (size_t size); + // Add a header to the total size + + size_t header_size (void) const; + // Return the current header size + +private: + size_t header_size_; + // The header size +}; + +#if defined (__ACE_INLINE__) +#include "RMCast_Header_Size.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" +#endif /* ACE_RMCAST_HEADER_SIZE_H */ diff --git a/ace/RMCast/RMCast_Header_Size.i b/ace/RMCast/RMCast_Header_Size.i new file mode 100644 index 00000000000..ae197528578 --- /dev/null +++ b/ace/RMCast/RMCast_Header_Size.i @@ -0,0 +1,14 @@ +// $Id$ + +ACE_INLINE void +ACE_RMCast_Header_Size::add_to_header_size (size_t size) +{ + this->header_size_ += size; +} + +ACE_INLINE size_t +ACE_RMCast_Header_Size::header_size (void) const +{ + return this->header_size_; +} + diff --git a/ace/RMCast/RMCast_Partial_Message.cpp b/ace/RMCast/RMCast_Partial_Message.cpp index 054619d6998..2515c52459b 100644 --- a/ace/RMCast/RMCast_Partial_Message.cpp +++ b/ace/RMCast/RMCast_Partial_Message.cpp @@ -33,6 +33,9 @@ ACE_RMCast_Partial_Message::fragment_received (ACE_UINT32 message_size, ACE_UINT32 offset, ACE_Message_Block *mb) { + if (this->message_body_.length () != message_size) + return -1; + // Just copy the data... char *rd_ptr = this->message_body_.rd_ptr () + offset; size_t total_length = mb->length () - 12; diff --git a/protocols/ace/RMCast/Makefile b/protocols/ace/RMCast/Makefile index 87d640afe74..8ffb9265813 100644 --- a/protocols/ace/RMCast/Makefile +++ b/protocols/ace/RMCast/Makefile @@ -9,7 +9,8 @@ LIB = libACE_RMCast.a SHLIB = libACE_RMCast.$(SOEXT) FILES= \ - RMCast_Partial_Message + RMCast_Partial_Message \ + RMCast_Header_Size TEMPLATE_FILES = \ RMCast_Fragment \ RMCast_Reassembly diff --git a/protocols/ace/RMCast/RMCast_Header_Size.cpp b/protocols/ace/RMCast/RMCast_Header_Size.cpp new file mode 100644 index 00000000000..f98259eb255 --- /dev/null +++ b/protocols/ace/RMCast/RMCast_Header_Size.cpp @@ -0,0 +1,15 @@ +// $Id$ + +#include "RMCast_Header_Size.h" + +#if !defined (__ACE_INLINE__) +#include "RMCast_Header_Size.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(ace, RMCast_Header_Size, "$Id$") + +ACE_RMCast_Header_Size:: +ACE_RMCast_Header_Size (void) + : ACE_Message_Block (0, ACE_Message_Block::MB_PROTO) +{ +} diff --git a/protocols/ace/RMCast/RMCast_Header_Size.h b/protocols/ace/RMCast/RMCast_Header_Size.h new file mode 100644 index 00000000000..eb6aa9599af --- /dev/null +++ b/protocols/ace/RMCast/RMCast_Header_Size.h @@ -0,0 +1,55 @@ +// $Id$ + +// ============================================================================ +// +// = DESCRIPTION +// Helper class used in the reassembly layer of the realiable +// multicast library. +// +// = AUTHOR +// Carlos O'Ryan <coryan@cs.wustl.edu> +// +// ============================================================================ + +#ifndef ACE_RMCAST_HEADER_SIZE_H +#define ACE_RMCAST_HEADER_SIZE_H +#include "ace/pre.h" + +#include "RMCast_Export.h" +#include "ace/Task.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +class ACE_RMCast_Export ACE_RMCast_Header_Size : public ACE_Message_Block +{ + // = TITLE + // A control message to compute the total header size in the stack + // + // = DESCRIPTION + // As layers are pushed into the stack it is often required to add + // headers in one or more layers. The headers could be appended + // using the message block chain. + // +public: + ACE_RMCast_Header_Size (void); + // Constructor + + void add_to_header_size (size_t size); + // Add a header to the total size + + size_t header_size (void) const; + // Return the current header size + +private: + size_t header_size_; + // The header size +}; + +#if defined (__ACE_INLINE__) +#include "RMCast_Header_Size.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" +#endif /* ACE_RMCAST_HEADER_SIZE_H */ diff --git a/protocols/ace/RMCast/RMCast_Header_Size.i b/protocols/ace/RMCast/RMCast_Header_Size.i new file mode 100644 index 00000000000..ae197528578 --- /dev/null +++ b/protocols/ace/RMCast/RMCast_Header_Size.i @@ -0,0 +1,14 @@ +// $Id$ + +ACE_INLINE void +ACE_RMCast_Header_Size::add_to_header_size (size_t size) +{ + this->header_size_ += size; +} + +ACE_INLINE size_t +ACE_RMCast_Header_Size::header_size (void) const +{ + return this->header_size_; +} + diff --git a/protocols/ace/RMCast/RMCast_Partial_Message.cpp b/protocols/ace/RMCast/RMCast_Partial_Message.cpp index 054619d6998..2515c52459b 100644 --- a/protocols/ace/RMCast/RMCast_Partial_Message.cpp +++ b/protocols/ace/RMCast/RMCast_Partial_Message.cpp @@ -33,6 +33,9 @@ ACE_RMCast_Partial_Message::fragment_received (ACE_UINT32 message_size, ACE_UINT32 offset, ACE_Message_Block *mb) { + if (this->message_body_.length () != message_size) + return -1; + // Just copy the data... char *rd_ptr = this->message_body_.rd_ptr () + offset; size_t total_length = mb->length () - 12; |