freMediaActualizer.cxx

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   F.R.E.E. - flexible registration evaluation engine
00004   Version:   v.1.0.0
00005   Date:      $Date: 2006/09/01 12:00:00 $
00006   Module:    $RCSfile: freMediaActualizer.cxx,v $
00007   Language:  C++
00008 
00009 
00010 
00011   Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics,
00012   Institute for Medical Biometry and Informatics, University of Heidelberg,
00013   Germany). All rights reserved.
00014   See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm
00015   for details.
00016 
00017      This software is distributed WITHOUT ANY WARRANTY; without even 
00018      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00019      PURPOSE.  See the above copyright notices for more information.
00020 
00021 =========================================================================*/
00022 
00023 #include "freMediaActualizer.h"
00024 
00025 #include "freSessionAccessor.h"
00026 #include "freControllerCentral.h"
00027 #include "freMediaControllerBase.h"
00028 
00029 namespace FREE
00030 {
00031 
00032 MediaActualizer::~MediaActualizer()
00033   { }
00034   ;
00035 
00036 MediaActualizer::
00037 MediaActualizer()
00038 {
00039 };
00040 
00041 GenericMediaType::Pointer
00042 MediaActualizer::
00043 ActualizeMediaByField(SessionInfo* pSessionInfo, const IDPath& sourceID, const IDPath& fieldID)
00044 {
00045   if (!pSessionInfo) throwExceptionMacro("Cannot actualize media. Passed session is null. MediaID: "<<sourceID.ToStr());
00046 
00047   std::string sControllerID = SessionAccessor::GetMediaControllerID(sourceID, pSessionInfo->GetSessionCache());
00048 
00049   GenericComponentController* pGenController = ControllerCentral::GetController(sControllerID);
00050 
00051   if (!pGenController) throwExceptionMacro("Cannot actualize media. Cannot found controller for media. MediaID: "<<sourceID.ToStr()<<"; controller IDPath: "<<sControllerID);
00052 
00053   GenericMediaController* pController = 0;
00054   try
00055   {
00056     pController = dynamic_cast<GenericMediaController*>(pGenController);
00057   }
00058   catchAllNPassMacro("Error. Controller seems not to be a media controller.");
00059   if (!pController) throwExceptionMacro("Error. Controller seems not to be a media controller. Cannot actualize media. MediaID: "<<sourceID.ToStr()<<"; controller IDPath: "<<sControllerID);
00060 
00061   GenericMediaType::Pointer smpMedia = SessionAccessor::GetMedia(sourceID,pSessionInfo);
00062   GenericMediaType::Pointer smpField = SessionAccessor::GetMedia(fieldID,pSessionInfo);
00063 
00064   smpMedia = pController->ComputeActualizedMedia(smpMedia,smpField);
00065   return smpMedia;
00066 };
00067 
00068 GenericMediaType::Pointer
00069 MediaActualizer::
00070 ActualizeMediaByFunction(SessionInfo* pSessionInfo, const IDPath& sourceID, const IDPath& functionID)
00071 {
00072   if (!pSessionInfo) throwExceptionMacro("Cannot actualize media. Passed session is null. MediaID: "<<sourceID.ToStr());
00073 
00074   std::string sControllerID = SessionAccessor::GetMediaControllerID(sourceID, pSessionInfo->GetSessionCache());
00075 
00076   GenericComponentController* pGenController = ControllerCentral::GetController(sControllerID);
00077 
00078   if (!pGenController) throwExceptionMacro("Cannot actualize media. Cannot found controller for media. MediaID: "<<sourceID.ToStr()<<"; controller IDPath: "<<sControllerID);
00079 
00080   GenericMediaController* pController = 0;
00081   try
00082   {
00083     pController = dynamic_cast<GenericMediaController*>(pGenController);
00084   }
00085   catchAllNPassMacro("Error. Controller seems not to be a media controller.");
00086   if (!pController) throwExceptionMacro("Error. Controller seems not to be a media controller. Cannot actualize media. MediaID: "<<sourceID.ToStr()<<"; controller IDPath: "<<sControllerID);
00087 
00088   GenericMediaType::Pointer smpMedia = SessionAccessor::GetMedia(sourceID,pSessionInfo);
00089   GenericMediaType::Pointer smpFunction = SessionAccessor::GetMedia(functionID,pSessionInfo);
00090 
00091   smpMedia = pController->ComputeActualizedMediaByFunction(smpMedia,smpFunction);
00092   return smpMedia;
00093 };
00094 
00095 } //end of namespace

Generated at Sat Oct 13 16:35:59 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000