diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-12-29 21:54:04 +0100 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-12-29 21:54:04 +0100 |
commit | d67fd6103956046245744cf5cf094d4da8cbcc19 (patch) | |
tree | 3e0dc28c50644ae271e8b208eb8cb362e0e5a43a /music.h | |
parent | 945887004432a7634ce096a7c3744b42ae2ab987 (diff) |
Don't read entire directory tree into memory.
Diffstat (limited to 'music.h')
-rw-r--r-- | music.h | 14 |
1 files changed, 5 insertions, 9 deletions
@@ -11,6 +11,7 @@ namespace fs = boost::filesystem; class MusicListing { public: + typedef boost::shared_ptr<MusicListing> p; fs::path path; virtual void render(HTTPRequest& req, HTTPResponse& res) = 0; }; @@ -21,24 +22,19 @@ class MusicTrack : public MusicListing { virtual void render(HTTPRequest& req, HTTPResponse& res); }; -class MusicDirectory; -typedef std::vector<MusicDirectory> MusicDirectories; -typedef std::vector<MusicTrack> MusicTracks; - class MusicDirectory : public MusicListing { public: - MusicDirectories directories; - MusicTracks tracks; + typedef std::vector<fs::path> PathListings; + PathListings directories; + PathListings tracks; MusicDirectory(const fs::path root); virtual void render(HTTPRequest& req, HTTPResponse& res); }; namespace music { - extern MusicDirectory *root_directory; void init(std::string root); - MusicListing *find(std::string path, MusicDirectory& root); - MusicListing *find(std::string path); + MusicListing::p get(const std::string path); }; #endif |