TaskOutcomeReader.h
Go to the documentation of this file.
1#pragma once
2
6
8
10{
11
13 {
14 public:
17
18 struct Query
19 {
20 std::string providerName;
21 std::optional<TaskType> taskTypeFilter;
22 std::optional<TaskOutcomeType> outcomeFilter;
25 };
26
27 struct Result
28 {
29 std::vector<TaskOutcome> outcomes{};
30
37
38 std::string errorMessage = "";
39
40 operator bool() const noexcept
41 {
42 return status != Status::Error;
43 }
44 };
45
46 Result query(const Query& query) const;
47
48 std::vector<TaskOutcome> queryByTaskType(TaskType taskType,
49 const Duration& maxAge) const;
50
51 std::vector<TaskOutcome> queryFailures(const Duration& maxAge) const;
52
53 protected:
55
56 std::vector<TaskOutcome>
57 asTaskOutcomes(const wm::ProviderSegment& providerSegment,
58 const DateTime& timestamp,
59 const Duration& maxAge,
60 const std::optional<TaskType>& taskTypeFilter,
61 const std::optional<TaskOutcomeType>& outcomeFilter) const;
62
63 std::string propertyPrefix() const override;
64 Properties defaultProperties() const override;
65 };
66
67} // namespace armarx::armem::task_outcome::client
std::string timestamp()
The query::Builder class provides a fluent-style specification of hierarchical queries.
Definition Builder.h:22
std::vector< TaskOutcome > queryByTaskType(TaskType taskType, const Duration &maxAge) const
std::vector< TaskOutcome > queryFailures(const Duration &maxAge) const
::armarx::armem::client::query::Builder buildQuery(const Query &query) const
std::vector< TaskOutcome > asTaskOutcomes(const wm::ProviderSegment &providerSegment, const DateTime &timestamp, const Duration &maxAge, const std::optional< TaskType > &taskTypeFilter, const std::optional< TaskOutcomeType > &outcomeFilter) const
Represents a point in time.
Definition DateTime.h:25
armarx::core::time::DateTime Time
armarx::core::time::Duration Duration
enum armarx::armem::task_outcome::client::TaskOutcomeReader::Result::Status status