LTP GCOV extension - code coverage report
Current view: directory - src/cpp/prod/protocol/giop - encapsulation.cpp
Test: YAORB-0.2.info
Date: 2006-02-27 Instrumented lines: 29
Code covered: 86.2 % Executed lines: 25

       1                 : //==============================================================================
       2                 : // File <$/src/cpp/prod/protocol/giop/encapsulation.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                 : // Portability
      23                 : #include "yaorb/config.h"
      24                 : #include "src/cpp/prod/port/port_stdc.h"
      25                 : 
      26                 : #include <stdio.h>
      27                 : 
      28                 : #include <yaorb/CORBA.h>
      29                 : #include <yaorb/YAORB.h>
      30                 : 
      31                 : #include "src/cpp/prod/tool/DEVELOPMENT.h"
      32                 : #include "src/cpp/prod/protocol/giop/encapsulation.h"
      33                 : 
      34              21 : GIOPEncapsulation::GIOPEncapsulation()
      35              21 : : _length(0), _data(NULL)
      36                 : {
      37                 : }
      38                 : 
      39                 : GIOPEncapsulation::GIOPEncapsulation(
      40              16 :    const GIOPEncapsulation& encap)
      41                 :  : _length(encap._length),
      42              16 :    _data(NULL)
      43                 : {
      44              16 :    if (_length > 0)
      45                 :    {
      46              16 :       _data = new CORBA::Octet[_length] ;
      47                 : 
      48              16 :       memcpy(_data, encap._data, _length) ;
      49                 :    }
      50                 : }
      51                 : 
      52                 : GIOPEncapsulation&
      53                 : GIOPEncapsulation::operator=(
      54               4 :    const GIOPEncapsulation& encap)
      55                 : {
      56               4 :    if (_data != NULL)
      57                 :    {
      58               0 :       delete [] _data ;
      59                 :    }
      60                 : 
      61               4 :    _length = encap._length ;
      62                 : 
      63               4 :    if (_length > 0)
      64                 :    {
      65               4 :       _data = new CORBA::Octet[_length] ;
      66                 : 
      67               4 :       memcpy(_data, encap._data, _length) ;
      68                 :    }
      69                 : 
      70                 :    return *this ;
      71                 : }
      72                 : 
      73              33 : GIOPEncapsulation::~GIOPEncapsulation()
      74                 : {
      75              33 :    if (_data != NULL)
      76                 :    {
      77              33 :       delete [] _data ;
      78                 :    }
      79               0 : }
      80                 : 
      81              21 : void GIOPEncapsulation::cdr(YAORB::CDR *cdrs)
      82                 : {
      83              21 :    cdrs->cdr_ULong( & _length) ;
      84                 : 
      85              21 :    if (cdrs->Op() == YAORB::CDR_READ)
      86                 :    {
      87              17 :       if (_data != NULL)
      88                 :       {
      89               0 :          delete [] _data ;
      90               0 :          _data = NULL ;
      91                 :       }
      92                 : 
      93              17 :       if (_length > 0)
      94                 :       {
      95              17 :          _data = new CORBA::Octet[_length] ;
      96                 :       }
      97                 :    }
      98                 : 
      99              21 :    cdrs->cdr_OctetArray(_data, _length) ;
     100                 : }
     101                 : 
     102              12 : CORBA::ULong GIOPEncapsulation::GetLength(void) const
     103                 : {
     104                 :    return _length ;
     105                 : }
     106                 : 
     107              10 : CORBA::Octet* GIOPEncapsulation::GetData(void) const
     108                 : {
     109                 :    return _data ;
     110                 : }
     111                 : 

Generated by: LTP GCOV extension version 1.4