static char thrash_id[] = "$Header: /home/oreilly/tmacs/RCS/thrash.cc,v 1.3 1997/06/04 09:52:30 oreilly Exp $";


/*
$Log: thrash.cc,v $
Revision 1.3  1997/06/04 09:52:30  oreilly
*** empty log message ***

Revision 1.2  96/10/28  09:13:04  09:13:04  oreilly (Thomas C. O'Reilly)
*** empty log message ***

Revision 1.1  96/07/22  10:42:34  10:42:34  oreilly (Thomas C. O'Reilly)
First external release

*/
#include <stdlib.h>
#define MAIN
#include "Alarm.h"
#include "DmErrno.h"

main(int argc, char **argv)
{
  
  if (argc != 3)
  {
    fprintf(stderr, "usage: %s itemName val\n", argv[0]);
    exit(1);
  }
  char *name = argv[1];
  int val = atoi(argv[2]);

  dm_init(NULL);
  
  DM_Time t;
  t.tv_sec = time(NULL);
  t.tv_usec = 0;

  BooleanAlarm *alarm = new BooleanAlarm(name);
  if (alarm->dmObject()->error())
  {
    alarm->dmObject()->prtErrorMsg();
    exit(1);
  }
  char buf[100];
  Errno ret;
  if ((ret = alarm->dmObject()->startProvide(DM_ASYNC)) != SUCCESS)
  {
    sprintDmError(ret, "write() failed", buf);
    fprintf(stderr, "%s\n", buf);
  }
  
  DmBooleanObject *dmObj = (DmBooleanObject *)alarm->dmObject();

  while (TRUE)
  {
    t.tv_sec = time(NULL);
    
    if ((ret = dmObj->write(val, &t)) != SUCCESS)
    {
      sprintDmError(ret, "write() failed", buf);
      fprintf(stderr, "%s\n", buf);
      exit(1);
    }
  }
  exit(0);
}


