FACT++  1.0
void DimRpcInfo::timerHandler ( )
privatevirtual

Reimplemented from DimTimer.

Definition at line 597 of file diccpp.cxx.

References DimClient::getNoDataCopy(), DimInfo::itsData, DimInfo::itsDataSize, DimInfo::itsHandler, DimInfo::itsNolinkBuf, DimInfo::itsNolinkSize, DimInfo::itsSize, size, and wake_up.

598 {
599  char *buf;
600  int size;
601 
602  buf = (char *)itsNolinkBuf;
603  size = itsNolinkSize;
604 
605  if(DimClient::getNoDataCopy() == 0)
606  {
607  if(size > 0)
608  {
609  if(!itsDataSize)
610  {
611  itsData = new char[size];
612  itsDataSize = size;
613  }
614  else if(itsDataSize < size)
615  {
616  delete[] (char *)(itsData);
617  itsData = new char[size];
618  itsDataSize = size;
619  }
620  }
621  else if (size == 0)
622  {
623  if(itsDataSize)
624  {
625  delete[] (char *)(itsData);
626  itsDataSize = 0;
627  }
628  }
629  }
630  if(itsWaiting)
631  {
632  if(DimClient::getNoDataCopy() == 0)
633  {
634  if(size > 0)
635  memcpy(itsData, buf, (size_t)size);
636  else
637  itsData = buf;
638  }
639  else
640  itsData = buf;
641  itsSize = size;
642 //dim_print_date_time();
643 //printf("DIM RPC: Timer fired, No Data Received for %s\n", itsName);
644  wakeUp = 1;
645  if(itsInit)
646  {
647  itsWaiting = 1;
649  }
650  if(itsWaiting != 2)
651  itsWaiting = 0;
652  }
653 #ifdef __VMS
654  sys$wake(0,0);
655 #endif
656 #ifdef WIN32
657  wake_up();
658 #endif
659 }
static int wake_up
Definition: dns.c:81
virtual void rpcInfoHandler()
Definition: diccpp.cxx:661
void * itsNolinkBuf
Definition: dic.hxx:364
void * itsData
Definition: dic.hxx:356
int itsDataSize
Definition: dic.hxx:357
DimRpcInfo * itsHandler
Definition: dic.hxx:366
static int getNoDataCopy()
Definition: diccpp.cxx:1241
int itsNolinkSize
Definition: dic.hxx:365
int size
Definition: db_dim_server.c:17
int wakeUp
Definition: dic.hxx:361
int itsInit
Definition: dic.hxx:355
int itsSize
Definition: dic.hxx:360
int itsWaiting
Definition: dic.hxx:362

+ Here is the call graph for this function: