svvitch
digital signage player
D:/vs_workspace/switch_sf/src/svvitch/Workspace.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 #include <vector>
00004 #include <Poco/HashMap.h>
00005 #include <Poco/Logger.h>
00006 #include <Poco/Mutex.h>
00007 #include <Poco/Path.h>
00008 
00009 #include "Container.h"
00010 #include "MediaItem.h"
00011 #include "PlayList.h"
00012 #include "Schedule.h"
00013 #include "Renderer.h"
00014 
00015 using std::string;
00016 using std::vector;
00017 
00018 
00023 class Workspace
00024 {
00025 private:
00026     Poco::Logger& _log;
00027 
00028     Poco::FastMutex _lock;
00029 
00030     Path _file;
00031     string _signature;
00032 
00033     vector<MediaItemPtr> _media;
00034     Poco::HashMap<string, MediaItemPtr> _mediaMap;
00035     vector<string> _existsFiles;
00036 
00037     vector<PlayListPtr> _playlist;
00038     Poco::HashMap<string, PlayListPtr> _playlistMap;
00039 
00040     vector<string> _fonts;
00041 
00042     vector<SchedulePtr> _schedule;
00043 
00044     void release();
00045 
00046 public:
00047     Workspace(Path file);
00048 
00049     ‾Workspace();
00050 
00051     const Path& file() const;
00052 
00053     bool parse();
00054 
00055     bool checkUpdate();
00056 
00057     const int getMediaCount();
00058 
00059     const MediaItemPtr getMedia(int i);
00060 
00061     const MediaItemPtr getMedia(string id);
00062 
00063     const int getPlaylistCount();
00064 
00065     const PlayListPtr getPlaylist(int i);
00066 
00067     const PlayListPtr getPlaylist(string id);
00068 
00069     const vector<string> getFonts();
00070 
00071     const int getScheduleCount();
00072 
00073     const SchedulePtr getSchedule(int i);
00074 
00075     const vector<string> existsFiles();
00076 
00077     const string signature() const;
00078 };
00079 
00080 
00081 typedef Workspace* WorkspacePtr;
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines