Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
      View Source
      
  const ( LockAcquired = iota // Successfully acquired LockReleased // explicitly released LockAcquireTimeout // Timeout trying to acquire lock LockAcquireError // Error while acquiring LockRefreshError // Error during ttl refresh LockLost // We lost the lock )
Lock event types
      View Source
      
  
const ( WatchServiceEventAdd = iota // New Service endpoint added WatchServiceEventDel // A service endpoint was deleted WatchServiceEventError // Error occurred while watching for service )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type LockInterface ¶
type LockInterface interface {
	// Acquire a lock.
	// Give up acquiring lock after timeout seconds. if timeout is 0, wait forever
	Acquire(timeout uint64) error
	// Release the lock. This explicitly releases the lock and cleans up all state
	// If we were still waiting to acquire lock, it stops it and cleans up
	Release() error
	// For debug purposes only.
	// Just stops refreshing the lock
	Kill() error
	// Get the event channel
	EventChan() <-chan LockEvent
	// Is the lock acquired
	IsAcquired() bool
	// Get current holder of the lock
	GetHolder() string
}
    Lock interface
type ObjdbApi ¶
type ObjdbApi interface {
	// Initialize the plugin, only called once
	Init(seedHosts []string) error
	// Return local address used by conf store
	GetLocalAddr() (string, error)
	// Get a Key from conf store
	GetObj(key string, retValue interface{}) error
	// Set a key in conf store
	SetObj(key string, value interface{}) error
	// Remove an object
	DelObj(key string) error
	// List all objects in a directory
	ListDir(key string) ([]string, error)
	// Create a new lock
	NewLock(name string, holderId string, ttl uint64) (LockInterface, error)
	// Register a service
	// Service is registered with a ttl for 60sec and a goroutine is created
	// to refresh the ttl.
	RegisterService(serviceInfo ServiceInfo) error
	// List all end points for a service
	GetService(name string) ([]ServiceInfo, error)
	// Watch for addition/deletion of service end points
	WatchService(name string, eventCh chan WatchServiceEvent, stopCh chan bool) error
	// Deregister a service
	// This removes the service from the registry and stops the refresh groutine
	DeregisterService(serviceInfo ServiceInfo) error
}
    Plugin API
type ServiceInfo ¶
type ServiceInfo struct {
	ServiceName string // Name of the service
	HostAddr    string // Host name or IP address where its running
	Port        int    // Port number where its listening
}
    Information about a service Notes:
There could be multiple instances of a service. hostname:port uniquely identify an instance of a service
type WatchServiceEvent ¶
type WatchServiceEvent struct {
	EventType   uint        // event type
	ServiceInfo ServiceInfo // Information about the service
}
     Click to show internal directories. 
   Click to hide internal directories.