17 #ifndef __MESOS_V1_HPP__
18 #define __MESOS_V1_HPP__
24 #include <boost/functional/hash.hpp>
26 #include <google/protobuf/repeated_field.h>
28 #include <mesos/v1/mesos.pb.h>
46 bool operator==(
const CommandInfo& left,
const CommandInfo& right);
47 bool operator==(
const CommandInfo::URI& left,
const CommandInfo::URI& right);
48 bool operator==(
const ContainerInfo& left,
const ContainerInfo& right);
49 bool operator==(
const Credential& left,
const Credential& right);
50 bool operator==(
const CSIPluginInfo& left,
const CSIPluginInfo& right);
53 const CSIPluginContainerInfo& left,
54 const CSIPluginContainerInfo& right);
56 bool operator==(
const DiscoveryInfo& left,
const DiscoveryInfo& right);
57 bool operator==(
const Environment& left,
const Environment& right);
58 bool operator==(
const ExecutorInfo& left,
const ExecutorInfo& right);
59 bool operator==(
const FileInfo& left,
const FileInfo& right);
60 bool operator==(
const Label& left,
const Label& right);
61 bool operator==(
const Labels& left,
const Labels& right);
62 bool operator==(
const MasterInfo& left,
const MasterInfo& right);
65 const ResourceProviderInfo& left,
66 const ResourceProviderInfo& right);
69 const ResourceStatistics& left,
70 const ResourceStatistics& right);
72 bool operator==(
const AgentInfo& left,
const AgentInfo& right);
73 bool operator==(
const TaskStatus& left,
const TaskStatus& right);
74 bool operator==(
const URL& left,
const URL& right);
75 bool operator==(
const Volume& left,
const Volume& right);
77 bool operator!=(
const Labels& left,
const Labels& right);
78 bool operator!=(
const TaskStatus& left,
const TaskStatus& right);
81 inline bool operator==(
const ContainerID& left,
const ContainerID& right)
83 return left.value() == right.value();
87 inline bool operator==(
const ExecutorID& left,
const ExecutorID& right)
89 return left.value() == right.value();
93 inline bool operator==(
const FrameworkID& left,
const FrameworkID& right)
95 return left.value() == right.value();
99 inline bool operator==(
const FrameworkInfo& left,
const FrameworkInfo& right)
101 return (left.name() == right.name()) && (left.user() == right.user());
105 inline bool operator==(
const OfferID& left,
const OfferID& right)
107 return left.value() == right.value();
111 inline bool operator==(
const OperationID& left,
const OperationID& right)
113 return left.value() == right.value();
118 const ResourceProviderID& left,
119 const ResourceProviderID& right)
121 return left.value() == right.value();
125 inline bool operator==(
const AgentID& left,
const AgentID& right)
127 return left.value() == right.value();
131 inline bool operator==(
const TaskID& left,
const TaskID& right)
133 return left.value() == right.value();
137 inline bool operator==(
const TimeInfo& left,
const TimeInfo& right)
139 return left.nanoseconds() == right.nanoseconds();
143 inline bool operator==(
const DurationInfo& left,
const DurationInfo& right)
145 return left.nanoseconds() == right.nanoseconds();
149 inline bool operator==(
const ContainerID& left,
const std::string& right)
151 return left.value() == right;
155 inline bool operator==(
const ExecutorID& left,
const std::string& right)
157 return left.value() == right;
161 inline bool operator==(
const FrameworkID& left,
const std::string& right)
163 return left.value() == right;
167 inline bool operator==(
const OfferID& left,
const std::string& right)
169 return left.value() == right;
173 inline bool operator==(
const AgentID& left,
const std::string& right)
175 return left.value() == right;
179 inline bool operator==(
const TaskID& left,
const std::string& right)
181 return left.value() == right;
186 const DomainInfo::FaultDomain::RegionInfo& left,
187 const DomainInfo::FaultDomain::RegionInfo& right)
189 return left.name() == right.name();
194 const DomainInfo::FaultDomain::ZoneInfo& left,
195 const DomainInfo::FaultDomain::ZoneInfo& right)
197 return left.name() == right.name();
202 const DomainInfo::FaultDomain& left,
203 const DomainInfo::FaultDomain& right)
205 return left.region() == right.region() && left.zone() == right.zone();
209 inline bool operator==(
const DomainInfo& left,
const DomainInfo& right)
211 return left.fault_domain() == right.fault_domain();
219 inline bool operator==(
const MachineID& left,
const MachineID& right)
223 return left.has_hostname() == right.has_hostname() &&
225 left.has_ip() == right.has_ip() &&
226 left.ip() == right.ip();
230 inline bool operator!=(
const ContainerID& left,
const ContainerID& right)
232 return left.value() != right.value();
237 const CSIPluginContainerInfo& left,
238 const CSIPluginContainerInfo& right)
240 return !(left == right);
244 inline bool operator!=(
const ExecutorID& left,
const ExecutorID& right)
246 return left.value() != right.value();
250 inline bool operator!=(
const FrameworkID& left,
const FrameworkID& right)
252 return left.value() != right.value();
256 inline bool operator!=(
const OperationID& left,
const OperationID& right)
258 return left.value() != right.value();
263 const ResourceProviderID& left,
264 const ResourceProviderID& right)
266 return left.value() != right.value();
271 const ResourceProviderInfo& left,
272 const ResourceProviderInfo& right)
274 return !(left == right);
278 inline bool operator!=(
const AgentID& left,
const AgentID& right)
280 return left.value() != right.value();
284 inline bool operator!=(
const TimeInfo& left,
const TimeInfo& right)
286 return !(left == right);
290 inline bool operator!=(
const DurationInfo& left,
const DurationInfo& right)
292 return !(left == right);
297 const DomainInfo::FaultDomain::RegionInfo& left,
298 const DomainInfo::FaultDomain::RegionInfo& right)
300 return left.name() != right.name();
304 inline bool operator<(
const ContainerID& left,
const ContainerID& right)
306 return left.value() < right.value();
310 inline bool operator<(
const ExecutorID& left,
const ExecutorID& right)
312 return left.value() < right.value();
316 inline bool operator<(
const FrameworkID& left,
const FrameworkID& right)
318 return left.value() < right.value();
322 inline bool operator<(
const OfferID& left,
const OfferID& right)
324 return left.value() < right.value();
328 inline bool operator<(
const AgentID& left,
const AgentID& right)
330 return left.value() < right.value();
334 inline bool operator<(
const TaskID& left,
const TaskID& right)
336 return left.value() < right.value();
341 std::ostream& stream,
342 const CapabilityInfo& capabilityInfo);
346 std::ostream& stream,
350 std::ostream&
operator<<(std::ostream& stream,
const ContainerID& containerId);
354 std::ostream& stream,
355 const ContainerInfo& containerInfo);
358 std::ostream&
operator<<(std::ostream& stream,
const DomainInfo& domainInfo);
361 std::ostream&
operator<<(std::ostream& stream,
const ExecutorID& executorId);
364 std::ostream&
operator<<(std::ostream& stream,
const ExecutorInfo& executor);
367 std::ostream&
operator<<(std::ostream& stream,
const FrameworkID& frameworkId);
370 std::ostream&
operator<<(std::ostream& stream,
const MasterInfo& master);
373 std::ostream&
operator<<(std::ostream& stream,
const OfferID& offerId);
376 std::ostream&
operator<<(std::ostream& stream,
const OperationID& operationId);
379 std::ostream&
operator<<(std::ostream& stream,
const OperationState& state);
382 std::ostream&
operator<<(std::ostream& stream,
const RateLimits& limits);
385 std::ostream&
operator<<(std::ostream& stream,
const RLimitInfo& limits);
389 std::ostream& stream,
390 const ResourceProviderID& resourceProviderId);
394 std::ostream& stream,
395 const ResourceProviderInfo& resourceProviderInfo);
398 std::ostream&
operator<<(std::ostream& stream,
const AgentID& agentId);
401 std::ostream&
operator<<(std::ostream& stream,
const AgentInfo& agent);
404 std::ostream&
operator<<(std::ostream& stream,
const TaskID& taskId);
407 std::ostream&
operator<<(std::ostream& stream,
const MachineID& machineId);
410 std::ostream&
operator<<(std::ostream& stream,
const TaskInfo& task);
414 std::ostream& stream,
415 const TaskGroupInfo& taskGroupInfo);
418 std::ostream&
operator<<(std::ostream& stream,
const TaskState& state);
425 std::ostream& stream,
426 const CSIPluginContainerInfo::Service& service);
430 std::ostream& stream,
441 std::ostream& stream,
446 std::ostream& stream,
450 template <
typename T>
452 std::ostream& stream,
453 const google::protobuf::RepeatedPtrField<T>& messages)
456 for (
auto it = messages.begin(); it != messages.end(); ++it) {
457 if (it != messages.begin()) {
467 template <
typename T>
469 std::ostream& stream,
470 const std::vector<T>& messages)
473 for (
auto it = messages.begin(); it != messages.end(); ++it) {
474 if (it != messages.begin()) {
485 std::ostream& stream,
494 struct hash<mesos::v1::CommandInfo::URI>
508 if (uri.executable()) {
512 boost::hash_combine(seed, uri.value());
519 struct hash<mesos::v1::ContainerID>
528 boost::hash_combine(seed, containerId.value());
535 struct hash<mesos::v1::ExecutorID>
544 boost::hash_combine(seed, executorId.value());
551 struct hash<mesos::v1::FrameworkID>
560 boost::hash_combine(seed, frameworkId.value());
567 struct hash<mesos::v1::OfferID>
576 boost::hash_combine(seed, offerId.value());
583 struct hash<mesos::v1::AgentID>
592 boost::hash_combine(seed, agentId.value());
599 struct hash<mesos::v1::TaskID>
608 boost::hash_combine(seed, taskId.value());
615 struct hash<mesos::v1::TaskState>
624 return static_cast<size_t>(taskState);
630 struct hash<mesos::v1::TaskStatus_Source>
639 return static_cast<size_t>(source);
645 struct hash<mesos::v1::TaskStatus_Reason>
654 return static_cast<size_t>(reason);
669 return static_cast<size_t>(imageType);
675 struct hash<std::pair<mesos::v1::FrameworkID, mesos::v1::ExecutorID>>
693 struct hash<mesos::v1::MachineID>
703 boost::hash_combine(seed, machineId.ip());
710 struct hash<mesos::v1::OperationID>
719 boost::hash_combine(seed, operationId.value());
726 struct hash<mesos::v1::ResourceProviderID>
735 boost::hash_combine(seed, resourceProviderId.value());
742 #endif // __MESOS_V1_HPP__
mesos::v1::TaskStatus_Source argument_type
Definition: mesos.hpp:634
result_type operator()(const argument_type &source) const
Definition: mesos.hpp:636
size_t result_type
Definition: mesos.hpp:585
mesos::v1::ContainerID argument_type
Definition: mesos.hpp:523
mesos::v1::ResourceProviderID argument_type
Definition: mesos.hpp:730
mesos::v1::ExecutorID argument_type
Definition: mesos.hpp:539
result_type operator()(const argument_type &uri) const
Definition: mesos.hpp:500
size_t result_type
Definition: mesos.hpp:569
Definition: mesos.hpp:535
size_t result_type
Definition: mesos.hpp:553
result_type operator()(const argument_type &resourceProviderId) const
Definition: mesos.hpp:732
mesos::v1::TaskState argument_type
Definition: mesos.hpp:619
result_type operator()(const argument_type &taskState) const
Definition: mesos.hpp:621
size_t result_type
Definition: mesos.hpp:728
Capability
Definition: capabilities.hpp:35
result_type operator()(const argument_type &reason) const
Definition: mesos.hpp:651
std::pair< mesos::v1::FrameworkID, mesos::v1::ExecutorID > argument_type
Definition: mesos.hpp:680
mesos::v1::MachineID argument_type
Definition: mesos.hpp:697
size_t result_type
Definition: mesos.hpp:496
mesos::v1::FrameworkID argument_type
Definition: mesos.hpp:555
Iterable< V > map(F &&f, const Iterable< U, Us...> &input)
Definition: lambda.hpp:45
result_type operator()(const argument_type &executorId) const
Definition: mesos.hpp:541
size_t result_type
Definition: mesos.hpp:632
size_t result_type
Definition: mesos.hpp:677
bool operator==(const CommandInfo &left, const CommandInfo &right)
size_t result_type
Definition: mesos.hpp:695
size_t result_type
Definition: mesos.hpp:712
mesos::v1::AgentID argument_type
Definition: mesos.hpp:587
mesos::v1::TaskStatus_Reason argument_type
Definition: mesos.hpp:649
result_type operator()(const argument_type &frameworkId) const
Definition: mesos.hpp:557
mesos::v1::OperationID argument_type
Definition: mesos.hpp:714
Type
Definition: capabilities.hpp:79
Definition: mesos.hpp:551
result_type operator()(const argument_type &imageType) const
Definition: mesos.hpp:666
mesos::v1::Image::Type argument_type
Definition: mesos.hpp:664
size_t result_type
Definition: mesos.hpp:617
Try< uint32_t > type(const std::string &path)
bool operator<(const ContainerID &left, const ContainerID &right)
Definition: mesos.hpp:304
size_t result_type
Definition: mesos.hpp:647
mesos::v1::TaskID argument_type
Definition: mesos.hpp:603
size_t result_type
Definition: mesos.hpp:537
bool operator!=(const Labels &left, const Labels &right)
result_type operator()(const argument_type &offerId) const
Definition: mesos.hpp:573
size_t result_type
Definition: mesos.hpp:601
result_type operator()(const argument_type &machineId) const
Definition: mesos.hpp:699
result_type operator()(const argument_type &containerId) const
Definition: mesos.hpp:525
mesos::v1::OfferID argument_type
Definition: mesos.hpp:571
result_type operator()(const argument_type &operationId) const
Definition: mesos.hpp:716
mesos::v1::CommandInfo::URI argument_type
Definition: mesos.hpp:498
result_type operator()(const argument_type &taskId) const
Definition: mesos.hpp:605
size_t result_type
Definition: mesos.hpp:662
std::string lower(const std::string &s)
Definition: strings.hpp:412
std::ostream & operator<<(std::ostream &stream, const Attribute &attribute)
result_type operator()(const argument_type &pair) const
Definition: mesos.hpp:682
Option< Error > checkStatusInfo(const CheckStatusInfo &checkStatusInfo)
size_t result_type
Definition: mesos.hpp:521
result_type operator()(const argument_type &agentId) const
Definition: mesos.hpp:589