On Thu, May 15, 2014 at 04:02:20PM +0200, Philippe Bruhat (BooK) wrote:
> On Thu, May 15, 2014 at 02:07:23PM +0100, Tim Bunce wrote:
> > On Thu, May 15, 2014 at 01:34:21AM +0200, Philippe Bruhat (BooK) wrote:
> > > On Tue, May 13, 2014 at 11:11:10PM +0100, Tim Bunce wrote:
> > > >
> > > > Parse a generated shortname:
> > > >
> > > > $hash = $np->parse_generated_name($name); # eg to get date etc
> > > >
> > > > %$hash would contain something like
> > > >
> > > > {
> > > > version => 1, # version of the Basic format
> > > > timestamp_string => '140513',
> > > > timestamp_epoch => 1400017536,
> > > > name => 'foo'
> > > > }
> > >
> > > It should also return 'prefix', and actually all attributes needed to
> > > re-create the DSNP instance. So doing something like:
> > >
> > > $np2 = Data::ShortNameProvider->new( %$hash );
> > >
> > > would ignore unexpected parameters (timestamp_* and name), and return
> > > a Data::ShortNameProvider object equivalent to the original one.
> >
> > Interesting. Actually timestamp_epoch could be used to provide the
> > time value that should be formatted into the short name.
>
> I'm not sure I understand this correctly.
>
> If a long-running program creates a Data::ShortNameProvider $np and
> uses $np->generate_new_name( ... ) to create short names, is the timestamp
> in the name generated each time according to the current value of time(),
> or is it fixed to the time() when new() was called?
Good question. I was thinking it would be at the time generate_new_name
was called but I could argue it either way.
[...pondering...] now I'm thinking we should use the time new() was
called, but provide a method to change that:
$np->timestamp_epoch( time() );
It doesn't seem worth adding the ability to pass a timestamp to
generate_new_name().
Tim.