00001
00002
00003
00004
00005
00006 #include "ace/SV_Message_Queue.h"
00007
00008 template <class T> ACE_INLINE int
00009 ACE_Typed_SV_Message_Queue<T>::open (key_t external_id,
00010 int create,
00011 int perms)
00012 {
00013 ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::open");
00014 return this->message_queue_.open (external_id, create, perms);
00015 }
00016
00017
00018
00019 template <class T> ACE_INLINE int
00020 ACE_Typed_SV_Message_Queue<T>::close (void)
00021 {
00022 ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::close");
00023 return 1;
00024 }
00025
00026 template <class T> ACE_INLINE int
00027 ACE_Typed_SV_Message_Queue<T>::recv (ACE_Typed_SV_Message<T> &mb,
00028 int mflags)
00029 {
00030 ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::recv");
00031
00032 int length = this->message_queue_.recv (ACE_reinterpret_cast (ACE_SV_Message &,
00033 mb),
00034 mb.max_size (),
00035 mb.type (),
00036 mflags);
00037 if (length != -1)
00038 mb.length (length);
00039
00040 return length;
00041 }
00042
00043 template <class T> ACE_INLINE int
00044 ACE_Typed_SV_Message_Queue<T>::send (const ACE_Typed_SV_Message<T> &mb,
00045 int mflags)
00046 {
00047 ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::send");
00048 return this->message_queue_.
00049 send (ACE_reinterpret_cast (ACE_SV_Message &,
00050 ACE_const_cast (ACE_Typed_SV_Message<T> &,
00051 mb)),
00052 mb.length (),
00053 mflags);
00054 }
00055
00056 template <class T> ACE_INLINE int
00057 ACE_Typed_SV_Message_Queue<T>::remove (void)
00058 {
00059 ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::remove");
00060
00061 return this->message_queue_.remove ();
00062 }
00063
00064 template <class T> ACE_INLINE int
00065 ACE_Typed_SV_Message_Queue<T>::control (int option,
00066 void *arg)
00067 {
00068 ACE_TRACE ("ACE_Typed_SV_Message_Queue<T>::control");
00069
00070 return this->message_queue_.control (option, arg);
00071 }
00072
00073 template <class T> ACE_INLINE int
00074 ACE_Typed_SV_Message_Queue<T>::get_id (void) const
00075 {
00076 return this->message_queue_.get_id ();
00077 }