1 // Copyright (C) 2009 - 2012 Mathias Froehlich - Mathias.Froehlich@web.de 2 // 3 // This library is free software; you can redistribute it and/or 4 // modify it under the terms of the GNU Library General Public 5 // License as published by the Free Software Foundation; either 6 // version 2 of the License, or (at your option) any later version. 7 // 8 // This library is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 // Library General Public License for more details. 12 // 13 // You should have received a copy of the GNU General Public License 14 // along with this program; if not, write to the Free Software 15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 // 17 18 #ifndef RTI13InteractionClass_hxx 19 #define RTI13InteractionClass_hxx 20 21 #include <map> 22 #include <vector> 23 24 #ifndef RTI_USES_STD_FSTREAM 25 #define RTI_USES_STD_FSTREAM 26 #endif 27 28 #include <RTI.hh> 29 30 #include "RTIInteractionClass.hxx" 31 32 #include <simgear/structure/SGSharedPtr.hxx> 33 34 namespace simgear { 35 36 class RTI13Ambassador; 37 38 class RTI13InteractionClass : public RTIInteractionClass { 39 public: 40 RTI13InteractionClass(HLAInteractionClass* interactionClass, const RTI::InteractionClassHandle& handle, RTI13Ambassador* ambassador); 41 virtual ~RTI13InteractionClass(); 42 43 virtual bool resolveParameterIndex(const std::string& name, unsigned index); 44 45 virtual bool publish(); 46 virtual bool unpublish(); 47 48 virtual bool subscribe(bool); 49 virtual bool unsubscribe(); 50 51 private: 52 RTI::InteractionClassHandle _handle; 53 SGSharedPtr<RTI13Ambassador> _ambassador; 54 55 typedef std::map<RTI::ParameterHandle, unsigned> ParameterHandleIndexMap; 56 ParameterHandleIndexMap _parameterHandleIndexMap; 57 58 typedef std::vector<RTI::ParameterHandle> ParameterHandleVector; 59 ParameterHandleVector _parameterHandleVector; 60 }; 61 62 } 63 64 #endif 65