Feature uses features-parent as parent
[groupbasedpolicy.git] / renderers / opflex / src / main / java / org / opendaylight / groupbasedpolicy / renderer / opflex / EprOperation.java
1 /*
2  * Copyright (c) 2014 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.groupbasedpolicy.renderer.opflex;
10
11 import java.util.concurrent.ScheduledExecutorService;
12
13 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
14 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
15
16 /**
17  * Interface for managing operations with the Endpoint Registry.
18  * An operation is the smallest granularity of interaction with
19  * the Endpoint Registry. Put (create/update), Delete, and Read
20  * operations are supported.
21  *
22  * @author thbachma
23  */
24 public interface EprOperation {
25
26     /**
27      * Callback interface used to provide notifications
28      * to other objects.
29      *
30      * @author thbachma
31      */
32     public interface EprOpCallback {
33
34         public void callback(EprOperation op);
35     }
36
37     /**
38      * Perform a PUT operation, which can be either a
39      * creation or update of an element of the Endpoint
40      * Registry
41      *
42      * @param wt
43      */
44     public void put(WriteTransaction wt);
45
46     /**
47      * Perform a DELETE operation for the requested Endpoint.
48      *
49      * @param wt
50      */
51     public void delete(WriteTransaction wt);
52
53     /**
54      * Return the data associated with the requested Endpoint.
55      *
56      * @param rot
57      * @param executor
58      */
59     public void read(ReadOnlyTransaction rot, ScheduledExecutorService executor);
60
61     /**
62      * Set the callback notification
63      *
64      * @param callback
65      */
66     public void setCallback(EprOpCallback callback);
67 }