namespace lock {
extern void lock(librados::ObjectWriteOperation *rados_op,
- const std::string& name, ClsLockType type,
- const std::string& cookie, const std::string& tag,
- const std::string& description, const utime_t& duration,
- uint8_t flags);
+ const std::string& name, ClsLockType type,
+ const std::string& cookie, const std::string& tag,
+ const std::string& description, const utime_t& duration,
+ uint8_t flags);
extern int lock(librados::IoCtx *ioctx,
- const std::string& oid,
- const std::string& name, ClsLockType type,
- const std::string& cookie, const std::string& tag,
- const std::string& description, const utime_t& duration,
- uint8_t flags);
+ const std::string& oid,
+ const std::string& name, ClsLockType type,
+ const std::string& cookie, const std::string& tag,
+ const std::string& description, const utime_t& duration,
+ uint8_t flags);
extern void unlock(librados::ObjectWriteOperation *rados_op,
- const std::string& name, const std::string& cookie);
+ const std::string& name, const std::string& cookie);
extern int unlock(librados::IoCtx *ioctx, const std::string& oid,
- const std::string& name, const std::string& cookie);
+ const std::string& name, const std::string& cookie);
extern void break_lock(librados::ObjectWriteOperation *op,
- const std::string& name, const std::string& cookie,
- const entity_name_t& locker);
+ const std::string& name, const std::string& cookie,
+ const entity_name_t& locker);
extern int break_lock(librados::IoCtx *ioctx, const std::string& oid,
- const std::string& name, const std::string& cookie,
- const entity_name_t& locker);
+ const std::string& name, const std::string& cookie,
+ const entity_name_t& locker);
extern int list_locks(librados::IoCtx *ioctx, const std::string& oid,
- list<std::string> *locks);
+ list<std::string> *locks);
extern int get_lock_info(librados::IoCtx *ioctx, const std::string& oid,
- const std::string& lock,
- map<locker_id_t, locker_info_t> *lockers,
- ClsLockType *lock_type,
- std::string *tag);
+ const std::string& lock,
+ map<locker_id_t, locker_info_t> *lockers,
+ ClsLockType *lock_type,
+ std::string *tag);
class Lock {
- std::string name;
- std::string cookie;
- std::string tag;
- std::string description;
- utime_t duration;
- uint8_t flags;
+ std::string name;
+ std::string cookie;
+ std::string tag;
+ std::string description;
+ utime_t duration;
+ uint8_t flags;
public:
- Lock(const std::string& _n) : name(_n), flags(0) {}
-
- void set_cookie(const std::string& c) { cookie = c; }
- void set_tag(const std::string& t) { tag = t; }
- void set_description(const std::string& desc) { description = desc; }
- void set_duration(const utime_t& e) { duration = e; }
- void set_renew(bool renew) {
- if (renew) {
- flags |= LOCK_FLAG_RENEW;
- } else {
- flags &= ~LOCK_FLAG_RENEW;
- }
- }
-
- /* ObjectWriteOperation */
- void lock_exclusive(librados::ObjectWriteOperation *ioctx);
- void lock_shared(librados::ObjectWriteOperation *ioctx);
- void unlock(librados::ObjectWriteOperation *ioctx);
- void break_lock(librados::ObjectWriteOperation *ioctx, const entity_name_t& locker);
-
- /* IoCtx*/
- int lock_exclusive(librados::IoCtx *ioctx, const std::string& oid);
- int lock_shared(librados::IoCtx *ioctx, const std::string& oid);
- int unlock(librados::IoCtx *ioctx, const std::string& oid);
- int break_lock(librados::IoCtx *ioctx, const std::string& oid,
+ Lock(const std::string& _n) : name(_n), flags(0) {}
+
+ void set_cookie(const std::string& c) { cookie = c; }
+ void set_tag(const std::string& t) { tag = t; }
+ void set_description(const std::string& desc) { description = desc; }
+ void set_duration(const utime_t& e) { duration = e; }
+ void set_renew(bool renew) {
+ if (renew) {
+ flags |= LOCK_FLAG_RENEW;
+ } else {
+ flags &= ~LOCK_FLAG_RENEW;
+ }
+ }
+
+ /* ObjectWriteOperation */
+ void lock_exclusive(librados::ObjectWriteOperation *ioctx);
+ void lock_shared(librados::ObjectWriteOperation *ioctx);
+ void unlock(librados::ObjectWriteOperation *ioctx);
+ void break_lock(librados::ObjectWriteOperation *ioctx, const entity_name_t& locker);
+
+ /* IoCtx */
+ int lock_exclusive(librados::IoCtx *ioctx, const std::string& oid);
+ int lock_shared(librados::IoCtx *ioctx, const std::string& oid);
+ int unlock(librados::IoCtx *ioctx, const std::string& oid);
+ int break_lock(librados::IoCtx *ioctx, const std::string& oid,
const entity_name_t& locker);
};
} // namespace rados
#endif
-