24 #include <interfaces/TestInterface.h>
26 #include <core/exceptions/software.h>
49 TestInterface::TestInterface() : Interface()
53 data = (TestInterface_data_t *)
data_ptr;
56 enum_map_TestEnum[(int)TEST_ENUM_1] =
"TEST_ENUM_1";
57 enum_map_TestEnum[(int)TEST_ENUM_2] =
"TEST_ENUM_2";
67 unsigned char tmp_hash[] = {0xe4, 0xe2, 0x1, 0xa9, 0xc8, 0x87, 0x8d, 0x3d, 0xa3, 0xab, 0xc9, 0xcd, 0xf3, 0xf, 0x5a, 0x33};
72 TestInterface::~TestInterface()
84 case TEST_ENUM_1:
return "TEST_ENUM_1";
85 case TEST_ENUM_2:
return "TEST_ENUM_2";
86 default:
return "UNKNOWN";
97 return data->test_bool;
117 data->test_bool = new_test_bool;
128 return data->test_int;
148 data->test_int = new_test_int;
179 data->flags = new_flags;
190 return data->test_string;
210 strncpy(data->test_string, new_test_string,
sizeof(data->test_string)-1);
211 data->test_string[
sizeof(data->test_string)-1] = 0;
242 data->result = new_result;
253 return data->test_uint;
273 data->test_uint = new_test_uint;
281 if ( strncmp(
"SetTestIntMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
283 }
else if ( strncmp(
"SetTestStringMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
285 }
else if ( strncmp(
"CalculateMessage",
type, INTERFACE_MESSAGE_TYPE_SIZE_ - 1) == 0 ) {
286 return new CalculateMessage();
288 throw UnknownTypeException(
"The given type '%s' does not match any known "
289 "message type for this interface type.",
type);
300 const TestInterface *oi =
dynamic_cast<const TestInterface *
>(other);
302 throw TypeMismatchException(
"Can only copy values from interface of same type (%s vs. %s)",
303 type(), other->type());
305 memcpy(data, oi->data,
sizeof(TestInterface_data_t));
311 if (strcmp(enumtype,
"TestEnum") == 0) {
312 return tostring_TestEnum((TestEnum)val);
314 throw UnknownTypeException(
"Unknown enum type %s", enumtype);
330 data_size =
sizeof(SetTestIntMessage_data_t);
333 data = (SetTestIntMessage_data_t *)
data_ptr;
335 data->test_int = ini_test_int;
336 enum_map_TestEnum[(int)
TEST_ENUM_1] =
"TEST_ENUM_1";
337 enum_map_TestEnum[(int)
TEST_ENUM_2] =
"TEST_ENUM_2";
343 data_size =
sizeof(SetTestIntMessage_data_t);
346 data = (SetTestIntMessage_data_t *)
data_ptr;
348 enum_map_TestEnum[(int)
TEST_ENUM_1] =
"TEST_ENUM_1";
349 enum_map_TestEnum[(int)
TEST_ENUM_2] =
"TEST_ENUM_2";
367 data = (SetTestIntMessage_data_t *)
data_ptr;
379 return data->test_int;
399 data->test_int = new_test_int;
424 data_size =
sizeof(SetTestStringMessage_data_t);
427 data = (SetTestStringMessage_data_t *)
data_ptr;
429 strncpy(data->test_string, ini_test_string, 30-1);
430 data->test_string[30-1] = 0;
431 enum_map_TestEnum[(int)
TEST_ENUM_1] =
"TEST_ENUM_1";
432 enum_map_TestEnum[(int)
TEST_ENUM_2] =
"TEST_ENUM_2";
438 data_size =
sizeof(SetTestStringMessage_data_t);
441 data = (SetTestStringMessage_data_t *)
data_ptr;
443 enum_map_TestEnum[(int)
TEST_ENUM_1] =
"TEST_ENUM_1";
444 enum_map_TestEnum[(int)
TEST_ENUM_2] =
"TEST_ENUM_2";
462 data = (SetTestStringMessage_data_t *)
data_ptr;
474 return data->test_string;
494 strncpy(data->test_string, new_test_string,
sizeof(data->test_string)-1);
495 data->test_string[
sizeof(data->test_string)-1] = 0;
521 data_size =
sizeof(CalculateMessage_data_t);
524 data = (CalculateMessage_data_t *)
data_ptr;
526 data->summand = ini_summand;
527 data->addend = ini_addend;
528 enum_map_TestEnum[(int)
TEST_ENUM_1] =
"TEST_ENUM_1";
529 enum_map_TestEnum[(int)
TEST_ENUM_2] =
"TEST_ENUM_2";
536 data_size =
sizeof(CalculateMessage_data_t);
539 data = (CalculateMessage_data_t *)
data_ptr;
541 enum_map_TestEnum[(int)
TEST_ENUM_1] =
"TEST_ENUM_1";
542 enum_map_TestEnum[(int)
TEST_ENUM_2] =
"TEST_ENUM_2";
561 data = (CalculateMessage_data_t *)
data_ptr;
573 return data->summand;
593 data->summand = new_summand;
623 data->addend = new_addend;
651 const CalculateMessage *m2 =
dynamic_cast<const CalculateMessage *
>(message);
659 EXPORT_INTERFACE(TestInterface)