View Javadoc

1   /*
2    * Copyright (c) 2015 Cisco Systems, Inc.  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.lispflowmapping.interfaces.mapcache;
10  
11  import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
12  import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.mappingservice.rev150906.mapping.authkey.container.MappingAuthkey;
13  
14  /**
15   * Map-cache interface
16   *
17   * @author Florin Coras
18   *
19   */
20  
21  public interface IMapCache {
22      /**
23       * Add mapping
24       *
25       * @param key
26       *            Key of the mapping
27       * @param data
28       *            Value to be stored
29       * @param shouldOverwrite
30       *            Select if mappings with the same key are overwritten
31       */
32      void addMapping(Eid key, Object data, boolean shouldOverwrite);
33  
34      /**
35       * Retrieves mapping for the provided srcKey and dstKey.
36       *
37       * @param srcKey
38       *            Source Key to be looked up
39       * @param dstKey
40       *            Destination Key to be looked up
41       * @return Returns the object found in the cache or null if nothing is found.
42       */
43      Object getMapping(Eid srcKey, Eid dstKey);
44  
45      /**
46       * Remove mapping
47       *
48       * @param key
49       *            Key to be removed
50       * @param overwrite
51       *            Select if mappings with the same key were overwritten on store
52       *
53       */
54      void removeMapping(Eid key, boolean overwrite);
55  
56      /**
57       * Add authentication key
58       *
59       * @param key
60       *            The key for which the authentication key is added
61       * @param authKey
62       *            The authentication key
63       */
64      void addAuthenticationKey(Eid key, MappingAuthkey authKey);
65  
66      /**
67       * Retrieve authentication key
68       *
69       * @param key
70       *            The key for which the authentication key is being looked up.
71       * @return The authentication key.
72       */
73      MappingAuthkey getAuthenticationKey(Eid key);
74  
75      /**
76       * Remove authentication key
77       *
78       * @param key
79       *            Key for which the authentication key should be removed.
80       */
81      void removeAuthenticationKey(Eid key);
82  
83      /**
84       * Update key registration
85       *
86       * @param key
87       *            The key whose registration must be updated
88       */
89      void updateMappingRegistration(Eid key);
90  
91      /**
92       * Add data for key
93       *
94       * @param key
95       *            The key for which data is inserted
96       * @param subKey
97       *            The subKey where data should be inserted
98       * @param data
99       *            The data to be stored
100      */
101     void addData(Eid key, String subKey, Object data);
102 
103     /**
104      * Generic retrieval of data
105      *
106      * @param key
107      *            The key where the data is stored
108      * @param subKey
109      *            The subKey where data is stored
110      * @return The data
111      */
112     Object getData(Eid key, String subKey);
113 
114     /**
115      * Generic removal of data
116      *
117      * @param key
118      *            The key of the data to be removed
119      * @param subKey
120      *            The subKey of the data to be removed
121      */
122     void removeData(Eid key, String subKey);
123 
124     /**
125      * Print mappings in cache. Used for testing, debugging and the karaf shell
126      *
127      * @return a String consisting of all the mappings in the cache
128      */
129     String printMappings();
130 }