xref: /haiku/src/apps/softwareupdater/WorkingLooper.cpp (revision acfd5c8676cf30f60d47d873cc5bc618ce21ffe4)
1 /*
2  * Copyright 2017, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Brian Hill <supernova@tycho.email>
7  */
8 
9 
10 #include "WorkingLooper.h"
11 
12 
WorkingLooper(update_type action,bool verbose)13 WorkingLooper::WorkingLooper(update_type action, bool verbose)
14 	:
15 	BLooper("WorkingLooper"),
16 	fUpdateAction(NULL),
17 	fCheckAction(NULL),
18 	fActionRequested(action),
19 	fVerbose(verbose)
20 {
21 	Run();
22 	PostMessage(kMsgStart);
23 }
24 
25 
~WorkingLooper()26 WorkingLooper::~WorkingLooper()
27 {
28 	delete fUpdateAction;
29 	delete fCheckAction;
30 }
31 
32 
33 void
MessageReceived(BMessage * message)34 WorkingLooper::MessageReceived(BMessage* message)
35 {
36 	switch (message->what) {
37 		case kMsgStart:
38 		{
39 			if (fActionRequested == UPDATE_CHECK_ONLY) {
40 				fCheckAction = new CheckAction(fVerbose);
41 				fCheckAction->Perform();
42 			} else {
43 				fUpdateAction = new UpdateAction(fVerbose);
44 				fUpdateAction->Perform(fActionRequested);
45 			}
46 			break;
47 		}
48 
49 		default:
50 			BLooper::MessageReceived(message);
51 	}
52 }
53