LTP GCOV extension - code coverage report
Current view: directory - src/cpp/dev/idlc - struct.cpp
Test: YAORB-0.2.info
Date: 2006-02-27 Instrumented lines: 16
Code covered: 75.0 % Executed lines: 12

       1                 : //==============================================================================
       2                 : // File <$/src/cpp/dev/idlc/struct.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/struct.h"
      26                 : 
      27                 : // Struct
      28                 : 
      29             364 : Struct::Struct(const String& name)
      30             364 : : Symbol(name, structSymbol), _items()
      31                 : {
      32               0 : }
      33                 : 
      34             364 : Struct::~Struct()
      35                 : {
      36                 :    _items.clear() ; // NOT clearAndDestroy : done by sym_tab.
      37               0 : }
      38                 : 
      39            1755 : void Struct::addMember(Member *m)
      40                 : {
      41                 :    ASSERT(m != NULL) ;
      42            1755 :    const String& name = m->GetName() ;
      43            1755 :    if (findMemberByName(name) != NULL)
      44                 :    {
      45               0 :       NON_DEV("Error message") ;
      46                 :    }
      47                 :    else
      48                 :    {
      49                 :       _items.addTail(m) ;
      50                 :    }
      51                 : }
      52                 : 
      53              86 : const MemberList& Struct::GetMembers(void) const
      54                 : {
      55                 :    return _items ;
      56                 : }
      57                 : 
      58            1755 : Member* Struct::findMemberByName(const String& name) const
      59                 : {
      60                 :    Member *item = NULL ;
      61                 : 
      62                 :    MemberListIt it(_items) ;
      63            8709 :    while (it.GetNext())
      64                 :    {
      65                 :       item = it.GetItem() ;
      66            5199 :       if (item->GetName() == name)
      67                 :       {
      68                 :          return item ;
      69                 :       }
      70                 :    }
      71                 : 
      72                 :    return NULL ;
      73              63 : }
      74              63 : 

Generated by: LTP GCOV extension version 1.4