Salome HOME
updated copyright message
[modules/kernel.git] / src / DSC / DSC_User / Datastream / Calcium / CalciumCouplingPolicy.hxx
index 9f0890209ea5d85a8ce3e977abbb791fbcc1192f..1a2e37550823f00aea8281c41ffa9e6f8e69dd5d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -40,7 +40,6 @@
 #include "CalciumTypes.hxx"
 #include "CalciumException.hxx"
 
-//#define MYDEBUG
 
 class CalciumCouplingPolicy : public CouplingPolicy  {
 
@@ -168,16 +167,14 @@ struct CalciumCouplingPolicy::InternalDataIdContainer : public std::vector< std:
 
 template <typename DataManipulator, class EnableIf >
 struct CalciumCouplingPolicy::BoundedDataIdProcessor{
-  BoundedDataIdProcessor(const CouplingPolicy & couplingPolicy) {};
+  BoundedDataIdProcessor(const CouplingPolicy & /*couplingPolicy*/) {};
   template < typename Iterator, typename DataId > 
-  void inline apply(typename iterator_t<Iterator>::value_type & data,
-                    const DataId & dataId,
-                    const Iterator  & it1) const {
+  void inline apply(typename iterator_t<Iterator>::value_type & /*data*/,
+                    const DataId & /*dataId*/,
+                    const Iterator  & /*it1*/) const {
     typedef typename iterator_t<Iterator>::value_type value_type;
-#ifdef MYDEBUG
-    std::cout << "-------- Calcium Generic BoundedDataIdProcessor.apply() called " << std::endl;
-#endif
-
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- Calcium Generic BoundedDataIdProcessor.apply() called " << std::endl;
   }
 };
 
@@ -203,60 +200,67 @@ struct CalciumCouplingPolicy::BoundedDataIdProcessor<
 
     MapIterator it2=it1; ++it2;
     size_t   dataSize1 = DataManipulator::size(it1->second);
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Taille de donnée dataId1 : " << dataSize1 << std::endl;
-#endif
+
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Taille de donnée dataId1 : " << dataSize1 << std::endl;
  
     // Gérer dans calcium la limite de la taille du buffer donnée par
     // l'utilisateur.
     size_t   dataSize2 = DataManipulator::size(it2->second);
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Taille de donnée dataId2 : " << dataSize2 << std::endl;
-#endif
+
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Taille de donnée dataId2 : " << dataSize2 << std::endl;
 
     size_t   dataSize  = std::min< size_t >( dataSize1, dataSize2 );
     DataId   dataId2 = it2->first;
     DataId   dataId1 = it1->first;
     TimeType t2      = dataId2.first;
     TimeType t1      = dataId1.first;
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t1 : " << t1 << std::endl;
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t2 : " << t2 << std::endl;
-#endif
+
+    if (SALOME::VerbosityActivated())
+    {
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t1 : " << t1 << std::endl;
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t2 : " << t2 << std::endl;
+    }
+    
     TimeType t       = dataId.first;
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t : " << t << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de t : " << t << std::endl;
+
     TimeType timeDiff  = t2-t1;
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de timeDiff : " << timeDiff << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de timeDiff : " << timeDiff << std::endl;
+
     TimeType coeff   = (t2-t)/timeDiff;
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de coeff : " << coeff << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Valeur de coeff : " << coeff << std::endl;
 
     InnerType const * const InIt1 = DataManipulator::getPointer(it1->second);
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données à t1 : " << std::endl;
-    std::copy(InIt1,InIt1+dataSize1,std::ostream_iterator<InnerType>(std::cout," "));
-    std::cout << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+    {
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données à t1 : " << std::endl;
+      std::copy(InIt1,InIt1+dataSize1,std::ostream_iterator<InnerType>(std::cout," "));
+      std::cout << std::endl;
+    }
+
     InnerType const * const InIt2 = DataManipulator::getPointer(it2->second);
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données à t2 : " << std::endl;
-    std::copy(InIt2,InIt2+dataSize2,std::ostream_iterator<InnerType>(std::cout," "));
-    std::cout << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+    {
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données à t2 : " << std::endl;
+      std::copy(InIt2,InIt2+dataSize2,std::ostream_iterator<InnerType>(std::cout," "));
+      std::cout << std::endl;
+    }
     Type              dataOut = DataManipulator::create(dataSize);
     InnerType * const OutIt   = DataManipulator::getPointer(dataOut);
  
-#ifdef MYDEBUG
-    std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : interpolationSchem : " << _couplingPolicy._interpolationSchem << std::endl;
-    std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : alpha : " << _couplingPolicy._alpha << std::endl;
-    std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : datecalschem : " << _couplingPolicy._dateCalSchem << std::endl;
-    std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : storageLevel : " << _couplingPolicy._storageLevel << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+    {
+      std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : interpolationSchem : " << _couplingPolicy._interpolationSchem << std::endl;
+      std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : alpha : " << _couplingPolicy._alpha << std::endl;
+      std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : datecalschem : " << _couplingPolicy._dateCalSchem << std::endl;
+      std::cerr << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : storageLevel : " << _couplingPolicy._storageLevel << std::endl;
+    }
+
     if ( timeDiff == 0.0 ||  _couplingPolicy._interpolationSchem == CalciumTypes::L0_SCHEM ) {
       std::copy(InIt1,InIt1+dataSize,OutIt);
     } else {
@@ -272,11 +276,13 @@ struct CalciumCouplingPolicy::BoundedDataIdProcessor<
 //       }
 
     }
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données calculées à t : " << std::endl;
-    std::copy(OutIt,OutIt+dataSize,std::ostream_iterator<InnerType>(std::cout," "));
-    std::cout << std::endl;
-#endif
+
+    if (SALOME::VerbosityActivated())
+    {
+      std::cout << "-------- CalciumCouplingPolicy::BoundedDataIdProcessor : Données calculées à t : " << std::endl;
+      std::copy(OutIt,OutIt+dataSize,std::ostream_iterator<InnerType>(std::cout," "));
+      std::cout << std::endl;
+    }
     data = dataOut;
     
   }
