----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/11542/#review21462 -----------------------------------------------------------
3rdparty/libprocess/3rdparty/stout/include/stout/bandwidth.hpp <https://reviews.apache.org/r/11542/#comment44460> I'm not sure what you mean by "an event is fired" in your second point? The main hesitation is that if anyone wants to use this nice Bandwidth abstraction, they must use boost. Libstout is a 3rd party library on github, so there is an upside to not relying on boost. :) I like the idea of keeping things precise, but it seems like simplifying this to a double bitsPerSecond is sufficient. There's loss on the way out anyway, as you convert to doubles, correct? If it turns out that we need the extra precision, then we can consider boost/rational at that point? Duration was a simple double implementation, and once we realized it wasn't sufficient, we fixed it. I think the same approach here can keep things simple for now, and adjust if there's a need. Thinking about how this might be used, I would expect nearly all of the cases to operate with Seconds(1) as the duration. In which case, using rational doesn't give us anything, right? Let me know your thoughts! - Ben Mahler On May 31, 2013, 9:20 p.m., Jiang Yan Xu wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/11542/ > ----------------------------------------------------------- > > (Updated May 31, 2013, 9:20 p.m.) > > > Review request for mesos, Benjamin Hindman, Vinod Kone, and Ben Mahler. > > > Description > ------- > > - This implementation uses Boost::rational<uint64_t> to store both the bits > and the nanoseconds as integers to preserve precision. > - It requires the boost lib to be repackaged to include Boost::rational. > - The usage 'rational' handles avoid overflow cases better (it doesn't) than > simply multiply the denominators in various arithmetic operations. > - Bandwidth always >= 0 > - Bandwidth constructor passes 'boost::bad_rational' up when the denominator > is zero. > > > Diffs > ----- > > 3rdparty/libprocess/3rdparty/Makefile.am > 7a9ede62145e3150f7af6675d4384feafd9c0a88 > 3rdparty/libprocess/3rdparty/boost-1.53.0.tar.gz > 770d837aaba23d031b04ad77658f339587174aae > 3rdparty/libprocess/3rdparty/stout/Makefile.am > 84062a0e1dfe4ec04bac7cac5ebaac4b945eb66e > 3rdparty/libprocess/3rdparty/stout/include/stout/bandwidth.hpp PRE-CREATION > 3rdparty/libprocess/3rdparty/stout/tests/bandwidth_tests.cpp PRE-CREATION > > Diff: https://reviews.apache.org/r/11542/diff/ > > > Testing > ------- > > make check > > > Thanks, > > Jiang Yan Xu > >
