net.floodlightcontroller.storage.memory
Class MemoryStorageSource

java.lang.Object
  extended by net.floodlightcontroller.storage.AbstractStorageSource
      extended by net.floodlightcontroller.storage.nosql.NoSqlStorageSource
          extended by net.floodlightcontroller.storage.memory.MemoryStorageSource
All Implemented Interfaces:
IFloodlightModule, IFloodlightService, IStorageSourceService

public class MemoryStorageSource
extends NoSqlStorageSource


Nested Class Summary
 
Nested classes/interfaces inherited from class net.floodlightcontroller.storage.nosql.NoSqlStorageSource
NoSqlStorageSource.ColumnIndexMode
 
Field Summary
 
Fields inherited from class net.floodlightcontroller.storage.nosql.NoSqlStorageSource
DEFAULT_PRIMARY_KEY_NAME, log
 
Fields inherited from class net.floodlightcontroller.storage.AbstractStorageSource
allTableNames, counterStore, DB_ERROR_EXPLANATION, defaultExecutorService, exceptionHandler, executorService, logger, restApi, STORAGE_DELETE_COUNTER_NAME, STORAGE_QUERY_COUNTER_NAME, STORAGE_UPDATE_COUNTER_NAME
 
Constructor Summary
MemoryStorageSource()
           
 
Method Summary
 void createTable(java.lang.String tableName, java.util.Set<java.lang.String> indexedColumnNames)
          Create a new table if one does not already exist with the given name.
protected  void deleteRowsImpl(java.lang.String tableName, java.util.Set<java.lang.Object> rowKeys)
           
protected  java.util.List<java.util.Map<java.lang.String,java.lang.Object>> executeEqualityQuery(java.lang.String tableName, java.lang.String[] columnNameList, java.lang.String predicateColumnName, java.lang.Comparable<?> value)
           
protected  java.util.List<java.util.Map<java.lang.String,java.lang.Object>> executeRangeQuery(java.lang.String tableName, java.lang.String[] columnNameList, java.lang.String predicateColumnName, java.lang.Comparable<?> startValue, boolean startInclusive, java.lang.Comparable<?> endValue, boolean endInclusive)
           
protected  java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> getAllRows(java.lang.String tableName, java.lang.String[] columnNameList)
           
protected  java.util.Map<java.lang.String,java.lang.Object> getRow(java.lang.String tableName, java.lang.String[] columnNameList, java.lang.Object rowKey)
           
 java.util.Map<java.lang.Class<? extends IFloodlightService>,IFloodlightService> getServiceImpls()
          Instantiate (as needed) and return objects that implement each of the services exported by this module.
protected  void insertRows(java.lang.String tableName, java.util.List<java.util.Map<java.lang.String,java.lang.Object>> insertRowList)
           
 void setPktinProcessingTime(IPktInProcessingTimeService pktinProcessingTime)
           
 void startUp(FloodlightModuleContext context)
          This is a hook for each module to do its external initializations, e.g., register for callbacks or query for state in other modules It is expected that this function will not block and that modules that want non-event driven CPU will spawn their own threads.
protected  void updateRows(java.lang.String tableName, java.util.Set<java.lang.Object> rowKeys, java.util.Map<java.lang.String,java.lang.Object> updateRowList)
           
protected  void updateRowsImpl(java.lang.String tableName, java.util.List<java.util.Map<java.lang.String,java.lang.Object>> updateRowList)
           
 
Methods inherited from class net.floodlightcontroller.storage.nosql.NoSqlStorageSource
createQuery, deleteRowImpl, deleteRowsAndNotify, executeQueryImpl, getColumnIndexMode, getRowImpl, getTablePrimaryKeyName, insertRowImpl, insertRowsAndNotify, sendNotification, sendNotification, setColumnIndexMode, setTablePrimaryKeyName, updateMatchingRowsImpl, updateRowImpl, updateRowImpl, updateRowsAndNotify, updateRowsAndNotify
 
