You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@mesos.apache.org by Benjamin Bannier <be...@mesosphere.io> on 2017/09/13 15:23:15 UTC

Review Request 62282: Fixed 'operator==' for 'Resource::DiskInfo::Source'.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/62282/
-----------------------------------------------------------

Review request for mesos, Jie Yu and Jan Schlicht.


Repository: mesos


Description
-------

When implementing 'operator==' for protobufs as a patter we typically
first check that two 'optional' fields are set for both the left- and
righthand side, and only then compare their values, e.g., given a
definition

    message Foo {
      optional string bar = 1;
    }

we would implement 'operator==' similar to the following,

   bool operator==(const Foo& lhs, const Foo& rhs)
   {
       if (lhs.has_bar() != rhs.has_bar()) {
         return false;
       }

       if (lhs.bar() != rhs.bar()) {
         return false;
       }

       return true;
   }

One reason for this is that it allows us to distinguish an unset field
from a set field containing a default constructed value (if e.g.,
above 'lhs.has_bar()' was 'false', 'lhs.bar()' would return an empty
string).

This patch makes sure we use the same pattern when checking
'Resource::DiskInfo::Source' for equality.


Diffs
-----

  src/common/resources.cpp 14b600ca1577be4910164396c75b866b53439ade 


Diff: https://reviews.apache.org/r/62282/diff/1/


Testing
-------

`make check`


Thanks,

Benjamin Bannier


Re: Review Request 62282: Fixed 'operator==' for 'Resource::DiskInfo::Source'.

Posted by Jie Yu <yu...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/62282/#review185302
-----------------------------------------------------------


Ship it!




Ship It!

- Jie Yu


On Sept. 13, 2017, 3:23 p.m., Benjamin Bannier wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/62282/
> -----------------------------------------------------------
> 
> (Updated Sept. 13, 2017, 3:23 p.m.)
> 
> 
> Review request for mesos, Jie Yu and Jan Schlicht.
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> When implementing 'operator==' for protobufs as a patter we typically
> first check that two 'optional' fields are set for both the left- and
> righthand side, and only then compare their values, e.g., given a
> definition
> 
>     message Foo {
>       optional string bar = 1;
>     }
> 
> we would implement 'operator==' similar to the following,
> 
>    bool operator==(const Foo& lhs, const Foo& rhs)
>    {
>        if (lhs.has_bar() != rhs.has_bar()) {
>          return false;
>        }
> 
>        if (lhs.bar() != rhs.bar()) {
>          return false;
>        }
> 
>        return true;
>    }
> 
> One reason for this is that it allows us to distinguish an unset field
> from a set field containing a default constructed value (if e.g.,
> above 'lhs.has_bar()' was 'false', 'lhs.bar()' would return an empty
> string).
> 
> This patch makes sure we use the same pattern when checking
> 'Resource::DiskInfo::Source' for equality.
> 
> 
> Diffs
> -----
> 
>   src/common/resources.cpp 14b600ca1577be4910164396c75b866b53439ade 
> 
> 
> Diff: https://reviews.apache.org/r/62282/diff/1/
> 
> 
> Testing
> -------
> 
> `make check`
> 
> 
> Thanks,
> 
> Benjamin Bannier
> 
>