comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@merv.cs.nyu.edu (Robert Dewar)
Subject: Re: How to convert an Fixed_Point to to an Integer ?
Date: 1996/12/24
Date: 1996-12-24T00:00:00+00:00	[thread overview]
Message-ID: <dewar.851441337@merv> (raw)
In-Reply-To: 01bbf179$0c4361e0$9b2d5c8b@jerryware


Jerry van Dijk said

Hmmmm, I don't know. The idea behind encapsulation is protecting the client
code against changes in implementation, not preventing anyone to assign the
number of seconds since the epoch to an Integer :-)

  You are confused. The notion of time has nothing whatsoever to do
  with the epoch which is a unix specific notion that might or might not
  have something to do with the implementation of Time.

  The proper way to get the number of seconds from the epoch to now is

     Integer (Calendar.Clock - Epoch_Time);

  where Epoch_Time is a constant declared as something like
 
     Epoch_Time : constant Time := Calendar.Time_Of (1970,1,1,0.0);

  This approach is clean, and correct Ada and completely portable. Why would
  you want to consider anything else. As I said before you have lead yourself
  astray looking at the private part of Calendar.

So I solved it by putting these conversion operation in a child of
Ada.Calender:

   YECH! A horrible solution, which is completely non-portable. Implementations
   do not have to permit you to compile grand-children of Ada, and indeed, GNAT
   does NOT permit you to do so. Yes, you can use the switch -gnatg to compile
   such a unit, but as soon as you use -gnatg, you no longer have correct
   Ada 95 compiler semantics, the -gnatg switch is definitely intended only
   for implementors!

The conversions you are looking for make no sense in the general case, and
the operations in your Posix child are very implemenbtation specific, and
have no business being a child of Calendar in any case. It is perfectly
reasonable to implement this package without any access to the private
part of Calendar as a separate user level package, and that is what you
should do!

P.S. can you try to keep your lines to 80 chars, thanks





  reply	other threads:[~1996-12-24  0:00 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-12-22  0:00 How to convert an Fixed_Point to to an Integer ? Jerry van Dijk
1996-12-23  0:00 ` Larry Kilgallen
1996-12-23  0:00   ` Robert Dewar
1996-12-24  0:00     ` Jerry van Dijk
1996-12-24  0:00       ` Robert Dewar [this message]
1996-12-24  0:00         ` Norman H. Cohen
1996-12-24  0:00           ` Robert Dewar
1996-12-26  0:00             ` Keith Thompson
1996-12-26  0:00               ` Robert Dewar
1996-12-25  0:00         ` Jerry van Dijk
1996-12-25  0:00           ` Robert Dewar
1996-12-26  0:00             ` Norman H. Cohen
1996-12-27  0:00               ` Jerry van Dijk
1996-12-27  0:00                 ` Leap seconds in Unix time (was: Re: How to convert an Fixed_Point to to an Integer ?) Norman H. Cohen
1996-12-30  0:00               ` How to convert an Fixed_Point to to an Integer ? Mike Young
1996-12-30  0:00                 ` Michael F Brenner
1996-12-30  0:00                 ` 2000 is a leap year (was: How to convert an Fixed_Point to to an Inte) Larry Kilgallen
1996-12-31  0:00                 ` How to convert an Fixed_Point to to an Integer ? Keith Thompson
1997-01-02  0:00             ` 2000 is a leap year (was: How to convert an Fixed_Point to to an Inte) Mike Paley
1996-12-23  0:00 ` How to convert an Fixed_Point to to an Integer ? Jerry van Dijk
1996-12-23  0:00 ` Eric Miller
1996-12-30  0:00 ` Dave Barnes
1996-12-30  0:00 ` Steve Jones - JON
1996-12-30  0:00 ` Steve Jones - JON
1996-12-30  0:00   ` Jacques Rouillard
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox