]> rtime.felk.cvut.cz Git - orte.git/blobdiff - orte/liborte/RTPSCSTReaderTimer.c
Reformat the sources with orte/uncrustify script
[orte.git] / orte / liborte / RTPSCSTReaderTimer.c
index ad3ccb5c10efabe61497c667e6c65001ae10ad4d..79434956f25f3e277cbe969dd19fd72f28ca91f2 100644 (file)
 /*
- *  $Id: RTPSCSTReaderTimer.c,v 0.0.0.1 2003/11/03 
+ *  $Id: RTPSCSTReaderTimer.c,v 0.0.0.1 2003/11/03
  *
  *  DEBUG:  section 55                  CSTReader timer functions
  *
- *  -------------------------------------------------------------------  
- *                                ORTE                                 
- *                      Open Real-Time Ethernet                       
- *                                                                    
- *                      Copyright (C) 2001-2006                       
- *  Department of Control Engineering FEE CTU Prague, Czech Republic  
- *                      http://dce.felk.cvut.cz                       
- *                      http://www.ocera.org                          
- *                                                                    
- *  Author:             Petr Smolik    petr@smoliku.cz             
- *  Advisor:            Pavel Pisa                                   
- *  Project Responsible: Zdenek Hanzalek                              
+ *  -------------------------------------------------------------------
+ *                                ORTE
+ *                      Open Real-Time Ethernet
+ *
+ *                      Copyright (C) 2001-2006
+ *  Department of Control Engineering FEE CTU Prague, Czech Republic
+ *                      http://dce.felk.cvut.cz
+ *                      http://www.ocera.org
+ *
+ *  Author:              Petr Smolik   petr@smoliku.cz
+ *  Advisor:             Pavel Pisa
+ *  Project Responsible: Zdenek Hanzalek
  *  --------------------------------------------------------------------
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 2 of the License, or
  *  (at your option) any later version.
- *  
+ *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
- *  
- */ 
+ *
+ */
 
 #include "orte_all.h"
 
 /*****************************************************************************/
