Hazelcast C++ Client
 All Classes Functions Variables Enumerations Pages
ILock.h
1 /*
2  * Copyright (c) 2008-2015, Hazelcast, Inc. All Rights Reserved.
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 //
17 // Created by sancar koyunlu on 6/27/13.
18 
19 
20 
21 
22 #ifndef HAZELCAST_ILock
23 #define HAZELCAST_ILock
24 
25 #include "hazelcast/client/spi/ClientContext.h"
26 #include "hazelcast/client/spi/InvocationService.h"
27 #include "hazelcast/client/proxy/ProxyImpl.h"
28 #include "hazelcast/client/serialization/pimpl/Data.h"
29 #include <string>
30 
31 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
32 #pragma warning(push)
33 #pragma warning(disable: 4251) //for dll export
34 #endif
35 
36 namespace hazelcast {
37  namespace client {
38 
43  class HAZELCAST_API ILock : public proxy::ProxyImpl {
44  friend class HazelcastClient;
45 
46  public:
47 
52  void lock();
53 
60  void lock(long leaseTimeInMillis);
61 
65  void unlock();
66 
71  void forceUnlock();
72 
77  bool isLocked();
78 
83  bool isLockedByCurrentThread();
84 
90  int getLockCount();
91 
98  long getRemainingLeaseTime();
99 
105  bool tryLock();
106 
114  bool tryLock(long timeInMillis);
115 
116  private:
117 
118  ILock(const std::string& instanceName, spi::ClientContext *context);
119 
120  serialization::pimpl::Data key;
121 
122  int partitionId;
123  };
124  }
125 }
126 
127 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
128 #pragma warning(pop)
129 #endif
130 
131 #endif //HAZELCAST_ILock
132 
Re-entrant Lock, Distributed client implementation of Lock.
Definition: ILock.h:43
Hazelcast Client enables you to do all Hazelcast operations without being a member of the cluster...
Definition: HazelcastClient.h:410