NCBI C++ ToolKit
tse_scope_lock.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef OBJECTS_OBJMGR_IMPL___TSE_SCOPE_LOCK__HPP
2 #define OBJECTS_OBJMGR_IMPL___TSE_SCOPE_LOCK__HPP
3 
4 /* $Id: tse_scope_lock.hpp 83442 2018-08-21 15:45:28Z vasilche $
5 * ===========================================================================
6 *
7 * PUBLIC DOMAIN NOTICE
8 * National Center for Biotechnology Information
9 *
10 * This software/database is a "United States Government Work" under the
11 * terms of the United States Copyright Act. It was written as part of
12 * the author's official duties as a United States Government employee and
13 * thus cannot be copyrighted. This software/database is freely available
14 * to the public for use. The National Library of Medicine and the U.S.
15 * Government have not placed any restriction on its use or reproduction.
16 *
17 * Although all reasonable efforts have been taken to ensure the accuracy
18 * and reliability of the software and data, the NLM and the U.S.
19 * Government do not and cannot warrant the performance or results that
20 * may be obtained by using this software or data. The NLM and the U.S.
21 * Government disclaim all warranties, express or implied, including
22 * warranties of performance, merchantability or fitness for any particular
23 * purpose.
24 *
25 * Please cite the author in any work or product based on this material.
26 *
27 * ===========================================================================
28 *
29 * Author: Eugene Vasilchenko
30 *
31 * File Description:
32 * CTSE_Scope*Lock -- classes to lock scope's TSE structures
33 *
34 */
35 
36 #include <corelib/ncbiobj.hpp>
37 
40 
41 class CTSE_Lock;
42 class CTSE_ScopeInfo;
45 
47 {
48 public:
49  void Lock(CTSE_ScopeInfo* tse) const;
50  void Unlock(CTSE_ScopeInfo* tse) const;
51  void Relock(CTSE_ScopeInfo* tse) const
52  {
53  Lock(tse);
54  }
55  void TransferLock(const CTSE_ScopeInfo* /*tse*/,
56  const CTSE_ScopeInternalLocker& /*old_locker*/) const
57  {
58  }
59 };
60 
61 
63 {
64 public:
65  void Lock(CTSE_ScopeInfo* tse) const;
66  void Unlock(CTSE_ScopeInfo* tse) const;
67  void Relock(CTSE_ScopeInfo* tse) const
68  {
69  Lock(tse);
70  }
71  void TransferLock(const CTSE_ScopeInfo* /*tse*/,
72  const CTSE_ScopeUserLocker& /*old_locker*/) const
73  {
74  }
75 };
76 
77 
80 
81 
84 
85 #endif//OBJECTS_OBJMGR_IMPL___TSE_SCOPE_LOCK__HPP
CRef –.
Definition: ncbiobj.hpp:618
void TransferLock(const CTSE_ScopeInfo *, const CTSE_ScopeInternalLocker &) const
void Relock(CTSE_ScopeInfo *tse) const
void TransferLock(const CTSE_ScopeInfo *, const CTSE_ScopeUserLocker &) const
void Relock(CTSE_ScopeInfo *tse) const
void Unlock(const CObject *object) const
Definition: ncbiobj.cpp:1158
void Lock(const CObject *object) const
Definition: ncbiobj.cpp:1143
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define END_SCOPE(ns)
End the previously defined scope.
Definition: ncbistl.hpp:75
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define BEGIN_SCOPE(ns)
Define a new scope.
Definition: ncbistl.hpp:72
#define NCBI_XOBJMGR_EXPORT
Definition: ncbi_export.h:1307
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
CRef< CTSE_ScopeInfo, CTSE_ScopeInternalLocker > CTSE_ScopeInternalLock
CRef< CTSE_ScopeInfo, CTSE_ScopeUserLocker > CTSE_ScopeUserLock
Modified on Wed Jun 12 11:13:52 2024 by modify_doxy.py rev. 669887