Fawkes API  Fawkes Development Version
TestInterface.h
1 
2 /***************************************************************************
3  * TestInterface.h - Fawkes BlackBoard Interface - TestInterface
4  *
5  * Templated created: Thu Oct 12 10:49:19 2006
6  * Copyright 2006-2007 Tim Niemueller
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #ifndef _INTERFACES_TESTINTERFACE_H_
25 #define _INTERFACES_TESTINTERFACE_H_
26 
27 #include <interface/interface.h>
28 #include <interface/message.h>
29 #include <interface/field_iterator.h>
30 
31 namespace fawkes {
32 
33 class TestInterface : public Interface
34 {
35  /// @cond INTERNALS
36  INTERFACE_MGMT_FRIENDS(TestInterface)
37  /// @endcond
38  public:
39  /* constants */
40  static const int32_t TEST_CONSTANT;
41  static const float TEST_FLOAT_CONSTANT;
42 
43  /** Demonstrating enums */
44  typedef enum {
45  TEST_ENUM_1 /**< Item 1 */,
46  TEST_ENUM_2 /**< Item 2 */
48  const char * tostring_TestEnum(TestEnum value) const;
49 
50  private:
51  /** Internal data storage, do NOT modify! */
52  typedef struct {
53  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
54  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
55  bool test_bool; /**< Test Bool */
56  int32_t test_int; /**< Test integer */
57  uint8_t flags; /**< Flags spit down by the writer */
58  char test_string[30]; /**< A test sring */
59  int32_t result; /**< Result of operation add operation from Calculate message. */
60  uint32_t test_uint; /**< Test uint32 */
61  } TestInterface_data_t;
62 
63  TestInterface_data_t *data;
64 
65  interface_enum_map_t enum_map_TestEnum;
66  public:
67  /* messages */
68  class SetTestIntMessage : public Message
69  {
70  private:
71  /** Internal data storage, do NOT modify! */
72  typedef struct {
73  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
74  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
75  int32_t test_int; /**< Test integer */
76  } SetTestIntMessage_data_t;
77 
78  SetTestIntMessage_data_t *data;
79 
80  interface_enum_map_t enum_map_TestEnum;
81  public:
82  SetTestIntMessage(const int32_t ini_test_int);
85 
86  explicit SetTestIntMessage(const SetTestIntMessage *m);
87  /* Methods */
88  int32_t test_int() const;
89  void set_test_int(const int32_t new_test_int);
90  size_t maxlenof_test_int() const;
91  virtual Message * clone() const;
92  };
93 
95  {
96  private:
97  /** Internal data storage, do NOT modify! */
98  typedef struct {
99  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
100  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
101  char test_string[30]; /**< A test sring */
102  } SetTestStringMessage_data_t;
103 
104  SetTestStringMessage_data_t *data;
105 
106  interface_enum_map_t enum_map_TestEnum;
107  public:
108  SetTestStringMessage(const char * ini_test_string);
111 
112  explicit SetTestStringMessage(const SetTestStringMessage *m);
113  /* Methods */
114  char * test_string() const;
115  void set_test_string(const char * new_test_string);
116  size_t maxlenof_test_string() const;
117  virtual Message * clone() const;
118  };
119 
120  class CalculateMessage : public Message
121  {
122  private:
123  /** Internal data storage, do NOT modify! */
124  typedef struct {
125  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
126  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
127  int32_t summand; /**< Summand */
128  int32_t addend; /**< Addend */
129  } CalculateMessage_data_t;
130 
131  CalculateMessage_data_t *data;
132 
133  interface_enum_map_t enum_map_TestEnum;
134  public:
135  CalculateMessage(const int32_t ini_summand, const int32_t ini_addend);
138 
139  explicit CalculateMessage(const CalculateMessage *m);
140  /* Methods */
141  int32_t summand() const;
142  void set_summand(const int32_t new_summand);
143  size_t maxlenof_summand() const;
144  int32_t addend() const;
145  void set_addend(const int32_t new_addend);
146  size_t maxlenof_addend() const;
147  virtual Message * clone() const;
148  };
149 
150  virtual bool message_valid(const Message *message) const;
151  private:
152  TestInterface();
153  ~TestInterface();
154 
155  public:
156  /* Methods */
157  bool is_test_bool() const;
158  void set_test_bool(const bool new_test_bool);
159  size_t maxlenof_test_bool() const;
160  int32_t test_int() const;
161  void set_test_int(const int32_t new_test_int);
162  size_t maxlenof_test_int() const;
163  uint8_t flags() const;
164  void set_flags(const uint8_t new_flags);
165  size_t maxlenof_flags() const;
166  char * test_string() const;
167  void set_test_string(const char * new_test_string);
168  size_t maxlenof_test_string() const;
169  int32_t result() const;
170  void set_result(const int32_t new_result);
171  size_t maxlenof_result() const;
172  uint32_t test_uint() const;
173  void set_test_uint(const uint32_t new_test_uint);
174  size_t maxlenof_test_uint() const;
175  virtual Message * create_message(const char *type) const;
176 
177  virtual void copy_values(const Interface *other);
178  virtual const char * enum_tostring(const char *enumtype, int val) const;
179 
180 };
181 
182 } // end namespace fawkes
183 
184 #endif
fawkes::TestInterface::TEST_ENUM_1
@ TEST_ENUM_1
Item 1.
Definition: TestInterface.h:45
fawkes::TestInterface::tostring_TestEnum
const char * tostring_TestEnum(TestEnum value) const
Convert TestEnum constant to string.
Definition: TestInterface.cpp:81
fawkes::TestInterface::create_message
virtual Message * create_message(const char *type) const
Create message based on type name.
Definition: TestInterface.cpp:272
fawkes::TestInterface::copy_values
virtual void copy_values(const Interface *other)
Copy values from other interface.
Definition: TestInterface.cpp:291
fawkes::TestInterface::SetTestStringMessage::maxlenof_test_string
size_t maxlenof_test_string() const
Get maximum length of test_string value.
Definition: TestInterface.cpp:475
fawkes::TestInterface::set_result
void set_result(const int32_t new_result)
Set result value.
Definition: TestInterface.cpp:235
fawkes::TestInterface::SetTestIntMessage::~SetTestIntMessage
~SetTestIntMessage()
Destructor.
Definition: TestInterface.cpp:347
fawkes::Message
Base class for all messages passed through interfaces in Fawkes BlackBoard.
Definition: message.h:45
fawkes::TestInterface::SetTestIntMessage::SetTestIntMessage
SetTestIntMessage()
Constructor.
Definition: TestInterface.cpp:334
fawkes::TestInterface::CalculateMessage::addend
int32_t addend() const
Get addend value.
Definition: TestInterface.cpp:593
fawkes::TestInterface::SetTestStringMessage::~SetTestStringMessage
~SetTestStringMessage()
Destructor.
Definition: TestInterface.cpp:442
fawkes::TestInterface::CalculateMessage::CalculateMessage
CalculateMessage()
Constructor.
Definition: TestInterface.cpp:526
fawkes::TestInterface::SetTestStringMessage::set_test_string
void set_test_string(const char *new_test_string)
Set test_string value.
Definition: TestInterface.cpp:485
fawkes::TestInterface::set_test_int
void set_test_int(const int32_t new_test_int)
Set test_int value.
Definition: TestInterface.cpp:145
fawkes::TestInterface::TestEnum
TestEnum
Demonstrating enums.
Definition: TestInterface.h:44
fawkes::Interface::type
const char * type() const
Get type of interface.
Definition: interface.cpp:643
fawkes::TestInterface::CalculateMessage::~CalculateMessage
~CalculateMessage()
Destructor.
Definition: TestInterface.cpp:540
fawkes::TestInterface::SetTestIntMessage::test_int
int32_t test_int() const
Get test_int value.
Definition: TestInterface.cpp:370
fawkes::TestInterface::result
int32_t result() const
Get result value.
Definition: TestInterface.cpp:215
fawkes::TestInterface::maxlenof_result
size_t maxlenof_result() const
Get maximum length of result value.
Definition: TestInterface.cpp:225
fawkes::TestInterface::maxlenof_flags
size_t maxlenof_flags() const
Get maximum length of flags value.
Definition: TestInterface.cpp:165
fawkes::TestInterface::maxlenof_test_int
size_t maxlenof_test_int() const
Get maximum length of test_int value.
Definition: TestInterface.cpp:135
fawkes::TestInterface::CalculateMessage::set_summand
void set_summand(const int32_t new_summand)
Set summand value.
Definition: TestInterface.cpp:583
fawkes::TestInterface::SetTestIntMessage
SetTestIntMessage Fawkes BlackBoard Interface Message.
Definition: TestInterface.h:69
fawkes::TestInterface::CalculateMessage
CalculateMessage Fawkes BlackBoard Interface Message.
Definition: TestInterface.h:121
fawkes::TestInterface::SetTestStringMessage::test_string
char * test_string() const
Get test_string value.
Definition: TestInterface.cpp:465
fawkes::TestInterface::is_test_bool
bool is_test_bool() const
Get test_bool value.
Definition: TestInterface.cpp:95
fawkes::TestInterface::test_int
int32_t test_int() const
Get test_int value.
Definition: TestInterface.cpp:125
fawkes::TestInterface::SetTestIntMessage::maxlenof_test_int
size_t maxlenof_test_int() const
Get maximum length of test_int value.
Definition: TestInterface.cpp:380
fawkes
Fawkes library namespace.
fawkes::TestInterface::enum_tostring
virtual const char * enum_tostring(const char *enumtype, int val) const
Convert arbitrary enum value to string.
Definition: TestInterface.cpp:302
fawkes::TestInterface::TEST_FLOAT_CONSTANT
static const float TEST_FLOAT_CONSTANT
TEST_FLOAT_CONSTANT constant.
Definition: TestInterface.h:41
fawkes::Interface
Base class for all Fawkes BlackBoard interfaces.
Definition: interface.h:79
fawkes::TestInterface::SetTestIntMessage::clone
virtual Message * clone() const
Clone this message.
Definition: TestInterface.cpp:401
fawkes::TestInterface::SetTestStringMessage::SetTestStringMessage
SetTestStringMessage()
Constructor.
Definition: TestInterface.cpp:429
fawkes::interface_enum_map_t
std::map< int, std::string > interface_enum_map_t
Map of enum integer to string values.
Definition: types.h:54
fawkes::TestInterface::CalculateMessage::set_addend
void set_addend(const int32_t new_addend)
Set addend value.
Definition: TestInterface.cpp:613
fawkes::TestInterface::CalculateMessage::maxlenof_addend
size_t maxlenof_addend() const
Get maximum length of addend value.
Definition: TestInterface.cpp:603
fawkes::TestInterface::maxlenof_test_uint
size_t maxlenof_test_uint() const
Get maximum length of test_uint value.
Definition: TestInterface.cpp:255
fawkes::TestInterface::TEST_CONSTANT
static const int32_t TEST_CONSTANT
TEST_CONSTANT constant.
Definition: TestInterface.h:40
fawkes::TestInterface::test_uint
uint32_t test_uint() const
Get test_uint value.
Definition: TestInterface.cpp:245
fawkes::TestInterface::SetTestStringMessage::clone
virtual Message * clone() const
Clone this message.
Definition: TestInterface.cpp:496
fawkes::TestInterface::CalculateMessage::maxlenof_summand
size_t maxlenof_summand() const
Get maximum length of summand value.
Definition: TestInterface.cpp:573
fawkes::TestInterface::set_flags
void set_flags(const uint8_t new_flags)
Set flags value.
Definition: TestInterface.cpp:175
fawkes::TestInterface::flags
uint8_t flags() const
Get flags value.
Definition: TestInterface.cpp:155
fawkes::TestInterface::CalculateMessage::clone
virtual Message * clone() const
Clone this message.
Definition: TestInterface.cpp:624
fawkes::TestInterface::set_test_uint
void set_test_uint(const uint32_t new_test_uint)
Set test_uint value.
Definition: TestInterface.cpp:265
fawkes::TestInterface::maxlenof_test_string
size_t maxlenof_test_string() const
Get maximum length of test_string value.
Definition: TestInterface.cpp:195
fawkes::TestInterface::test_string
char * test_string() const
Get test_string value.
Definition: TestInterface.cpp:185
fawkes::TestInterface::CalculateMessage::summand
int32_t summand() const
Get summand value.
Definition: TestInterface.cpp:563
fawkes::TestInterface::maxlenof_test_bool
size_t maxlenof_test_bool() const
Get maximum length of test_bool value.
Definition: TestInterface.cpp:105
fawkes::TestInterface::set_test_string
void set_test_string(const char *new_test_string)
Set test_string value.
Definition: TestInterface.cpp:205
fawkes::TestInterface::set_test_bool
void set_test_bool(const bool new_test_bool)
Set test_bool value.
Definition: TestInterface.cpp:115
fawkes::TestInterface::TEST_ENUM_2
@ TEST_ENUM_2
Item 2.
Definition: TestInterface.h:46
fawkes::TestInterface
TestInterface Fawkes BlackBoard Interface.
Definition: TestInterface.h:34
fawkes::TestInterface::SetTestIntMessage::set_test_int
void set_test_int(const int32_t new_test_int)
Set test_int value.
Definition: TestInterface.cpp:390
fawkes::TestInterface::SetTestStringMessage
SetTestStringMessage Fawkes BlackBoard Interface Message.
Definition: TestInterface.h:95
fawkes::TestInterface::message_valid
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
Definition: TestInterface.cpp:633