-int 
-CSTReaderResponceTimer(ORTEDomain *d,void *vcstRemoteWriter) {
-  CSTRemoteWriter *cstRemoteWriter=(CSTRemoteWriter*)vcstRemoteWriter;
+int
+CSTReaderResponceTimer(ORTEDomain *d, void *vcstRemoteWriter)
+{
+  CSTRemoteWriter *cstRemoteWriter = (CSTRemoteWriter *)vcstRemoteWriter;
   int             len;
-  char            queue=1;
-  
-  if ((cstRemoteWriter->guid.oid & 0x07) == OID_PUBLICATION) 
-    queue=2;
-  if (!d->taskSend.mb.containsInfoReply) { 
-    if (queue==1) {
-      len=RTPSInfoREPLYCreate(
-          &d->taskSend.mb.cdrCodec,
-          IPADDRESS_INVALID,
-          ((AppParams*)cstRemoteWriter->cstReader->objectEntryOID->attributes)->metatrafficUnicastPort);
+  char            queue = 1;
+
+  if ((cstRemoteWriter->guid.oid & 0x07) == OID_PUBLICATION)
+    queue = 2;
+  if (!d->taskSend.mb.containsInfoReply) {
+    if (queue == 1) {
+      len = RTPSInfoREPLYCreate(
+       &d->taskSend.mb.cdrCodec,
+       IPADDRESS_INVALID,
+       ((AppParams *)cstRemoteWriter->cstReader->objectEntryOID->attributes)->metatrafficUnicastPort);
     } else {
-      len=RTPSInfoREPLYCreate(
-          &d->taskSend.mb.cdrCodec,
-          IPADDRESS_INVALID,
-          ((AppParams*)cstRemoteWriter->cstReader->objectEntryOID->attributes)->userdataUnicastPort);
+      len = RTPSInfoREPLYCreate(
+       &d->taskSend.mb.cdrCodec,
+       IPADDRESS_INVALID,
+       ((AppParams *)cstRemoteWriter->cstReader->objectEntryOID->attributes)->userdataUnicastPort);
     }
-    if (len<0) {
-      d->taskSend.mb.needSend=ORTE_TRUE;
+    if (len < 0) {
+      d->taskSend.mb.needSend = ORTE_TRUE;
       return 1;
     }
-    d->taskSend.mb.containsInfoReply=ORTE_TRUE;  
-    debug(55,3) ("sent: RTPS_InfoREPLY(0x%x) to 0x%x-0x%x\n",
-                  cstRemoteWriter->cstReader->guid.oid,
-                  cstRemoteWriter->guid.hid,
-                  cstRemoteWriter->guid.aid);
+    d->taskSend.mb.containsInfoReply = ORTE_TRUE;
+    debug(55, 3) ("sent: RTPS_InfoREPLY(0x%x) to 0x%x-0x%x\n",
+                 cstRemoteWriter->cstReader->guid.oid,
+                 cstRemoteWriter->guid.hid,
+                 cstRemoteWriter->guid.aid);
   }
-  len=RTPSAckCreate(
-       &d->taskSend.mb.cdrCodec,
-       &cstRemoteWriter->sn,
-       cstRemoteWriter->cstReader->guid.oid,
-       cstRemoteWriter->guid.oid,
-       ORTE_TRUE);
-  if (len<0) {
+  len = RTPSAckCreate(
+    &d->taskSend.mb.cdrCodec,
+    &cstRemoteWriter->sn,
+    cstRemoteWriter->cstReader->guid.oid,
+    cstRemoteWriter->guid.oid,
+    ORTE_TRUE);
+  if (len < 0) {
     //not enought space in sending buffer
-    d->taskSend.mb.needSend=ORTE_TRUE;
+    d->taskSend.mb.needSend = ORTE_TRUE;
     return 1;
   }
-  debug(55,3) ("sent: RTPS_ACKF(0x%x) to 0x%x-0x%x\n",
-                cstRemoteWriter->cstReader->guid.oid,
-                cstRemoteWriter->guid.hid,
-                cstRemoteWriter->guid.aid);
-  if (cstRemoteWriter->commStateACK==PULLING) {
+  debug(55, 3) ("sent: RTPS_ACKF(0x%x) to 0x%x-0x%x\n",
+               cstRemoteWriter->cstReader->guid.oid,
+               cstRemoteWriter->guid.hid,
+               cstRemoteWriter->guid.aid);
+  if (cstRemoteWriter->commStateACK == PULLING) {
     eventDetach(d,
-        cstRemoteWriter->spobject->objectEntryAID,
-        &cstRemoteWriter->delayResponceTimer,
-        queue); 
-    if (cstRemoteWriter->ACKRetriesCounter<
-        cstRemoteWriter->cstReader->params.ACKMaxRetries) {
+               cstRemoteWriter->spobject->objectEntryAID,
+               &cstRemoteWriter->delayResponceTimer,
+               queue);
+    if (cstRemoteWriter->ACKRetriesCounter <
+       cstRemoteWriter->cstReader->params.ACKMaxRetries) {
       cstRemoteWriter->ACKRetriesCounter++;
       eventAdd(d,
-          cstRemoteWriter->spobject->objectEntryAID,
-          &cstRemoteWriter->delayResponceTimer,
-          queue,
-          "CSTReaderResponceTimer",
-          CSTReaderResponceTimer,
-          &cstRemoteWriter->cstReader->lock,
-          cstRemoteWriter,
-          &cstRemoteWriter->cstReader->params.delayResponceTimeMin);
+              cstRemoteWriter->spobject->objectEntryAID,
+              &cstRemoteWriter->delayResponceTimer,
+              queue,
+              "CSTReaderResponceTimer",
+              CSTReaderResponceTimer,
+              &cstRemoteWriter->cstReader->lock,
+              cstRemoteWriter,
+              &cstRemoteWriter->cstReader->params.delayResponceTimeMin);
     } else {
-      debug(55,3) ("sent: maxRetries ritch upper level (%d).\n",
-                    cstRemoteWriter->cstReader->params.ACKMaxRetries);
+      debug(55, 3) ("sent: maxRetries ritch upper level (%d).\n",
+                   cstRemoteWriter->cstReader->params.ACKMaxRetries);
     }
   }
-  if (cstRemoteWriter->commStateACK==ACKPENDING) { 
-    cstRemoteWriter->commStateACK=WAITING;
+  if (cstRemoteWriter->commStateACK == ACKPENDING) {
+    cstRemoteWriter->commStateACK = WAITING;
     eventDetach(d,
-        cstRemoteWriter->spobject->objectEntryAID,
-        &cstRemoteWriter->repeatActiveQueryTimer,
-        queue); 
+               cstRemoteWriter->spobject->objectEntryAID,
+               &cstRemoteWriter->repeatActiveQueryTimer,
+               queue);
     if (NtpTimeCmp(cstRemoteWriter->cstReader->
-                   params.repeatActiveQueryTime,iNtpTime)!=0) {
+                  params.repeatActiveQueryTime, iNtpTime) != 0) {
       eventAdd(d,
-          cstRemoteWriter->spobject->objectEntryAID,
-          &cstRemoteWriter->repeatActiveQueryTimer,
-          queue,
-          "CSTReaderQueryTimer",
-          CSTReaderQueryTimer,
-          &cstRemoteWriter->cstReader->lock,
-          cstRemoteWriter,
-          &cstRemoteWriter->cstReader->params.repeatActiveQueryTime);
+              cstRemoteWriter->spobject->objectEntryAID,
+              &cstRemoteWriter->repeatActiveQueryTimer,
+              queue,
+              "CSTReaderQueryTimer",
+              CSTReaderQueryTimer,
+              &cstRemoteWriter->cstReader->lock,
+              cstRemoteWriter,
+              &cstRemoteWriter->cstReader->params.repeatActiveQueryTime);
     }
   }
   return 0;
@@ -123,162 +124,165 @@ CSTReaderResponceTimer(ORTEDomain *d,void *vcstRemoteWriter) {
 
 /*****************************************************************************/
 int
-CSTReaderQueryTimer(ORTEDomain *d,void *vcstRemoteWriter) {
-  CSTRemoteWriter *cstRemoteWriter=(CSTRemoteWriter*)vcstRemoteWriter;
+CSTReaderQueryTimer(ORTEDomain *d, void *vcstRemoteWriter)
+{
+  CSTRemoteWriter *cstRemoteWriter = (CSTRemoteWriter *)vcstRemoteWriter;
   int             len;
-  char            queue=1;
-  
-  if ((cstRemoteWriter->guid.oid & 0x07) == OID_PUBLICATION) 
-    queue=2;  
-  if (!d->taskSend.mb.containsInfoReply) { 
-    if (queue==1) {
-      len=RTPSInfoREPLYCreate(
-          &d->taskSend.mb.cdrCodec,
-          IPADDRESS_INVALID,
-          ((AppParams*)cstRemoteWriter->cstReader->objectEntryOID->attributes)->metatrafficUnicastPort);
+  char            queue = 1;
+
+  if ((cstRemoteWriter->guid.oid & 0x07) == OID_PUBLICATION)
+    queue = 2;
+  if (!d->taskSend.mb.containsInfoReply) {
+    if (queue == 1) {
+      len = RTPSInfoREPLYCreate(
+       &d->taskSend.mb.cdrCodec,
+       IPADDRESS_INVALID,
+       ((AppParams *)cstRemoteWriter->cstReader->objectEntryOID->attributes)->metatrafficUnicastPort);
     } else {
-      len=RTPSInfoREPLYCreate(
-          &d->taskSend.mb.cdrCodec,
-          IPADDRESS_INVALID,
-          ((AppParams*)cstRemoteWriter->cstReader->objectEntryOID->attributes)->userdataUnicastPort);
+      len = RTPSInfoREPLYCreate(
+       &d->taskSend.mb.cdrCodec,
+       IPADDRESS_INVALID,
+       ((AppParams *)cstRemoteWriter->cstReader->objectEntryOID->attributes)->userdataUnicastPort);
     }
-    if (len<0) {
-      d->taskSend.mb.needSend=ORTE_TRUE;
+    if (len < 0) {
+      d->taskSend.mb.needSend = ORTE_TRUE;
       return 1;
     }
-    d->taskSend.mb.containsInfoReply=ORTE_TRUE;  
-    debug(55,3) ("sent: RTPS_InfoREPLY(0x%x) to 0x%x-0x%x\n",
-                  cstRemoteWriter->cstReader->guid.oid,
-                  cstRemoteWriter->guid.hid,
-                  cstRemoteWriter->guid.aid);
+    d->taskSend.mb.containsInfoReply = ORTE_TRUE;
+    debug(55, 3) ("sent: RTPS_InfoREPLY(0x%x) to 0x%x-0x%x\n",
+                 cstRemoteWriter->cstReader->guid.oid,
+                 cstRemoteWriter->guid.hid,
+                 cstRemoteWriter->guid.aid);
   }
-  len=RTPSAckCreate(
-      &d->taskSend.mb.cdrCodec,
-      &cstRemoteWriter->sn,
-      cstRemoteWriter->cstReader->guid.oid,
-      cstRemoteWriter->guid.oid,
-      ORTE_FALSE);
-  if (len<0) {
-    d->taskSend.mb.needSend=ORTE_TRUE;
+  len = RTPSAckCreate(
+    &d->taskSend.mb.cdrCodec,
+    &cstRemoteWriter->sn,
+    cstRemoteWriter->cstReader->guid.oid,
+    cstRemoteWriter->guid.oid,
+    ORTE_FALSE);
+  if (len < 0) {
+    d->taskSend.mb.needSend = ORTE_TRUE;
     return 1;
   }
-  debug(55,3) ("sent: RTPS_ACKf(0x%x) to 0x%x-0x%x\n",
-                cstRemoteWriter->cstReader->guid.oid,
-                cstRemoteWriter->guid.hid,
-                cstRemoteWriter->guid.aid);
+  debug(55, 3) ("sent: RTPS_ACKf(0x%x) to 0x%x-0x%x\n",
+               cstRemoteWriter->cstReader->guid.oid,
+               cstRemoteWriter->guid.hid,
+               cstRemoteWriter->guid.aid);
   eventDetach(d,
-      cstRemoteWriter->spobject->objectEntryAID,
-      &cstRemoteWriter->repeatActiveQueryTimer,
-      queue);   
+             cstRemoteWriter->spobject->objectEntryAID,
+             &cstRemoteWriter->repeatActiveQueryTimer,
+             queue);
   if (NtpTimeCmp(cstRemoteWriter->cstReader->
-                 params.repeatActiveQueryTime,iNtpTime)!=0) {
+                params.repeatActiveQueryTime, iNtpTime) != 0) {
     eventAdd(d,
-        cstRemoteWriter->spobject->objectEntryAID,
-        &cstRemoteWriter->repeatActiveQueryTimer,
-        queue,
-        "CSTReaderQueryTimer",
-        CSTReaderQueryTimer,
-        &cstRemoteWriter->cstReader->lock,
-        cstRemoteWriter,
-        &cstRemoteWriter->cstReader->params.repeatActiveQueryTime);
+            cstRemoteWriter->spobject->objectEntryAID,
+            &cstRemoteWriter->repeatActiveQueryTimer,
+            queue,
+            "CSTReaderQueryTimer",
+            CSTReaderQueryTimer,
+            &cstRemoteWriter->cstReader->lock,
+            cstRemoteWriter,
+            &cstRemoteWriter->cstReader->params.repeatActiveQueryTime);
   }
-  return 0; 
+  return 0;
 }
 
 
 /*****************************************************************************/
 int
-CSTReaderDeadlineTimer(ORTEDomain *d,void *vcstReader) {
-  CSTReader            *cstReader=(CSTReader*)vcstReader;
+CSTReaderDeadlineTimer(ORTEDomain *d, void *vcstReader)
+{
+  CSTReader            *cstReader = (CSTReader *)vcstReader;
   ORTESubsProp         *sp;
-  ORTERecvInfo         info;  
-  
-  sp=(ORTESubsProp*)cstReader->objectEntryOID->attributes;
-  memset(&info,0,sizeof(info));
-  info.status=DEADLINE;
-  info.topic=(char*)sp->topic;
-  info.type=(char*)sp->typeName;
+  ORTERecvInfo         info;
+
+  sp = (ORTESubsProp *)cstReader->objectEntryOID->attributes;
+  memset(&info, 0, sizeof(info));
+  info.status = DEADLINE;
+  info.topic = (char *)sp->topic;
+  info.type = (char *)sp->typeName;
   if (cstReader->objectEntryOID->recvCallBack) {
     cstReader->objectEntryOID->recvCallBack(&info,
-        cstReader->objectEntryOID->instance,
-        cstReader->objectEntryOID->callBackParam);
+                                           cstReader->objectEntryOID->instance,
+                                           cstReader->objectEntryOID->callBackParam);
   }
   eventDetach(d,
-      cstReader->objectEntryOID->objectEntryAID,
-      &cstReader->deadlineTimer,
-      0);
+             cstReader->objectEntryOID->objectEntryAID,
+             &cstReader->deadlineTimer,
+             0);
   eventAdd(d,
-      cstReader->objectEntryOID->objectEntryAID,
-      &cstReader->deadlineTimer,
-      0,   //common timer
-      "CSTReaderDeadlineTimer",
-      CSTReaderDeadlineTimer,
-      &cstReader->lock,
-      cstReader,
-      &sp->deadline);
+          cstReader->objectEntryOID->objectEntryAID,
+          &cstReader->deadlineTimer,
+          0, //common timer
+          "CSTReaderDeadlineTimer",
+          CSTReaderDeadlineTimer,
+          &cstReader->lock,
+          cstReader,
+          &sp->deadline);
   return 0;
 }
 
 /*****************************************************************************/
 int
-CSTReaderPersistenceTimer(ORTEDomain *d,void *vcstReader) {
-  CSTReader            *cstReader=(CSTReader*)vcstReader;
+CSTReaderPersistenceTimer(ORTEDomain *d, void *vcstReader)
+{
+  CSTReader            *cstReader = (CSTReader *)vcstReader;
   CSTRemoteWriter      *cstRemoteWriter;
   CSChangeFromWriter   *csChangeFromWriter;
   ORTESubsProp         *sp;
   ORTEPublProp         *pp;
   int32_t            strength;
-  
-  if (cstReader->cstRemoteWriterSubscribed!=NULL) {
+
+  if (cstReader->cstRemoteWriterSubscribed != NULL) {
     //keep only one csChange (last)
-    while (cstReader->cstRemoteWriterSubscribed->csChangesCounter>1) {
-      csChangeFromWriter=
-        CSChangeFromWriter_first(cstReader->cstRemoteWriterSubscribed);
-      if (csChangeFromWriter) {  
-        CSTReaderDestroyCSChangeFromWriter(
-            cstReader->cstRemoteWriterSubscribed,
-            csChangeFromWriter,
-            ORTE_FALSE);
+    while (cstReader->cstRemoteWriterSubscribed->csChangesCounter > 1) {
+      csChangeFromWriter =
+       CSChangeFromWriter_first(cstReader->cstRemoteWriterSubscribed);
+      if (csChangeFromWriter) {
+       CSTReaderDestroyCSChangeFromWriter(
+         cstReader->cstRemoteWriterSubscribed,
+         csChangeFromWriter,
+         ORTE_FALSE);
       }
     }
   }
-  cstReader->cstRemoteWriterSubscribed=NULL;
-  sp=(ORTESubsProp*)cstReader->objectEntryOID->attributes;
-  strength=0;
-  gavl_cust_for_each(CSTRemoteWriter,cstReader,cstRemoteWriter) {
-    pp=(ORTEPublProp*)cstRemoteWriter->spobject->attributes;
-    csChangeFromWriter=CSChangeFromWriter_last(cstRemoteWriter);
-    if ((pp->strength>strength) && (csChangeFromWriter!=NULL)){
-      NtpTime persistence,persistenceExpired,actTime;
-      actTime=getActualNtpTime();
+  cstReader->cstRemoteWriterSubscribed = NULL;
+  sp = (ORTESubsProp *)cstReader->objectEntryOID->attributes;
+  strength = 0;
+  gavl_cust_for_each(CSTRemoteWriter, cstReader, cstRemoteWriter) {
+    pp = (ORTEPublProp *)cstRemoteWriter->spobject->attributes;
+    csChangeFromWriter = CSChangeFromWriter_last(cstRemoteWriter);
+    if ((pp->strength > strength) && (csChangeFromWriter != NULL)) {
+      NtpTime persistence, persistenceExpired, actTime;
+      actTime = getActualNtpTime();
       NtpTimeAdd(persistenceExpired,
-                 csChangeFromWriter->csChange->localTimeReceived,
-                 pp->persistence);
-      if (NtpTimeCmp(persistenceExpired,actTime)>0) {
-        NtpTimeSub(persistence,
-                   persistenceExpired,
-                   actTime);
-        eventDetach(d,
-            cstReader->objectEntryOID->objectEntryAID,
-            &cstReader->persistenceTimer,
-            0);   //common timer
-        eventAdd(d,
-            cstReader->objectEntryOID->objectEntryAID,
-            &cstReader->persistenceTimer,
-            0,   //common timer
-            "CSTReaderPersistenceTimer",
-            CSTReaderPersistenceTimer,
-            &cstReader->lock,
-            cstReader,
-            &persistence);
-        cstReader->cstRemoteWriterSubscribed=cstRemoteWriter;
+                csChangeFromWriter->csChange->localTimeReceived,
+                pp->persistence);
+      if (NtpTimeCmp(persistenceExpired, actTime) > 0) {
+       NtpTimeSub(persistence,
+                  persistenceExpired,
+                  actTime);
+       eventDetach(d,
+                   cstReader->objectEntryOID->objectEntryAID,
+                   &cstReader->persistenceTimer,
+                   0); //common timer
+       eventAdd(d,
+                cstReader->objectEntryOID->objectEntryAID,
+                &cstReader->persistenceTimer,
+                0, //common timer
+                "CSTReaderPersistenceTimer",
+                CSTReaderPersistenceTimer,
+                &cstReader->lock,
+                cstReader,
+                &persistence);
+       cstReader->cstRemoteWriterSubscribed = cstRemoteWriter;
       }
     }
   }
-  if ((cstReader->cstRemoteWriterSubscribed!=NULL) && 
-      (sp->mode==IMMEDIATE)) {
+  if ((cstReader->cstRemoteWriterSubscribed != NULL) &&
+      (sp->mode == IMMEDIATE)) {
     CSTReaderProcCSChangesIssue(
-        cstReader->cstRemoteWriterSubscribed,ORTE_FALSE);
+      cstReader->cstRemoteWriterSubscribed, ORTE_FALSE);
   }
   return 0;
 }