3 //=============================================================================
5 * @file Typed_SV_Message_Queue.h
7 * $Id: Typed_SV_Message_Queue.h 80826 2008-03-04 14:51:23Z wotte $
9 * @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
11 //=============================================================================
13 #ifndef ACE_TYPED_MESSAGE_QUEUE_H
14 #define ACE_TYPED_MESSAGE_QUEUE_H
15 #include /**/ "ace/pre.h"
17 #include "ace/SV_Message_Queue.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 #include "ace/Typed_SV_Message.h"
25 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
28 * @class ACE_Typed_SV_Message_Queue
30 * @brief Defines the header file for the C++ wrapper facade for typed message queues.
33 class ACE_Typed_SV_Message_Queue
38 ACE_CREATE
= IPC_CREAT
,
40 ACE_NOWAIT
= IPC_NOWAIT
43 // = Initialization and termination operations.
44 ACE_Typed_SV_Message_Queue (void);
45 ACE_Typed_SV_Message_Queue (key_t external_id
,
46 int create
= ACE_OPEN
,
47 int perms
= ACE_DEFAULT_FILE_PERMS
);
48 int open (key_t external_id
,
49 int create
= ACE_OPEN
,
50 int perms
= ACE_DEFAULT_FILE_PERMS
);
53 ~ACE_Typed_SV_Message_Queue (void);
56 int send (const ACE_Typed_SV_Message
<T
> &mb
, int mflags
= 0);
59 int recv (ACE_Typed_SV_Message
<T
> &mb
, int mflags
= 0);
61 /// Return the id of the underlying ACE_SV_Message_Queue.
62 int get_id (void) const;
64 /// Control the underlying message queue.
65 int control (int option
, void *arg
= 0);
67 /// Dump the state of an object.
68 void dump (void) const;
70 /// Declare the dynamic allocation hooks.
71 ACE_ALLOC_HOOK_DECLARE
;
74 ACE_SV_Message_Queue message_queue_
;
77 ACE_END_VERSIONED_NAMESPACE_DECL
79 #if defined (__ACE_INLINE__)
80 #include "ace/Typed_SV_Message_Queue.inl"
81 #endif /* __ACE_INLINE__ */
83 #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
84 #include "ace/Typed_SV_Message_Queue.cpp"
85 #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
87 #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
88 #pragma implementation ("Typed_SV_Message_Queue.cpp")
89 #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
91 #include /**/ "ace/post.h"
92 #endif /* ACE_TYPED_MESSAGE_QUEUE_H */