Methods inherited from class net.floodlightcontroller.storage.AbstractStorageSource
addListener, deleteMatchingRows, deleteMatchingRowsAsync, deleteRow, deleteRowAsync, deleteRows, deleteRowsAsync, executeQuery, executeQuery, executeQuery, executeQueryAsync, executeQueryAsync, executeQueryAsync, getAllTableNames, getModuleDependencies, getModuleServices, getRow, getRowAsync, init, insertRow, insertRowAsync, notifyListeners, notifyListeners, removeListener, saveAsync, setCounterStore, setExceptionHandler, setExecutorService, updateCounters, updateMatchingRows, updateMatchingRowsAsync, updateRow, updateRow, updateRowAsync, updateRowAsync, updateRows, updateRowsAsync
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MemoryStorageSource

public MemoryStorageSource()
Method Detail

getAllRows

protected java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> getAllRows(java.lang.String tableName,
                                                                                            java.lang.String[] columnNameList)
Specified by:
getAllRows in class NoSqlStorageSource

getRow

protected java.util.Map<java.lang.String,java.lang.Object> getRow(java.lang.String tableName,
                                                                  java.lang.String[] columnNameList,
                                                                  java.lang.Object rowKey)
Specified by:
getRow in class NoSqlStorageSource

executeEqualityQuery

protected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> executeEqualityQuery(java.lang.String tableName,
                                                                                                java.lang.String[] columnNameList,
                                                                                                java.lang.String predicateColumnName,
                                                                                                java.lang.Comparable<?> value)
Specified by:
executeEqualityQuery in class NoSqlStorageSource

executeRangeQuery

protected java.util.List<java.util.Map<java.lang.String,java.lang.Object>> executeRangeQuery(java.lang.String tableName,
                                                                                             java.lang.String[] columnNameList,
                                                                                             java.lang.String predicateColumnName,
                                                                                             java.lang.Comparable<?> startValue,
                                                                                             boolean startInclusive,
                                                                                             java.lang.Comparable<?> endValue,
                                                                                             boolean endInclusive)
Specified by:
executeRangeQuery in class NoSqlStorageSource

insertRows

protected void insertRows(java.lang.String tableName,
                          java.util.List<java.util.Map<java.lang.String,java.lang.Object>> insertRowList)
Specified by:
insertRows in class NoSqlStorageSource

updateRows

protected void updateRows(java.lang.String tableName,
                          java.util.Set<java.lang.Object> rowKeys,
                          java.util.Map<java.lang.String,java.lang.Object> updateRowList)
Specified by:
updateRows in class NoSqlStorageSource

updateRowsImpl

protected void updateRowsImpl(java.lang.String tableName,
                              java.util.List<java.util.Map<java.lang.String,java.lang.Object>> updateRowList)
Specified by:
updateRowsImpl in class AbstractStorageSource

deleteRowsImpl

protected void deleteRowsImpl(java.lang.String tableName,
                              java.util.Set<java.lang.Object> rowKeys)
Specified by:
deleteRowsImpl in class AbstractStorageSource

createTable

public void createTable(java.lang.String tableName,
                        java.util.Set<java.lang.String> indexedColumnNames)
Description copied from interface: IStorageSourceService
Create a new table if one does not already exist with the given name.

Specified by:
createTable in interface IStorageSourceService
Overrides:
createTable in class NoSqlStorageSource
Parameters:
tableName - The name of the table to create.
indexedColumnNames - Which columns should be indexed

setPktinProcessingTime

public void setPktinProcessingTime(IPktInProcessingTimeService pktinProcessingTime)

startUp

public void startUp(FloodlightModuleContext context)
Description copied from interface: IFloodlightModule
This is a hook for each module to do its external initializations, e.g., register for callbacks or query for state in other modules It is expected that this function will not block and that modules that want non-event driven CPU will spawn their own threads.

Specified by:
startUp in interface IFloodlightModule
Overrides:
startUp in class AbstractStorageSource

getServiceImpls

public java.util.Map<java.lang.Class<? extends IFloodlightService>,IFloodlightService> getServiceImpls()
Description copied from interface: IFloodlightModule
Instantiate (as needed) and return objects that implement each of the services exported by this module. The map returned maps the implemented service to the object. The object could be the same object or different objects for different exported services.

Specified by:
getServiceImpls in interface IFloodlightModule
Overrides:
getServiceImpls in class AbstractStorageSource
Returns:
The map from service interface class to service implementation