1 #ifndef VSNET_DLOADMGR_H
2 #define VSNET_DLOADMGR_H
14 #include "boost/shared_ptr.hpp"
15 #include "boost/shared_array.hpp"
31 namespace VsnetDownload
59 void addItems( std::list< Item* > &items );
79 void private_lower_poll();
84 bool private_lower_test_access(
Item *
i );
87 typedef std::list< Item* > ItemList;
88 typedef std::map< SOCKETALT, ItemList, SOCKETALT::CompareLt >ItemListMap;
89 typedef std::map< string, Item* > ItemMap;
90 typedef std::map< SOCKETALT, ItemMap, SOCKETALT::CompareLt > ItemMapMap;
91 typedef std::map< SOCKETALT, Item*, SOCKETALT::CompareLt > ItemSockMap;
93 typedef std::pair< string, Item* > ItemPair;
94 typedef std::pair< SOCKETALT, Item* > ItemSockPair;
96 typedef ItemList::iterator ItemList_I;
97 typedef ItemListMap::iterator ItemListMap_I;
98 typedef ItemMap::iterator ItemMap_I;
99 typedef ItemMapMap::iterator ItemMapMap_I;
100 typedef ItemSockMap::iterator ItemSockMap_I;
104 std::vector< std::string >_local_search_paths;
107 std::queue< Item* >_pending;
109 ItemSockMap _currentItems;
122 std::string
file()
const;
124 virtual size_t offset()
const = 0;
126 virtual void copyFromFile(
unsigned char *buf,
size_t sz ) = 0;
131 const std::string _file;
144 virtual size_t offset()
const;
146 virtual void copyFromFile(
unsigned char *buf,
size_t sz );
159 virtual size_t offset()
const;
161 virtual void copyFromFile(
unsigned char *buf,
size_t sz );
200 typedef boost::shared_ptr< DownloadItem > DownloadItemPtr;
201 typedef std::queue< DownloadItemPtr > ItemQueue;
202 typedef boost::shared_ptr< ItemQueue > ItemQueuePtr;
203 typedef std::map< SOCKETALT, ItemQueuePtr, SOCKETALT::CompareLt >ItemMap;
204 typedef std::pair< SOCKETALT, ItemQueuePtr > ItemMapPair;
205 typedef ItemMap::iterator ItemMap_I;
210 size_t private_file_size(
const std::string &file );
211 bool private_lower_try_push_queue(
SOCKETALT sock, ItemQueuePtr
q );
217 std::vector< std::string >_local_search_paths;
222 ItemMap _lower_download;