1 /* 2 * Copyright 2013-2014, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7 #include <package/manager/Exceptions.h> 8 9 #include <stdarg.h> 10 11 12 namespace BPackageKit { 13 14 namespace BManager { 15 16 namespace BPrivate { 17 18 19 // #pragma mark - BException 20 21 22 BException::BException() 23 : 24 fMessage() 25 { 26 } 27 28 29 BException::BException(const BString& message) 30 : 31 fMessage(message) 32 { 33 } 34 35 36 // #pragma mark - BFatalErrorException 37 38 39 BFatalErrorException::BFatalErrorException() 40 : 41 BException(), 42 fDetails(), 43 fError(B_OK), 44 fCommitTransactionResult(), 45 fCommitTransactionFailed(false) 46 { 47 } 48 49 50 BFatalErrorException::BFatalErrorException(const char* format, ...) 51 : 52 BException(), 53 fDetails(), 54 fError(B_OK), 55 fCommitTransactionResult(), 56 fCommitTransactionFailed(false) 57 { 58 va_list args; 59 va_start(args, format); 60 fMessage.SetToFormatVarArgs(format, args); 61 va_end(args); 62 } 63 64 65 BFatalErrorException::BFatalErrorException(status_t error, const char* format, 66 ...) 67 : 68 BException(), 69 fDetails(), 70 fError(error), 71 fCommitTransactionResult(), 72 fCommitTransactionFailed(false) 73 { 74 va_list args; 75 va_start(args, format); 76 fMessage.SetToFormatVarArgs(format, args); 77 va_end(args); 78 } 79 80 81 BFatalErrorException::BFatalErrorException( 82 const BCommitTransactionResult& result) 83 : 84 BException(), 85 fDetails(), 86 fError(B_OK), 87 fCommitTransactionResult(result), 88 fCommitTransactionFailed(true) 89 { 90 fMessage.SetToFormat("failed to commit transaction: %s", 91 result.FullErrorMessage().String()); 92 } 93 94 95 BFatalErrorException& 96 BFatalErrorException::SetDetails(const BString& details) 97 { 98 fDetails = details; 99 return *this; 100 } 101 102 103 // #pragma mark - BAbortedByUserException 104 105 106 BAbortedByUserException::BAbortedByUserException() 107 : 108 BException() 109 { 110 } 111 112 113 // #pragma mark - BNothingToDoException 114 115 116 BNothingToDoException::BNothingToDoException() 117 : 118 BException() 119 { 120 } 121 122 123 } // namespace BPrivate 124 125 } // namespace BManager 126 127 } // namespace BPackageKit 128