CatapultServer  v0.5.0.1 (Elephant)
MongoErrorPolicy.h
Go to the documentation of this file.
1 
21 #pragma once
23 #include <string>
24 
25 namespace catapult { namespace mongo { struct BulkWriteResult; } }
26 
27 namespace catapult { namespace mongo {
28 
31  public:
33  enum class Mode {
35  Strict,
36 
40  };
41 
42  public:
44  explicit MongoErrorPolicy(const std::string& collectionName, Mode mode);
45 
46  public:
48  Mode mode() const;
49 
50  public:
52  void checkDeleted(uint64_t numExpected, const BulkWriteResult& result, const std::string& itemsDescription) const;
53 
55  void checkDeletedAtLeast(uint64_t numExpected, const BulkWriteResult& result, const std::string& itemsDescription) const;
56 
58  void checkInserted(uint64_t numExpected, const BulkWriteResult& result, const std::string& itemsDescription) const;
59 
61  void checkUpserted(uint64_t numExpected, const BulkWriteResult& result, const std::string& itemsDescription) const;
62 
63  private:
64  [[noreturn]]
66  const char* operation,
67  uint64_t numExpected,
68  uint64_t numActual,
69  const std::string& itemsDescription) const;
70 
71  private:
72  std::string m_collectionName;
74  };
75 }}
MapperUtils.h
exceptions.h
catapult::mongo::BulkWriteResult::NumInserted
int32_t NumInserted
Number of documents that were inserted.
Definition: BulkWriteResult.h:64
catapult::mongo::mappers::ToUint32
uint32_t ToUint32(int32_t value)
Converts a 32 bit signed value to a 32 bit unsigned value.
Definition: MapperUtils.cpp:46
catapult::mongo::BulkWriteResult::NumUpserted
int32_t NumUpserted
Number of documents that were inserted because no document matched.
Definition: BulkWriteResult.h:76
catapult::mongo::BulkWriteResult::NumDeleted
int32_t NumDeleted
Number of existing documents that were deleted.
Definition: BulkWriteResult.h:73
catapult::mongo::BulkWriteResult
Result of a bulk write operation to the database.
Definition: BulkWriteResult.h:27
catapult::mongo::MongoErrorPolicy::formatMessageAndThrow
void formatMessageAndThrow(const char *operation, uint64_t numExpected, uint64_t numActual, const std::string &itemsDescription) const
Definition: MongoErrorPolicy.cpp:81
catapult::mongo::MongoErrorPolicy
Error policy for checking mongo operation results.
Definition: MongoErrorPolicy.h:30
catapult::mongo::MongoErrorPolicy::m_collectionName
std::string m_collectionName
Definition: MongoErrorPolicy.h:72
m_collectionName
std::string m_collectionName
Definition: MongoTransactionStorage.cpp:93
catapult::mongo::MongoErrorPolicy::checkUpserted
void checkUpserted(uint64_t numExpected, const BulkWriteResult &result, const std::string &itemsDescription) const
Checks that result indicates exactly numExpected upsertions occurred given itemsDescription.
Definition: MongoErrorPolicy.cpp:73
catapult::mongo::MongoErrorPolicy::Mode::Idempotent
MongoBulkWriter.h
catapult::mongo::MongoErrorPolicy::mode
Mode mode() const
Gets the error policy mode.
Definition: MongoErrorPolicy.cpp:39
catapult::utils::MoveOnly
A class that can be moved but not copied.
Definition: NonCopyable.h:43
catapult::mongo::MongoErrorPolicy::m_mode
Mode m_mode
Definition: MongoErrorPolicy.h:73
catapult::mongo::MongoErrorPolicy::checkDeletedAtLeast
void checkDeletedAtLeast(uint64_t numExpected, const BulkWriteResult &result, const std::string &itemsDescription) const
Checks that result indicates at least numExpected deletions occurred given itemsDescription.
Definition: MongoErrorPolicy.cpp:51
MongoErrorPolicy.h
CATAPULT_THROW_RUNTIME_ERROR
#define CATAPULT_THROW_RUNTIME_ERROR(MESSAGE)
Macro used to throw a catapult runtime error.
Definition: exceptions.h:167
catapult::mongo::MongoErrorPolicy::Mode
Mode
Error policy modes.
Definition: MongoErrorPolicy.h:33
catapult::mongo::MongoErrorPolicy::checkDeleted
void checkDeleted(uint64_t numExpected, const BulkWriteResult &result, const std::string &itemsDescription) const
Checks that result indicates exactly numExpected deletions occurred given itemsDescription.
Definition: MongoErrorPolicy.cpp:43
catapult::mongo::MongoErrorPolicy::MongoErrorPolicy
MongoErrorPolicy(const std::string &collectionName, Mode mode)
Creates an error policy around collectionName using error policy mode.
Definition: MongoErrorPolicy.cpp:34
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::mongo::MongoErrorPolicy::Mode::Strict
Strictest mode that requires exact matching.
catapult::mongo::MongoErrorPolicy::checkInserted
void checkInserted(uint64_t numExpected, const BulkWriteResult &result, const std::string &itemsDescription) const
Checks that result indicates exactly numExpected insertions occurred given itemsDescription.
Definition: MongoErrorPolicy.cpp:65
catapult::mongo::BulkWriteResult::NumModified
int32_t NumModified
Number of existing documents that were modified.
Definition: BulkWriteResult.h:70
NonCopyable.h