OpenMAMA
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros Pages
MamaPublisher.h
Go to the documentation of this file.
1 /* $Id$
2  *
3  * OpenMAMA: The open middleware agnostic messaging API
4  * Copyright (C) 2011 NYSE Technologies, Inc.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19  * 02110-1301 USA
20  */
21 
22 #ifndef MAMA_PUBLISHER_CPP_H__
23 #define MAMA_PUBLISHER_CPP_H__
24 
25 #include "mama/mamacpp.h"
27 
28 namespace Wombat
29 {
30  class MamaInbox;
31  class MamaPublisherImpl;
32  class MamaSendCompleteCallback;
33 
40  class MAMACPPExpDLL MamaPublisher
41  {
42  public:
43  virtual ~MamaPublisher (void);
44 
45  MamaPublisher (void);
46 
58  virtual void create (
59  MamaTransport* transport,
60  const char* topic,
61  const char* source = NULL,
62  const char* root = NULL);
63 
64  virtual void send (
65  MamaMsg* msg) const;
66 
67  virtual void sendWithThrottle (
68  MamaMsg* msg,
70  void* closure) const ;
71 
72  virtual void sendFromInbox (
73  MamaInbox* inbox,
74  MamaMsg* msg) const;
75 
76  virtual void sendFromInboxWithThrottle(
77  MamaInbox* inbox,
78  MamaMsg* msg,
80  void* closure) const;
81 
82  virtual void sendReplyToInbox (
83  const MamaMsg& request,
84  MamaMsg* reply) const;
85 
86  virtual void sendReplyToInbox (
87  mamaMsgReply replyHandle,
88  MamaMsg* reply) const;
89 
90  virtual void destroy (void);
91 
92  protected:
93  MamaPublisher (MamaPublisherImpl*);
94 
95  MamaPublisherImpl* mPimpl;
96  };
97 
98 } // namespace Wombat
99 #endif // MAMA_PUBLISHER_CPP_H__


© 2012 Linux Foundation