xref: /haiku/headers/private/package/DaemonClient.h (revision 17889a8c70dbb3d59c1412f6431968753c767bab)
1 /*
2  * Copyright 2013, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Ingo Weinhold <ingo_weinhold@gmx.de>
7  */
8 #ifndef _PACKAGE__PRIVATE__DAEMON_CLIENT_H_
9 #define _PACKAGE__PRIVATE__DAEMON_CLIENT_H_
10 
11 
12 #include <Messenger.h>
13 #include <package/PackageDefs.h>
14 #include <String.h>
15 
16 #include <package/DaemonDefs.h>
17 
18 
19 class BDirectory;
20 
21 
22 namespace BPackageKit {
23 
24 
25 class BCommitTransactionResult;
26 class BInstallationLocationInfo;
27 class BPackageInfoSet;
28 
29 
30 namespace BPrivate {
31 
32 
33 class BActivationTransaction;
34 
35 
36 class BDaemonClient {
37 public:
38 								BDaemonClient();
39 								~BDaemonClient();
40 
41 			status_t			GetInstallationLocationInfo(
42 									BPackageInstallationLocation location,
43 									BInstallationLocationInfo& _info);
44 			status_t			CommitTransaction(
45 									const BActivationTransaction& transaction,
46 									BCommitTransactionResult& _result);
47 									// B_OK only means _result is initialized,
48 									// not the success of committing the
49 									// transaction
50 
51 			status_t			CreateTransaction(
52 									BPackageInstallationLocation location,
53 									BActivationTransaction& _transaction,
54 									BDirectory& _transactionDirectory);
55 
56 private:
57 			status_t			_InitMessenger();
58 			status_t			_ExtractPackageInfoSet(const BMessage& message,
59 									const char* field, BPackageInfoSet& _infos);
60 
61 private:
62 			BMessenger			fDaemonMessenger;
63 };
64 
65 
66 }	// namespace BPrivate
67 }	// namespace BPackageKit
68 
69 
70 #endif	// _PACKAGE__PRIVATE__DAEMON_CLIENT_H_
71