LTP GCOV extension - code coverage report
Current view: directory - test/cpp/app - server.cpp
Test: YAORB-0.2.info
Date: 2006-02-27 Instrumented lines: 31
Code covered: 80.6 % Executed lines: 25

       1                 : //==============================================================================
       2                 : // File <$/test/cpp/app/server.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 <iostream>
      24                 : #include <yaorb/CORBA.h>
      25                 : #include <yaorb/YAORB.h>
      26                 : 
      27                 : #include <CosNaming.h>
      28                 : 
      29                 : #include "src/cpp/prod/tool/Assert.h"
      30                 : 
      31               2 : int main(int argc, char *argv[])
      32                 : {
      33                 :    try
      34                 :    {
      35               2 :       int _argc = 5 ;
      36                 :       char *_argv[] =
      37                 :       {
      38                 :          "server", "-ORBId", "App", "-ORBModel", "MultiThreadServer",
      39               2 :       } ;
      40                 :    
      41               2 :       CORBA::ORB_var myOrb = CORBA::ORB_init(_argc, _argv) ;
      42                 :    
      43                 :       ASSERT( ! CORBA::is_nil(myOrb)) ;
      44                 :    
      45                 :       CORBA::ORB::ObjectIdList *services ;
      46                 :    
      47               1 :       services = myOrb->list_initial_services() ;
      48                 :    
      49               1 :       if (services != NULL)
      50                 :       {
      51              17 :          for (unsigned int i = 0 ;
      52                 :               i < services->length() ;
      53                 :               i++)
      54                 :          {
      55                 :             std::cout << "Service[" << i << "]="
      56              16 :                << (*services)[i].in() << std::endl ;
      57                 :          }
      58                 :       }
      59                 :    
      60                 :       CORBA::Object_var obj ;
      61               1 :       obj = myOrb->resolve_initial_references("NameService") ;
      62                 :    
      63                 :       CosNaming::NamingContext_var inc ;
      64               1 :       inc = CosNaming::NamingContext::_narrow(obj) ;
      65                 :    
      66               1 :       if (CORBA::is_nil(inc))
      67                 :       {
      68               1 :          std::cout << "CosNaming::NamingContext::_narrow() failed !" ;
      69                 :       }
      70                 :    
      71                 :       PortableServer::POA_var rootPOA ;
      72               1 :       obj = myOrb->resolve_initial_references("RootPOA") ;
      73                 :    
      74               1 :       rootPOA = PortableServer::POA::_narrow(obj) ;
      75                 :    
      76               1 :       if (CORBA::is_nil(rootPOA))
      77                 :       {
      78               0 :          std::cout << "PortableServer::POA::_narrow() failed !" ;
      79                 :       }
      80                 :    
      81                 :       PortableServer::POAManager_var myManager ;
      82                 :    
      83                 :       PortableServer::POA_var myPOA ;
      84                 :       // myPOA = ???
      85                 :    
      86                 :       CORBA::PolicyList policies(2) ;
      87                 :       policies.length(2) ;
      88                 :    
      89                 :       policies[0] = rootPOA->create_thread_policy(
      90               1 :          PortableServer::ORB_CTRL_MODEL) ;
      91                 : 
      92                 :       policies[1] = rootPOA->create_lifespan_policy(
      93               1 :          PortableServer::PERSISTENT) ;
      94                 :    
      95               1 :       myPOA = rootPOA->create_POA("MyPOA", myManager, policies) ;
      96                 :    
      97              10 :       for (int i=0; i<10; i++)
      98                 :       {
      99              10 :          if (myOrb->work_pending())
     100                 :          {
     101               0 :             myOrb->perform_work() ;
     102                 :          }
     103                 :       }
     104                 :    
     105                 :       return 0L ;
     106                 :    }
     107               2 :    catch (CORBA::SystemException& e)
     108                 :    {
     109               1 :       std::cerr << "System Exception :" << e.minor() << std::endl ;
     110               1 :       return -1 ;
     111                 :    }
     112               0 :    catch (CORBA::UserException& e)
     113                 :    {
     114               0 :       std::cerr << "User Exception" << std::endl ;
     115               0 :       return -2 ;
     116                 :    }
     117               2 : }
     118               2 : 

Generated by: LTP GCOV extension version 1.4