Brian O'Connor | abafb50 | 2014-12-02 22:26:20 -0800 | [diff] [blame] | 1 | package org.onosproject.store.service; |
Madan Jampani | f73fb04 | 2014-11-11 10:49:05 -0800 | [diff] [blame] | 2 | |
Madan Jampani | 32fe780 | 2014-11-11 11:16:47 -0800 | [diff] [blame] | 3 | /** |
| 4 | * Service interface for mutual exclusion primitives. |
| 5 | */ |
Madan Jampani | f73fb04 | 2014-11-11 10:49:05 -0800 | [diff] [blame] | 6 | public interface LockService { |
| 7 | |
| 8 | /** |
Madan Jampani | 32fe780 | 2014-11-11 11:16:47 -0800 | [diff] [blame] | 9 | * Creates a new lock instance. |
Madan Jampani | f73fb04 | 2014-11-11 10:49:05 -0800 | [diff] [blame] | 10 | * A successful return from this method does not mean the resource guarded by the path is locked. |
Madan Jampani | 32fe780 | 2014-11-11 11:16:47 -0800 | [diff] [blame] | 11 | * The caller is expected to call Lock.lock() to acquire the lock. |
Madan Jampani | f73fb04 | 2014-11-11 10:49:05 -0800 | [diff] [blame] | 12 | * @param path unique lock name. |
Madan Jampani | 32fe780 | 2014-11-11 11:16:47 -0800 | [diff] [blame] | 13 | * @return a Lock instance that can be used to acquire the lock. |
Madan Jampani | f73fb04 | 2014-11-11 10:49:05 -0800 | [diff] [blame] | 14 | */ |
| 15 | Lock create(String path); |
| 16 | |
| 17 | /** |
| 18 | * Adds a listener to be notified of lock events. |
| 19 | * @param listener listener to be added. |
| 20 | */ |
| 21 | void addListener(LockEventListener listener); |
| 22 | |
| 23 | /** |
| 24 | * Removes a listener that was previously added. |
| 25 | * @param listener listener to be removed. |
| 26 | */ |
| 27 | void removeListener(LockEventListener listener); |
Brian O'Connor | abafb50 | 2014-12-02 22:26:20 -0800 | [diff] [blame] | 28 | } |