INTRODUCTION
Overview
Download and Install
Quick Start
Documentation
Publications

NONFRAMEWORK CODE
Driver Interfaces
Drivers
Libraries
Utilities

FRAMEWORK CODE
Interfaces
Components
Libraries
Utilities

Full Software Listings

DEVELOPER
Tutorials
Examples
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

interfaceprobe.h

00001 /*
00002  * Orca-Robotics Project: Components for robotics 
00003  *               http://orca-robotics.sf.net/
00004  * Copyright (c) 2004-2009 Alexei Makarenko
00005  *
00006  * This copy of Orca is licensed to you under the terms described in
00007  * the LICENSE file included in this distribution.
00008  *
00009  */
00010 
00011 #ifndef ORCA_ORCAPROBE_INTERFACE_PROBE_H
00012 #define ORCA_ORCAPROBE_INTERFACE_PROBE_H
00013 
00014 #include <orca/common.h>
00015 #include <orcacm/types.h>
00016 #include <orcaice/context.h>
00017 
00018 namespace orcaprobe
00019 {
00020 
00021 class AbstractDisplay;
00022 
00023 enum OperationIndex
00024 {
00025     IcePingIndex=0,
00026     UserIndex
00027 };
00028 
00029 class InterfaceProbe : public IceUtil::Shared
00030 {
00031 
00032 public:
00034     InterfaceProbe( const orca::FQInterfaceName& name, const Ice::ObjectPrx& adminPrx, 
00035                 AbstractDisplay& display, const orcaice::Context& context );
00036         
00037     virtual ~InterfaceProbe();
00038 
00040     std::vector<orcacm::OperationHeader> operations() { return operations_; };
00041 
00046     int loadOperation( const int index, orcacm::OperationData& data );
00047 
00049     std::string toString() const;
00050 
00051 protected:
00052 
00054     orca::FQInterfaceName name_;
00055 
00057     std::string id_;
00058 
00062     AbstractDisplay& display_;
00063 
00065     orcaice::Context ctx_;
00066 
00068     Ice::ObjectPrx prx_;
00069 
00073     void addOperation( const std::string& name, bool isSupported, const std::string& signature="" );
00074 
00076     void addOperation( const std::string& name, const std::string& signature="", bool isSupported=true );
00077 
00079     virtual int loadOperationEvent( const int index, orcacm::OperationData& data );
00080 
00082     void fillOperationData( const int index, orcacm::OperationData& data );
00083 
00084 private:
00085     std::vector<orcacm::OperationHeader> operations_;
00086 
00087     // Pings the remote interface.
00088     int loadIcePing( orcacm::OperationData& data );
00089 
00090 };
00092 typedef IceUtil::Handle<InterfaceProbe> InterfaceProbePtr;
00093 
00094 } // namespace
00095 
00096 #endif
 

Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)


Generated for Orca Robotics by  doxygen 1.4.5