blob: ecf5d733a09978b6deed695c587e7739e3418245 [file] [log] [blame]
alshabib2a441c62015-04-13 18:39:38 -07001/*
2 * Copyright 2015 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.net.flowobjective;
17
Thomas Vachuskaa9d491e2015-05-20 11:17:21 -070018import com.google.common.annotations.Beta;
alshabib2a441c62015-04-13 18:39:38 -070019import org.onosproject.net.behaviour.NextGroup;
20import org.onosproject.store.Store;
21
22/**
23 * The flow objective store.
24 */
Thomas Vachuskaa9d491e2015-05-20 11:17:21 -070025@Beta
alshabib2a441c62015-04-13 18:39:38 -070026public interface FlowObjectiveStore
27 extends Store<ObjectiveEvent, FlowObjectiveStoreDelegate> {
28
29 /**
30 * Adds a NextGroup to the store.
31 *
32 * @param nextId an integer
33 * @param group a next group opaque object
34 */
35 void putNextGroup(Integer nextId, NextGroup group);
36
37 /**
38 * Fetch a next group from the store.
39 * @param nextId an integer
40 * @return a next group
41 */
42 NextGroup getNextGroup(Integer nextId);
alshabibf6ea9e62015-04-21 17:08:26 -070043
44 /**
45 * Allocates a next objective id. This id is globally unique
46 *
47 * @return an integer
48 */
49 int allocateNextId();
alshabib2a441c62015-04-13 18:39:38 -070050}