LTP GCOV extension - code coverage report
Current view: directory - src/cpp/prod/lib - stub.cpp
Test: YAORB-0.2.info
Date: 2006-02-27 Instrumented lines: 25
Code covered: 76.0 % Executed lines: 19

       1                 : //==============================================================================
       2                 : // File <$/src/cpp/prod/lib/stub.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 <yaorb/CORBA.h>
      23                 : #include <yaorb/YAORB.h>
      24                 : 
      25                 : #include "src/cpp/prod/lib/dimensioning.h"
      26                 : #include "src/cpp/prod/tool/DEVELOPMENT.h"
      27                 : #include "src/cpp/prod/tool/Assert.h"
      28                 : #include "src/cpp/prod/tool/Hash.h"
      29                 : #include "src/cpp/prod/protocol/cdr/cdr_fragment.h"
      30                 : #include "src/cpp/prod/protocol/cdr/cdr_file.h"
      31                 : #include "src/cpp/prod/CORBA/YARemoteOrb.h"
      32                 : 
      33                 : //=============================================================================
      34                 : // Stub Hash table
      35                 : //=============================================================================
      36                 : 
      37                 : class StubHash : public THash<YAORB::Stub, YAORB::Ref>
      38                 : {
      39                 :    public :
      40                 :       StubHash(int size) ;
      41               0 :       ~StubHash() {}
      42                 : 
      43                 :    private :
      44                 :       static int myHashFn(const YAORB::Ref* key) ;
      45                 :       static bool myCmpFn(const YAORB::Stub* obj, const YAORB::Ref *key) ;
      46                 : 
      47                 : } ;
      48                 : 
      49              49 : StubHash::StubHash(int size)
      50              98 : : THash<YAORB::Stub, YAORB::Ref> ( & myHashFn, & myCmpFn, size) {}
      51                 : 
      52               0 : int StubHash::myHashFn(const YAORB::Ref* key)
      53                 : {
      54               0 :    NON_DEV("HashFn") ;
      55                 :    return 0 ;
      56                 : }
      57                 : 
      58               0 : bool StubHash::myCmpFn(const YAORB::Stub* obj, const YAORB::Ref *key)
      59                 : {
      60               0 :    NON_DEV("CmpFn") ;
      61                 :    return false ;
      62                 : }
      63                 : 
      64              49 : static StubHash _hash(YAORB::DIM_STUB_HASH_TABLE) ;
      65                 : 
      66                 : //=============================================================================
      67                 : // Stub
      68                 : //=============================================================================
      69                 : 
      70               4 : YAORB::Stub::Stub(const YAORB::Ref& ref)
      71               4 : : _ref(ref)
      72                 : {
      73                 : }
      74                 : 
      75               4 : YAORB::Stub::~Stub()
      76                 : {
      77               4 : }
      78                 : 
      79                 : const YAORB::Ref &
      80               4 : YAORB::Stub::GetRef() const
      81                 : {
      82                 :    return _ref ;
      83                 : }
      84                 : 
      85                 : void
      86                 : YAORB::Stub::Send(
      87                 :    YAORB::Request& request,
      88               4 :    YAORB::Reply& reply) const
      89                 : {
      90               4 :    const Buffer & buf = request.GetBuffer() ;
      91                 : 
      92                 : // --------------------------- DEBUG Code (Begin)
      93               4 :    CORBA::Octet * data = buf.GetData() ;
      94               4 :    unsigned int size = buf.GetSize() ;
      95                 : 
      96               4 :    fprintf(stderr, "encoded %d bytes in a GIOP message\n", size) ;
      97                 : 
      98               4 :    CDRFile debug("debug.giop", CDR_WRITE) ;
      99               4 :    debug.cdr_OctetArray(data, size) ;
     100                 : 
     101                 : // --------------------------- DEBUG Code (End)
     102                 : 
     103               4 :    YARemoteOrb *remoteOrb = _ref.GetRemoteOrb() ;
     104                 : 
     105               4 :    remoteOrb->call(request, reply) ;
     106              49 : }
     107              49 : 

Generated by: LTP GCOV extension version 1.4