LTP GCOV extension - code coverage report
Current view: directory - src/cpp/dev/idlc - operation.cpp
Test: YAORB-0.2.info
Date: 2006-02-27 Instrumented lines: 26
Code covered: 84.6 % Executed lines: 22

       1                 : //==============================================================================
       2                 : // File <$/src/cpp/dev/idlc/operation.cpp>
       3                 : // This file is part of YaOrb : Yet Another Object Request Broker,
       4                 : // Copyright (c) 2000-2003, Marc Alff.
       5                 : //
       6                 : // This program is free software; you can redistribute it and/or
       7                 : // modify it under the terms of the GNU General Public License
       8                 : // as published by the Free Software Foundation; either version 2
       9                 : // of the License, or (at your option) any later version.
      10                 : //
      11                 : // This program is distributed in the hope that it will be useful,
      12                 : // but WITHOUT ANY WARRANTY; without even the implied warranty of
      13                 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14                 : // GNU General Public License for more details.
      15                 : //
      16                 : // You should have received a copy of the GNU General Public License
      17                 : // along with this program; if not, write to the Free Software
      18                 : // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
      19                 : //
      20                 : //==============================================================================
      21                 : 
      22                 : #include "src/cpp/prod/tool/DEVELOPMENT.h"
      23                 : #include "src/cpp/prod/tool/Assert.h"
      24                 : 
      25                 : #include "src/cpp/dev/idlc/operation.h"
      26                 : #include "src/cpp/dev/idlc/idl_type.h"
      27                 : 
      28                 : Operation::Operation(
      29                 :    OperationAttribute attrib,
      30                 :    IDLType *result,
      31            2111 :    const String& name)
      32                 :  : Symbol(name, operationSymbol),
      33                 :    _attrib(attrib),
      34                 :    _return(result),
      35                 :    _parameters(),
      36            2111 :    _exceptions()
      37                 : {
      38               0 : }
      39                 : 
      40            2111 : Operation::~Operation()
      41                 : {
      42            2111 :    delete _return ;
      43                 :    _parameters.clear() ; // NOT clearAndDestroy : done by sym_tab.
      44               0 : }
      45                 : 
      46            3473 : void Operation::addParameter(Parameter *param)
      47                 : {
      48                 :    ASSERT(param != NULL) ;
      49            3473 :    const String& name = param->GetName() ;
      50            3473 :    if (findParameterByName(name) != NULL)
      51                 :    {
      52               1 :       NON_DEV("Error message") ;
      53                 :    }
      54                 :    else
      55                 :    {
      56                 :       _parameters.addTail(param) ;
      57                 :    }
      58                 : }
      59                 : 
      60            1549 : IDLType* Operation::GetReturnType(void) const
      61                 : {
      62                 :    return _return ;
      63                 : }
      64                 : 
      65            1549 : const ParameterList& Operation::GetParameterList(void) const
      66                 : {
      67                 :    return _parameters ;
      68                 : }
      69                 : 
      70            3473 : Parameter* Operation::findParameterByName(const String& name) const
      71                 : {
      72                 :    Parameter *item = NULL ;
      73                 :    ParameterListIt it(_parameters) ;
      74           11283 :    while (it.GetNext())
      75                 :    {
      76                 :       item = it.GetItem() ;
      77            4338 :       if (item->GetName() == name)
      78                 :       {
      79                 :          return item ;
      80                 :       }
      81                 :    }
      82                 : 
      83                 :    return NULL ;
      84                 : }
      85                 : 
      86            1176 : void Operation::addException(Exception *except)
      87                 : {
      88                 :    ASSERT(except != NULL) ;
      89            1176 :    const String& name = except->GetName() ;
      90            1176 :    if (findExceptionByName(name) != NULL)
      91                 :    {
      92               1 :       NON_DEV("Error message") ;
      93                 :    }
      94                 :    else
      95                 :    {
      96                 :       _exceptions.addTail(except) ;
      97                 :    }
      98                 : }
      99                 : 
     100               0 : const ExceptionList& Operation::GetExceptionList(void) const
     101                 : {
     102                 :    return _exceptions ;
     103                 : }
     104                 : 
     105            1176 : Exception* Operation::findExceptionByName(const String& name) const
     106                 : {
     107                 :    Exception *item = NULL ;
     108                 :    ExceptionListIt it(_exceptions) ;
     109            3067 :    while (it.GetNext())
     110                 :    {
     111                 :       item = it.GetItem() ;
     112             716 :       if (item->GetName() == name)
     113                 :       {
     114                 :          return item ;
     115                 :       }
     116                 :    }
     117                 : 
     118                 :    return NULL ;
     119              48 : }
     120              48 : 

Generated by: LTP GCOV extension version 1.4