Orocos Real-Time Toolkit  2.5.0
OperationInterfaceI.h
00001 /***************************************************************************
00002   tag: The SourceWorks  Tue Sep 7 00:55:18 CEST 2010  OperationInterfaceI.h
00003 
00004                         OperationInterfaceI.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_OPERATIONREPOSITORYI_H_
00070 #define ORO_CORBA_OPERATIONREPOSITORYI_H_
00071 
00072 #include "corba.h"
00073 #ifdef CORBA_IS_TAO
00074 #include "OperationInterfaceS.h"
00075 #else
00076 #include "OperationInterfaceC.h"
00077 #endif
00078 #include "../../OperationInterface.hpp"
00079 #include "../../internal/SendHandleC.hpp"
00080 
00081 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00082 #pragma once
00083 #endif /* ACE_LACKS_PRAGMA_ONCE */
00084 
00085 class  RTT_corba_CSendHandle_i
00086   : public virtual POA_RTT::corba::CSendHandle,
00087   public virtual PortableServer::RefCountServantBase
00088 {
00089       RTT::internal::SendHandleC mhandle, morig;
00090       RTT::OperationInterfacePart* mofp;
00091       std::vector<RTT::base::DataSourceBase::shared_ptr> cargs;
00092 public:
00093   // Constructor
00094   RTT_corba_CSendHandle_i (RTT::internal::SendHandleC const& sh, RTT::OperationInterfacePart* ofp);
00095 
00096   // Destructor
00097   virtual ~RTT_corba_CSendHandle_i (void);
00098 
00099   virtual
00100   ::RTT::corba::CSendStatus collect (
00101       ::RTT::corba::CAnyArguments_out args);
00102 
00103   virtual
00104   ::RTT::corba::CSendStatus collectIfDone (
00105       ::RTT::corba::CAnyArguments_out args);
00106 
00107   virtual
00108   ::RTT::corba::CSendStatus checkStatus (
00109       void);
00110 
00111   virtual
00112   ::CORBA::Any * ret (
00113       void);
00114 
00115   virtual
00116   void checkArguments (
00117           const ::RTT::corba::CAnyArguments & args);
00118 
00119   virtual
00120   void dispose ();
00121 };
00122 
00123 class  RTT_corba_COperationInterface_i
00124   : public virtual POA_RTT::corba::COperationInterface
00125 {
00126       RTT::OperationInterface* mfact;
00127       PortableServer::POA_var mpoa;
00128   public:
00129     //Constructor
00130       RTT_corba_COperationInterface_i(RTT::OperationInterface* mfact, PortableServer::POA_ptr the_poa);
00131 
00132       PortableServer::POA_ptr _default_POA();
00133 
00134   // Destructor
00135   virtual ~RTT_corba_COperationInterface_i (void);
00136 
00137   virtual
00138   RTT::corba::COperationInterface::COperationList * getOperations (
00139       void);
00140 
00141   virtual
00142   ::RTT::corba::CDescriptions * getArguments (
00143       const char * operation);
00144 
00145   virtual
00146   char * getResultType (
00147       const char * operation);
00148 
00149   virtual
00150   char* getArgumentType(
00151           const char*,
00152           CORBA::UShort);
00153 
00154   virtual
00155   char* getCollectType(
00156           const char*,
00157           CORBA::UShort);
00158 
00159   virtual ::CORBA::UShort getArity (
00160       const char * operation);
00161 
00162   virtual ::CORBA::UShort getCollectArity (
00163       const char * operation);
00164 
00165   virtual
00166   char * getDescription (
00167       const char * operation);
00168 
00169   virtual
00170   void checkOperation (
00171       const char * operation,
00172       const ::RTT::corba::CAnyArguments & args);
00173 
00174   virtual
00175   ::CORBA::Any * callOperation (
00176       const char * operation,
00177       ::RTT::corba::CAnyArguments & args);
00178 
00179   virtual
00180   ::RTT::corba::CSendHandle_ptr sendOperation (
00181       const char * operation,
00182       const ::RTT::corba::CAnyArguments & args);
00183 };
00184 
00185 
00186 #endif /* OPERATIONREPOSITORYI_H_  */
00187