DHCP initial timeout 0.25s from 4s
[haiku.git] / src / apps / softwareupdater / UpdateAction.cpp
blobb7e9f94202636586201bd8e4f9381caca38f9f16
1 /*
2 * Copyright 2017, Haiku, Inc. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
5 * Authors:
6 * Brian Hill <supernova@warpmail.net>
7 */
10 #include "UpdateAction.h"
12 #include <Application.h>
13 #include <Catalog.h>
14 #include <package/manager/Exceptions.h>
16 #include "constants.h"
19 #undef B_TRANSLATION_CONTEXT
20 #define B_TRANSLATION_CONTEXT "UpdateAction"
23 using namespace BPackageKit;
24 //using namespace BPackageKit::BPrivate;
25 using namespace BPackageKit::BManager::BPrivate;
28 UpdateAction::UpdateAction()
30 fUpdateManager = new(std::nothrow)
31 UpdateManager(B_PACKAGE_INSTALLATION_LOCATION_SYSTEM);
35 UpdateAction::~UpdateAction()
37 delete fUpdateManager;
41 status_t
42 UpdateAction::Perform()
44 try {
45 fUpdateManager->CheckNetworkConnection();
47 fUpdateManager->Init(BPackageManager::B_ADD_INSTALLED_REPOSITORIES
48 | BPackageManager::B_ADD_REMOTE_REPOSITORIES
49 | BPackageManager::B_REFRESH_REPOSITORIES);
51 // These values indicate that all updates should be installed
52 //int packageCount = 0;
53 //const char* const packages = "";
55 // perform the update
56 // fUpdateManager->SetDebugLevel(1);
57 //fUpdateManager->Update(&packages, packageCount);
58 fUpdateManager->FullSync();
59 } catch (BFatalErrorException ex) {
60 fUpdateManager->FinalUpdate(B_TRANSLATE("Updates did not complete"),
61 ex.Message());
62 return ex.Error();
63 } catch (BAbortedByUserException ex) {
64 fprintf(stderr, "Updates aborted by user: %s\n",
65 ex.Message().String());
66 // No need for a final message since user initiated cancel request
67 be_app->PostMessage(kMsgFinalQuit);
68 return B_OK;
69 } catch (BNothingToDoException ex) {
70 fprintf(stderr, "Nothing to do while updating packages : %s\n",
71 ex.Message().String());
72 fUpdateManager->FinalUpdate(B_TRANSLATE("No updates available"),
73 B_TRANSLATE("There were no updates found."));
74 return B_OK;
75 } catch (BException ex) {
76 fprintf(stderr, "Exception occurred while updating packages : %s\n",
77 ex.Message().String());
78 fUpdateManager->FinalUpdate(B_TRANSLATE("Updates did not complete"),
79 ex.Message());
80 return B_ERROR;
83 return B_OK;