00001
00002
00003
00004
00005
00006
00007
00008 #include <libtorrent/alert.hpp>
00009 #include <libtorrent/alert_types.hpp>
00010 #include <boost/python.hpp>
00011
00012 using namespace boost::python;
00013 using namespace libtorrent;
00014
00015 extern char const* alert_doc;
00016 extern char const* alert_msg_doc;
00017 extern char const* alert_severity_doc;
00018 extern char const* listen_failed_alert_doc;
00019 extern char const* file_error_alert_doc;
00020 extern char const* tracker_announce_alert_doc;
00021 extern char const* tracker_alert_doc;
00022 extern char const* tracker_reply_alert_doc;
00023 extern char const* tracker_warning_alert_doc;
00024 extern char const* url_seed_alert_doc;
00025 extern char const* hash_failed_alert_doc;
00026 extern char const* peer_ban_alert_doc;
00027 extern char const* peer_error_alert_doc;
00028 extern char const* invalid_request_alert_doc;
00029 extern char const* peer_request_doc;
00030 extern char const* torrent_finished_alert_doc;
00031 extern char const* metadata_failed_alert_doc;
00032 extern char const* metadata_received_alert_doc;
00033 extern char const* fastresume_rejected_alert_doc;
00034
00035 void bind_alert()
00036 {
00037 using boost::noncopyable;
00038
00039 {
00040 scope alert_scope = class_<alert, noncopyable>("alert", alert_doc, no_init)
00041 .def(
00042 "msg", &alert::msg, return_value_policy<copy_const_reference>()
00043 , alert_msg_doc
00044 )
00045 .def("severity", &alert::severity, alert_severity_doc)
00046 .def(
00047 "__str__", &alert::msg, return_value_policy<copy_const_reference>()
00048 , alert_msg_doc
00049 )
00050 ;
00051
00052 enum_<alert::severity_t>("severity_levels")
00053 .value("debug", alert::debug)
00054 .value("info", alert::info)
00055 .value("warning", alert::warning)
00056 .value("critical", alert::critical)
00057 .value("fatal", alert::fatal)
00058 .value("none", alert::none)
00059 ;
00060 }
00061
00062 class_<listen_failed_alert, bases<alert>, noncopyable>(
00063 "listen_failed_alert", listen_failed_alert_doc, no_init
00064 );
00065
00066 class_<file_error_alert, bases<alert>, noncopyable>(
00067 "file_error_alert", file_error_alert_doc, no_init
00068 )
00069 .def_readonly("handle", &file_error_alert::handle)
00070 ;
00071
00072 class_<tracker_announce_alert, bases<alert>, noncopyable>(
00073 "tracker_announce_alert", tracker_announce_alert_doc, no_init
00074 )
00075 .def_readonly("handle", &tracker_announce_alert::handle)
00076 ;
00077
00078 class_<tracker_alert, bases<alert>, noncopyable>(
00079 "tracker_alert", tracker_alert_doc, no_init
00080 )
00081 .def_readonly("handle", &tracker_alert::handle)
00082 .def_readonly("times_in_row", &tracker_alert::times_in_row)
00083 .def_readonly("status_code", &tracker_alert::status_code)
00084 ;
00085
00086 class_<tracker_reply_alert, bases<alert>, noncopyable>(
00087 "tracker_reply_alert", tracker_reply_alert_doc, no_init
00088 )
00089 .def_readonly("handle", &tracker_reply_alert::handle)
00090 ;
00091
00092 class_<tracker_warning_alert, bases<alert>, noncopyable>(
00093 "tracker_warning_alert", tracker_warning_alert_doc, no_init
00094 )
00095 .def_readonly("handle", &tracker_warning_alert::handle)
00096 ;
00097
00098 class_<url_seed_alert, bases<alert>, noncopyable>(
00099 "url_seed_alert", url_seed_alert_doc, no_init
00100 )
00101 .def_readonly("url", &url_seed_alert::url)
00102 ;
00103
00104 class_<hash_failed_alert, bases<alert>, noncopyable>(
00105 "hash_failed_alert", hash_failed_alert_doc, no_init
00106 )
00107 .def_readonly("handle", &hash_failed_alert::handle)
00108 .def_readonly("piece_index", &hash_failed_alert::piece_index)
00109 ;
00110
00111 class_<peer_ban_alert, bases<alert>, noncopyable>(
00112 "peer_ban_alert", peer_ban_alert_doc, no_init
00113 )
00114 .def_readonly("ip", &peer_ban_alert::ip)
00115 .def_readonly("handle", &peer_ban_alert::handle)
00116 ;
00117
00118 class_<peer_error_alert, bases<alert>, noncopyable>(
00119 "peer_error_alert", peer_error_alert_doc, no_init
00120 )
00121 .def_readonly("ip", &peer_error_alert::ip)
00122 .def_readonly("pid", &peer_error_alert::pid)
00123 ;
00124
00125 class_<invalid_request_alert, bases<alert>, noncopyable>(
00126 "invalid_request_alert", invalid_request_alert_doc, no_init
00127 )
00128 .def_readonly("handle", &invalid_request_alert::handle)
00129 .def_readonly("ip", &invalid_request_alert::ip)
00130 .def_readonly("request", &invalid_request_alert::request)
00131 .def_readonly("pid", &invalid_request_alert::pid)
00132 ;
00133
00134 class_<peer_request>("peer_request", peer_request_doc)
00135 .def_readonly("piece", &peer_request::piece)
00136 .def_readonly("start", &peer_request::start)
00137 .def_readonly("length", &peer_request::length)
00138 .def(self == self)
00139 ;
00140
00141 class_<torrent_finished_alert, bases<alert>, noncopyable>(
00142 "torrent_finished_alert", torrent_finished_alert_doc, no_init
00143 )
00144 .def_readonly("handle", &torrent_finished_alert::handle)
00145 ;
00146
00147 class_<metadata_failed_alert, bases<alert>, noncopyable>(
00148 "metadata_failed_alert", metadata_failed_alert_doc, no_init
00149 )
00150 .def_readonly("handle", &metadata_failed_alert::handle)
00151 ;
00152
00153 class_<metadata_received_alert, bases<alert>, noncopyable>(
00154 "metadata_received_alert", metadata_received_alert_doc, no_init
00155 )
00156 .def_readonly("handle", &metadata_received_alert::handle)
00157 ;
00158
00159 class_<fastresume_rejected_alert, bases<alert>, noncopyable>(
00160 "fastresume_rejected_alert", fastresume_rejected_alert_doc, no_init
00161 )
00162 .def_readonly("handle", &fastresume_rejected_alert::handle)
00163 ;
00164 }
00165