Class used to manager the graph data elements. This class uses a cache policy to control the elements in memory. If a element was requested and not found in cache, the GraphDataManager is used to loaded a new GraphData. More...
#include <GraphCache.h>
Public Member Functions | |
GraphCache (AbstractCachePolicy *cp, GraphDataManager *dm) | |
Default constructor. More... | |
~GraphCache () | |
Default destructor. More... | |
Graph Cache Manager Methods | |
Method used to manager a graph data | |
GraphData * | getGraphDataByVertexId (int id) |
Get a graph data from vector using a vertex id information. if not found a new graph data has to be loaded using AbstractDataManager. More... | |
GraphData * | getGraphDataByEdgeId (int id) |
Get a graph data from vector using a edge id information. if not found a new graph data has to be loaded using AbstractDataManager. More... | |
GraphData * | getGraphData () |
Get a graph data. More... | |
GraphData * | createGraphData () |
Creates a new graph data structure. More... | |
void | removeGraphData (int idx) |
Used to remove a graph data from cache. More... | |
void | saveGraphData (GraphData *data) |
Save the graph data structure inside a data source. More... | |
void | clearCache () |
Used to remove from memory all elements loaded. More... | |
GraphData * | checkCacheByVertexId (int id) |
This functions check in cache if the vertex element with a given id was alredy in memory. More... | |
GraphData * | checkCacheByEdgeId (int id) |
This functions check in cache if the edge element with a given id was alredy in memory. More... | |
Protected Member Functions | |
int | getGraphDataId () |
Protected function used to define a new value of Id to a graph data. More... | |
Private Attributes | |
GraphDataManager * | m_dataManager |
Used to load and save GraphData information from a DataSource. More... | |
int | m_graphDataCounter |
Graph data identifier counter. More... | |
std::map< int, GraphData * > | m_graphDataMap |
This map represents all data loaded in cache. More... | |
GraphMetadata * | m_metadata |
Graph metadata information. More... | |
AbstractCachePolicy * | m_policy |
Cache policy to control the cache in memory. More... | |
Class used to manager the graph data elements. This class uses a cache policy to control the elements in memory. If a element was requested and not found in cache, the GraphDataManager is used to loaded a new GraphData.
Definition at line 60 of file GraphCache.h.
te::graph::GraphCache::GraphCache | ( | AbstractCachePolicy * | cp, |
GraphDataManager * | dm | ||
) |
Default constructor.
cp | Implementation of a cache policy |
dm | Data manager pointer |
Definition at line 41 of file GraphCache.cpp.
References te::graph::GraphDataManager::getLoaderStrategy(), te::graph::AbstractGraphLoaderStrategy::getMetadata(), m_dataManager, m_graphDataCounter, m_metadata, m_policy, te::graph::AbstractCachePolicyFactory::make(), and TE_DEFAULT_CACHE_POLICY_TYPE.
te::graph::GraphCache::~GraphCache | ( | ) |
Default destructor.
Definition at line 53 of file GraphCache.cpp.
te::graph::GraphData * te::graph::GraphCache::checkCacheByEdgeId | ( | int | id | ) |
This functions check in cache if the edge element with a given id was alredy in memory.
id | The edge Id |
Definition at line 270 of file GraphCache.cpp.
References te::graph::GraphData::getEdgeMap(), and te::graph::GraphData::getId().
Referenced by te::graph::SequenceLoaderStrategy::loadDataByEdgeId(), and te::graph::BoxLoaderStrategy::loadDataByEdgeId().
te::graph::GraphData * te::graph::GraphCache::checkCacheByVertexId | ( | int | id | ) |
This functions check in cache if the vertex element with a given id was alredy in memory.
id | The vertex Id |
Definition at line 246 of file GraphCache.cpp.
References te::graph::GraphData::getId(), and te::graph::GraphData::getVertexMap().
Referenced by te::graph::SequenceLoaderStrategy::loadDataByVertexId(), and te::graph::BoxLoaderStrategy::loadDataByVertexId().
void te::graph::GraphCache::clearCache | ( | ) |
Used to remove from memory all elements loaded.
Definition at line 222 of file GraphCache.cpp.
References te::common::FreeContents(), and te::graph::GraphData::isDirty().
te::graph::GraphData * te::graph::GraphCache::createGraphData | ( | ) |
Creates a new graph data structure.
Definition at line 183 of file GraphCache.cpp.
References te::graph::GraphData::getId().
te::graph::GraphData * te::graph::GraphCache::getGraphData | ( | ) |
Get a graph data.
Definition at line 124 of file GraphCache.cpp.
References te::graph::GraphData::getEdgeMap(), te::graph::GraphData::getId(), and te::graph::GraphData::getVertexMap().
te::graph::GraphData * te::graph::GraphCache::getGraphDataByEdgeId | ( | int | id | ) |
Get a graph data from vector using a edge id information. if not found a new graph data has to be loaded using AbstractDataManager.
id | The edge identifier of the desired element. |
Definition at line 92 of file GraphCache.cpp.
References te::graph::GraphData::getEdgeMap(), and te::graph::GraphData::getId().
te::graph::GraphData * te::graph::GraphCache::getGraphDataByVertexId | ( | int | id | ) |
Get a graph data from vector using a vertex id information. if not found a new graph data has to be loaded using AbstractDataManager.
id | The vertex identifier of the desired element. |
Definition at line 60 of file GraphCache.cpp.
References te::graph::GraphData::getId(), and te::graph::GraphData::getVertexMap().
|
protected |
Protected function used to define a new value of Id to a graph data.
Definition at line 294 of file GraphCache.cpp.
void te::graph::GraphCache::removeGraphData | ( | int | idx | ) |
Used to remove a graph data from cache.
idx | The graph data identifier |
Definition at line 199 of file GraphCache.cpp.
void te::graph::GraphCache::saveGraphData | ( | GraphData * | data | ) |
Save the graph data structure inside a data source.
data | The graph data to be saved |
Definition at line 214 of file GraphCache.cpp.
|
private |
Used to load and save GraphData information from a DataSource.
Definition at line 181 of file GraphCache.h.
Referenced by GraphCache().
|
private |
Graph data identifier counter.
Definition at line 185 of file GraphCache.h.
Referenced by GraphCache().
|
private |
This map represents all data loaded in cache.
Definition at line 177 of file GraphCache.h.
|
private |
Graph metadata information.
Definition at line 183 of file GraphCache.h.
Referenced by GraphCache().
|
private |
Cache policy to control the cache in memory.
Definition at line 179 of file GraphCache.h.
Referenced by GraphCache().