Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET
Apache Qpid Documentation
qmf
Handle.h
Go to the documentation of this file.
1
#ifndef QMF_HANDLE_H
2
#define QMF_HANDLE_H
3
4
/*
5
*
6
* Licensed to the Apache Software Foundation (ASF) under one
7
* or more contributor license agreements. See the NOTICE file
8
* distributed with this work for additional information
9
* regarding copyright ownership. The ASF licenses this file
10
* to you under the Apache License, Version 2.0 (the
11
* "License"); you may not use this file except in compliance
12
* with the License. You may obtain a copy of the License at
13
*
14
* http://www.apache.org/licenses/LICENSE-2.0
15
*
16
* Unless required by applicable law or agreed to in writing,
17
* software distributed under the License is distributed on an
18
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19
* KIND, either express or implied. See the License for the
20
* specific language governing permissions and limitations
21
* under the License.
22
*
23
*/
24
25
#if !defined(QMF_USE_DEPRECATED_API) && !defined(qmf2_EXPORTS) && !defined(SWIG)
26
# error "The API defined in this file has been DEPRECATED and will be removed in the future."
27
# error "Define 'QMF_USE_DEPRECATED_API' to enable continued use of the API."
28
#endif
29
30
#include "
qmf/ImportExport.h
"
31
32
namespace
qmf
{
33
34
template
<
class
>
class
PrivateImplRef;
35
43
template
<
class
T>
class
Handle
{
44
public
:
45
47
QMF_INLINE_EXTERN
bool
isValid
()
const
{
return
impl
; }
48
50
QMF_INLINE_EXTERN
bool
isNull
()
const
{
return
!
impl
; }
51
53
QMF_INLINE_EXTERN
operator
bool()
const
{
return
impl
; }
54
56
QMF_INLINE_EXTERN
bool
operator !
()
const
{
return
!
impl
; }
57
58
void
swap
(
Handle<T>
& h) { T* t = h.
impl
; h.
impl
=
impl
;
impl
= t; }
59
60
protected
:
61
typedef
T
Impl
;
62
QMF_INLINE_EXTERN
Handle
() :
impl
() {}
63
64
// Not implemented,subclasses must implement.
65
QMF_EXTERN
Handle
(
const
Handle
&);
66
QMF_EXTERN
Handle
&
operator=
(
const
Handle
&);
67
68
Impl
*
impl
;
69
70
friend
class
PrivateImplRef
<T>;
71
};
72
73
}
// namespace qmf
74
75
#endif
qmf::Handle::Handle
QMF_INLINE_EXTERN Handle()
Definition:
Handle.h:62
QMF_INLINE_EXTERN
#define QMF_INLINE_EXTERN
Definition:
ImportExport.h:32
qmf::Handle
Definition:
Handle.h:43
qmf
Definition:
Agent.h:37
qmf::Handle::operator=
Handle & operator=(const Handle &)
qmf::PrivateImplRef
Definition:
Agent.h:40
qmf::Handle::Impl
T Impl
Definition:
Handle.h:61
qmf::Handle::isNull
QMF_INLINE_EXTERN bool isNull() const
Definition:
Handle.h:50
QMF_EXTERN
#define QMF_EXTERN
Definition:
ImportExport.h:30
qmf::Handle::operator!
QMF_INLINE_EXTERN bool operator!() const
Operator ! supports idiom if (!handle) { do_if_handle_is_null(); }.
Definition:
Handle.h:56
ImportExport.h
qmf::Handle::impl
Impl * impl
Definition:
Handle.h:68
qmf::Handle::isValid
QMF_INLINE_EXTERN bool isValid() const
Definition:
Handle.h:47
qmf::Handle::swap
void swap(Handle< T > &h)
Definition:
Handle.h:58
Qpid C++ API Reference
Generated on Mon Oct 30 2023 for Qpid C++ Client API by
1.8.17