00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
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 }