hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <garydgreg...@gmail.com>
Subject Re: SocketConfig (v5)
Date Sun, 02 Apr 2017 22:07:55 GMT
On Thu, Feb 16, 2017 at 6:47 AM, sebb <sebbaz@gmail.com> wrote:

> On 15 February 2017 at 19:10, Gary Gregory <garydgregory@gmail.com> wrote:
> > On Wed, Feb 15, 2017 at 7:49 AM, sebb <sebbaz@gmail.com> wrote:
> >
> >> On 15 February 2017 at 05:20, Gary Gregory <garydgregory@gmail.com>
> wrote:
> >> > I like the idea of having at least setTimeout(long, TimeUnit), and as
> a
> >> > convenience setTimeoutMillis. This is Millis because milliseconds is
> the
> >> > underlying scale used by the socket API.
> >> >
> >> > The question is whether we should add a TimeValue class
> >> > setTimeout(TimeValue). The next step is to have a TimeValue subclass
> >> called
> >> > Timeout to make the API even more strongly typed.
> >>
> >> Not sure I see why a timeout period is different from any other time
> >> period.
> >> So I don't see how it helps to use a different class for the setTimeout
> >> method.
> >>
> >> Would there also be a SleepTime sub-class for a pause function?
> >>
> >
> > I do not see use cases at this time for more TimeValue subclasses. It
> > really depends if there is a chance of confusion from the call site's
> POV.
> > For, now, I think a TimeValue class will be enough.
>
> I agree.
>
> However I took your mail to mean you wanted to create a subclass of
> TimeValue called TimeOut:
>

So now yes, I can see a reason for a Timeout subclass.

I can see in the code (e.g.
org.apache.hc.core5.http.HttpConnection.getSocketTimeout()) where timeouts
with values of 0 and -1 are special with 0 = disabled and -1 = undefined.

So I could see factory methods like Timeout.disabled() and
Timeout.undefined() that return singletons; or just define public statics.

Then the code could call aTimeout.isDisabled()/isUndefined() instead of
comparing to magic numbers.

Thoughts?

Gary


