mirror of
https://github.com/transmission/transmission.git
synced 2026-05-08 09:39:08 +01:00
Perform callbacks in the Torrent class using GCD.
This commit is contained in:
+15
-8
@@ -64,32 +64,39 @@
|
||||
|
||||
void startQueueCallback(tr_torrent * torrent, void * torrentData)
|
||||
{
|
||||
[(Torrent *)torrentData performSelectorOnMainThread: @selector(startQueue) withObject: nil waitUntilDone: NO];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[(Torrent *)torrentData startQueue];
|
||||
});
|
||||
}
|
||||
|
||||
void completenessChangeCallback(tr_torrent * torrent, tr_completeness status, bool wasRunning, void * torrentData)
|
||||
{
|
||||
@autoreleasepool
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys: [NSNumber numberWithInt: status], @"Status",
|
||||
[NSNumber numberWithBool: wasRunning], @"WasRunning", nil];
|
||||
[(Torrent *)torrentData performSelectorOnMainThread: @selector(completenessChange:) withObject: dict waitUntilDone: NO];
|
||||
}
|
||||
[(Torrent *)torrentData completenessChange: dict];
|
||||
});
|
||||
}
|
||||
|
||||
void ratioLimitHitCallback(tr_torrent * torrent, void * torrentData)
|
||||
{
|
||||
[(Torrent *)torrentData performSelectorOnMainThread: @selector(ratioLimitHit) withObject: nil waitUntilDone: NO];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[(Torrent *)torrentData ratioLimitHit];
|
||||
});
|
||||
}
|
||||
|
||||
void idleLimitHitCallback(tr_torrent * torrent, void * torrentData)
|
||||
{
|
||||
[(Torrent *)torrentData performSelectorOnMainThread: @selector(idleLimitHit) withObject: nil waitUntilDone: NO];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[(Torrent *)torrentData idleLimitHit];
|
||||
});
|
||||
}
|
||||
|
||||
void metadataCallback(tr_torrent * torrent, void * torrentData)
|
||||
{
|
||||
[(Torrent *)torrentData performSelectorOnMainThread: @selector(metadataRetrieved) withObject: nil waitUntilDone: NO];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[(Torrent *)torrentData metadataRetrieved];
|
||||
});
|
||||
}
|
||||
|
||||
void renameCallback(tr_torrent * torrent, const char * oldPathCharString, const char * newNameCharString, int error, void * contextInfo)
|
||||
|
||||
Reference in New Issue
Block a user