b4eb44569b0d46116519bbcbd36c1ca257d32fef
[controller.git] / opendaylight / md-sal / sal-common-api / src / main / java / org / opendaylight / controller / md / sal / common / api / clustering / EntityOwnershipListener.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.controller.md.sal.common.api.clustering;
10
11 /**
12  * An EntityOwnershipListener is a component that represents a listener for entity ownership changes
13  */
14 public interface EntityOwnershipListener {
15
16     /**
17      * A notification that is generated when the ownership status of an entity changes.
18      *
19      * The following outlines valid combinations of the ownership status flags in the EntityOwnershipChange
20      * parameter and their meanings:
21      * <ul>
22      * <li><b>wasOwner = false, isOwner = true, hasOwner = true</b> - this process has been granted ownership</li>
23      * <li><b>wasOwner = true, isOwner = false, hasOwner = true</b> - this process was the owner but ownership
24      *     transitioned to another process</li>
25      * <li><b>wasOwner = false, isOwner = false, hasOwner = true</b> - ownership transitioned to another process
26      *     and this process was not the previous owner</li>
27      * <li><b>wasOwner = false, isOwner = false, hasOwner = false</b> - the entity no longer has any candidates and
28      *     thus no owner and this process was not the previous owner</li>
29      * <li><b>wasOwner = true, isOwner = false, hasOwner = false</b> - the entity no longer has any candidates and
30      *     thus no owner and this process was the previous owner</li>
31      * </ul>
32      * @param ownershipChange contains the entity and its ownership status flags
33      */
34     void ownershipChanged(EntityOwnershipChange ownershipChange);
35 }