ftp.nice.ch/Attic/openStep/implementation/gnustep/sources/gstep-base-0.2.7.tgz#/gstep-base-0.2.7/checks/nstimer.m

This is nstimer.m in view mode; [Download] [Up]

#include <gnustep/base/RunLoop.h>
#include <gnustep/base/Invocation.h>
#include <Foundation/NSTimer.h>

@interface TestDouble : NSObject
+ (double) testDouble;
- (double) testDoubleInstance;
@end
@implementation TestDouble
+ (double) testDouble
{
  return 12345678912345.0;
}
- (double) testDoubleInstance
{
  return 92345678912345.0;
}
@end

double test_double ()
{
  return 92345678912345.0;
}

void say_count ()
{
  static int count = 0;
  printf ("Timer fired %d times\n", ++count);
}

int main()
{
  volatile double foo, bar;
  id inv = [[VoidFunctionInvocation alloc] initWithVoidFunction: say_count];
  id o;
  id d;
  
  foo = [TestDouble testDouble];
  printf ("TestDouble is %f\n", foo);
  foo = [TestDouble testDouble];
  printf ("TestDouble 2 is %f\n", foo);
  o = [[TestDouble alloc] init];
  bar = [o testDoubleInstance];
  printf ("testDouble is %f\n", bar);

  foo = test_double ();
  printf ("test_double is %f\n", foo);

  d = [NSDate date];
  printf ("time interval since now %f\n", [d timeIntervalSinceNow]);

  [NSTimer scheduledTimerWithTimeInterval: 3.0
	   invocation: inv
	   repeats: YES];
  [RunLoop run];
  exit (0);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.