Orocos Real-Time Toolkit  2.8.3
TypeInfoName.hpp
Go to the documentation of this file.
1 /***************************************************************************
2  tag: Peter Soetens Mon Jun 26 13:25:56 CEST 2006 TypeInfoName.hpp
3 
4  TypeInfoName.hpp - description
5  -------------------
6  begin : Mon June 26 2006
7  copyright : (C) 2006 Peter Soetens
8  email : peter.soetens@fmtc.be
9 
10  ***************************************************************************
11  * This library is free software; you can redistribute it and/or *
12  * modify it under the terms of the GNU General Public *
13  * License as published by the Free Software Foundation; *
14  * version 2 of the License. *
15  * *
16  * As a special exception, you may use this file as part of a free *
17  * software library without restriction. Specifically, if other files *
18  * instantiate templates or use macros or inline functions from this *
19  * file, or you compile this file and link it with other files to *
20  * produce an executable, this file does not by itself cause the *
21  * resulting executable to be covered by the GNU General Public *
22  * License. This exception does not however invalidate any other *
23  * reasons why the executable file might be covered by the GNU General *
24  * Public License. *
25  * *
26  * This library is distributed in the hope that it will be useful, *
27  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
28  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
29  * Lesser General Public License for more details. *
30  * *
31  * You should have received a copy of the GNU General Public *
32  * License along with this library; if not, write to the Free Software *
33  * Foundation, Inc., 59 Temple Place, *
34  * Suite 330, Boston, MA 02111-1307 USA *
35  * *
36  ***************************************************************************/
37 
38 
39 #ifndef ORO_TYPEINFO_NAME_HPP
40 #define ORO_TYPEINFO_NAME_HPP
41 
42 #include "Types.hpp"
43 #include "TypeInfoGenerator.hpp"
44 #include "../internal/DataSourceTypeInfo.hpp"
45 #include "../Logger.hpp"
46 #include "../rtt-config.h"
47 
48 namespace RTT
49 { namespace types {
50 
55  : public TypeInfoGenerator
56  {
57  protected:
58  const std::string tname;
59  public:
60  EmptyTypeInfo(std::string name)
61  : tname(name)
62  {
63  }
64 
66  return true;
67  }
68 
69  virtual const std::string& getTypeName() const { return tname; }
70 
71  TypeInfo* getTypeInfoObject() const { return 0; }
72  };
73 
80  template<typename T>
81  struct TypeInfoName
82  : public EmptyTypeInfo
83  {
91  TypeInfoName(std::string name)
92  : EmptyTypeInfo(name)
93  {
94  }
95 
98  ti->setTypeId( &typeid(T) );
99  return true;
100  }
102  return TypeInfoRepository::Instance()->getTypeInfo<T>();
103  }
104  };
105 
106 }}
107 
108 #endif
EmptyTypeInfo(std::string name)
virtual const std::string & getTypeName() const
Return the type name for which this generator generates type info features.
TypeInfo * getTypeInfoObject() const
Returns the TypeInfo object of this type, or null if none exists yet.
TypeInfoName(std::string name)
Setup Type Name Information for type name.
#define RTT_API
Definition: rtt-config.h:97
TypeInfo * getTypeInfoObject() const
Returns the TypeInfo object of this type, or null if none exists yet.
All generator classes inherit from this object in order to allow them to be added to the TypeInfoRepo...
void setTypeId(TypeId tid)
Definition: TypeInfo.hpp:446
Empty implementation of TypeInfo interface.
A class for representing a user type, and which can build instances of that type. ...
Definition: TypeInfo.hpp:66
Every DataSource of type T has a type info class which it can ask type information.
bool installTypeInfoObject(TypeInfo *ti)
Installs the type info object in the global data source type info handler and adds any additional fea...
This helper class allows only type names to be added to Orocos.
const std::string tname
bool installTypeInfoObject(TypeInfo *ti)
Installs the type info object in the global data source type info handler and adds any additional fea...
Contains TaskContext, Activity, OperationCaller, Operation, Property, InputPort, OutputPort, Attribute.
Definition: Activity.cpp:51