#
0de3219e |
|
14-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Rework error and issue propagation to client * BDaemonClient: Move inner class BCommitTransactionResult to top level and make it public. * BCommitTransactionResult: - Add a whole bunch of specific error code enum values. Such an error code is now the primary error, as opposed to before where we would mix status_t and enum value errors. There's a systemError property of type status_t which may provide additional information, though (depending on the primary error type). - Remove the errorMessage property. Due to mapping all errors to the specific error codes this is no longer necessary. Mixing such a message with another error description is also not very helpful when it comes to localization (still not supported, though). - Add several properties (paths, strings, error codes) that serve as arguments to the primary error and are used by FullErrorMessage(). - Add issues property, a list of instances of new class BTransactionIssue. Those describe non-critical issues (e.g. failed update of a settings file) that occurred in the process of committing the transaction. Those issues should be presented to the user by the package management program. * Exception: Adjust to transport the BCommitTransactionResult properties. * CommitTransactionHandler, FsTransactions, Root, Volume: Adjust to BCommitTransactionResult/Exception changes. * CommitTransactionHandler: Now requires a BCommitTransactionResult to which it adds the issues it encounters. The reply BMessage is no longer needed, though. * Volume: Refactor common code from the three methods that use CommitTransactionHandler into new method _CommitTransaction.
|
#
df266f1c |
|
21-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BDaemonClient::CommitTransaction(): Align with documentation The method is supposed to return B_OK as long as the _result object has been initialized, even if committing the transaction failed. Fixes the unhelpful error messages of pkgman when committing the transaction failed for some reason.
|
#
d4f9c465 |
|
10-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BDaemonClient: add comment
|
#
6a143071 |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BDaemonClient: Add support for creating activation transactions * BActivationTransaction: - Remove non-trivial constructor. - Remove package list parameters from SetTo(). - Add AddPackageTo{Dea,A}ctivate(). * BDaemonClient: - Add CreateTransaction(). It creates a transaction directory and initializes a BActivationTransaction. Packages to de-/activate have to be added afterwards. - Add BCommitTransactionResult::FullErrorMessage().
|
#
85d2badf |
|
19-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Add support for activation change request * daemon: Handle new request B_MESSAGE_COMMIT_TRANSACTION. It activates and deactivates given sets of packages. The new packages must be placed in a directory in the administrative directory. The daemon moves them to the packages directory and the deactivated packages to a subdirectory it creates. It also save the old activation state there. * Add private BActivationTransaction, describing an activation change transaction. * BDaemonClient: Add CommitTransaction(), which sends a given BActivationTransaction as a B_MESSAGE_COMMIT_TRANSACTION request to the daemon. Completely untested yet.
|
#
e6216e37 |
|
14-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implement getting a BInstallationLocationInfo * Rename PackageDaemonDefs.h to DaemonDefs.h. * Replace the MESSAGE_GET_PACKAGES by the new B_MESSAGE_GET_INSTALLATION_LOCATION_INFO, which not only returns the packages, but also other information about the installation location. * daemon: Volume: Implement a change count which is bumped whenever packages are activated/deactivated/added/removed. Cache the reply for a location info request, using the change count to check whether it is still up-to-date. * Add private BDaemonClient for communication with the daemon. * BRoster: - Add GetInstallationLocationInfo() using BDaemonClient. - Reimplement GetActivePackages(), using GetInstallationLocationInfo().
|
#
0de3219e339506a0c94b584a0df0287414437033 |
|
14-Jun-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Rework error and issue propagation to client * BDaemonClient: Move inner class BCommitTransactionResult to top level and make it public. * BCommitTransactionResult: - Add a whole bunch of specific error code enum values. Such an error code is now the primary error, as opposed to before where we would mix status_t and enum value errors. There's a systemError property of type status_t which may provide additional information, though (depending on the primary error type). - Remove the errorMessage property. Due to mapping all errors to the specific error codes this is no longer necessary. Mixing such a message with another error description is also not very helpful when it comes to localization (still not supported, though). - Add several properties (paths, strings, error codes) that serve as arguments to the primary error and are used by FullErrorMessage(). - Add issues property, a list of instances of new class BTransactionIssue. Those describe non-critical issues (e.g. failed update of a settings file) that occurred in the process of committing the transaction. Those issues should be presented to the user by the package management program. * Exception: Adjust to transport the BCommitTransactionResult properties. * CommitTransactionHandler, FsTransactions, Root, Volume: Adjust to BCommitTransactionResult/Exception changes. * CommitTransactionHandler: Now requires a BCommitTransactionResult to which it adds the issues it encounters. The reply BMessage is no longer needed, though. * Volume: Refactor common code from the three methods that use CommitTransactionHandler into new method _CommitTransaction.
|
#
df266f1c937e51c1309e70e77264585b7ba0ce83 |
|
21-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BDaemonClient::CommitTransaction(): Align with documentation The method is supposed to return B_OK as long as the _result object has been initialized, even if committing the transaction failed. Fixes the unhelpful error messages of pkgman when committing the transaction failed for some reason.
|
#
d4f9c465fdbda627baa6a2f7d5ce65e246116e51 |
|
10-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BDaemonClient: add comment
|
#
6a1430716c8746b3a044bb65fb1849e906ae0453 |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
BDaemonClient: Add support for creating activation transactions * BActivationTransaction: - Remove non-trivial constructor. - Remove package list parameters from SetTo(). - Add AddPackageTo{Dea,A}ctivate(). * BDaemonClient: - Add CreateTransaction(). It creates a transaction directory and initializes a BActivationTransaction. Packages to de-/activate have to be added afterwards. - Add BCommitTransactionResult::FullErrorMessage().
|
#
85d2badf007cb152215485db7916578ed6700504 |
|
19-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
package daemon: Add support for activation change request * daemon: Handle new request B_MESSAGE_COMMIT_TRANSACTION. It activates and deactivates given sets of packages. The new packages must be placed in a directory in the administrative directory. The daemon moves them to the packages directory and the deactivated packages to a subdirectory it creates. It also save the old activation state there. * Add private BActivationTransaction, describing an activation change transaction. * BDaemonClient: Add CommitTransaction(), which sends a given BActivationTransaction as a B_MESSAGE_COMMIT_TRANSACTION request to the daemon. Completely untested yet.
|
#
e6216e372af01cc90339fe7afb70c113c99974bd |
|
14-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implement getting a BInstallationLocationInfo * Rename PackageDaemonDefs.h to DaemonDefs.h. * Replace the MESSAGE_GET_PACKAGES by the new B_MESSAGE_GET_INSTALLATION_LOCATION_INFO, which not only returns the packages, but also other information about the installation location. * daemon: Volume: Implement a change count which is bumped whenever packages are activated/deactivated/added/removed. Cache the reply for a location info request, using the change count to check whether it is still up-to-date. * Add private BDaemonClient for communication with the daemon. * BRoster: - Add GetInstallationLocationInfo() using BDaemonClient. - Reimplement GetActivePackages(), using GetInstallationLocationInfo().
|