Hazelcast C++ Client
ILock.h
1 /*
2  * Copyright (c) 2008-2017, 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 #ifndef HAZELCAST_ILock
20 #define HAZELCAST_ILock
21 
22 #include "hazelcast/client/spi/ClientContext.h"
23 #include "hazelcast/client/spi/InvocationService.h"
24 #include "hazelcast/client/proxy/ProxyImpl.h"
25 #include "hazelcast/client/serialization/pimpl/Data.h"
26 #include <string>
27 
28 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
29 #pragma warning(push)
30 #pragma warning(disable: 4251) //for dll export
31 #endif
32 
33 namespace hazelcast {
34  namespace client {
35 
40  class HAZELCAST_API ILock : public proxy::ProxyImpl {
41  friend class HazelcastClient;
42 
43  public:
44 
49  void lock();
50 
57  void lock(long leaseTimeInMillis);
58 
62  void unlock();
63 
68  void forceUnlock();
69 
74  bool isLocked();
75 
80  bool isLockedByCurrentThread();
81 
87  int getLockCount();
88 
95  long getRemainingLeaseTime();
96 
102  bool tryLock();
103 
111  bool tryLock(long timeInMillis);
112 
113  private:
114 
115  ILock(const std::string& instanceName, spi::ClientContext *context);
116 
117  serialization::pimpl::Data key;
118 
119  int partitionId;
120  };
121  }
122 }
123 
124 #if defined(WIN32) || defined(_WIN32) || defined(WIN64) || defined(_WIN64)
125 #pragma warning(pop)
126 #endif
127 
128 #endif //HAZELCAST_ILock
129 
Re-entrant Lock, Distributed client implementation of Lock.
Definition: ILock.h:40
Definition: MapEntryView.h:32
Hazelcast Client enables you to do all Hazelcast operations without being a member of the cluster...
Definition: HazelcastClient.h:459