NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
cancel-handle.cpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013-2019 Regents of the University of California.
4  *
5  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6  *
7  * ndn-cxx library is free software: you can redistribute it and/or modify it under the
8  * terms of the GNU Lesser General Public License as published by the Free Software
9  * Foundation, either version 3 of the License, or (at your option) any later version.
10  *
11  * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13  * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14  *
15  * You should have received copies of the GNU General Public License and GNU Lesser
16  * General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17  * <http://www.gnu.org/licenses/>.
18  *
19  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20  */
21 
23 
24 namespace ndn {
25 namespace detail {
26 
28  : m_cancel(std::move(cancel))
29 {
30 }
31 
32 void
34 {
35  if (m_cancel != nullptr) {
36  m_cancel();
37  m_cancel = nullptr;
38  }
39 }
40 
42  : m_hdl(std::move(hdl))
43 {
44 }
45 
47  : m_hdl(other.release())
48 {
49 }
50 
53 {
54  cancel();
55  m_hdl = other.release();
56  return *this;
57 }
58 
60 {
61  m_hdl.cancel();
62 }
63 
64 void
66 {
67  release().cancel();
68 }
69 
72 {
73  CancelHandle hdl;
74  std::swap(hdl, m_hdl);
75  return hdl;
76 }
77 
78 } // namespace detail
79 } // namespace ndn
~ScopedCancelHandle()
Cancel the operation.
void swap(any &x, any &y) any_noexcept
Definition: any.hpp:544
CancelHandle release()
Release the operation so that it won't be cancelled when this ScopedCancelHandle is destructed.
Copyright (c) 2011-2015 Regents of the University of California.
void cancel(EventId eventId)
Cancel a scheduled event.
Definition: scheduler.hpp:49
ScopedCancelHandle() noexcept=default
CancelHandle() noexcept=default
void cancel()
Cancel the operation.
Handle to cancel an operation.
void cancel() const
Cancel the operation.
ScopedCancelHandle & operator=(const ScopedCancelHandle &)=delete
Copy assignment is disallowed.
Cancels an operation automatically upon destruction.