00001 /*************************************************************************** 00002 tag: The SourceWorks Tue Sep 7 00:55:18 CEST 2010 ServiceI.h 00003 00004 ServiceI.h - description 00005 ------------------- 00006 begin : Tue September 07 2010 00007 copyright : (C) 2010 The SourceWorks 00008 email : peter@thesourceworks.com 00009 00010 *************************************************************************** 00011 * This library is free software; you can redistribute it and/or * 00012 * modify it under the terms of the GNU General Public * 00013 * License as published by the Free Software Foundation; * 00014 * version 2 of the License. * 00015 * * 00016 * As a special exception, you may use this file as part of a free * 00017 * software library without restriction. Specifically, if other files * 00018 * instantiate templates or use macros or inline functions from this * 00019 * file, or you compile this file and link it with other files to * 00020 * produce an executable, this file does not by itself cause the * 00021 * resulting executable to be covered by the GNU General Public * 00022 * License. This exception does not however invalidate any other * 00023 * reasons why the executable file might be covered by the GNU General * 00024 * Public License. * 00025 * * 00026 * This library is distributed in the hope that it will be useful, * 00027 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00028 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00029 * Lesser General Public License for more details. * 00030 * * 00031 * You should have received a copy of the GNU General Public * 00032 * License along with this library; if not, write to the Free Software * 00033 * Foundation, Inc., 59 Temple Place, * 00034 * Suite 330, Boston, MA 02111-1307 USA * 00035 * * 00036 ***************************************************************************/ 00037 00038 00039 // -*- C++ -*- 00040 // 00041 // $Id$ 00042 00043 // **** Code generated by the The ACE ORB (TAO) IDL Compiler **** 00044 // TAO and the TAO IDL Compiler have been developed by: 00045 // Center for Distributed Object Computing 00046 // Washington University 00047 // St. Louis, MO 00048 // USA 00049 // http://www.cs.wustl.edu/~schmidt/doc-center.html 00050 // and 00051 // Distributed Object Computing Laboratory 00052 // University of California at Irvine 00053 // Irvine, CA 00054 // USA 00055 // http://doc.ece.uci.edu/ 00056 // and 00057 // Institute for Software Integrated Systems 00058 // Vanderbilt University 00059 // Nashville, TN 00060 // USA 00061 // http://www.isis.vanderbilt.edu/ 00062 // 00063 // Information about TAO is available at: 00064 // http://www.cs.wustl.edu/~schmidt/TAO.html 00065 00066 // TAO_IDL - Generated from 00067 // ../../../ACE_wrappers/TAO/TAO_IDL/be/be_codegen.cpp:1133 00068 00069 #ifndef ORO_CORBA_SERVICEI_H_ 00070 #define ORO_CORBA_SERVICEI_H_ 00071 00072 #include "corba.h" 00073 #ifdef CORBA_IS_TAO 00074 #include "ServiceS.h" 00075 #else 00076 #include "ServiceC.h" 00077 #endif 00078 00079 #include "../../Service.hpp" 00080 #include "ConfigurationInterfaceI.h" 00081 #include "OperationInterfaceI.h" 00082 #include "DataFlowI.h" 00083 00084 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00085 #pragma once 00086 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00087 00088 class RTT_corba_CService_i 00089 : public virtual POA_RTT::corba::CService, public virtual PortableServer::RefCountServantBase, 00090 public virtual RTT_corba_CConfigurationInterface_i, 00091 public virtual RTT_corba_COperationInterface_i 00092 ,public virtual RTT::corba::CDataFlowInterface_i 00093 { 00094 protected: 00095 PortableServer::POA_var mpoa; 00096 RTT::Service::shared_ptr mservice; 00097 // child services 00098 typedef std::vector<std::pair<RTT::corba::CService_var,PortableServer::ServantBase_var> > Servants; 00099 Servants mservs; 00100 public: 00101 // Constructor 00102 RTT_corba_CService_i ( RTT::ServicePtr service, PortableServer::POA_ptr poa); 00103 00104 // Destructor 00105 virtual ~RTT_corba_CService_i (void); 00106 00107 virtual RTT::corba::CService_ptr activate_this() { 00108 PortableServer::ObjectId_var oid = mpoa->activate_object(this); // ref count=2 00109 //_remove_ref(); // ref count=1 00110 return POA_RTT::corba::CService::_this(); 00111 } 00112 00113 PortableServer::POA_ptr _default_POA(); 00114 00115 virtual 00116 char * getName ( 00117 void); 00118 00119 virtual 00120 char * getServiceDescription ( 00121 void); 00122 00123 virtual 00124 ::RTT::corba::CService::CProviderNames * getProviderNames ( 00125 void); 00126 00127 virtual 00128 ::RTT::corba::CService_ptr getService ( 00129 const char * name); 00130 00131 virtual 00132 ::CORBA::Boolean hasService ( 00133 const char * name); 00134 00135 }; 00136 00137 00138 #endif /* SERVICEI_H_ */ 00139 00140