libbmq b6028b29b733bc7541593d2905a5f79a9f0192fc
Loading...
Searching...
No Matches
bmqa_abstractsession.h
Go to the documentation of this file.
1// Copyright 2016-2023 Bloomberg Finance L.P.
2// SPDX-License-Identifier: Apache-2.0
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16// bmqa_abstractsession.h -*-C++-*-
17#ifndef INCLUDED_BMQA_ABSTRACTSESSION
18#define INCLUDED_BMQA_ABSTRACTSESSION
19
25
29#include <bmqa_event.h>
33#include <bmqa_queueid.h>
34#include <bmqt_queueoptions.h>
35#include <bmqt_uri.h>
36
37// BDE
38#include <bsl_functional.h>
39#include <bsls_timeinterval.h>
40#include <bsls_types.h>
41
42namespace BloombergLP {
43namespace bmqa {
44
45// =====================
46// class AbstractSession
47// =====================
48
51 public:
52 // TYPES
53
58 typedef bsl::function<void(const bmqa::OpenQueueStatus& result)>
60
65 typedef bsl::function<void(const bmqa::ConfigureQueueStatus& result)>
67
72 typedef bsl::function<void(const bmqa::CloseQueueStatus& result)>
74
75 public:
76 // CREATORS
77
80
81 // MANIPULATORS
82
85
94 virtual int
95 start(const bsls::TimeInterval& timeout = bsls::TimeInterval());
96
105 virtual int
106 startAsync(const bsls::TimeInterval& timeout = bsls::TimeInterval());
107
115 virtual void stop();
116
121 virtual void stopAsync();
122
128 virtual void finalizeStop();
129
140
149
158
161
166 virtual int getQueueId(QueueId* queueId, const bmqt::Uri& uri);
167
172 virtual int getQueueId(QueueId* queueId,
173 const bmqt::CorrelationId& correlationId);
174
178 virtual int
180 const bmqt::Uri& uri,
181 bsls::Types::Uint64 flags,
182 const bmqt::QueueOptions& options = bmqt::QueueOptions(),
183 const bsls::TimeInterval& timeout = bsls::TimeInterval());
184
200 virtual OpenQueueStatus
202 const bmqt::Uri& uri,
203 bsls::Types::Uint64 flags,
204 const bmqt::QueueOptions& options = bmqt::QueueOptions(),
205 const bsls::TimeInterval& timeout = bsls::TimeInterval());
206
210 virtual int
212 const bmqt::Uri& uri,
213 bsls::Types::Uint64 flags,
214 const bmqt::QueueOptions& options = bmqt::QueueOptions(),
215 const bsls::TimeInterval& timeout = bsls::TimeInterval());
216
233 virtual void
235 const bmqt::Uri& uri,
236 bsls::Types::Uint64 flags,
237 const OpenQueueCallback& callback,
238 const bmqt::QueueOptions& options = bmqt::QueueOptions(),
239 const bsls::TimeInterval& timeout = bsls::TimeInterval());
240
244 virtual int
246 const bmqt::QueueOptions& options,
247 const bsls::TimeInterval& timeout = bsls::TimeInterval());
248
262 QueueId* queueId,
263 const bmqt::QueueOptions& options,
264 const bsls::TimeInterval& timeout = bsls::TimeInterval());
265
270 QueueId* queueId,
271 const bmqt::QueueOptions& options,
272 const bsls::TimeInterval& timeout = bsls::TimeInterval());
273
275 QueueId* queueId,
276 const bmqt::QueueOptions& options,
277 const ConfigureQueueCallback& callback,
278 const bsls::TimeInterval& timeout = bsls::TimeInterval());
279
295 virtual int
297 const bsls::TimeInterval& timeout = bsls::TimeInterval());
298
315 virtual CloseQueueStatus
317 const bsls::TimeInterval& timeout = bsls::TimeInterval());
318
322 virtual int
324 const bsls::TimeInterval& timeout = bsls::TimeInterval());
325
343 virtual void
345 const CloseQueueCallback& callback,
346 const bsls::TimeInterval& timeout = bsls::TimeInterval());
347
350
362 virtual Event
363 nextEvent(const bsls::TimeInterval& timeout = bsls::TimeInterval());
364
371 virtual int post(const MessageEvent& event);
372
380 virtual int confirmMessage(const Message& message);
381
390 virtual int confirmMessage(const MessageConfirmationCookie& cookie);
391
403
406
426 virtual int configureMessageDumping(const bslstl::StringRef& command);
427};
428
429} // close package namespace
430} // close enterprise namespace
431
432#endif
Provide Value-Semantic Type for a close queue operation status.
Provide Value-Semantic Type for a configure queue operation status.
Provide a builder for batching confirmation messages.
Provide a generic variant encompassing all types of events.
Provide a builder for bmqa::MessageEvent objects.
Provide a VST representing message properties.
Provide Value-Semantic Type for an open queue operation status.
Provide a value-semantic efficient identifier for a queue.
Provide a value-semantic type for options related to a queue.
Provide value-semantic type and utilities for a BlazingMQ queue URI.
A pure protocol for a session.
Definition bmqa_abstractsession.h:50
virtual int confirmMessages(ConfirmEventBuilder *builder)
virtual int confirmMessage(const MessageConfirmationCookie &cookie)
virtual int startAsync(const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual int start(const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual void configureQueueAsync(QueueId *queueId, const bmqt::QueueOptions &options, const ConfigureQueueCallback &callback, const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual int confirmMessage(const Message &message)
virtual int openQueue(QueueId *queueId, const bmqt::Uri &uri, bsls::Types::Uint64 flags, const bmqt::QueueOptions &options=bmqt::QueueOptions(), const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual ~AbstractSession()
Destructor.
virtual void closeQueueAsync(QueueId *queueId, const CloseQueueCallback &callback, const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual int closeQueue(QueueId *queueId, const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual int configureMessageDumping(const bslstl::StringRef &command)
virtual void loadMessageProperties(MessageProperties *buffer)
virtual int openQueueAsync(QueueId *queueId, const bmqt::Uri &uri, bsls::Types::Uint64 flags, const bmqt::QueueOptions &options=bmqt::QueueOptions(), const bsls::TimeInterval &timeout=bsls::TimeInterval())
bsl::function< void(const bmqa::CloseQueueStatus &result)> CloseQueueCallback
Definition bmqa_abstractsession.h:73
virtual void loadMessageEventBuilder(MessageEventBuilder *builder)
virtual int getQueueId(QueueId *queueId, const bmqt::Uri &uri)
virtual int closeQueueAsync(QueueId *queueId, const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual CloseQueueStatus closeQueueSync(QueueId *queueId, const bsls::TimeInterval &timeout=bsls::TimeInterval())
bsl::function< void(const bmqa::ConfigureQueueStatus &result)> ConfigureQueueCallback
Definition bmqa_abstractsession.h:66
virtual void openQueueAsync(bmqa::QueueId *queueId, const bmqt::Uri &uri, bsls::Types::Uint64 flags, const OpenQueueCallback &callback, const bmqt::QueueOptions &options=bmqt::QueueOptions(), const bsls::TimeInterval &timeout=bsls::TimeInterval())
bsl::function< void(const bmqa::OpenQueueStatus &result)> OpenQueueCallback
Definition bmqa_abstractsession.h:59
virtual int getQueueId(QueueId *queueId, const bmqt::CorrelationId &correlationId)
virtual OpenQueueStatus openQueueSync(QueueId *queueId, const bmqt::Uri &uri, bsls::Types::Uint64 flags, const bmqt::QueueOptions &options=bmqt::QueueOptions(), const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual int post(const MessageEvent &event)
virtual int configureQueue(QueueId *queueId, const bmqt::QueueOptions &options, const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual Event nextEvent(const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual void loadConfirmEventBuilder(ConfirmEventBuilder *builder)
virtual int configureQueueAsync(QueueId *queueId, const bmqt::QueueOptions &options, const bsls::TimeInterval &timeout=bsls::TimeInterval())
virtual ConfigureQueueStatus configureQueueSync(QueueId *queueId, const bmqt::QueueOptions &options, const bsls::TimeInterval &timeout=bsls::TimeInterval())
Definition bmqa_closequeuestatus.h:62
Definition bmqa_configurequeuestatus.h:61
Mechanism to build a batch of CONFIRM messages.
Definition bmqa_confirmeventbuilder.h:157
A variant type encompassing all types of events.
Definition bmqa_event.h:69
Cookie for async message confirmation.
Definition bmqa_message.h:137
A builder for MessageEvent objects.
Definition bmqa_messageeventbuilder.h:319
Definition bmqa_messageevent.h:64
Provide a VST representing message properties.
Definition bmqa_messageproperties.h:94
A message sent/received to/from the BlazingMQ broker.
Definition bmqa_message.h:176
Definition bmqa_openqueuestatus.h:62
Value-semantic efficient identifier for a queue.
Definition bmqa_queueid.h:59
Definition bmqt_correlationid.h:193
Value-semantic type for options related to a queue.
Definition bmqt_queueoptions.h:67
Value semantic type representing a URI.
Definition bmqt_uri.h:157
Definition bmqa_abstractsession.h:42