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

       1                 : //=============================================================================
       2                 : // File <$/src/cpp/prod/protocol/giop/giop.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 <stdio.h>
      23                 : #include <yaorb/CORBA.h>
      24                 : #include <yaorb/YAORB.h>
      25                 : 
      26                 : #include "src/cpp/prod/tool/Assert.h"
      27                 : 
      28                 : #include "src/cpp/prod/tool/DEVELOPMENT.h"
      29                 : 
      30                 : #include "src/cpp/prod/protocol/giop/message_header.h"
      31                 : #include "src/cpp/prod/protocol/giop/giop.h"
      32                 : #include "src/cpp/prod/protocol/giop/request_header_12.h"
      33                 : #include "src/cpp/prod/protocol/giop/reply_12.h"
      34                 : #include "src/cpp/prod/protocol/giop/cancel_request_12.h"
      35                 : #include "src/cpp/prod/protocol/giop/locate_request_12.h"
      36                 : #include "src/cpp/prod/protocol/giop/locate_reply_12.h"
      37                 : #include "src/cpp/prod/protocol/giop/fragment_12.h"
      38                 : 
      39              31 : GIOPMessage::GIOPMessage()
      40              31 : : _header(), _body()
      41                 : {
      42              31 :    _body._no_body = NULL ;
      43                 : }
      44                 : 
      45              31 : GIOPMessage::~GIOPMessage()
      46                 : {
      47              31 :    switch (_header.GetGIOP12MessageType())
      48                 :    {
      49                 :       case GIOPRequest_type:
      50                 :       {
      51              17 :          if (_body._request != NULL)
      52                 :          {
      53              10 :             delete _body._request ;
      54                 :          }
      55                 :          break ;
      56                 :       }
      57                 :       case GIOPReply_type:
      58                 :       {
      59               4 :          if (_body._reply != NULL)
      60                 :          {
      61               2 :             delete _body._reply ;
      62                 :          }
      63                 :          break ;
      64                 :       }
      65                 :       case GIOPCancelRequest_type:
      66                 :       {
      67               1 :          if (_body._cancelRequest != NULL)
      68                 :          {
      69               1 :             delete _body._cancelRequest ;
      70                 :          }
      71                 :          break ;
      72                 :       }
      73                 :       case GIOPLocateRequest_type:
      74                 :       {
      75               1 :          if (_body._locateRequest != NULL)
      76                 :          {
      77               1 :             delete _body._locateRequest ;
      78                 :          }
      79                 :          break ;
      80                 :       }
      81                 :       case GIOPLocateReply_type:
      82                 :       {
      83               2 :          if (_body._locateReply != NULL)
      84                 :          {
      85               2 :             delete _body._locateReply ;
      86                 :          }
      87                 :          break ;
      88                 :       }
      89                 :       case GIOPCloseConnection_type:
      90                 :       case GIOPMessageError_type:
      91                 :       {
      92                 :          // NOTHING
      93                 :          break ;
      94                 :       }
      95                 :       case GIOPFragment_type:
      96                 :       {
      97               2 :          if (_body._fragment != NULL)
      98                 :          {
      99               0 :             delete _body._fragment ;
     100                 :          }
     101                 :          break ;
     102                 :       }
     103                 :    }
     104               0 : }
     105                 : 
     106               4 : void GIOPMessage::cdr(YAORB::CDR *cdrs)
     107                 : {
     108               4 :    cdr_header(cdrs) ;
     109               4 :    cdr_body(cdrs) ;
     110                 : }
     111                 : 
     112              35 : void GIOPMessage::cdr_header(YAORB::CDR *cdrs)
     113                 : {
     114              35 :    _header.cdr(cdrs) ;
     115                 : }
     116                 : 
     117              18 : void GIOPMessage::cdr_body(YAORB::CDR *cdrs)
     118                 : {
     119              18 :    YAORB::CDR_Op op = cdrs->Op() ;
     120                 : 
     121              18 :    switch (_header.GetGIOP12MessageType())
     122                 :    {
     123                 :       case GIOPRequest_type:
     124                 :       {
     125              10 :          if (op == YAORB::CDR_READ)
     126                 :          {
     127               6 :             _body._request = new GIOP12RequestHeader() ;
     128                 :          }
     129                 : 
     130              10 :          _body._request->cdr(cdrs) ;
     131                 :          break ;
     132                 :       }
     133                 :       case GIOPReply_type:
     134                 :       {
     135               2 :          if (op == YAORB::CDR_READ)
     136                 :          {
     137               2 :             _body._reply = new GIOP12ReplyMessage() ;
     138                 :          }
     139               2 :          _body._reply->cdr(cdrs) ;
     140                 :          break ;
     141                 :       }
     142                 :       case GIOPCancelRequest_type:
     143                 :       {
     144               1 :          if (op == YAORB::CDR_READ)
     145                 :          {
     146               1 :             _body._cancelRequest = new GIOP12CancelRequestMessage() ;
     147                 :          }
     148               1 :          _body._cancelRequest->cdr(cdrs) ;
     149                 :          break ;
     150                 :       }
     151                 :       case GIOPLocateRequest_type:
     152                 :       {
     153               1 :          if (op == YAORB::CDR_READ)
     154                 :          {
     155               1 :             _body._locateRequest = new GIOP12LocateRequestMessage() ;
     156                 :          }
     157               1 :          _body._locateRequest->cdr(cdrs) ;
     158                 :          break ;
     159                 :       }
     160                 :       case GIOPLocateReply_type:
     161                 :       {
     162               2 :          if (op == YAORB::CDR_READ)
     163                 :          {
     164               2 :             _body._locateReply = new GIOP12LocateReplyMessage() ;
     165                 :          }
     166               2 :          _body._locateReply->cdr(cdrs) ;
     167                 :          break ;
     168                 :       }
     169                 :       case GIOPCloseConnection_type:
     170                 :       case GIOPMessageError_type:
     171                 :       {
     172               2 :          _body._no_body = NULL ;
     173               2 :          break ;
     174                 :       }
     175                 :       case GIOPFragment_type:
     176                 :       {
     177               0 :          if (op == YAORB::CDR_READ)
     178                 :          {
     179               0 :             _body._fragment = new GIOP12FragmentMessage() ;
     180                 :          }
     181               0 :          _body._fragment->cdr(cdrs) ;
     182                 :          break ;
     183                 :       }
     184                 :    }
     185                 : }
     186                 : 
     187                 : GIOPMessageHeader&
     188              36 : GIOPMessage::GetHeader(void)
     189                 : {
     190                 :    return _header ;
     191                 : }
     192                 : 
     193                 : GIOP12RequestHeader*
     194               5 : GIOPMessage::GetRequest(void) const
     195                 : {
     196                 :    ASSERT(_header.GetGIOP12MessageType() == GIOPRequest_type) ;
     197                 : 
     198                 :    return _body._request ;
     199                 : }
     200                 : 
     201                 : void
     202               4 : GIOPMessage::SetRequest(GIOP12RequestHeader *msg)
     203                 : {
     204               4 :    _header.SetGIOP12MessageType(GIOPRequest_type) ;
     205               4 :    _body._request = msg ;
     206                 : }
     207                 : 
     208                 : GIOP12ReplyMessage*
     209               1 : GIOPMessage::GetReply(void) const
     210                 : {
     211                 :    ASSERT(_header.GetGIOP12MessageType() == GIOPReply_type) ;
     212                 : 
     213                 :    return _body._reply ;
     214                 : }
     215                 : 
     216                 : GIOP12CancelRequestMessage*
     217               1 : GIOPMessage::GetCancelRequest(void) const
     218                 : {
     219                 :    ASSERT(_header.GetGIOP12MessageType() == GIOPCancelRequest_type) ;
     220                 : 
     221                 :    return _body._cancelRequest ;
     222                 : }
     223                 : 
     224                 : GIOP12LocateRequestMessage*
     225               1 : GIOPMessage::GetLocateRequest(void) const
     226                 : {
     227                 :    ASSERT(_header.GetGIOP12MessageType() == GIOPLocateRequest_type) ;
     228                 : 
     229                 :    return _body._locateRequest ;
     230                 : }
     231                 : 
     232                 : GIOP12LocateReplyMessage*
     233               1 : GIOPMessage::GetLocateReply(void) const
     234                 : {
     235                 :    ASSERT(_header.GetGIOP12MessageType() == GIOPLocateReply_type) ;
     236                 : 
     237                 :    return _body._locateReply ;
     238                 : }
     239                 : 

Generated by: LTP GCOV extension version 1.4