orca-robotics INTRODUCTION Overview Download and Install Quick Start Documentation Publications REPOSITORY Interfaces Components Libraries Utilities Software Map DEVELOPER Tutorials Examples Dev Guide Dashboard Wiki login/pass: orca/orca PEOPLE Contributors Users Project Download Mailing lists
|
utils/logplayer/mainthread.h00001 /* 00002 * Orca-Robotics Project: Components for robotics 00003 * http://orca-robotics.sf.net/ 00004 * Copyright (c) 2007 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 MAIN_THREAD_H 00012 #define MAIN_THREAD_H 00013 00014 #include <string> 00015 #include <memory> 00016 #include <gbxsickacfr/gbxiceutilacfr/subsystemthread.h> 00017 #include <orcaice/context.h> 00018 00019 #include <hydrodll/dll.h> 00020 #include "interfacetypecounter.h" 00021 00022 namespace orcalog 00023 { 00024 class MasterFileReader; 00025 class Replayer; 00026 class ReplayerFactory; 00027 } 00028 00029 namespace logplayer 00030 { 00031 00032 class MainThread: public gbxsickacfr::gbxiceutilacfr::SubsystemThread 00033 { 00034 public: 00035 MainThread( const orcaice::Context& context ); 00036 ~MainThread(); 00037 00038 // from SubsystemThread 00039 virtual void walk(); 00040 00041 private: 00042 00043 // utilities 00044 void loadPluginLibraries( const std::string& factoryLibNames ); 00045 void createReplayer( const std::string & interfaceType, 00046 const std::string& format, 00047 const std::string& filename, 00048 bool enabled, 00049 bool require ); 00050 00051 void readReplayParams( IceUtil::Time &beginTime, double &replayRate, bool &autoStart ); 00052 00053 gbxsickacfr::gbxiceutilacfr::ThreadPtr replayConductor_; 00054 gbxsickacfr::gbxiceutilacfr::ThreadPtr highLevelController_; 00055 00056 std::auto_ptr<orcalog::MasterFileReader> masterFileReader_; 00057 00058 std::vector<orcalog::ReplayerFactory*> replayerFactories_; 00059 std::vector<hydrodll::DynamicallyLoadedLibrary*> libraries_; 00060 00061 std::vector<orcalog::Replayer*> replayers_; 00062 00063 // Ensure interfaces of a given type are unique. 00064 InterfaceTypeCounter interfaceTypeCounter_; 00065 00066 orcaice::Context context_; 00067 }; 00068 00069 } // namespace 00070 00071 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)