Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ifstreamer.cpp

Go to the documentation of this file.
00001 //============================================================================= 
00002 //
00003 // XDFLengine library
00004 //
00005 //-----------------------------------------------------------------------------
00006 //  IFStreamer.CPP
00007 //-----------------------------------------------------------------------------
00013 //_____________________________________________________________________________
00014 //
00015 //  Copyright (C) 2003 Guillaume Baurand. All Rights Reserved.
00016 //
00017 //  This file is part of the XDFLengine project.
00018 //
00019 //  The XDFLengine is free software; you can redistribute it and/or modify
00020 //  it under the terms of the GNU General Public License as published by
00021 //  the Free Software Foundation; either version 2 of the License, or
00022 //  (at your option) any later version.
00023 //
00024 //  This program is distributed in the hope that it will be useful,
00025 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00026 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00027 //  GNU General Public License for more details.
00028 //
00029 //  You should have received a copy of the GNU General Public License
00030 //  along with this program; if not, write to the Free Software
00031 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
00032 //  USA.
00033 //
00034 //  For more information, 
00035 //      contact  : guillaume@baurand.net 
00036 //      or visit : http://xdflengine.sourceforge.net
00037 //
00038 //=============================================================================
00039 
00040 #   include "ifstreamer.hpp"
00041 #   include "processor/xmlflowcontext.hpp"
00042 
00043 BEGIN_XDFLENGINE_NS
00044 
00045 //=============================================================================
00046 //  CLASS IFStreamer
00047 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00048 
00049 // CONSTRUCTOR & DESTRUCTOR
00050 
00051     //_____________________________________________________________________
00052     //  IFStreamer
00053     //---------------------------------------------------------------------
00054     IFStreamer::IFStreamer( const XMLStreamerFactory* p_pParent, StreamerParams* p_pParameters, XMLFlowContext* p_pContext, XMLStreamConsumer* p_pOutput)
00055     :XMLStreamer( p_pParent, p_pParameters, p_pContext, p_pOutput){}
00056     
00057     //_____________________________________________________________________
00058     //  ~IFStreamer
00059     //---------------------------------------------------------------------     
00060     IFStreamer::~IFStreamer()
00061     {
00062     }
00063     
00064 // STREAM   
00065 
00066     //_____________________________________________________________________
00067     //  INITSTREAM
00068     //---------------------------------------------------------------------
00069     bool IFStreamer::initStream()
00070     {
00071         return evaluateCondition(m_pParameters);
00072     }
00073 
00074     //_________________________________________________________________________
00075     //  EVALUATECONDITION
00076     //-------------------------------------------------------------------------
00077     bool IFStreamer::evaluateCondition( StreamerParams* p_pParameters)
00078     {
00079         //---------------------------------------------------------------------
00080         const char*  l_pszVal1;
00081         const char*  l_pszVal2;
00082         const char*  l_pszOp;
00083 
00084         int     l_iVal1;
00085         int     l_iVal2;
00086         //---------------------------------------------------------------------
00087 
00088         DEBUG_FUNC(IFStreamer::evaluateCondition)
00089 
00090         l_pszVal1 = XMLStreamer::getParamValue( p_pParameters, IFSTREAMER_VAL1 ); 
00091         l_pszVal2 = XMLStreamer::getParamValue( p_pParameters, IFSTREAMER_VAL2 , IFSTREAMER_VAL2_DEF); 
00092         l_pszOp =   XMLStreamer::getParamValue( p_pParameters, IFSTREAMER_OP , IFSTREAMER_OP_DEF); 
00093         
00094         if( strcmp( l_pszOp, IFSTREAMER_OPSTREQ) == 0 ) if( strcmp( l_pszVal1, l_pszVal2) ==0 ) return true ; else return false;    
00095         if( strcmp( l_pszOp, IFSTREAMER_OPSTRNE) == 0)  if( strcmp( l_pszVal1, l_pszVal2) !=0 ) return true ; else return false;
00096         if( strcmp( l_pszOp, IFSTREAMER_OPIN) == 0)     if( strstr( l_pszVal2, l_pszVal1 )>0 )  return true ; else return false;
00097 
00098         l_iVal1 = atoi( l_pszVal1);
00099         l_iVal2 = atoi( l_pszVal2);
00100 
00101         if( strcmp( l_pszOp, IFSTREAMER_OPEQ ) == 0)    if( l_iVal1 == l_iVal2 ) return true ; else return false;
00102         if( strcmp( l_pszOp, IFSTREAMER_OPNE) == 0 )    if( l_iVal1 != l_iVal2 ) return true ; else return false;
00103         if( strcmp( l_pszOp, IFSTREAMER_OPGT) == 0 )    if( l_iVal1 >  l_iVal2 ) return true ; else return false;
00104         if( strcmp( l_pszOp, IFSTREAMER_OPLT) == 0 )    if( l_iVal1 <  l_iVal2 ) return true ; else return false;
00105         if( strcmp( l_pszOp, IFSTREAMER_OPGTE) == 0 )   if( l_iVal1 >= l_iVal2 ) return true ; else return false;
00106         if( strcmp( l_pszOp, IFSTREAMER_OPLTE) == 0 )   if( l_iVal1 <= l_iVal2 ) return true ; else return false;
00107 
00108         return false;
00109     }
00110 
00111 
00112 
00113 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00114 //=============================================================================
00115 
00116 
00117 //=============================================================================
00118 //  CLASS IFStreamerFactory
00119 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00120 
00121     XMLStreamer* IFStreamerFactory::getStreamer(
00122         StreamerParams*         p_pParameters, 
00123         XMLFlowContext* p_pStreamContext, 
00124         XMLStreamConsumer*      p_pStreamConsumer) const
00125     {
00126         return (XMLStreamer*) new IFStreamer( this, p_pParameters, p_pStreamContext, p_pStreamConsumer);
00127     }
00128 
00129 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
00130 //=============================================================================
00131 
00132 
00133 END_XDFLENGINE_NS
00134 
00135 
00136 

Generated on Sat Oct 4 13:19:59 2003 for XDFLengine by doxygen1.3-rc2