LTP GCOV extension - code coverage report
Current view: directory - src/cpp/dev/idlc - idl_type.cpp
Test: YAORB-0.2.info
Date: 2006-02-27 Instrumented lines: 170
Code covered: 67.1 % Executed lines: 114

       1                 : //==============================================================================
       2                 : // File <$/src/cpp/dev/idlc/idl_type.cpp>
       3                 : // This file is part of YaOrb : Yet Another Object Request Broker,
       4                 : // Copyright (c) 2000-2003, 2006, 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 <iostream>
      23                 : 
      24                 : #include "src/cpp/prod/tool/DEVELOPMENT.h"
      25                 : #include "src/cpp/prod/tool/Assert.h"
      26                 : 
      27                 : #include "src/cpp/dev/idlc/idl_type.h"
      28                 : #include "src/cpp/dev/idlc/symbol.h"
      29                 : #include "src/cpp/dev/idlc/enum.h"
      30                 : #include "src/cpp/dev/idlc/struct.h"
      31                 : #include "src/cpp/dev/idlc/typedef.h"
      32                 : #include "src/cpp/dev/idlc/interface.h"
      33                 : #include "src/cpp/dev/idlc/native.h"
      34                 : #include "src/cpp/dev/idlc/all_symbols.h"
      35                 : 
      36                 : // IDLType
      37                 : 
      38           11118 : IDLType::IDLType(IDLType_e type)
      39           11118 : : _type(type), _hook(NULL)
      40                 : {}
      41                 : 
      42            9719 : IDLType::~IDLType()
      43               0 : {}
      44                 : 
      45           15126 : IDLType_e IDLType::isA() const
      46                 : {
      47                 :    return _type ;
      48                 : }
      49                 : 
      50               0 : void* IDLType::GetHook(void) const
      51                 : {
      52                 :    return _hook ;
      53                 : }
      54                 : 
      55               0 : void IDLType::SetHook(void* hook)
      56                 : {
      57               0 :    _hook = hook ;
      58                 : }
      59                 : 
      60             747 : IDLType* IDLType::ResolveAlias(IDLType *type)
      61                 : {
      62                 :    ASSERT(type != NULL) ;
      63                 :    IDLTypedefType *td = NULL ;
      64                 :    Typedef *symbol = NULL ;
      65                 : 
      66            1598 :    while (type->isA() == idl_typedef)
      67                 :    {
      68                 :       td = (IDLTypedefType*) type ;
      69             104 :       symbol = td->GetSymbol() ;
      70                 :       ASSERT(symbol != NULL) ;
      71             104 :       type = symbol->GetType() ;
      72                 :       ASSERT(type != NULL) ;
      73                 :    }
      74                 : 
      75                 :    return type ;
      76                 : }
      77                 : 
      78                 : 
      79                 : // IDLErrorType
      80                 : 
      81               9 : IDLErrorType::IDLErrorType()
      82               9 : : IDLType(idl_errorType)
      83                 : {}
      84                 : 
      85               9 : IDLErrorType::~IDLErrorType()
      86               9 : {}
      87                 : 
      88               0 : void IDLErrorType::print(std::ostream& str)
      89                 : {
      90               0 :    str << "idl type error" ;
      91                 : }
      92                 : 
      93                 : // IDLIntType
      94                 : 
      95            1615 : IDLIntType::IDLIntType(IDLIntType_e type)
      96            1615 : : IDLType(idl_intType), _type(type)
      97                 : {}
      98                 : 
      99            1237 : IDLIntType::~IDLIntType()
     100            1237 : {}
     101                 : 
     102            1605 : IDLIntType_e IDLIntType::GetType(void) const
     103                 : {
     104                 :    return _type ;
     105                 : }
     106                 : 
     107              54 : void IDLIntType::print(std::ostream& str)
     108                 : {
     109              54 :    switch (_type)
     110                 :    {
     111                 :       case idl_signed_short :
     112              27 :          { str << "idl signed short" ; break ; }
     113                 :       case idl_signed_long :
     114               9 :          { str << "idl signed long" ; break ; }
     115                 :       case idl_signed_long_long :
     116               2 :          { str << "idl signed long long" ; break ; }
     117                 :       case idl_unsigned_short :
     118              12 :          { str << "idl unsigned short" ; break ; }
     119                 :       case idl_unsigned_long :
     120               4 :          { str << "idl unsigned long" ; break ; }
     121                 :       case idl_unsigned_long_long :
     122               0 :          { str << "idl unsigned long long" ; break ; }
     123                 :    }
     124                 : }
     125                 : 
     126                 : // IDLFloatType
     127                 : 
     128              15 : IDLFloatType::IDLFloatType(IDLFloatType_e type)
     129              15 : : IDLType(idl_floatType), _type(type)
     130                 : {}
     131                 : 
     132              15 : IDLFloatType::~IDLFloatType()
     133              15 : {}
     134                 : 
     135              27 : IDLFloatType_e IDLFloatType::GetType(void) const
     136                 : {
     137                 :    return _type ;
     138                 : }
     139                 : 
     140               0 : void IDLFloatType::print(std::ostream& str)
     141                 : {
     142               0 :    switch(_type)
     143                 :    {
     144                 :       case idl_float :
     145                 :       {
     146               0 :          str << "idl float" ;
     147                 :          break ;
     148                 :       }
     149                 :       case idl_double :
     150                 :       {
     151               0 :          str << "idl double" ;
     152                 :          break ;
     153                 :       }
     154                 :       case idl_long_double :
     155                 :       {
     156               0 :          str << "idl long double" ;
     157                 :          break ;
     158                 :       }
     159                 :    }
     160                 : }
     161                 : 
     162                 : // IDLCharType
     163                 : 
     164             148 : IDLCharType::IDLCharType()
     165             148 : : IDLType(idl_charType)
     166                 : {}
     167                 : 
     168              83 : IDLCharType::~IDLCharType()
     169              83 : {}
     170                 : 
     171               2 : void IDLCharType::print(std::ostream& str)
     172                 : {
     173               2 :    str << "idl char" ;
     174                 : }
     175                 : 
     176                 : // IDLWCharType
     177                 : 
     178             131 : IDLWCharType::IDLWCharType()
     179             131 : : IDLType(idl_wcharType)
     180                 : {}
     181                 : 
     182              68 : IDLWCharType::~IDLWCharType()
     183              68 : {}
     184                 : 
     185               2 : void IDLWCharType::print(std::ostream& str)
     186                 : {
     187               2 :    str << "idl wchar" ;
     188                 : }
     189                 : 
     190                 : // IDLBoolType
     191                 : 
     192             669 : IDLBoolType::IDLBoolType()
     193             669 : : IDLType(idl_boolType)
     194                 : {}
     195                 : 
     196             621 : IDLBoolType::~IDLBoolType()
     197             621 : {}
     198                 : 
     199               0 : void IDLBoolType::print(std::ostream& str)
     200                 : {
     201               0 :    NON_DEV("print") ;
     202                 : }
     203                 : 
     204                 : // IDLTemplateType
     205                 : 
     206             627 : IDLTemplateType::IDLTemplateType(IDLType_e type)
     207             627 : : IDLType(type), _bounded(false), _maxSize(0)
     208                 : {
     209                 : }
     210                 : 
     211               0 : IDLTemplateType::IDLTemplateType(IDLType_e type, int maxSize)
     212               0 : : IDLType(type), _bounded(true), _maxSize(maxSize)
     213                 : {
     214                 : }
     215                 : 
     216             531 : IDLTemplateType::~IDLTemplateType()
     217             531 : {}
     218                 : 
     219              48 : bool IDLTemplateType::IsBounded(void) const
     220                 : {
     221                 :    return _bounded ;
     222                 : }
     223                 : 
     224               0 : int IDLTemplateType::GetMaxSize(void) const
     225                 : {
     226                 :    return _maxSize ;
     227                 : }
     228                 : 
     229                 : // IDLSequenceType
     230                 : 
     231             389 : IDLSequenceType::IDLSequenceType(IDLType *baseType)
     232             389 : : IDLTemplateType(idl_sequence), _baseType(baseType)
     233                 : {
     234                 : }
     235                 : 
     236               0 : IDLSequenceType::IDLSequenceType(IDLType *baseType, int maxSize)
     237               0 : : IDLTemplateType(idl_sequence, maxSize), _baseType(baseType)
     238                 : {
     239                 : }
     240                 : 
     241             389 : IDLSequenceType::~IDLSequenceType()
     242             389 : {}
     243                 : 
     244              48 : IDLType* IDLSequenceType::GetType(void) const
     245                 : {
     246                 :    return _baseType ;
     247                 : }
     248                 : 
     249               0 : void IDLSequenceType::print(std::ostream &str)
     250                 : {
     251               0 :    str << "sequence <" ;
     252               0 :    _baseType->print(str) ;
     253                 :    
     254               0 :    if (_bounded)
     255                 :    {
     256               0 :       str << ", " << _maxSize ;
     257                 :    }
     258                 : 
     259               0 :    str << ">" ;
     260                 : }
     261                 : 
     262                 : // IDLStringType
     263                 : 
     264             189 : IDLStringType::IDLStringType()
     265             189 : : IDLTemplateType(idl_string)
     266                 : {}
     267                 : 
     268               0 : IDLStringType::IDLStringType(int maxSize)
     269               0 : : IDLTemplateType(idl_string, maxSize)
     270                 : {}
     271                 : 
     272             141 : IDLStringType::~IDLStringType()
     273             141 : {}
     274                 : 
     275               1 : void IDLStringType::print(std::ostream &str)
     276                 : {
     277               1 :    str << "string" ;
     278                 :    
     279               1 :    if (_bounded)
     280                 :    {
     281               0 :       str << "<" << _maxSize << ">" ;
     282                 :    }
     283                 : }
     284                 : 
     285                 : // IDLWStringType
     286                 : 
     287              49 : IDLWStringType::IDLWStringType()
     288              49 : : IDLTemplateType(idl_wstring)
     289                 : {}
     290                 : 
     291               0 : IDLWStringType::IDLWStringType(int maxSize)
     292               0 : : IDLTemplateType(idl_wstring, maxSize)
     293                 : {}
     294                 : 
     295               1 : IDLWStringType::~IDLWStringType()
     296               1 : {}
     297                 : 
     298               1 : void IDLWStringType::print(std::ostream &str)
     299                 : {
     300               1 :    str << "wstring" ;
     301                 :    
     302               1 :    if (_bounded)
     303                 :    {
     304               0 :       str << "<" << _maxSize << ">" ;
     305                 :    }
     306                 : }
     307                 : 
     308                 : // IDLVoidType
     309                 : 
     310             464 : IDLVoidType::IDLVoidType()
     311             464 :  : IDLType(idl_void)
     312                 : {}
     313                 : 
     314             464 : IDLVoidType::~IDLVoidType()
     315             464 : {}
     316                 : 
     317               0 : void IDLVoidType::print(std::ostream &str)
     318                 : {
     319               0 :    str << "void" ;
     320                 : }
     321                 : 
     322                 : // IDLArrayType
     323                 : 
     324               0 : IDLArrayType::IDLArrayType(int size, IDLType *type)
     325               0 :  : IDLType(idl_array), _size(size), _type(type)
     326                 : {
     327                 : }
     328                 : 
     329               0 : IDLArrayType::~IDLArrayType()
     330                 : {
     331               0 :    delete _type ;
     332               0 : }
     333                 : 
     334               0 : void IDLArrayType::print(std::ostream &str)
     335                 : {
     336               0 :    str << "Array[" << _size <<"] of " ;
     337               0 :    _type->print(str) ;
     338                 : }
     339                 : 
     340                 : // IDLEnumType
     341                 : 
     342             389 : IDLEnumType::IDLEnumType(Enum *symbol)
     343             389 :  : IDLType(idl_enum), _symbol(symbol)
     344                 : {
     345                 : }
     346                 : 
     347             389 : IDLEnumType::~IDLEnumType()
     348                 : {
     349                 :    // Do NOT delete _symbol ;
     350             389 : }
     351                 : 
     352               0 : void IDLEnumType::print(std::ostream& str)
     353                 : {
     354               0 :    str << "Enum: " << _symbol->GetName() ;
     355                 : }
     356                 : 
     357             244 : Enum* IDLEnumType::GetSymbol(void) const
     358                 : {
     359                 :    return _symbol ;
     360                 : }
     361                 : 
     362                 : // IDLStructType
     363                 : 
     364             786 : IDLStructType::IDLStructType(Struct *symbol)
     365             786 :  : IDLType(idl_struct), _symbol(symbol)
     366                 : {
     367                 : }
     368                 : 
     369             202 : IDLStructType::~IDLStructType()
     370                 : {
     371                 :    // Do NOT delete _symbol ;
     372             202 : }
     373                 : 
     374               0 : void IDLStructType::print(std::ostream& str)
     375                 : {
     376               0 :    str << "Struct: " << _symbol->GetName() ;
     377                 : }
     378                 : 
     379             233 : Struct* IDLStructType::GetSymbol(void) const
     380                 : {
     381                 :    return _symbol ;
     382                 : }
     383                 : 
     384                 : // IDLTypedefType
     385                 : 
     386            3568 : IDLTypedefType::IDLTypedefType(Typedef *symbol)
     387            3568 :  : IDLType(idl_typedef), _symbol(symbol)
     388                 : {
     389                 : }
     390                 : 
     391            3507 : IDLTypedefType::~IDLTypedefType()
     392                 : {
     393                 :    // Do NOT delete _symbol ;
     394            3507 : }
     395                 : 
     396               0 : void IDLTypedefType::print(std::ostream& str)
     397                 : {
     398               0 :    str << "Typedef: " << _symbol->GetName() ;
     399                 : }
     400                 : 
     401            1836 : Typedef* IDLTypedefType::GetSymbol(void) const
     402                 : {
     403                 :    return _symbol ;
     404                 : }
     405                 : 
     406                 : 
     407             256 : IDLAnyType::IDLAnyType()
     408             256 :  : IDLType(idl_any)
     409                 : {}
     410                 : 
     411             255 : IDLAnyType::~IDLAnyType()
     412             255 : {}
     413                 : 
     414               0 : void IDLAnyType::print(std::ostream& str)
     415                 : {
     416               0 :    str << "any" ;
     417                 : }
     418                 : 
     419              82 : IDLObjectType::IDLObjectType()
     420              82 :  : IDLType(idl_object)
     421                 : {}
     422                 : 
     423              82 : IDLObjectType::~IDLObjectType()
     424              82 : {}
     425                 : 
     426               0 : void IDLObjectType::print(std::ostream& str)
     427                 : {
     428               0 :    str << "object" ;
     429                 : }
     430                 : 
     431                 : // IDLOctetType
     432                 : 
     433               9 : IDLOctetType::IDLOctetType()
     434               9 :  : IDLType(idl_octet)
     435                 : {}
     436                 : 
     437               4 : IDLOctetType::~IDLOctetType()
     438               4 : {}
     439                 : 
     440               4 : void IDLOctetType::print(std::ostream& str)
     441                 : {
     442               4 :    str << "octet" ;
     443                 : }
     444                 : 
     445                 : // IDLNativeType
     446                 : 
     447              28 : IDLNativeType::IDLNativeType(SymNative *symbol)
     448              28 :  : IDLType(idl_native), _symbol(symbol)
     449                 : {
     450                 : }
     451                 : 
     452              28 : IDLNativeType::~IDLNativeType()
     453                 : {
     454                 :    // Do NOT delete _symbol
     455              28 : }
     456                 : 
     457              14 : SymNative* IDLNativeType::GetSymbol(void) const
     458                 : {
     459                 :    return _symbol ;
     460                 : }
     461                 : 
     462               0 : void IDLNativeType::print(std::ostream& str)
     463                 : {
     464               0 :    str << "Native: " << _symbol->GetName() ;
     465                 : }
     466                 : 
     467                 : // IDLInterfaceType
     468                 : 
     469            2322 : IDLInterfaceType::IDLInterfaceType(Interface *symbol)
     470            2322 :  : IDLType(idl_interface), _symbol(symbol)
     471                 : {
     472                 : }
     473                 : 
     474            2224 : IDLInterfaceType::~IDLInterfaceType()
     475                 : {
     476                 :    // Do NOT delete _symbol ;
     477            2224 : }
     478                 : 
     479               0 : void IDLInterfaceType::print(std::ostream& str)
     480                 : {
     481               0 :    str << "Interface: " << _symbol->GetName() ;
     482                 : }
     483                 : 
     484            2152 : Interface* IDLInterfaceType::GetSymbol(void) const
     485                 : {
     486                 :    return _symbol ;
     487              63 : }
     488              63 : 

Generated by: LTP GCOV extension version 1.4