@@ -297,10 +303,12 @@ bool CalciumCouplingPolicy::isDataIdConveniant( AssocContainer & storedDatas, co
   AdjacentFunctor< key_type > af(expectedDataId);
   if ( _dependencyType == CalciumTypes::TIME_DEPENDENCY )
   {
-#ifdef MYDEBUG
-    std::cout << "-------- time expected : " << expectedDataId.first << std::endl;
-    std::cout << "-------- time expected corrected : " << expectedDataId.first*(1.0-_deltaT) << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+    {
+      std::cout << "-------- time expected : " << expectedDataId.first << std::endl;
+      std::cout << "-------- time expected corrected : " << expectedDataId.first*(1.0-_deltaT) << std::endl;
+    }
+
     af.setMaxValue(key_type(expectedDataId.first*(1.0-_deltaT),0));
   }
   isBounded = false;
@@ -324,9 +332,11 @@ bool CalciumCouplingPolicy::isDataIdConveniant( AssocContainer & storedDatas, co
   typename AssocContainer::iterator current = prev;
   while ( (current != storedDatas.end()) && !af(current->first)  ) 
   {
-#ifdef MYDEBUG
-    std::cerr << "------- stored time : " << current->first << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+    {
+      std::cerr << "------- stored time : " << current->first << std::endl;
+    }
+
     //  if ( af(current->first) ) break;
     prev = current++;
   }
@@ -343,9 +353,8 @@ bool CalciumCouplingPolicy::isDataIdConveniant( AssocContainer & storedDatas, co
     else
       wDataIt1 = storedDatas.end();
 
-#ifdef MYDEBUG
-  std::cout << "-------- isDataIdConvenient : isEqual : " << isEqual << " , isBounded " << isBounded << std::endl;
-#endif
+  if (SALOME::VerbosityActivated())
+    std::cout << "-------- isDataIdConvenient : isEqual : " << isEqual << " , isBounded " << isBounded << std::endl;
 
   return isEqual || isBounded;
 }
@@ -437,11 +446,10 @@ struct CalciumCouplingPolicy::EraseDataIdProcessor {
     typedef typename Container::value_type value_type;
     typedef typename Container::iterator iterator;
 
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::eraseDataId, storedDatasSize : " << storedDatas.size() << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::eraseDataId, storedDatasSize : " << storedDatas.size() << std::endl;
  
-    if ( _couplingPolicy._storageLevel == CalciumTypes::UNLIMITED_STORAGE_LEVEL ) return;
+    if ( _couplingPolicy._storageLevel == (size_t)CalciumTypes::UNLIMITED_STORAGE_LEVEL ) return;
  
     size_t storedDatasSize = storedDatas.size();
     long   s = storedDatasSize - _couplingPolicy._storageLevel;
@@ -453,15 +461,16 @@ struct CalciumCouplingPolicy::EraseDataIdProcessor {
               storedDatas.erase(storedDatas.begin());
       }
       // Si l'itérateur pointait sur une valeur que l'on vient de supprimer
-      if (dist < s ) {
+      if (dist < (size_t)s ) {
         throw(CalciumException(CalciumTypes::CPNTNULL,LOC(OSS()<< "StorageLevel management " 
                                             << _couplingPolicy._storageLevel << 
                                             " has just removed the data to send")));
       }
     }
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::eraseDataId, new storedDatasSize : " << storedDatas.size() << std::endl;
-#endif
+
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::eraseDataId, new storedDatasSize : " << storedDatas.size() << std::endl;
+
     return;
 
   }
@@ -493,23 +502,20 @@ struct CalciumCouplingPolicy::DisconnectProcessor {
     typedef typename Container::iterator   iterator;
 
     // Pas de traitement particulier a effectuer
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK1 ("<< _couplingPolicy._disconnectDirective<<") --------" << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK1 ("<< _couplingPolicy._disconnectDirective<<") --------" << std::endl;
+
     if ( (_couplingPolicy._disconnectDirective) == (CalciumTypes::UNDEFINED_DIRECTIVE) ) return false;
   
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK2 --------" << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK2 --------" << std::endl;
 
     // TODO : Ds GenericPort::next il faut convertir en CPSTOPSEQ
     if ( _couplingPolicy._disconnectDirective == CalciumTypes::CP_ARRET )
       throw(CalciumException(CalciumTypes::CPINARRET,LOC(OSS()<< "CP_ARRET directive" 
                                            << " interrupts all further data reading")));
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK3 --------" << std::endl;
-#endif
-
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK3 --------" << std::endl;
 
     // S'il n'y a plus de données indique que l'on a pas pu effectuer de traitement
     // TODO : Dans la gestion des niveaux il faut peut être interdire un niveau ==  0
@@ -521,33 +527,33 @@ struct CalciumCouplingPolicy::DisconnectProcessor {
     // qu'en mode itératif il ne soit pas plus grand que le plus grand DataId stocké auquel
     // cas on doit renvoyer une expection car on n'est plus connecté et on ne pourra jamais
     // fournir de données pour ce dataId.
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK4  " << expectedDataId <<" --------" << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK4  " << expectedDataId <<" --------" << std::endl;
 
     // >= expectedDataId
     iterator it1 = storedDatas.lower_bound(expectedDataId);
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK5  " << std::endl;
-    for (iterator it=storedDatas.begin();it!=storedDatas.end();++it)
-      std::cout <<" "<<(*it).first ;
-    std::cout <<std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+    {
+      std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK5  " << std::endl;
+      for (iterator it=storedDatas.begin(); it!=storedDatas.end(); ++it)
+        std::cout << " " << (*it).first;
+
+      std::cout << std::endl;
+    }
 
     // TODO : Il faut en fait renvoyer le plus proche cf IT ou DT
     if (it1 == storedDatas.end())
       throw(CalciumException(CalciumTypes::CPNTNULL,LOC(OSS()<< "CP_CONT directive" 
                                           << " is active but the requested dataId is less or equal to the last one received.")));
   
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK6 " << std::endl;
-#endif
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor MARK6 " << std::endl;
 
     wDataIt1 = storedDatas.end();
     --wDataIt1;
-#ifdef MYDEBUG
-    std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor, CP_CONT : " << (*wDataIt1).first << std::endl;
-#endif
+
+    if (SALOME::VerbosityActivated())
+      std::cout << "-------- CalciumCouplingPolicy::DisconnectProcessor, CP_CONT : " << (*wDataIt1).first << std::endl;
 
     return true;
   }