17 #ifndef __MESOS_TYPE_UTILS_H__
18 #define __MESOS_TYPE_UTILS_H__
24 #include <boost/functional/hash.hpp>
26 #include <google/protobuf/repeated_field.h>
47 bool operator==(
const CheckStatusInfo& left,
const CheckStatusInfo& right);
48 bool operator==(
const CommandInfo& left,
const CommandInfo& right);
49 bool operator==(
const CommandInfo::URI& left,
const CommandInfo::URI& right);
50 bool operator==(
const ContainerID& left,
const ContainerID& right);
51 bool operator==(
const ContainerInfo& left,
const ContainerInfo& right);
52 bool operator==(
const Credential& left,
const Credential& right);
53 bool operator==(
const CSIPluginInfo& left,
const CSIPluginInfo& right);
56 const CSIPluginContainerInfo& left,
57 const CSIPluginContainerInfo& right);
59 bool operator==(
const DiscoveryInfo& left,
const DiscoveryInfo& right);
60 bool operator==(
const Environment& left,
const Environment& right);
61 bool operator==(
const ExecutorInfo& left,
const ExecutorInfo& right);
62 bool operator==(
const Label& left,
const Label& right);
63 bool operator==(
const Labels& left,
const Labels& right);
64 bool operator==(
const MasterInfo& left,
const MasterInfo& right);
65 bool operator==(
const OperationStatus& left,
const OperationStatus& right);
68 const ResourceProviderInfo& left,
69 const ResourceProviderInfo& right);
72 const ResourceStatistics& left,
73 const ResourceStatistics& right);
75 bool operator==(
const SlaveInfo& left,
const SlaveInfo& right);
76 bool operator==(
const Task& left,
const Task& right);
77 bool operator==(
const TaskGroupInfo& left,
const TaskGroupInfo& right);
78 bool operator==(
const TaskInfo& left,
const TaskInfo& right);
79 bool operator==(
const TaskStatus& left,
const TaskStatus& right);
80 bool operator==(
const URL& left,
const URL& right);
81 bool operator==(
const UUID& left,
const UUID& right);
82 bool operator==(
const Volume& left,
const Volume& right);
84 bool operator!=(
const CheckStatusInfo& left,
const CheckStatusInfo& right);
85 bool operator!=(
const ExecutorInfo& left,
const ExecutorInfo& right);
86 bool operator!=(
const Labels& left,
const Labels& right);
87 bool operator!=(
const OperationStatus& left,
const OperationStatus& right);
89 bool operator!=(
const TaskStatus& left,
const TaskStatus& right);
91 inline bool operator==(
const ExecutorID& left,
const ExecutorID& right)
93 return left.value() == right.value();
97 inline bool operator==(
const FrameworkID& left,
const FrameworkID& right)
99 return left.value() == right.value();
103 inline bool operator==(
const FrameworkInfo& left,
const FrameworkInfo& right)
105 return (left.name() == right.name()) && (left.user() == right.user());
109 inline bool operator==(
const OfferID& left,
const OfferID& right)
111 return left.value() == right.value();
115 inline bool operator==(
const OperationID& left,
const OperationID& right)
117 return left.value() == right.value();
122 const ResourceProviderID& left,
123 const ResourceProviderID& right)
125 return left.value() == right.value();
129 inline bool operator==(
const SlaveID& left,
const SlaveID& right)
131 return left.value() == right.value();
135 inline bool operator==(
const TaskID& left,
const TaskID& right)
137 return left.value() == right.value();
141 inline bool operator==(
const TimeInfo& left,
const TimeInfo& right)
143 return left.nanoseconds() == right.nanoseconds();
147 inline bool operator==(
const DurationInfo& left,
const DurationInfo& right)
149 return left.nanoseconds() == right.nanoseconds();
153 inline bool operator==(
const ContainerID& left,
const std::string& right)
155 return left.value() == right;
159 inline bool operator==(
const ExecutorID& left,
const std::string& right)
161 return left.value() == right;
165 inline bool operator==(
const FrameworkID& left,
const std::string& right)
167 return left.value() == right;
171 inline bool operator==(
const OfferID& left,
const std::string& right)
173 return left.value() == right;
177 inline bool operator==(
const SlaveID& left,
const std::string& right)
179 return left.value() == right;
183 inline bool operator==(
const TaskID& left,
const std::string& right)
185 return left.value() == right;
190 const DomainInfo::FaultDomain::RegionInfo& left,
191 const DomainInfo::FaultDomain::RegionInfo& right)
193 return left.name() == right.name();
198 const DomainInfo::FaultDomain::ZoneInfo& left,
199 const DomainInfo::FaultDomain::ZoneInfo& right)
201 return left.name() == right.name();
206 const DomainInfo::FaultDomain& left,
207 const DomainInfo::FaultDomain& right)
209 return left.region() == right.region() && left.zone() == right.zone();
213 inline bool operator==(
const DomainInfo& left,
const DomainInfo& right)
215 return left.fault_domain() == right.fault_domain();
223 inline bool operator==(
const MachineID& left,
const MachineID& right)
227 return left.has_hostname() == right.has_hostname() &&
229 left.has_ip() == right.has_ip() &&
230 left.ip() == right.ip();
234 inline bool operator!=(
const ContainerID& left,
const ContainerID& right)
236 return !(left == right);
241 const CSIPluginContainerInfo& left,
242 const CSIPluginContainerInfo& right)
244 return !(left == right);
248 inline bool operator!=(
const ExecutorID& left,
const ExecutorID& right)
250 return left.value() != right.value();
254 inline bool operator!=(
const FrameworkID& left,
const FrameworkID& right)
256 return left.value() != right.value();
260 inline bool operator!=(
const OperationID& left,
const OperationID& right)
262 return left.value() != right.value();
267 const ResourceProviderID& left,
268 const ResourceProviderID& right)
270 return left.value() != right.value();
274 inline bool operator!=(
const SlaveID& left,
const SlaveID& right)
276 return left.value() != right.value();
281 const ResourceProviderInfo& left,
282 const ResourceProviderInfo& right)
284 return !(left == right);
288 inline bool operator!=(
const TimeInfo& left,
const TimeInfo& right)
290 return !(left == right);
296 return !(left == right);
300 inline bool operator!=(
const DurationInfo& left,
const DurationInfo& right)
302 return !(left == right);
307 const DomainInfo::FaultDomain::RegionInfo& left,
308 const DomainInfo::FaultDomain::RegionInfo& right)
310 return left.name() != right.name();
314 inline bool operator<(
const ContainerID& left,
const ContainerID& right)
316 return left.value() < right.value();
320 inline bool operator<(
const ExecutorID& left,
const ExecutorID& right)
322 return left.value() < right.value();
326 inline bool operator<(
const FrameworkID& left,
const FrameworkID& right)
328 return left.value() < right.value();
332 inline bool operator<(
const OfferID& left,
const OfferID& right)
334 return left.value() < right.value();
338 inline bool operator<(
const SlaveID& left,
const SlaveID& right)
340 return left.value() < right.value();
344 inline bool operator<(
const TaskID& left,
const TaskID& right)
346 return left.value() < right.value();
351 std::ostream& stream,
352 const CapabilityInfo& capabilityInfo);
356 std::ostream& stream,
357 const DeviceWhitelist& deviceWhitelist);
361 std::ostream& stream,
365 std::ostream&
operator<<(std::ostream& stream,
const CommandInfo& commandInfo);
368 std::ostream&
operator<<(std::ostream& stream,
const ContainerID& containerId);
372 std::ostream& stream,
373 const ContainerInfo& containerInfo);
376 std::ostream&
operator<<(std::ostream& stream,
const DomainInfo& domainInfo);
382 std::ostream&
operator<<(std::ostream& stream,
const ExecutorID& executorId);
385 std::ostream&
operator<<(std::ostream& stream,
const ExecutorInfo& executor);
388 std::ostream&
operator<<(std::ostream& stream,
const FrameworkID& frameworkId);
391 std::ostream&
operator<<(std::ostream& stream,
const MasterInfo& master);
394 std::ostream&
operator<<(std::ostream& stream,
const OfferID& offerId);
397 std::ostream&
operator<<(std::ostream& stream,
const OperationID& operationId);
400 std::ostream&
operator<<(std::ostream& stream,
const OperationState& state);
403 std::ostream&
operator<<(std::ostream& stream,
const RateLimits& limits);
407 std::ostream& stream,
408 const ResourceProviderID& resourceProviderId);
412 std::ostream& stream,
413 const ResourceProviderInfo& resourceProviderInfo);
416 std::ostream&
operator<<(std::ostream& stream,
const RLimitInfo& rlimitInfo);
419 std::ostream&
operator<<(std::ostream& stream,
const SlaveID& slaveId);
422 std::ostream&
operator<<(std::ostream& stream,
const SlaveInfo& slave);
425 std::ostream&
operator<<(std::ostream& stream,
const TaskID& taskId);
428 std::ostream&
operator<<(std::ostream& stream,
const MachineID& machineId);
431 std::ostream&
operator<<(std::ostream& stream,
const TaskInfo& task);
434 std::ostream&
operator<<(std::ostream& stream,
const TaskState& state);
438 std::ostream& stream,
446 std::ostream& stream,
447 const CSIPluginContainerInfo::Service& service);
451 std::ostream& stream,
462 std::ostream& stream,
467 std::ostream& stream,
471 template <
typename T>
473 std::ostream& stream,
474 const google::protobuf::RepeatedPtrField<T>& messages)
477 for (
auto it = messages.begin(); it != messages.end(); ++it) {
478 if (it != messages.begin()) {
488 template <
typename T>
490 std::ostream& stream,
491 const std::vector<T>& messages)
494 for (
auto it = messages.begin(); it != messages.end(); ++it) {
495 if (it != messages.begin()) {
509 struct hash<mesos::CommandInfo_URI>
523 if (uri.executable()) {
527 boost::hash_combine(seed, uri.value());
534 struct hash<mesos::ContainerID>
543 boost::hash_combine(seed, containerId.value());
545 if (containerId.has_parent()) {
557 struct hash<mesos::ExecutorID>
566 boost::hash_combine(seed, executorId.value());
573 struct hash<mesos::FrameworkID>
582 boost::hash_combine(seed, frameworkId.value());
589 struct hash<mesos::OfferID>
598 boost::hash_combine(seed, offerId.value());
605 struct hash<mesos::SlaveID>
614 boost::hash_combine(seed, slaveId.value());
621 struct hash<mesos::TaskID>
630 boost::hash_combine(seed, taskId.value());
637 struct hash<mesos::TaskState>
646 return static_cast<size_t>(taskState);
652 struct hash<mesos::TaskStatus_Source>
661 return static_cast<size_t>(source);
667 struct hash<mesos::TaskStatus_Reason>
676 return static_cast<size_t>(reason);
691 return static_cast<size_t>(imageType);
697 struct hash<std::pair<mesos::FrameworkID, mesos::ExecutorID>>
715 struct hash<mesos::MachineID>
725 boost::hash_combine(seed, machineId.ip());
732 struct hash<mesos::OperationID>
741 boost::hash_combine(seed, operationId.value());
748 struct hash<mesos::ResourceProviderID>
757 boost::hash_combine(seed, resourceProviderId.value());
764 #endif // __MESOS_TYPE_UTILS_H__
std::ostream & operator<<(std::ostream &stream, const Attribute &attribute)
Definition: type_utils.hpp:573
mesos::MachineID argument_type
Definition: type_utils.hpp:719
result_type operator()(const argument_type &executorId) const
Definition: type_utils.hpp:563
size_t result_type
Definition: type_utils.hpp:559
mesos::CommandInfo_URI argument_type
Definition: type_utils.hpp:513
result_type operator()(const argument_type &containerId) const
Definition: type_utils.hpp:540
mesos::Image::Type argument_type
Definition: type_utils.hpp:686
result_type operator()(const argument_type &slaveId) const
Definition: type_utils.hpp:611
size_t result_type
Definition: type_utils.hpp:623
result_type operator()(const argument_type &resourceProviderId) const
Definition: type_utils.hpp:754
mesos::TaskStatus_Source argument_type
Definition: type_utils.hpp:656
bool operator==(const Resource::ReservationInfo &left, const Resource::ReservationInfo &right)
result_type operator()(const argument_type &offerId) const
Definition: type_utils.hpp:595
mesos::TaskState argument_type
Definition: type_utils.hpp:641
mesos::ContainerID argument_type
Definition: type_utils.hpp:538
Capability
Definition: capabilities.hpp:35
result_type operator()(const argument_type &reason) const
Definition: type_utils.hpp:673
result_type operator()(const argument_type &machineId) const
Definition: type_utils.hpp:721
result_type operator()(const argument_type &uri) const
Definition: type_utils.hpp:515
size_t result_type
Definition: type_utils.hpp:717
bool operator<(const ContainerID &left, const ContainerID &right)
Definition: type_utils.hpp:314
mesos::TaskID argument_type
Definition: type_utils.hpp:625
size_t result_type
Definition: type_utils.hpp:669
size_t result_type
Definition: type_utils.hpp:654
mesos::ResourceProviderID argument_type
Definition: type_utils.hpp:752
mesos::FrameworkID argument_type
Definition: type_utils.hpp:577
size_t result_type
Definition: type_utils.hpp:684
result_type operator()(const argument_type &source) const
Definition: type_utils.hpp:658
bool operator!=(const Resource::ReservationInfo &left, const Resource::ReservationInfo &right)
Environment * environment
size_t result_type
Definition: type_utils.hpp:591
size_t result_type
Definition: type_utils.hpp:639
size_t result_type
Definition: type_utils.hpp:734
result_type operator()(const argument_type &taskId) const
Definition: type_utils.hpp:627
size_t result_type
Definition: type_utils.hpp:511
std::pair< mesos::FrameworkID, mesos::ExecutorID > argument_type
Definition: type_utils.hpp:702
result_type operator()(const argument_type &frameworkId) const
Definition: type_utils.hpp:579
result_type operator()(const argument_type &pair) const
Definition: type_utils.hpp:704
Type
Definition: capabilities.hpp:79
Try< uint32_t > type(const std::string &path)
Definition: type_utils.hpp:534
size_t result_type
Definition: type_utils.hpp:536
mesos::ExecutorID argument_type
Definition: type_utils.hpp:561
result_type operator()(const argument_type &imageType) const
Definition: type_utils.hpp:688
size_t result_type
Definition: type_utils.hpp:607
mesos::SlaveID argument_type
Definition: type_utils.hpp:609
mesos::TaskStatus_Reason argument_type
Definition: type_utils.hpp:671
size_t result_type
Definition: type_utils.hpp:699
std::string lower(const std::string &s)
Definition: strings.hpp:412
Option< Error > checkStatusInfo(const CheckStatusInfo &checkStatusInfo)
mesos::OperationID argument_type
Definition: type_utils.hpp:736
mesos::OfferID argument_type
Definition: type_utils.hpp:593
size_t result_type
Definition: type_utils.hpp:750
result_type operator()(const argument_type &operationId) const
Definition: type_utils.hpp:738
Definition: type_utils.hpp:557
size_t result_type
Definition: type_utils.hpp:575
result_type operator()(const argument_type &taskState) const
Definition: type_utils.hpp:643