Version: 6.3.1

src/DSC/DSC_User/Datastream/ProcessTimeIntervalTraits.hxx

00001 // Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  File   : ProcessTimeIntervalTraits.hxx
00024 //  Author : Eric Fayolle (EDF)
00025 //  Module : KERNEL
00026 // Modified by : $LastChangedBy$
00027 // Date        : $LastChangedDate: 2007-01-08 19:01:14 +0100 (lun, 08 jan 2007) $
00028 // Id          : $Id: ProcessTimeIntervalTraits.hxx,v 1.3.2.1.10.1.6.1 2011-06-01 13:51:41 vsr Exp $
00029 //
00030 #ifndef _PROCESS_TIME_INTERVAL_TRAIT_HXX_
00031 #define _PROCESS_TIME_INTERVAL_TRAIT_HXX_
00032 
00033 #include "IteratorTraits.hxx"
00034 
00035 // Par défaut les classes définissant un mode de couplage n'implémentent pas
00036 // de traitement particulier pour une de demande de données identifiées à partir
00037 // d'un dataId non reçu mais encadré par deux dataIds
00038 // Ce trait peut être spécialisé pour la classe de couplage pour effectuer
00039 // le traitement de son choix
00040 template <class WhatEver > struct ProcessTimeIntervalTraits {
00041     
00042   template < typename Iterator > 
00043   std::pair<bool, typename iterator_t<Iterator>::value_type > 
00044   static inline apply(typename WhatEver::DataId dataId, Iterator it1) {
00045     typedef typename iterator_t<Iterator>::value_type value_type; 
00046     return std::make_pair<bool,value_type> (0,0);
00047   }
00048 };
00049 
00050 // class CalciumCoulpingPolicy;
00051 // template < typename Iterator > 
00052 // typename iterator_t<Iterator>::value_type
00053 // CalciumCoulpingPolicy::processTimeInterval (DataId & dataId,
00054 //                                          Iterator  & it1, Iterator  & it2);
00055 #include "CalciumCouplingPolicy.hxx" 
00056 template <> struct ProcessTimeIntervalTraits<CalciumCouplingPolicy> {
00057     
00058   template < class Iterator > 
00059   std::pair<bool,typename iterator_t<Iterator>::value_type> 
00060   static inline apply(CalciumCouplingPolicy::DataId dataId, Iterator it1) {
00061 
00062     Iterator it2=it1; it2++;
00063 
00064     typedef typename iterator_t<Iterator>::value_type value_type; 
00065     return std::make_pair<bool,value_type> (1,processTimeInterval(dataId,it1,it2));
00066   }
00067 };
00068 
00069 #endif
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS