DataViewMediator Class Reference
[Controller]

Mediator between datasets and their dependent views. More...

#include <data_view_mediator.h>

Collaboration diagram for DataViewMediator:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DataViewMediator ()
 ~DataViewMediator ()
view_pointer_type getViewOfDataset (dataset_pointer_type dataset, view_type type) throw (NullPointerException)
void getDependentViewIDsOfDataset (dataset_key_type dataset_key, view_id_container_type &target_container) const throw (NullPointerException)
bool deleteView (unsigned int view_id) throw (NullPointerException)
bool removeDataset (dataset_key_type dataset_key)
void lockDatasets (dataset_key_type dataset_left, dataset_key_type dataset_right)
void unlockDatasets (dataset_key_type dataset_left, dataset_key_type dataset_right)
bool areDatasetsLocked (dataset_key_type dataset_left, dataset_key_type dataset_right)
void updateDependentViews (dataset_key_type dataset) throw (NullPointerException)
void updateDataChanged (dataset_key_type dataset, dataset_attribute_type changed_attribute) throw (NullPointerException, InvalidCastException)

Protected Types

typedef std::multimap< dataset_key_type,
view_pointer_type
dataset_to_view_mmap_type
typedef dataset_to_view_mmap_type::iterator dataset_to_view_mmap_iterator_type
typedef dataset_to_view_mmap_type::const_iterator dataset_to_view_mmap_const_iterator_type
typedef std::multimap< dataset_key_type,
dataset_key_type
dataset_to_datset_mmap_type
typedef dataset_to_datset_mmap_type::iterator dataset_to_dataset_mmap_iterator_type

Protected Member Functions

void registerViewOfDataset (dataset_pointer_type dataset, view_pointer_type view) throw (NullPointerException)
void registerHybridViewOfDatasets (dataset_pointer_type first_dataset, dataset_pointer_type second_dataset, view_pointer_type hybrid_view)

Protected Attributes

dataset_to_view_mmap_type dataset_to_view_mmap_
dataset_to_datset_mmap_type dataset_to_dataset_mmap_
ViewFactory view_factory_

Detailed Description

Mediator between datasets and their dependent views.

The DataViewMediator mediates between datasets and dependent views of these datasets. It receives change events from observable objects and forwards them to dependent views.

Author:
Tobias Gross (t_gross@sbox.tugraz.at)

Christian Koerner (christian.koerner@imedgine.org)

Alexander Lex (alexander.lex@imedgine.org)

Marc Streit (marc.streit@imedgine.org)

Martin Reininger (martin.reininger@imedgine.org)

Definition at line 46 of file data_view_mediator.h.


Constructor & Destructor Documentation

DataViewMediator  ) 
 

Constructor

Definition at line 27 of file data_view_mediator.cpp.

References ViewFactory::registerViewType(), and DataViewMediator::view_factory_.

Here is the call graph for this function:

~DataViewMediator  ) 
 

Destructor

Definition at line 39 of file data_view_mediator.cpp.


Member Function Documentation

bool areDatasetsLocked dataset_key_type  dataset_left,
dataset_key_type  dataset_right
 

Tell if two datasets are locked

Parameters:
dataset_left The unique key of the first dataset
dataset_right The unique key of the second dataset

Definition at line 256 of file data_view_mediator.cpp.

References DataViewMediator::dataset_to_dataset_mmap_.

Referenced by VolumePixelView::isLockedWithDataset().

bool deleteView unsigned int  view_id  )  throw (NullPointerException)
 

Delete the view with the given id

Parameters:
view_id The unique id of the view
Returns:
true if the view was found and deleted, false otherwise

Definition at line 135 of file data_view_mediator.cpp.

void getDependentViewIDsOfDataset dataset_key_type  dataset_key,
view_id_container_type target_container
const throw (NullPointerException)
 

Return the IDs of all dependent views ot the given dataset

Parameters:
dataset_key The key that identifies the dataset (as returned by loadDataset)
target_container A writable container to store the view ids in

Definition at line 113 of file data_view_mediator.cpp.

view_pointer_type getViewOfDataset dataset_pointer_type  dataset,
view_type  type
throw (NullPointerException)
 

Get the dependent view of the given type from the given dataset if has been previously registered.

Parameters:
dataset A pointer to the dataset
type The type of view to return
Returns:
A pointer to the requested view or 0 if not registered yet

Definition at line 64 of file data_view_mediator.cpp.

void lockDatasets dataset_key_type  dataset_left,
dataset_key_type  dataset_right
 

Lock two datasets. If the mediator receives an event for one of the two datasets, it also notifies the dependent views of its locked datasets. Internally a lock count is incremented.

Parameters:
dataset_left The unique key of the first dataset
dataset_right The unique key of the second dataset

Definition at line 198 of file data_view_mediator.cpp.

References DataViewMediator::dataset_to_dataset_mmap_.

Referenced by VolumePixelView::lockWithDataset().

void registerHybridViewOfDatasets dataset_pointer_type  first_dataset,
dataset_pointer_type  second_dataset,
view_pointer_type  hybrid_view
[protected]
 

Register a hybrid view of the two given dataset.

Parameters:
dataset The dataset
view The dependent view to register
Returns:

void registerViewOfDataset dataset_pointer_type  dataset,
view_pointer_type  view
throw (NullPointerException) [protected]
 

Register a dependent view of the given dataset.

Parameters:
dataset A pointer to the dataset
view The dependent view to register

Definition at line 48 of file data_view_mediator.cpp.

bool removeDataset dataset_key_type  dataset_key  ) 
 

Delete all dependent views of the given dataset and release all lockings with the given dataset

Parameters:
dataset_key The key of the dataset
Returns:
true if the dataset was found, false otherwise

Definition at line 159 of file data_view_mediator.cpp.

References DataViewMediator::dataset_to_dataset_mmap_.

Referenced by Controller::removeDataset().

void unlockDatasets dataset_key_type  dataset_left,
dataset_key_type  dataset_right
 

Unlock two datasets. Decrements the lock count for the two datasets. If the count goes down to zero the locking between two datasets will be released.

Parameters:
dataset_left The unique key of the first dataset
dataset_right The unique key of the second dataset

Definition at line 224 of file data_view_mediator.cpp.

References DataViewMediator::dataset_to_dataset_mmap_.

Referenced by VolumePixelView::unlockFromDataset().

void updateDataChanged dataset_key_type  dataset,
dataset_attribute_type  changed_attribute
throw (NullPointerException, InvalidCastException)
 

Notify all dependent views of the given dataset that the data within the dataset has changed

Parameters:
dataset The key of the dataset thats data changed

Definition at line 299 of file data_view_mediator.cpp.

Referenced by Controller::datasetChangedSlot(), and View::notifyDataChangedEvent().

void updateDependentViews dataset_key_type  dataset  )  throw (NullPointerException)
 

Send an update request to all dependent views of the given dataset.

Parameters:
dataset The key of the dataset thats views are to be updated

Definition at line 277 of file data_view_mediator.cpp.


The documentation for this class was generated from the following files:
Generated on Sun Aug 13 18:20:01 2006 for iMEDgine by  doxygen 1.4.6