00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freSessionBuilder_h
00023 #define __freSessionBuilder_h
00024
00025 #include "freElementals.h"
00026 #include "freSetup.h"
00027 #include "freStatistics.h"
00028 #include "freControllerInterface.h"
00029
00030 #include "freSessionInfo.h"
00031
00032 namespace FREE
00033 {
00034
00046 class SessionBuilder
00047 {
00048 public:
00049 typedef ComponentControllerInterface GenericComponentController;
00051 typedef GenericComponentController::GenericComponentType GenericComponentType;
00054 typedef GenericComponentController::GenericComponentPointer GenericComponentPointer;
00056 typedef GenericComponentController::GenericMediaType GenericMediaType;
00057 typedef GenericComponentController::GenericMediaPointer GenericMediaPointer;
00058
00072 static SessionComponentCache::Pointer BuildComponent (ComponentSetup* pComponentSetup, SessionComponentCache* pParentComponentCache);
00073
00085 static SessionInfo::Pointer BuildSession (Setup* pSetup);
00086
00101 static SessionComponentCache::Pointer GeneratePassiveComponentCache (ComponentSetup* pComponentSetup, SessionComponentCache* pParentComponentCache = NULL);
00102
00106 static bool CheckComponentNecessity(const SessionComponentCache* pComponentCache);
00112 static bool CheckComponentNecessity(const SessionComponentCache* pParentCache, const ComponentID& componentID);
00113
00122 static void ActualizeComponent(SessionComponentCache* pComponentCache, SessionInfo* pSessionInfo, const unsigned int& iActiveLayer = 0);
00123
00138 static void ActualizeSession (SessionInfo* pSessionInfo, const unsigned int& iActiveLayer = 0);
00139
00148 static void SetStatisticEntry(StatisticEntry& rStatisticEntry, SessionComponentCache* pComponentCache,
00149 SessionInfo* pSessionInfo);
00150
00155 static void LinkMediaToComponent(SessionComponentCache* pComponentCache, SessionInfo* pInfo);
00156
00161 static void LinkMediaToComponentByID(const std::string& sMediaID, SessionComponentCache* pComponentCache, SessionInfo* pInfo);
00162
00163 SessionBuilder();
00164 ~SessionBuilder();
00165 };
00166
00167 }
00168
00169 #endif