transmission/libtransmission
Charles Kerr 3b72a1feea
refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877)
* refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed
2021-10-07 08:33:55 -05:00
..
CMakeLists.txt refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
ConvertUTF.c refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
ConvertUTF.h Ensure include guard is the first non-comment line 2017-11-14 23:21:28 +03:00
README.md refactor: port libtransmission to C++ (#1787) 2021-09-12 12:41:49 -05:00
announcer-common.h refactor: use nullptr instead of NULL (#1884) 2021-10-06 11:32:17 -05:00
announcer-http.cc refactor: use std::string in tr_scrape_response (#1866) 2021-09-30 16:33:31 -05:00
announcer-udp.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
announcer.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
announcer.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
bandwidth.cc refactor: add [[fallthrough]] annotation (#1886) 2021-10-06 12:24:02 -05:00
bandwidth.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
bitfield.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
bitfield.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
blocklist.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
blocklist.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
cache.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
cache.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
clients.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
clients.h refactor: remove TR_BEGIN_DECLS, TR_END_DECLS (#1837) 2021-09-25 11:07:22 -05:00
completion.cc refactor: port libtransmission to C++ (#1787) 2021-09-12 12:41:49 -05:00
completion.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
crypto-utils-cyassl.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
crypto-utils-fallback.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
crypto-utils-openssl.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
crypto-utils-polarssl.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
crypto-utils.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
crypto-utils.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
crypto.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
crypto.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
error-types.h Adjust uncrustify config, reformat all but Mac client 2017-04-20 10:01:22 +03:00
error.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
error.h refactor: use nullptr instead of NULL (#1884) 2021-10-06 11:32:17 -05:00
fdlimit.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
fdlimit.h Switch to clang-format for code formatting, include Mac client 2021-08-16 00:38:29 +03:00
file-posix.cc fix: sonarcloud false error from O_SEQUENTIAL use. (#1882) 2021-10-06 08:09:16 -05:00
file-win32.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
file.cc C++ modernize: Replace MIN/MAX with type safe std::min/std::max (#1806) 2021-09-19 15:41:35 -05:00
file.h refactor: use nullptr instead of NULL (#1884) 2021-10-06 11:32:17 -05:00
handshake.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
handshake.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
history.h refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
inout.cc C++ modernize: Replace MIN/MAX with type safe std::min/std::max (#1806) 2021-09-19 15:41:35 -05:00
inout.h Switch to clang-format for code formatting, include Mac client 2021-08-16 00:38:29 +03:00
jsonsl.c chore: update jsonsl parser snapshot (#1050) 2019-11-09 18:06:36 -06:00
jsonsl.h C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
libt.dox
log.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
log.h refactor: use nullptr instead of NULL (#1884) 2021-10-06 11:32:17 -05:00
magnet.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
magnet.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
makemeta.cc C++ modernize: Replace MIN/MAX with type safe std::min/std::max (#1806) 2021-09-19 15:41:35 -05:00
makemeta.h refactor: use nullptr instead of NULL (#1884) 2021-10-06 11:32:17 -05:00
metainfo.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
metainfo.h refactor: remove TR_BEGIN_DECLS, TR_END_DECLS (#1837) 2021-09-25 11:07:22 -05:00
mime-types.h refactor: make mime-type array inline constexpr (#1872) 2021-10-01 17:55:19 -05:00
mime-types.js refactor: make mime-type array inline constexpr (#1872) 2021-10-01 17:55:19 -05:00
natpmp.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
natpmp_local.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
net.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
net.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
peer-common.h refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
peer-io.cc refactor: remove unused tr_variant_string.session (#1881) 2021-10-05 19:06:18 -05:00
peer-io.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
peer-mgr.cc refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
peer-mgr.h refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
peer-msgs.cc refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
peer-msgs.h refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
peer-socket.h refactor: remove TR_BEGIN_DECLS, TR_END_DECLS (#1837) 2021-09-25 11:07:22 -05:00
platform-quota.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
platform-quota.h Ensure include guard is the first non-comment line 2017-11-14 23:21:28 +03:00
platform.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
platform.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
port-forwarding.cc C++ modernize: Replace MIN/MAX with type safe std::min/std::max (#1806) 2021-09-19 15:41:35 -05:00
port-forwarding.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
ptrarray.cc C++ modernize: Replace MIN/MAX with type safe std::min/std::max (#1806) 2021-09-19 15:41:35 -05:00
ptrarray.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
quark.cc refactor: use std::vector and std::array in quark.cc (#1861) 2021-09-30 07:01:04 -05:00
quark.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
resume.cc refactor: use std::unordered_set for tr_torrent.labels (#1856) 2021-09-29 14:52:19 -05:00
resume.h refactor: remove TR_BEGIN_DECLS, TR_END_DECLS (#1837) 2021-09-25 11:07:22 -05:00
rpc-server.cc refactor: use std::vector in extract_parts_from_multipart() (#1860) 2021-09-29 21:14:31 -05:00
rpc-server.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
rpcimpl.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
rpcimpl.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
session-id.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
session-id.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
session.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
session.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
stats.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
stats.h refactor: port libtransmission to C++ (#1787) 2021-09-12 12:41:49 -05:00
subprocess-posix.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
subprocess-win32.cc C++ modernize: Replace MIN/MAX with type safe std::min/std::max (#1806) 2021-09-19 15:41:35 -05:00
subprocess.h refactor: remove TR_BEGIN_DECLS, TR_END_DECLS (#1837) 2021-09-25 11:07:22 -05:00
torrent-ctor.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
torrent-magnet.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
torrent-magnet.h fix: 'enumerated and non-enumerated type' warnings (#1810) 2021-09-16 11:22:33 -05:00
torrent.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
torrent.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
tr-assert.cc refactor: port libtransmission to C++ (#1787) 2021-09-12 12:41:49 -05:00
tr-assert.h Move generic macros to a separate tr-macros.h file 2017-06-18 17:11:20 +03:00
tr-dht.cc refactor: use std container for session torrents (#1832) 2021-09-24 18:31:02 -05:00
tr-dht.h Ensure include guard is the first non-comment line 2017-11-14 23:21:28 +03:00
tr-getopt.cc fix: sonarcloud getopt warnings (#1871) 2021-10-01 12:47:23 -05:00
tr-getopt.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
tr-lpd.cc refactor: add [[fallthrough]] annotation (#1886) 2021-10-06 12:24:02 -05:00
tr-lpd.h chore: fix compiler warnings (#1412) 2020-08-27 18:41:26 -05:00
tr-macros.h refactor: add [[fallthrough]] annotation (#1886) 2021-10-06 12:24:02 -05:00
tr-udp.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
tr-udp.h Align type qualifiers to the right (code style) 2017-04-20 19:53:20 +03:00
tr-utp.cc C++ modernization: Replace NULLs with typesafe nullptrs (#1799) 2021-09-14 19:18:09 -05:00
tr-utp.h Ensure include guard is the first non-comment line 2017-11-14 23:21:28 +03:00
transmission.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
trevent.cc refactor: add [[fallthrough]] annotation (#1886) 2021-10-06 12:24:02 -05:00
trevent.h refactor: remove TR_BEGIN_DECLS, TR_END_DECLS (#1837) 2021-09-25 11:07:22 -05:00
upnp.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
upnp.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
utils.cc refactor: use nullptr instead of NULL (#1884) 2021-10-06 11:32:17 -05:00
utils.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
variant-benc.cc in variant-benc, use std::deque not tr_ptrArray (#1851) 2021-09-28 19:09:01 -05:00
variant-common.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
variant-json.cc in variant-json, use std::deque not tr_ptrArray (#1850) 2021-09-28 08:56:46 -05:00
variant.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
variant.h refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
verify.cc refactor: use std::set in verify.cc's verifyList (#1848) 2021-09-27 17:07:58 -05:00
verify.h Ensure include guard is the first non-comment line 2017-11-14 23:21:28 +03:00
version.h.in Adjust CFBundleVersion format to fix Sparkle update check 2018-04-17 13:25:49 +03:00
watchdir-common.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
watchdir-generic.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
watchdir-inotify.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
watchdir-kqueue.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
watchdir-win32.cc refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
watchdir.cc refactor: prefer constexpr functions over static inline ones (#1887) 2021-10-06 17:24:04 -05:00
watchdir.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
web.cc refactor: replace tr_list with std::set in web.cc (#1845) 2021-09-27 11:27:02 -05:00
web.h refactor: prefer "using" over "typedef" (#1883) 2021-10-06 09:26:07 -05:00
webseed.cc refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
webseed.h refactor: use C++ inheritance for tr_peer, tr_peerMsgs, and tr_webseed (#1877) 2021-10-07 08:33:55 -05:00
wildmat.c refactor: tr_parseNumberRange returns std::vector. (#1838) 2021-09-25 14:37:28 -05:00

README.md

Notes on the C-to-C++ Conversion

  • libtransmission was written in C for fifteen years, so eliminating all Cisms is nearly impossible. Modernization patches are welcomed but it won't all happen overnight. tr_strdup() and constexpr wil exist side-by-side in the codebase for the forseeable future.

  • It's so tempting to refactor all the things! Please keep modernization patches reasonably focused so that they will be easy to review.

  • Prefer std:: tools over bespoke ones. For example, use std::vector instead of tr_ptrArray. Redundant bespoke code should be removed.

  • Consider ripple effects before adding C++ into public headers. Will it break C code that #includes that header?