IsAnAPIObject is used solely so we can work with the watch package.
TODO: Either fix watch so this isn't necessary, or make this a real API Object.
TODO: when it becomes clear how this package will be used, move these declarations to
to the proper place.
type MasterElector interface {
// RequestMaster makes the caller represented by 'id' enter into a master election for the// distributed lock defined by 'path'// The returned watch.Interface provides a stream of Master objects which// contain the current master.// Calling Stop on the returned interface relinquishes ownership (if currently possesed)// and removes the caller from the election
Elect(path, id string) watch.Interface
}
MasterElector is an interface for services that can elect masters.
Important Note: MasterElectors are not inter-operable, all participants in the election need to be
using the same underlying implementation of this interface for correct behavior.