Page Speed Optimization Libraries  1.13.35.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
named_lock_manager.h
Go to the documentation of this file.
1 /*
2  * Copyright 2010 Google Inc.
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 
18 
19 #ifndef PAGESPEED_KERNEL_BASE_NAMED_LOCK_MANAGER_H_
20 #define PAGESPEED_KERNEL_BASE_NAMED_LOCK_MANAGER_H_
21 
25 
26 namespace net_instaweb {
27 
28 class Function;
29 
31 class NamedLock {
32  public:
34  virtual ~NamedLock();
35 
45  virtual void LockTimedWait(int64 wait_ms, Function* callback) = 0;
46 
61  virtual void LockTimedWaitStealOld(int64 wait_ms, int64 steal_ms,
62  Function* callback) = 0;
63 
67  virtual void Unlock() = 0;
68 
73  virtual bool Held() = 0;
74 
76  virtual GoogleString name() const = 0;
77 };
78 
83  public:
84  virtual ~NamedLockManager();
85  virtual NamedLock* CreateNamedLock(const StringPiece& name) = 0;
86 };
87 
88 }
89 
90 #endif
virtual void LockTimedWaitStealOld(int64 wait_ms, int64 steal_ms, Function *callback)=0
Non-blocking locking class.
Definition: named_lock_manager.h:31
Definition: named_lock_manager.h:82
virtual bool Held()=0
virtual ~NamedLock()
Destructors of extending classes must unlock the lock if held on destruct.
Definition: function.h:47
std::string GoogleString
PAGESPEED_KERNEL_BASE_STRING_H_.
Definition: string.h:24
virtual void LockTimedWait(int64 wait_ms, Function *callback)=0
virtual void Unlock()=0
virtual GoogleString name() const =0
The name the lock was created with, for debugging/logging purposes.