> <quote>
> The next step is to have a TimeValue subclass called
> Timeout to make the API even more strongly typed.
>
> We could end up with:
>
> setTimeout(long, TimeUnit)
> setTimeoutMillis(long)
> setTimeout(Timeout)
> </quote>
>
> Do you still think a TimeOut subclass is needed?
>
>
> > Gary
> >
> >
> >>
> >> > We could end up with:
> >> >
> >> > setTimeout(long, TimeUnit)
> >> > setTimeoutMillis(long)
> >> > setTimeout(Timeout)
> >> >
> >> > ?
> >> > Gary
> >> >
> >> > On Fri, Feb 10, 2017 at 4:15 PM, sebb <sebbaz@gmail.com> wrote:
> >> >
> >> >> Does it make sense to use timeout units other than seconds?
> >> >>
> >> >> If not, just use
> >> >>
> >> >> [get|set]TimeoutSeconds
> >> >>
> >> >> Or if there is a need for milliseconds, then either add
> >> >>
> >> >> [get|set]TimeoutMilliSeconds
> >> >>
> >> >> or only provide that.
> >> >>
> >> >>
> >> >>
> >> >> On 10 February 2017 at 19:51, Gary Gregory <garydgregory@gmail.com>
> >> wrote:
> >> >> > On Fri, Feb 10, 2017 at 2:10 AM, Oleg Kalnichevski <
> olegk@apache.org>
> >> >> wrote:
> >> >> >
> >> >> >> On Thu, 2017-02-09 at 14:18 -0800, Gary Gregory wrote:
> >> >> >> > On Thu, Feb 9, 2017 at 1:56 PM, Bhowmik, Bindul
> >> <bindulbhowmik@gmail.
> >> >> >> > com>
> >> >> >> >
> >> >> >>
> >> >> >> ...
> >> >> >>
> >> >> >> > > How about getSoTimeout(TimeUnit) ? Maybe in addition
to
> >> >> >> > > getSoTimeoutMillis().
> >> >> >> > >
> >> >> >> >
> >> >> >> > I'm fine with that. My concern is mostly on the setter
side.
> >> >> >> >
> >> >> >> > Gary
> >> >> >> >
> >> >> >>
> >> >> >> I find getter / setter inconsistency equally not-nice. What
about
> >> using
> >> >> >> a tuple class for all time value settings
> >> >> >>
> >> >> >> class TimeValue {
> >> >> >>   long value;
> >> >> >>   TimeUnit unit;
> >> >> >>
> >> >> >> }
> >> >> >>
> >> >> >> Or some such?
> >> >> >>
> >> >> >
> >> >> > Maybe... this becomes wordy though:
> >> >> >
> >> >> > config.setTimeout(TimeValue.of(1, TimeUnit.SECONDS));
> >> >> >
> >> >> > instead of
> >> >> >
> >> >> > config.setTimeout(1, TimeUnit.SECONDS);
> >> >> >
> >> >> > which is what I see in the JRE here and there.
> >> >> >
> >> >> > The nice thing about TimeValue is that the object that uses it
does
> >> not
> >> >> > need to worry about scale in its implementation.
> >> >> >
> >> >> > If I am coding a Socket class, I have to remember that soTimeout
> is in
> >> >> > milliseconds. If I write the ivar as "soTimeoutMillis" I am
> >> documenting
> >> >> the
> >> >> > scale but I am not enforcing it.
> >> >> >
> >> >> > So I can see that TimeValue, DistanceValue and so one would make
> for
> >> >> safer
> >> >> > modeling. Less risk of crashing that Mars craft because one team
> was
> >> >> > thinking in metric units and the other in imperial units.
> >> >> >
> >> >> > So from an implementer's POV I like TimeValue. But from a user's
> POV
> >> >> should
> >> >> > I have the convenience of setTimeout(long, TimeUnit) AND
> >> >> > setTimeout(TimeValue).
> >> >> >
> >> >> > Gary
> >> >> >
> >> >> >
> >> >> >> Oleg
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> > >
> >> >> >> > > Bindul
> >> >> >> > >
> >> >> >> > > >
> >> >> >> > > > Gary
> >> >> >> > > >
> >> >> >> > > >
> >> >> >> > > > > Oleg
> >> >> >> > > > >
> >> >> >> > > > > ------------------------------
> ------------------------------
> >> -
> >> >> >> > > > > --------
> >> >> >> > > > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> >> >> >> > > > > For additional commands, e-mail: dev-help@hc.apache.org
> >> >> >> > > > >
> >> >> >> > > > >
> >> >> >> > > >
> >> >> >> > > >
> >> >> >> > > > --
> >> >> >> > > > E-Mail: garydgregory@gmail.com | ggregory@apache.org
> >> >> >> > > > Java Persistence with Hibernate, Second Edition
> >> >> >> > > > <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> >> >> >> > >
> >> >> >> > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> >> >> >> > > linkCode=as2&tag=garygregory-
> >> >> >> > > 20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
> >> >> >> > > >
> >> >> >> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-
> >> >> >> > > > 20&l=am2&o=1&a=
> >> >> >> > >
> >> >> >> > > 1617290459>
> >> >> >> > > > JUnit in Action, Second Edition
> >> >> >> > > > <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> >> >> >> > >
> >> >> >> > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> >> >> >> > > linkCode=as2&tag=garygregory-
> >> >> >> > > 20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22
> >> >> >> > > >
> >> >> >> > > >
> >> >> >> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-
> >> >> >> > > > 20&l=am2&o=1&a=
> >> >> >> > >
> >> >> >> > > 1935182021>
> >> >> >> > > > Spring Batch in Action
> >> >> >> > > > <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> >> >> >> > >
> >> >> >> > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> >> >> >> > > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> >> >> >> > > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> >> >> >> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-
> >> >> >> > > > 20&l=am2&o=1&a=
> >> >> >> > >
> >> >> >> > > 1935182951>
> >> >> >> > > > Blog: http://garygregory.wordpress.com
> >> >> >> > > > Home: http://garygregory.com/
> >> >> >> > > > Tweet! http://twitter.com/GaryGregory
> >> >> >> > >
> >> >> >> > > ------------------------------------------------------------
> >> -----
> >> >> >> > > ----
> >> >> >> > > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> >> >> >> > > For additional commands, e-mail: dev-help@hc.apache.org
> >> >> >> > >
> >> >> >> > >
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >> ------------------------------------------------------------
> >> ---------
> >> >> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> >> >> >> For additional commands, e-mail: dev-help@hc.apache.org
> >> >> >>
> >> >> >>
> >> >> >
> >> >> >
> >> >> > --
> >> >> > E-Mail: garydgregory@gmail.com | ggregory@apache.org
> >> >> > Java Persistence with Hibernate, Second Edition
> >> >> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> >> >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> >> >> linkCode=as2&tag=garygregory-20&linkId=
> cadb800f39946ec62ea2b1af9fe6a2
> >> b8>
> >> >> >
> >> >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=
> >> garygregory-20&l=am2&o=1&a=
> >> >> 1617290459>
> >> >> > JUnit in Action, Second Edition
> >> >> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> >> >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> >> >> linkCode=as2&tag=garygregory-20&linkId=
> 31ecd1f6b6d1eaf8886ac902a24de4
> >> 18%22
> >> >> >
> >> >> >
> >> >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=
> >> garygregory-20&l=am2&o=1&a=
> >> >> 1935182021>
> >> >> > Spring Batch in Action
> >> >> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> >> >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> >> >> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> >> >> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> >> >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=
> >> garygregory-20&l=am2&o=1&a=
> >> >> 1935182951>
> >> >> > Blog: http://garygregory.wordpress.com
> >> >> > Home: http://garygregory.com/
> >> >> > Tweet! http://twitter.com/GaryGregory
> >> >>
> >> >> ------------------------------------------------------------
> ---------
> >> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> >> >> For additional commands, e-mail: dev-help@hc.apache.org
> >> >>
> >> >>
> >> >
> >> >
> >> > --
> >> > E-Mail: garydgregory@gmail.com | ggregory@apache.org
> >> > Java Persistence with Hibernate, Second Edition
> >> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> >> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2
> b8>
> >> >
> >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=
> garygregory-20&l=am2&o=1&a=
> >> 1617290459>
> >> > JUnit in Action, Second Edition
> >> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> >> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4
> 18%22
> >> >
> >> >
> >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=
> garygregory-20&l=am2&o=1&a=
> >> 1935182021>
> >> > Spring Batch in Action
> >> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> >> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> >> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> >> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> >> > <http:////ir-na.amazon-adsystem.com/e/ir?t=
> garygregory-20&l=am2&o=1&a=
> >> 1935182951>
> >> > Blog: http://garygregory.wordpress.com
> >> > Home: http://garygregory.com/
> >> > Tweet! http://twitter.com/GaryGregory
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> >> For additional commands, e-mail: dev-help@hc.apache.org
> >>
> >>
> >
> >
> > --
> > E-Mail: garydgregory@gmail.com | ggregory@apache.org
> > Java Persistence with Hibernate, Second Edition
> > <https://www.amazon.com/gp/product/1617290459/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&
> linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>
> >
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1617290459>
> > JUnit in Action, Second Edition
> > <https://www.amazon.com/gp/product/1935182021/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&
> linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22
> >
> >
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1935182021>
> > Spring Batch in Action
> > <https://www.amazon.com/gp/product/1935182951/ref=as_li_
> tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&
> linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%
> 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=
> 1935182951>
> > Blog: http://garygregory.wordpress.com
> > Home: http://garygregory.com/
> > Tweet! http://twitter.com/GaryGregory
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
> For additional commands, e-mail: dev-help@hc.apache.org
>
>


-- 
E-Mail: garydgregory@gmail.com | ggregory@apache.org
Java Persistence with Hibernate, Second Edition
<https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
JUnit in Action, Second Edition
<https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
Spring Batch in Action
<https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message