24 #include <interfaces/PclDatabaseMergeInterface.h> 26 #include <core/exceptions/software.h> 46 PclDatabaseMergeInterface::PclDatabaseMergeInterface() : Interface()
48 data_size =
sizeof(PclDatabaseMergeInterface_data_t);
49 data_ptr = malloc(data_size);
50 data = (PclDatabaseMergeInterface_data_t *)data_ptr;
51 data_ts = (interface_data_ts_t *)data_ptr;
52 memset(data_ptr, 0, data_size);
53 add_fieldinfo(IFT_UINT32,
"msgid", 1, &data->msgid);
54 add_fieldinfo(IFT_BOOL,
"final", 1, &data->final);
55 add_fieldinfo(IFT_STRING,
"error", 256, data->error);
56 add_messageinfo(
"MergeMessage");
57 unsigned char tmp_hash[] = {0x1a, 0xb, 0xb8, 0x5a, 0x7, 0x88, 0x93, 0x55, 0x9e, 0x7e, 0xcb, 0x96, 0x46, 0x8f, 0x97, 0xb1};
62 PclDatabaseMergeInterface::~PclDatabaseMergeInterface()
75 PclDatabaseMergeInterface::msgid()
const 85 PclDatabaseMergeInterface::maxlenof_msgid()
const 98 PclDatabaseMergeInterface::set_msgid(
const uint32_t new_msgid)
100 data->msgid = new_msgid;
112 PclDatabaseMergeInterface::is_final()
const 122 PclDatabaseMergeInterface::maxlenof_final()
const 135 PclDatabaseMergeInterface::set_final(
const bool new_final)
137 data->final = new_final;
148 PclDatabaseMergeInterface::error()
const 158 PclDatabaseMergeInterface::maxlenof_error()
const 170 PclDatabaseMergeInterface::set_error(
const char * new_error)
172 strncpy(data->error, new_error,
sizeof(data->error));
178 PclDatabaseMergeInterface::create_message(
const char *type)
const 180 if ( strncmp(
"MergeMessage", type, __INTERFACE_MESSAGE_TYPE_SIZE) == 0 ) {
184 "message type for this interface type.", type);
193 PclDatabaseMergeInterface::copy_values(
const Interface *other)
198 type(), other->
type());
200 memcpy(data, oi->data,
sizeof(PclDatabaseMergeInterface_data_t));
204 PclDatabaseMergeInterface::enum_tostring(
const char *enumtype,
int val)
const 222 PclDatabaseMergeInterface::MergeMessage::MergeMessage(
const int64_t * ini_timestamps,
const char * ini_database,
const char * ini_collection) :
Message(
"MergeMessage")
227 data = (MergeMessage_data_t *)
data_ptr;
229 memcpy(data->timestamps, ini_timestamps,
sizeof(int64_t) * 12);
230 strncpy(data->database, ini_database, 64);
231 strncpy(data->collection, ini_collection, 128);
242 data = (MergeMessage_data_t *)
data_ptr;
263 data = (MergeMessage_data_t *)
data_ptr;
278 return data->timestamps;
294 throw Exception(
"Index value %u out of bounds (0..12)", index);
296 return data->timestamps[index];
319 memcpy(data->timestamps, new_timestamps,
sizeof(int64_t) * 12);
334 throw Exception(
"Index value %u out of bounds (0..12)", index);
336 data->timestamps[index] = new_timestamps;
348 return data->database;
371 strncpy(data->database, new_database,
sizeof(data->database));
384 return data->collection;
407 strncpy(data->collection, new_collection,
sizeof(data->collection));
char * collection() const
Get collection value.
MergeMessage()
Constructor.
PclDatabaseMergeInterface Fawkes BlackBoard Interface.
void * data_ptr
Pointer to memory that contains local data.
size_t maxlenof_collection() const
Get maximum length of collection value.
Base class for all messages passed through interfaces in Fawkes BlackBoard.
~MergeMessage()
Destructor.
Fawkes library namespace.
Timestamp data, must be present and first entries for each interface data structs! This leans on time...
void set_collection(const char *new_collection)
Set collection value.
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
size_t maxlenof_database() const
Get maximum length of database value.
Base class for all Fawkes BlackBoard interfaces.
int64_t * timestamps() const
Get timestamps value.
void set_database(const char *new_database)
Set database value.
MergeMessage Fawkes BlackBoard Interface Message.
size_t maxlenof_timestamps() const
Get maximum length of timestamps value.
message_data_ts_t * data_ts
data timestamp aliasing pointer
unsigned int data_size
Size of memory needed to hold all data.
const char * type() const
Get type of interface.
Base class for exceptions in Fawkes.
char * database() const
Get database value.
void set_timestamps(unsigned int index, const int64_t new_timestamps)
Set timestamps value at given index.
void add_fieldinfo(interface_fieldtype_t type, const char *name, size_t length, void *value, const char *enumtype=0, const interface_enum_map_t *enum_map=0)
Add an entry to the info list.
virtual Message * clone() const
Clone this message.