#include #include #include "ndds/ndds_cpp.h" DDS_TypeCode *createTypeCode() { DDS_TypeCodeFactory * factory = NULL; DDS_TypeCode * structTc = NULL; DDS_ExceptionCode_t ex = DDS_NO_EXCEPTION_CODE; DDS_StructMemberSeq structMembers; factory = DDS_TypeCodeFactory::get_instance(); structTc = factory->create_struct_tc("test_type", structMembers, ex); structTc->add_member("double_val_first", DDS_TYPECODE_MEMBER_ID_INVALID, factory->get_primitive_tc(DDS_TK_DOUBLE), DDS_TYPECODE_NONKEY_REQUIRED_MEMBER, ex); structTc->add_member("double_seq", DDS_TYPECODE_MEMBER_ID_INVALID, factory->create_sequence_tc(20, factory->get_primitive_tc(DDS_TK_DOUBLE), ex), DDS_TYPECODE_NONKEY_REQUIRED_MEMBER, ex); structTc->add_member("bool_1", DDS_TYPECODE_MEMBER_ID_INVALID, factory->get_primitive_tc(DDS_TK_BOOLEAN), DDS_TYPECODE_NONKEY_REQUIRED_MEMBER, ex); structTc->add_member("ulong_val", DDS_TYPECODE_MEMBER_ID_INVALID, factory->get_primitive_tc(DDS_TK_ULONG), DDS_TYPECODE_NONKEY_REQUIRED_MEMBER, ex); structTc->add_member("double_val", DDS_TYPECODE_MEMBER_ID_INVALID, factory->get_primitive_tc(DDS_TK_DOUBLE), DDS_TYPECODE_NONKEY_REQUIRED_MEMBER, ex); structTc->add_member("double_val_second", DDS_TYPECODE_MEMBER_ID_INVALID, factory->get_primitive_tc(DDS_TK_DOUBLE), DDS_TYPECODE_NONKEY_REQUIRED_MEMBER, ex); structTc->add_member("ulonglong_val", DDS_TYPECODE_MEMBER_ID_INVALID, factory->get_primitive_tc(DDS_TK_ULONGLONG), DDS_TYPECODE_NONKEY_REQUIRED_MEMBER, ex); return structTc; } int main(int argc, char *argv[]) { DDS_ExceptionCode_t ex; DDS_ReturnCode_t rc; DDS_DynamicData seqData(NULL, DDS_DYNAMIC_DATA_PROPERTY_DEFAULT); DDS_TypeCode* tc = createTypeCode(); DDS_DynamicData* data; // = new DDS_DynamicData(tc, DDS_DYNAMIC_DATA_PROPERTY_DEFAULT); tc->print_IDL(0, ex); DDSDynamicDataTypeSupport* ts = new DDSDynamicDataTypeSupport(tc, DDS_DYNAMIC_DATA_TYPE_PROPERTY_DEFAULT); { DDS_DoubleSeq seq; seq.maximum(0); seq.length(0); data = ts->create_data(); rc = data->set_double_seq("double_seq", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, seq); std::cout << "rc: " << rc << std::endl; rc = data->set_ulong("ulong_val", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1); std::cout << "rc: " << rc << std::endl; rc = data->set_double("double_val", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1.0); std::cout << "rc: " << rc << std::endl; rc = data->set_ulonglong("ulonglong_val", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1); std::cout << "rc: " << rc << std::endl; rc = data->set_boolean("bool_1", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, true); std::cout << "rc: " << rc << std::endl; rc = data->set_double("double_val_second", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1.0); std::cout << "rc: " << rc << std::endl; rc = data->set_double("double_val_first", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1.0); std::cout << "rc: " << rc << std::endl; ts->print_data(data); ts->delete_data(data); } std::cout << "=======================" << std::endl; { DDS_DoubleSeq seq; data = ts->create_data(); rc = data->set_double_seq("double_seq", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, seq); std::cout << "rc: " << rc << std::endl; rc = data->set_double("double_val", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1.0); std::cout << "rc: " << rc << std::endl; rc = data->set_ulong("ulong_val", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1); std::cout << "rc: " << rc << std::endl; rc = data->set_ulonglong("ulonglong_val", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1); std::cout << "rc: " << rc << std::endl; rc = data->set_boolean("bool_1", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, true); std::cout << "rc: " << rc << std::endl; rc = data->set_double("double_val_second", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1.0); std::cout << "rc: " << rc << std::endl; rc = data->set_double("double_val_first", DDS_DYNAMIC_DATA_MEMBER_ID_UNSPECIFIED, 1.0); std::cout << "rc: " << rc << std::endl; ts->print_data(data); ts->delete_data(data); } }