ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/DecentralizedMedia/DecentralizedMedia.hpp
Revision: 541
Committed: 2005-07-02T18:26:58-07:00 (19 years, 11 months ago) by douglas
File size: 1467 byte(s)
Log Message:
Arrrrrrr!

File Contents

# User Rev Content
1 douglas 464 // Decentralized Media
2     //
3     // Douglas Thrift
4     //
5     // $Id$
6    
7 douglas 471 #ifndef _DecentralizedMedia_hpp_
8     #define _DecentralizedMedia_hpp_
9 douglas 464
10 douglas 471 #include <menes/platform.hpp>
11    
12     #ifdef MENES_PRAGMA_ONCE
13     #pragma once
14     #endif
15    
16     #include <menes-api/process.hpp>
17 douglas 470 #include <menes-waf/server.hpp>
18 douglas 507 #include <menes-xml/nodeset.hpp>
19 douglas 470
20 douglas 464 #include "BeepRemote.hpp"
21 douglas 476 #include "MediaFolder.hpp"
22 douglas 514 #include "Share.hpp"
23 douglas 464
24 douglas 470 class DecentralizedMedia : public waf::Server
25 douglas 464 {
26 douglas 469 public:
27 douglas 464 BeepRemote bmp;
28 douglas 469 private:
29 douglas 541 _R<api::Thread> block;
30     _R<api::Process> process;
31     mutable _R<dbi::Connection> connection;
32 douglas 534 const ext::RedBlackSet<cse::String>& extensions;
33 douglas 540 mta::ReaderWriterLock sharesLock;
34 douglas 541 ext::RedBlackMap<cse::String, _R<Share> > sharesByPath;
35     ext::RedBlackMap<api::Address, ext::RedBlackMap<cse::String, _R<Share> > > sharesByHost;
36 douglas 534 void Media(ios::Reader& media, const api::Address& host = api::InternetAddress());
37 douglas 541 void Media(const _R<xml::Node>& folder, const api::Path& path, const api::Path& root);
38 douglas 469 int Destroy() { return process->Join(); }
39 douglas 470 protected:
40 douglas 471 virtual void Process(const net::Http::Request& request, net::Http::Response& response);
41 douglas 469 public:
42 douglas 534 DecentralizedMedia(const ext::RedBlackSet<cse::String>& extensions, const ext::RedBlackSet<api::Path>& locals);
43 douglas 471 virtual ~DecentralizedMedia();
44 douglas 534 _L<cse::String> GetArtists() const;
45     _L<cse::String> GetTitles() const;
46     _L<cse::String> GetAlbums() const;
47     _L<cse::String> GetGenres() const;
48 douglas 492 _L<MediaFolder> GetFolders() const;
49 douglas 469 };
50    
51 douglas 471 #endif//_DecentralizedMedia_hpp_

Properties

Name Value
svn:eol-style native
svn:keywords Id