forked from premiere/premiere-libtorrent
discourage forward declarations of libtorrent types, introduce forward declaration header (#1910)
This commit is contained in:
parent
0445ae4917
commit
e7a379551c
|
@ -1,3 +1,5 @@
|
|||
* forward declaring libtorrent types is discouraged. a new fwd.hpp header is provided
|
||||
|
||||
1.1.3 release
|
||||
|
||||
* removed (broken) support for incoming connections over socks5
|
||||
|
|
|
@ -46,8 +46,15 @@ For a description on how to create torrent files, see create_torrent.
|
|||
|
||||
.. _make_torrent: make_torrent.html
|
||||
|
||||
things to keep in mind
|
||||
======================
|
||||
forward declarations
|
||||
====================
|
||||
|
||||
Forward declaring types from the libtorrent namespace is discouraged as it may
|
||||
break in future releases. Instead include ``libtorrent/fwd.hpp`` for forward
|
||||
declarations of all public types in libtorrent.
|
||||
|
||||
trouble shooting
|
||||
================
|
||||
|
||||
A common problem developers are facing is torrents stopping without explanation.
|
||||
Here is a description on which conditions libtorrent will stop your torrents,
|
||||
|
@ -73,6 +80,11 @@ from certain disk errors if the problem is resolved. If the torrent is not
|
|||
auto managed, you have to call set_upload_mode() to turn
|
||||
downloading back on again.
|
||||
|
||||
For a more detailed guide on how to trouble shoot performance issues, see
|
||||
troubleshooting_
|
||||
|
||||
.. _troubleshooting: troubleshooting.html
|
||||
|
||||
network primitives
|
||||
==================
|
||||
|
||||
|
|
|
@ -10,9 +10,9 @@ libtorrent manual
|
|||
:backlinks: none
|
||||
|
||||
The following troubleshooting chart may help in finding out why torrents fail
|
||||
to download. It is not complete, please submit suggestions via mail to
|
||||
arvid@libtorrent.org or to the `mailing list`_. Ideally in the form of patches
|
||||
against ``docs/troubleshooting.dot``.
|
||||
to download. It is not complete, please submit suggestions via pull requests at
|
||||
https://github.com/arvidn/libtorrent or to the `mailing list`_. Ideally in the
|
||||
form of patches against ``docs/troubleshooting.dot``.
|
||||
|
||||
.. _`mailing list`: http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss
|
||||
|
||||
|
|
|
@ -1,8 +1,44 @@
|
|||
/*
|
||||
|
||||
Copyright (c) 2003-2017, Arvid Norberg
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "session_view.hpp"
|
||||
#include "print.hpp"
|
||||
#include "libtorrent/session_stats.hpp"
|
||||
#include "libtorrent/torrent_handle.hpp"
|
||||
|
||||
#include <algorithm> // for std::max
|
||||
|
||||
namespace lt = libtorrent;
|
||||
|
||||
session_view::session_view()
|
||||
: m_position(0)
|
||||
, m_print_utp_stats(false)
|
||||
|
|
|
@ -1,10 +1,40 @@
|
|||
/*
|
||||
|
||||
Copyright (c) 2003-2017, Arvid Norberg
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef SESSION_VIEW_HPP_
|
||||
#define SESSION_VIEW_HPP_
|
||||
|
||||
#include "libtorrent/session_stats.hpp"
|
||||
#include <boost/cstdint.hpp>
|
||||
|
||||
namespace lt = libtorrent;
|
||||
#include <vector>
|
||||
|
||||
struct session_view
|
||||
{
|
||||
|
|
|
@ -1,5 +1,38 @@
|
|||
/*
|
||||
|
||||
Copyright (c) 2003-2017, Arvid Norberg
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "torrent_view.hpp"
|
||||
#include "print.hpp"
|
||||
#include "libtorrent/torrent_handle.hpp"
|
||||
#include "libtorrent/torrent_status.hpp"
|
||||
|
||||
const int header_size = 2;
|
||||
|
|
|
@ -1,3 +1,35 @@
|
|||
/*
|
||||
|
||||
Copyright (c) 2003-2017, Arvid Norberg
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef TORRENT_VIEW_HPP_
|
||||
#define TORRENT_VIEW_HPP_
|
||||
|
||||
|
@ -5,7 +37,8 @@
|
|||
#include <vector>
|
||||
#include <boost/unordered_set.hpp>
|
||||
|
||||
#include "libtorrent/torrent_handle.hpp"
|
||||
#include "libtorrent/fwd.hpp"
|
||||
#include "libtorrent/torrent_status.hpp"
|
||||
|
||||
namespace lt = libtorrent;
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@ nobase_include_HEADERS = \
|
|||
file_pool.hpp \
|
||||
file_storage.hpp \
|
||||
fingerprint.hpp \
|
||||
fwd.hpp \
|
||||
gzip.hpp \
|
||||
hasher.hpp \
|
||||
hex.hpp \
|
||||
|
|
|
@ -1885,7 +1885,7 @@ namespace libtorrent
|
|||
};
|
||||
|
||||
#ifndef TORRENT_NO_DEPRECATE
|
||||
struct TORRENT_DEPRECATED TORRENT_EXPORT mmap_cache_alert TORRENT_FINAL : alert
|
||||
struct TORRENT_DEPRECATED_EXPORT mmap_cache_alert TORRENT_FINAL : alert
|
||||
{
|
||||
mmap_cache_alert(aux::stack_allocator& alloc
|
||||
, error_code const& ec);
|
||||
|
|
|
@ -500,7 +500,7 @@ namespace libtorrent
|
|||
#endif
|
||||
|
||||
#ifndef BOOST_NO_EXCEPTIONS
|
||||
struct TORRENT_EXPORT libtorrent_exception: std::exception
|
||||
struct TORRENT_EXPORT libtorrent_exception : std::exception
|
||||
{
|
||||
libtorrent_exception(error_code const& s): m_error(s), m_msg(0) {}
|
||||
virtual const char* what() const TORRENT_EXCEPTION_THROW_SPECIFIER;
|
||||
|
|
|
@ -0,0 +1,265 @@
|
|||
/*
|
||||
|
||||
Copyright (c) 2017, Arvid Norberg
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef TORRENT_FWD_HPP
|
||||
#define TORRENT_FWD_HPP
|
||||
|
||||
#include "libtorrent/export.hpp"
|
||||
|
||||
namespace libtorrent {
|
||||
|
||||
// include/libtorrent/add_torrent_params.hpp
|
||||
struct add_torrent_params;
|
||||
|
||||
// include/libtorrent/alert.hpp
|
||||
class alert;
|
||||
|
||||
// include/libtorrent/alert_types.hpp
|
||||
struct torrent_alert;
|
||||
struct peer_alert;
|
||||
struct tracker_alert;
|
||||
struct torrent_removed_alert;
|
||||
struct read_piece_alert;
|
||||
struct file_completed_alert;
|
||||
struct file_renamed_alert;
|
||||
struct file_rename_failed_alert;
|
||||
struct performance_alert;
|
||||
struct state_changed_alert;
|
||||
struct tracker_error_alert;
|
||||
struct tracker_warning_alert;
|
||||
struct scrape_reply_alert;
|
||||
struct scrape_failed_alert;
|
||||
struct tracker_reply_alert;
|
||||
struct dht_reply_alert;
|
||||
struct tracker_announce_alert;
|
||||
struct hash_failed_alert;
|
||||
struct peer_ban_alert;
|
||||
struct peer_unsnubbed_alert;
|
||||
struct peer_snubbed_alert;
|
||||
struct peer_error_alert;
|
||||
struct peer_connect_alert;
|
||||
struct peer_disconnected_alert;
|
||||
struct invalid_request_alert;
|
||||
struct torrent_finished_alert;
|
||||
struct piece_finished_alert;
|
||||
struct request_dropped_alert;
|
||||
struct block_timeout_alert;
|
||||
struct block_finished_alert;
|
||||
struct block_downloading_alert;
|
||||
struct unwanted_block_alert;
|
||||
struct storage_moved_alert;
|
||||
struct storage_moved_failed_alert;
|
||||
struct torrent_deleted_alert;
|
||||
struct torrent_delete_failed_alert;
|
||||
struct save_resume_data_alert;
|
||||
struct save_resume_data_failed_alert;
|
||||
struct torrent_paused_alert;
|
||||
struct torrent_resumed_alert;
|
||||
struct torrent_checked_alert;
|
||||
struct url_seed_alert;
|
||||
struct file_error_alert;
|
||||
struct metadata_failed_alert;
|
||||
struct metadata_received_alert;
|
||||
struct udp_error_alert;
|
||||
struct external_ip_alert;
|
||||
struct listen_failed_alert;
|
||||
struct listen_succeeded_alert;
|
||||
struct portmap_error_alert;
|
||||
struct portmap_alert;
|
||||
struct portmap_log_alert;
|
||||
struct fastresume_rejected_alert;
|
||||
struct peer_blocked_alert;
|
||||
struct dht_announce_alert;
|
||||
struct dht_get_peers_alert;
|
||||
struct stats_alert;
|
||||
struct cache_flushed_alert;
|
||||
struct anonymous_mode_alert;
|
||||
struct lsd_peer_alert;
|
||||
struct trackerid_alert;
|
||||
struct dht_bootstrap_alert;
|
||||
struct torrent_error_alert;
|
||||
struct torrent_need_cert_alert;
|
||||
struct incoming_connection_alert;
|
||||
struct add_torrent_alert;
|
||||
struct state_update_alert;
|
||||
struct session_stats_alert;
|
||||
struct torrent_update_alert;
|
||||
struct rss_item_alert;
|
||||
struct dht_error_alert;
|
||||
struct dht_immutable_item_alert;
|
||||
struct dht_mutable_item_alert;
|
||||
struct dht_put_alert;
|
||||
struct i2p_alert;
|
||||
struct dht_outgoing_get_peers_alert;
|
||||
struct log_alert;
|
||||
struct torrent_log_alert;
|
||||
struct peer_log_alert;
|
||||
struct lsd_error_alert;
|
||||
struct dht_lookup;
|
||||
struct dht_routing_bucket;
|
||||
struct dht_stats_alert;
|
||||
struct incoming_request_alert;
|
||||
struct dht_log_alert;
|
||||
struct dht_pkt_alert;
|
||||
struct dht_get_peers_reply_alert;
|
||||
struct dht_direct_response_alert;
|
||||
struct picker_log_alert;
|
||||
|
||||
// include/libtorrent/announce_entry.hpp
|
||||
struct announce_entry;
|
||||
|
||||
// include/libtorrent/bdecode.hpp
|
||||
struct bdecode_node;
|
||||
|
||||
// include/libtorrent/bitfield.hpp
|
||||
struct bitfield;
|
||||
|
||||
// include/libtorrent/create_torrent.hpp
|
||||
struct create_torrent;
|
||||
|
||||
// include/libtorrent/disk_buffer_holder.hpp
|
||||
struct disk_buffer_holder;
|
||||
|
||||
// include/libtorrent/disk_io_thread.hpp
|
||||
struct cache_status;
|
||||
|
||||
// include/libtorrent/entry.hpp
|
||||
class entry;
|
||||
|
||||
// include/libtorrent/error_code.hpp
|
||||
struct libtorrent_exception;
|
||||
struct storage_error;
|
||||
|
||||
// include/libtorrent/extensions.hpp
|
||||
struct plugin;
|
||||
struct torrent_plugin;
|
||||
struct peer_plugin;
|
||||
struct crypto_plugin;
|
||||
|
||||
// include/libtorrent/file_pool.hpp
|
||||
struct file_pool;
|
||||
|
||||
// include/libtorrent/file_storage.hpp
|
||||
struct file_slice;
|
||||
class file_storage;
|
||||
|
||||
// include/libtorrent/hasher.hpp
|
||||
class hasher;
|
||||
|
||||
// include/libtorrent/ip_filter.hpp
|
||||
struct ip_filter;
|
||||
class port_filter;
|
||||
|
||||
// include/libtorrent/kademlia/dht_storage.hpp
|
||||
struct dht_storage_counters;
|
||||
struct dht_storage_interface;
|
||||
|
||||
// include/libtorrent/peer_connection_handle.hpp
|
||||
struct peer_connection_handle;
|
||||
struct bt_peer_connection_handle;
|
||||
|
||||
// include/libtorrent/peer_info.hpp
|
||||
struct peer_info;
|
||||
struct peer_list_entry;
|
||||
|
||||
// include/libtorrent/peer_request.hpp
|
||||
struct peer_request;
|
||||
|
||||
// include/libtorrent/rss.hpp
|
||||
struct feed_item;
|
||||
struct feed_settings;
|
||||
struct feed_status;
|
||||
struct feed_handle;
|
||||
|
||||
// include/libtorrent/session.hpp
|
||||
class session_proxy;
|
||||
class session;
|
||||
|
||||
// include/libtorrent/session_handle.hpp
|
||||
struct session_handle;
|
||||
|
||||
// include/libtorrent/session_settings.hpp
|
||||
struct session_settings;
|
||||
struct dht_settings;
|
||||
struct pe_settings;
|
||||
|
||||
// include/libtorrent/session_stats.hpp
|
||||
struct stats_metric;
|
||||
|
||||
// include/libtorrent/session_status.hpp
|
||||
struct utp_status;
|
||||
struct session_status;
|
||||
|
||||
// include/libtorrent/settings_pack.hpp
|
||||
struct settings_pack;
|
||||
|
||||
// include/libtorrent/sha1_hash.hpp
|
||||
class sha1_hash;
|
||||
|
||||
// include/libtorrent/storage.hpp
|
||||
struct storage_interface;
|
||||
class default_storage;
|
||||
|
||||
// include/libtorrent/storage_defs.hpp
|
||||
struct storage_params;
|
||||
|
||||
// include/libtorrent/torrent_handle.hpp
|
||||
struct block_info;
|
||||
struct partial_piece_info;
|
||||
struct torrent_handle;
|
||||
|
||||
// include/libtorrent/torrent_info.hpp
|
||||
struct web_seed_entry;
|
||||
class torrent_info;
|
||||
|
||||
// include/libtorrent/torrent_status.hpp
|
||||
struct torrent_status;
|
||||
|
||||
#ifndef TORRENT_NO_DEPRECATE
|
||||
|
||||
// include/libtorrent/alert_types.hpp
|
||||
struct torrent_added_alert;
|
||||
struct mmap_cache_alert;
|
||||
|
||||
// include/libtorrent/file_storage.hpp
|
||||
struct file_entry;
|
||||
struct internal_file_entry;
|
||||
|
||||
// include/libtorrent/lazy_entry.hpp
|
||||
struct pascal_string;
|
||||
struct lazy_entry;
|
||||
|
||||
#endif // TORRENT_NO_DEPRECATE
|
||||
|
||||
}
|
||||
|
||||
#endif // TORRENT_FWD_HPP
|
|
@ -48,14 +48,14 @@ namespace libtorrent
|
|||
//
|
||||
// For more information about magnet links, see magnet-links_.
|
||||
//
|
||||
std::string TORRENT_EXPORT make_magnet_uri(torrent_handle const& handle);
|
||||
std::string TORRENT_EXPORT make_magnet_uri(torrent_info const& info);
|
||||
TORRENT_EXPORT std::string make_magnet_uri(torrent_handle const& handle);
|
||||
TORRENT_EXPORT std::string make_magnet_uri(torrent_info const& info);
|
||||
|
||||
#ifndef TORRENT_NO_DEPRECATE
|
||||
#ifndef BOOST_NO_EXCEPTIONS
|
||||
// deprecated in 0.14
|
||||
TORRENT_DEPRECATED
|
||||
torrent_handle TORRENT_EXPORT add_magnet_uri(session& ses, std::string const& uri
|
||||
TORRENT_DEPRECATED_EXPORT
|
||||
torrent_handle add_magnet_uri(session& ses, std::string const& uri
|
||||
, std::string const& save_path
|
||||
, storage_mode_t storage_mode = storage_mode_sparse
|
||||
, bool paused = false
|
||||
|
@ -63,24 +63,26 @@ namespace libtorrent
|
|||
, void* userdata = 0);
|
||||
|
||||
// deprecated in 0.16. Instead, pass in the magnet link as add_torrent_params::url
|
||||
TORRENT_DEPRECATED
|
||||
torrent_handle TORRENT_EXPORT add_magnet_uri(session& ses, std::string const& uri
|
||||
TORRENT_DEPRECATED_EXPORT
|
||||
torrent_handle add_magnet_uri(session& ses, std::string const& uri
|
||||
, add_torrent_params const& p);
|
||||
#endif
|
||||
|
||||
// deprecated in 0.16. Instead, pass in the magnet link as add_torrent_params::url
|
||||
TORRENT_DEPRECATED
|
||||
torrent_handle TORRENT_EXPORT add_magnet_uri(session& ses, std::string const& uri
|
||||
TORRENT_DEPRECATED_EXPORT
|
||||
torrent_handle add_magnet_uri(session& ses, std::string const& uri
|
||||
, add_torrent_params const& p, error_code& ec);
|
||||
|
||||
#endif
|
||||
|
||||
// This function parses out information from the magnet link and populates the
|
||||
// add_torrent_params object.
|
||||
TORRENT_EXPORT void parse_magnet_uri(std::string const& uri, add_torrent_params& p, error_code& ec);
|
||||
TORRENT_EXPORT
|
||||
void parse_magnet_uri(std::string const& uri, add_torrent_params& p, error_code& ec);
|
||||
|
||||
// internal, delete when merge in master
|
||||
TORRENT_EXTRA_EXPORT void parse_magnet_uri_peers(std::string const& uri, std::vector<tcp::endpoint>& peers);
|
||||
TORRENT_EXTRA_EXPORT
|
||||
void parse_magnet_uri_peers(std::string const& uri, std::vector<tcp::endpoint>& peers);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -155,7 +155,7 @@ namespace libtorrent
|
|||
// the settings to be set and pass it in to ``session::apply_settings()``.
|
||||
//
|
||||
// see apply_settings().
|
||||
class TORRENT_EXPORT session: public boost::noncopyable, public session_handle
|
||||
class TORRENT_EXPORT session : public boost::noncopyable, public session_handle
|
||||
{
|
||||
public:
|
||||
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
file_header ='''/*
|
||||
|
||||
Copyright (c) 2017, Arvid Norberg
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef TORRENT_FWD_HPP
|
||||
#define TORRENT_FWD_HPP
|
||||
|
||||
#include "libtorrent/export.hpp"
|
||||
|
||||
namespace libtorrent {
|
||||
'''
|
||||
|
||||
file_footer = '''
|
||||
|
||||
}
|
||||
|
||||
#endif // TORRENT_FWD_HPP
|
||||
'''
|
||||
|
||||
classes = os.popen('git grep TORRENT_EXPORT').read().split('\n')
|
||||
|
||||
deprecated_classes = os.popen('git grep TORRENT_DEPRECATED_EXPORT').read().split('\n')
|
||||
|
||||
def filter_classes(classes, keyword):
|
||||
current_file = ''
|
||||
ret = ''
|
||||
for c in classes:
|
||||
line = c.split(':', 1)
|
||||
if not line[0].endswith('.hpp'): continue
|
||||
# ignore the forward header itself, that's the one we're generating
|
||||
if line[0].endswith('/fwd.hpp'): continue
|
||||
# don't provide forward declarations of internal types
|
||||
if '/aux_/' in line[0]: continue
|
||||
this_file = line[0].strip()
|
||||
decl = ':'.join(line[1:]).strip().split(' ')
|
||||
|
||||
if decl[0].strip() not in ['struct', 'class']: continue
|
||||
# TODO: support TORRENT_DEPRECATED_EXPORT
|
||||
if decl[1].strip() != keyword: continue
|
||||
|
||||
if this_file != current_file:
|
||||
ret += '\n// ' + this_file + '\n'
|
||||
current_file = this_file;
|
||||
decl = decl[0] + ' ' + decl[2]
|
||||
if not decl.endswith(';'): decl += ';'
|
||||
ret += decl + '\n'
|
||||
return ret
|
||||
|
||||
os.remove('include/libtorrent/fwd.hpp')
|
||||
with open('include/libtorrent/fwd.hpp', 'w+') as f:
|
||||
f.write(file_header)
|
||||
|
||||
f.write(filter_classes(classes, 'TORRENT_EXPORT'));
|
||||
|
||||
f.write('\n#ifndef TORRENT_NO_DEPRECATE\n')
|
||||
|
||||
f.write(filter_classes(deprecated_classes, 'TORRENT_DEPRECATED_EXPORT'));
|
||||
|
||||
f.write('\n#endif // TORRENT_NO_DEPRECATE')
|
||||
|
||||
f.write(file_footer)
|
||||
|
||||
|
Loading…
Reference in New Issue