2
2
#define FIREBASE_FIRESTORE_CLIENT_CPP_SRC_INCLUDE_FIREBASE_CSHARP_TYPEMAP_HELPER_H_
3
3
4
4
#include < string>
5
+ #include < utility>
5
6
6
7
#include " firebase/firestore/document_reference.h"
7
8
#include " firebase/firestore/document_snapshot.h"
@@ -16,18 +17,34 @@ namespace firebase {
16
17
namespace firestore {
17
18
namespace csharp {
18
19
19
- struct TransactionGetResult {
20
- DocumentSnapshot snapshot;
21
- Error error_code = Error::kErrorUnknown ;
22
- std::string error_message;
20
+ class TransactionGetResult {
21
+ public:
22
+ TransactionGetResult (DocumentSnapshot snapshot, Error error_code,
23
+ std::string error_message)
24
+ : snapshot_(std::move(snapshot)),
25
+ error_code_ (error_code),
26
+ error_message_(std::move(error_message)) {}
27
+
28
+ DocumentSnapshot TakeSnapshot () { return std::move (snapshot_); }
29
+
30
+ Error error_code () const { return error_code_; }
31
+
32
+ const std::string& error_message () const { return error_message_; }
33
+
34
+ private:
35
+ DocumentSnapshot snapshot_;
36
+ Error error_code_ = Error::kErrorUnknown ;
37
+ std::string error_message_;
23
38
};
24
39
25
40
TransactionGetResult TransactionGet (Transaction* transaction,
26
41
const DocumentReference& document) {
27
- TransactionGetResult result;
28
- result.snapshot =
29
- transaction->Get (document, &result.error_code , &result.error_message );
30
- return result;
42
+ Error error_code = Error::kErrorUnknown ;
43
+ std::string error_message;
44
+ DocumentSnapshot snapshot =
45
+ transaction->Get (document, &error_code, &error_message);
46
+ return TransactionGetResult (std::move (snapshot), error_code,
47
+ std::move (error_message));
31
48
}
32
49
33
50
} // namespace csharp
0 commit comments