Tasking::CustomTask Class
template <typename Task, typename Adapter = Tasking::DefaultTaskAdapter<Task>, typename Deleter = std::default_delete<Task>> class Tasking::CustomTaskPredložak klase koji se koristi za deklariranje prilagođenih zadataka i definiranje njihovih rukovatelja za početno i završno stanje. Više...
| Header: | #include <solutions/tasking/tasktree.h> |
| Inherits: | Tasking::ExecutableItem |
Napomena: Sve funkcije u ovoj klasi su reentrantne.
Javne vrste
Detaljan opis
Opisuje prilagođene stavke zadataka unutar recepata stabla zadataka.
Prilagođeni nazivi zadataka aliasirani su jedinstvenim nazivima pomoću predloška CustomTask s navedenom podklasom TaskAdapter kao parametrom predloška. Na primjer, ConcurrentCallTask<T> je alias za CustomTask koji je definiran da radi s ConcurrentCall<T> kao povezanim razredom zadataka. Sljedeća tablica sadrži primjere prilagođenih zadataka i njihovih povezanih razreda zadataka:
| Naziv zadatka aliasa (prostor imena zadataka) | Povezana klasa zadatka | Kratki opis |
|---|---|---|
| ConcurrentCallTask<ReturnType> | ConcurrentCall<ReturnType> | Pokreće asinkroni zadatak. Izvršava se u zasebnom niti. |
| NetworkQueryTask | Upit mreže | Pošalje mrežni upit. |
| TaskTreeTask | TaskTree | Pokreće ugniježđeno stablo zadataka. |
| TimeoutTask | std::chrono::milliseconds | Pokreće tajmer. |
| Čeka na prepreku. | MultiBarrier<Limit> | Pokreće asinkroni zadatak koji čeka na prolaženje barijere. |
Dokumentacija tipa člana
[alias] CustomTask::TaskDoneHandler
Nadimak tipa za std::function<DoneResult(const Task &, DoneWith)> ili DoneResult.
TaskDoneHandler je neobavezni argument konstruktora prilagođenog elementa zadatka. Svaka funkcija s gore navedenim potpisom, kada se proslijedi kao handler za dovršeni zadatak, bit će pozvana od strane stabla zadataka u tijeku nakon završetka izvršavanja zadatka i prije nego što se konačni rezultat izvršavanja vrati matičnoj grupi.
Unutar tijela handlera možete dohvatiti konačne podatke dovršenog zadatka. Dodatni parametri, uključujući spremišta, mogu se proslijediti handleru putem lambda hvatanja. Također je moguće dinamički odlučiti treba li se zadatak završiti svojom vrijednošću povrata ili konačni rezultat treba prilagoditi.
Argument DoneWith je neobavezan i vaš handler dovršetka ga može izostaviti. Kada je naveden, sadrži informacije o konačnom rezultatu zadatka koji će biti prijavljen njegovoj nadređenoj grupi.
Ako ne planirate čitati nikakve podatke iz dovršenog zadatka, možete izostaviti argument const Task &.
Vraćena vrijednost DoneResult opcionalna je i vaš handler može umjesto toga vratiti void. U tom slučaju konačni rezultat zadatka bit će jednak vrijednosti navedenoj argumentom DoneWith. Kada handler vrati vrijednost DoneResult, konačni rezultat zadatka može se prilagoditi unutar tijela handlera za dovršetak pomoću vraćene vrijednosti.
Za TaskDoneHandler tipa DoneResult ne izvršava se nikakva dodatna obrada i zadatak se bezuvjetno završava s proslijeđenom vrijednošću parametra DoneResult.
Vidi također CustomTask (), TaskSetupHandler i GroupDoneHandler.
[alias] CustomTask::TaskSetupHandler
Nadimak tipa za std::function<SetupResult(Task &)>.
TaskSetupHandler je neobavezni argument konstruktora prilagođenog elementa zadatka. Svaka funkcija s gore navedenim potpisom, kada se proslijedi kao upravljač postavljanja zadatka, bit će pozvana od strane aktivnog stabla zadataka nakon stvaranja zadatka i prije njegovog pokretanja.
Unutar tijela ručitelja možete konfigurirati zadatak prema svojim potrebama. Dodatni parametri, uključujući spremišta, mogu se proslijediti ručitelju putem lambda hvatanja. Možete dinamički odlučiti hoće li se zadatak pokrenuti ili preskočiti, uz uspjeh ili pogrešku.
Napomena: Nemojte sami pokretati zadatak unutar handlera za pokretanje. Prepustite to funkciji TaskTree, inače je ponašanje neodređeno.
Vraćena vrijednost handlera upućuje stablo zadataka u tijeku o tome kako postupiti nakon završetka poziva handlera. Vraćena vrijednost SetupResult::Continue upućuje stablo zadataka da nastavi s izvršavanjem, odnosno da izvrši pripadajući Task. Vraćena vrijednost SetupResult::StopWithSuccess ili SetupResult::StopWithError upućuje stablo zadataka da preskoči izvršavanje zadatka i odmah ga završi s uspjehom, odnosno s pogreškom.
Kada je tip povrata SetupResult::StopWithSuccess ili SetupResult::StopWithError, handler za završetak zadatka (ako je naveden) nakon toga se ne poziva.
Konstruktor prilagođenog zadatka također prihvaća funkcije u skraćenom obliku std::function<void(Task &)>, odnosno vrijednost povrata je void. U tom se slučaju pretpostavlja da je vrijednost povrata SetupResult::Continue.
Vidi također CustomTask (), TaskDoneHandler i GroupSetupHandler.
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.