18 |
|
#include <menes-xml/nodeset.hpp> |
19 |
|
|
20 |
|
#include "BeepRemote.hpp" |
21 |
< |
#include "MediaFolder.hpp" |
22 |
< |
#include "Share.hpp" |
21 |
> |
#include "Library.hpp" |
22 |
> |
#include "Player.hpp" |
23 |
|
|
24 |
|
class DecentralizedMedia : public waf::Server |
25 |
|
{ |
26 |
– |
public: |
27 |
– |
BeepRemote bmp; |
26 |
|
private: |
27 |
|
_R<api::Thread> block; |
30 |
– |
_R<api::Process> process; |
28 |
|
mutable _R<dbi::Connection> connection; |
29 |
|
const ext::RedBlackSet<cse::String>& extensions; |
30 |
< |
mta::ReaderWriterLock sharesLock; |
34 |
< |
ext::RedBlackMap<cse::String, _R<Share> > sharesByPath; |
35 |
< |
ext::RedBlackMap<api::Address, ext::RedBlackMap<cse::String, _R<Share> > > sharesByHost; |
36 |
< |
void Media(ios::Reader& media, const api::Address& host = api::InternetAddress()); |
30 |
> |
void Media(ios::Reader& media, const api::InternetAddress& host = api::InternetAddress()); |
31 |
|
void Media(const _R<xml::Node>& folder, const api::Path& path, const api::Path& root); |
38 |
– |
int Destroy() { return process->Join(); } |
32 |
|
protected: |
33 |
|
virtual void Process(const net::Http::Request& request, net::Http::Response& response); |
34 |
|
public: |
35 |
< |
DecentralizedMedia(const ext::RedBlackSet<cse::String>& extensions, const ext::RedBlackSet<api::Path>& locals); |
36 |
< |
virtual ~DecentralizedMedia(); |
37 |
< |
_L<cse::String> GetArtists() const; |
45 |
< |
_L<cse::String> GetTitles() const; |
46 |
< |
_L<cse::String> GetAlbums() const; |
47 |
< |
_L<cse::String> GetGenres() const; |
48 |
< |
_L<MediaFolder> GetFolders() const; |
35 |
> |
Library library; |
36 |
> |
Player player; |
37 |
> |
DecentralizedMedia(const ext::RedBlackSet<cse::String>& extensions, const ext::RedBlackSet<api::Path>& locals, int player); |
38 |
|
}; |
39 |
|
|
40 |
|
#endif//_DecentralizedMedia_hpp_ |