1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-23 00:04:06 +00:00
No description
Find a file
Mike Gelfand 2b917de65b Refactor RPC requests code for proper queueing (patch by intelfx @ GH-10)
This refactoring is driven by the need to be able to do true queued RPC calls
(where each successive call uses the result of the previous).

Currently, such queueing of requests is done by assigning them special "magic"
tag numbers, which are then intercepted in one big switch() statement and acted
upon. This (aside from making code greatly unclear) effectively makes each such
queue a singleton, because state passing is restricted to global variables.

We refactor RpcClient to assign an unique tag to each remote call, and then
abstract all the call<->response matching with Qt's future/promise mechanism.

Finally, we introduce a "RPC request queue" class (RpcQueue) which is built on
top of QFutureWatcher and C++11's <functional> library. This class maintains
a queue of functions, where each function receives an RPC response, does
necessary processing, performs another call and finally returns its future.
2016-04-19 20:41:59 +00:00
.tx Add Transifex configuration file 2015-01-12 06:44:28 +00:00
cli Explicitly compare result of str(n)cmp/memcmp to signify that it's not boolean 2016-03-13 22:11:01 +00:00
cmake Fix copyright year in Win32 resources 2016-03-03 09:47:40 +00:00
daemon use '#pragma once' instead of #ifndef..#define..#endif guards 2016-03-29 16:37:21 +00:00
dist/msi Add files necessary for .msi packages creation on Windows 2016-04-02 18:01:01 +00:00
extras Fix "magnetLink" field type in RPC spec (reported by r04r) 2015-01-25 19:57:36 +00:00
gtk use '#pragma once' instead of #ifndef..#define..#endif guards 2016-03-29 16:37:21 +00:00
libtransmission crypto.h and crypto-utils.h can't use #pragma once, it breaks our name munging in crypto-test-ref.h 2016-03-29 19:02:26 +00:00
m4 use pkg-config to get the zlib cflags/libs; remove obsolete zlib.m4 macro 2014-07-13 21:54:56 +00:00
macosx Explicitly compare result of str(n)cmp/memcmp to signify that it's not boolean 2016-03-13 22:11:01 +00:00
po #4400, #5462: Fix "make check" for po files 2015-01-01 14:48:10 +00:00
qt Refactor RPC requests code for proper queueing (patch by intelfx @ GH-10) 2016-04-19 20:41:59 +00:00
third-party #6079: Fix miniupnpc script to handle spaces and other special chars in paths 2016-03-02 16:31:16 +00:00
Transmission.xcodeproj #6061: Change Sparkle Update URL to use HTTPS instead of HTTP 2016-02-27 22:54:04 +00:00
utils use '#pragma once' instead of #ifndef..#define..#endif guards 2016-03-29 16:37:21 +00:00
web Web UI: main() refactoring (patch by skybon @ GH-9) 2016-04-12 19:03:01 +00:00
.gitignore #5934: Generate REVISION file and use it in case of missing reliable source 2015-04-24 19:14:56 +00:00
.jsbeautifyrc #6089: Beautified JavaScript (patch by skybon) 2016-03-10 19:05:13 +00:00
AUTHORS #5533 Turkish localization 2014-01-09 16:35:44 +00:00
autogen.sh (trunk) #3939 "autogen.sh doesn't work correctly on systems where /bin/sh doesn't point to bash" -- fixed with patch from er13 2011-01-23 16:12:58 +00:00
ChangeLog
CMakeLists.txt Fork 3rd-party libraries on GitHub 2016-04-09 08:52:41 +00:00
configure.ac Bump to 2.92+ 2016-03-10 00:31:03 +00:00
COPYING Update user-facing copyright years 2016-02-27 23:18:02 +00:00
Makefile.am Include Windows patches into source archive, otherwise CMake build fails 2016-02-28 06:16:04 +00:00
NEWS Update NEWS, bump to 2.92 2016-03-06 19:51:54 +00:00
README #4522 'svn link in README outdated' -- fixed. 2011-09-27 16:19:08 +00:00
transmission-gtk.spec.in (trunk gtk) bump the glib2 requirement from 2.8 to 2.26 s.t. transmission-gtk can use glib's GDBus module and drop the glib-dbus library dependency 2011-08-07 16:42:38 +00:00
uncrustify.cfg
update-version-h.sh #5934: Generate REVISION file and use it in case of missing reliable source 2015-04-24 19:14:56 +00:00

ABOUT

  Transmission is a fast, easy, and free BitTorrent client.
  It comes in several flavors:

    * A native Mac OS X GUI application
    * GTK+ and Qt GUI applications for Linux, BSD, etc.
    * A headless daemon for servers and routers
    * A web UI for remote controlling any of the above

  Visit http://www.transmissionbt.com/ for more information.

BUILDING

  Transmission has an Xcode project file (Transmission.xcodeproj)
  for building in Xcode.

  For a more detailed description, and dependancies, visit:
  http://trac.transmissionbt.com/wiki/

  Building a Transmission release from the command line:

    $ xz -d -c transmission-2.11.tar.xz | tar xf -
    $ cd transmission-2.11
    $ ./configure
    $ make
    $ sudo make install

  Building Transmission from the nightly builds:

    Download a tarball from http://build.transmissionbt.com/job/trunk-linux-inc/
    and follow the steps from the previous section.

    If you're new to building programs from source code, this is typically 
    easier than building from SVN.

  Building Transmission from SVN (First Time):

    $ svn co svn://svn.transmissionbt.com/Transmission/trunk Transmission
    $ cd Transmission
    $ ./autogen.sh
    $ make
    $ sudo make install

  Building Transmission from SVN (Updating):

    $ cd Transmission
    $ make clean
    $ svn up
    $ ./update-version-h.sh 
    $ make
    $ sudo make install

  Notes for building on Solaris' C compiler:  User av reports success with
  this invocation: ./configure CC=c99 CXX=CC CFLAGS='-D__EXTENSIONS__ -mt'