blob: 496953a8e5b99865e5637c1734b6ba61f3858592 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
#include "qpid/messaging/Session.h"
#include "qpid/messaging/Address.h"
#include "qpid/messaging/Connection.h"
#include "qpid/messaging/Message.h"
#include "qpid/messaging/Sender.h"
#include "qpid/messaging/Receiver.h"
#include "qpid/messaging/SessionImpl.h"
#include "qpid/messaging/PrivateImplRef.h"
namespace qpid {
namespace messaging {
typedef PrivateImplRef<qpid::messaging::Session> PI;
Session::Session(SessionImpl* impl) { PI::ctor(*this, impl); }
Session::Session(const Session& s) : Handle<SessionImpl>() { PI::copy(*this, s); }
Session::~Session() { PI::dtor(*this); }
Session& Session::operator=(const Session& s) { return PI::assign(*this, s); }
void Session::commit() { impl->commit(); }
void Session::rollback() { impl->rollback(); }
void Session::acknowledge(bool sync) { impl->acknowledge(sync); }
void Session::acknowledge(Message& m, bool s) { impl->acknowledge(m); sync(s); }
void Session::reject(Message& m) { impl->reject(m); }
void Session::release(Message& m) { impl->release(m); }
void Session::close() { impl->close(); }
Sender Session::createSender(const Address& address)
{
return impl->createSender(address);
}
Receiver Session::createReceiver(const Address& address)
{
return impl->createReceiver(address);
}
Sender Session::createSender(const std::string& address)
{
return impl->createSender(Address(address));
}
Receiver Session::createReceiver(const std::string& address)
{
return impl->createReceiver(Address(address));
}
void Session::sync(bool block)
{
impl->sync(block);
}
bool Session::nextReceiver(Receiver& receiver, Duration timeout)
{
return impl->nextReceiver(receiver, timeout);
}
Receiver Session::nextReceiver(Duration timeout)
{
return impl->nextReceiver(timeout);
}
uint32_t Session::getReceivable() { return impl->getReceivable(); }
uint32_t Session::getUnsettledAcks() { return impl->getUnsettledAcks(); }
Sender Session::getSender(const std::string& name) const
{
return impl->getSender(name);
}
Receiver Session::getReceiver(const std::string& name) const
{
return impl->getReceiver(name);
}
Connection Session::getConnection() const
{
return impl->getConnection();
}
void Session::checkError() { impl->checkError(); }
bool Session::hasError()
{
try {
checkError();
return false;
} catch (const std::exception&) {
return true;
}
}
}} // namespace qpid::messaging
|