Authors
- Richard Frith-Macdonald (
rfm@gnu.org
)
-
Version: 33243
Date: 2011-06-04 15:50:40 +0100 (Sat, 04 Jun 2011)
Copyright: (C) 2005 Free Software Foundation, Inc.
- Declared in:
- GSTicker.h
- Conforms to:
- GSTicker
Wrapper round the more efficient ticker functions...
this class provides convenience methods to get NSDate
objects, and also provides support for registering
observers ofr second by second ticks.
Method summary
+ (void)
newSecond: (id)userInfo;
A dummy method... does nothing, but allows the GSTicker
class itsself to act as an observer of regular
timeouts.
Thus, you may register the class
as its own observer in order to set up a timer to ensure
that date/time information is updated at the start of
every second.
+ (void)
registerObserver: (id<
GSTicker>)anObject
userInfo: (id)userInfo;
Registers an object to receive a
[<GSTicker>-newSecond:]
message at the start of every second.
Also
starts a timer in the current thread (unless one is
already running) to notify registered objects of
new seconds.
The observer and the
userInfo are retained by the ticker.
Adding an observer more than once has no
effect.
NB. You must not add or remove
observers inside the callback routine.
+ (void)
unregisterObserver: (id<
GSTicker>)anObject;
Unregisters an observer previously set in the
current thread using the
+registerObserver:userInfo:
method.
If all observers in a thread are
removed, the timer for the thread is cancelled at
the start of the next second.
- (void)
newSecond: (id)userInfo;
- Declared in:
- GSTicker.h
- Conforms to:
- NSObject
Description forthcoming.
Method summary
- (void)
newSecond: (id)userInfo;
Sent to tell observers that the ticker has noticed
that a new second has occurred. The tick argument is
the user information provided in when registering the
observer.
This message is sent to each
registered observer when the timeout for the
thread occurs. It is not guaranteed to be called
every second... other processing in the thread may
delay it.
NSTimeInterval GSTickerTimeLast();
NSTimeInterval GSTickerTimeNow();
Convenience function to provide timing
information quickly.
This returns the
current date/time, and stores the value for use by
the
GSTickerTimeLast()
function.
NSTimeInterval GSTickerTimeStart();
This returns the timestamp from which GSTicker was first
used.
unsigned int GSTickerTimeTick();
A convenience method to return the current clock 'tick'...
which is the current second based on the time we
started. This does
not check the current
time, but relies on
GSTickerTimeLast()
returning an up to date value (so if you need an
accurate tick, you should ensure that
GSTickerTimeNow()
is called at least once a second).
The returned
value is always greater than zero, and is basically
calculated as (GSTickerTimeLast() -
GSTickerTimeStart()
+ 1).
In the event that the system clock is reset
into the past, the value of
GSTickerTimeStart()
is automatically adjusted to ensure that the result of a
call to
GSTickerTimeTick()
is never less than the result of any earlier call to the
function.