Ignore:
Timestamp:
05/21/08 08:11:55 (12 years ago)
Author:
Eoin
Message:

Tracker Login details switched to properties.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/halTorrent.hpp

    r441 r453  
    3333 
    3434#include <stlsoft/properties/method_properties.hpp> 
     35#include <stlsoft/util/operator_bool_adaptor.hpp> 
     36 
    3537 
    3638#include <asio/ip/tcp.hpp> 
     
    410412typedef boost::function<bool (size_t, std::wstring)> progress_callback; 
    411413typedef boost::function<void (int)> report_num_active; 
     414typedef std::pair<wstring, wstring> wstring_pair; 
    412415 
    413416class bit_impl; 
     
    418421public:  
    419422 
    420         class torrent 
     423        class null_torrent : public std::exception 
     424        { 
     425        public: 
     426                null_torrent() {}                
     427                virtual ~null_torrent() throw () {} 
     428        }; 
     429 
     430        class torrent : public stlsoft::operator_bool_adaptor<torrent> 
    421431        { 
    422432                typedef torrent class_type; 
     
    443453                        }; 
    444454 
     455                        exec_around_ptr() {} 
    445456                        exec_around_ptr(boost::shared_ptr<torrent_internal> p) : ptr(p) {} 
    446457 
    447458                        proxy operator->() const 
    448459                        { 
     460                                if (!ptr) 
     461                                        throw null_torrent(); 
     462 
    449463                                return proxy(&(*ptr)); 
    450464                        } 
     465 
     466                        operator bool() const { return ptr; } 
    451467 
    452468                private: 
     
    454470                }; 
    455471 
     472                torrent(); 
    456473                torrent(boost::shared_ptr<torrent_internal> p); 
    457474 
     
    463480                wpath get_move_to_directory() const; 
    464481                void set_move_to_directory(const wpath&); 
     482 
     483                std::pair<wstring, wstring> get_tracker_login() const; 
     484                void set_tracker_login(const std::pair<wstring, wstring>&); 
    465485 
    466486                bool get_is_active() const; 
     
    476496                        get_move_to_directory, set_move_to_directory, move_to_directory); 
    477497 
     498                STLSOFT_METHOD_PROPERTY_GETSET_EXTERNAL(wstring_pair, const wstring_pair&,  
     499                        class_type, get_tracker_login, set_tracker_login, tracker_login); 
     500 
    478501                STLSOFT_METHOD_PROPERTY_GET_EXTERNAL(bool, class_type,  
    479502                        get_is_active, is_active); 
     
    481504                        get_in_session, in_session); 
    482505 
     506                bool is_open() const; 
     507 
    483508        private: 
    484509                exec_around_ptr ptr; 
     
    502527                return get_wstr(to_wstr_shim(t)); 
    503528        } 
     529         
     530        template<> 
     531        torrent get(const hal::TorrentDetail_ptr t) 
     532        { 
     533                if (t)  
     534                        return get_wstr(t->name()); 
     535                else 
     536                        return torrent(); 
     537        }        
    504538 
    505539        torrent get_wstr(const std::wstring& filename); 
     
    578612        void removeTorrentWipeFiles(const std::wstring&  filename); 
    579613         
    580         void setTorrentLogin(const std::string& filename, std::wstring username, std::wstring password); 
    581         void setTorrentLogin(const std::wstring& filename, std::wstring username, std::wstring password); 
    582         std::pair<std::wstring, std::wstring> getTorrentLogin(const std::string& filename); 
    583         std::pair<std::wstring, std::wstring> getTorrentLogin(const std::wstring&  filename); 
    584          
    585614        void setTorrentLimit(const std::string& filename, int maxConn, int maxUpload); 
    586615        void setTorrentLimit(const std::wstring& filename, int maxConn, int maxUpload); 
Note: See TracChangeset for help on using the changeset viewer.