MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / skip_member

Method skip_member

dds/DCPS/XTypes/DynamicDataXcdrReadImpl.cpp:2369–2486  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2367}
2368
2369bool DynamicDataXcdrReadImpl::skip_member(DDS::DynamicType_ptr type)
2370{
2371 const DDS::DynamicType_var member_type = get_base_type(type);
2372 const TypeKind member_kind = member_type->get_kind();
2373
2374 switch (member_kind) {
2375 case TK_BOOLEAN:
2376 case TK_BYTE:
2377 case TK_INT8:
2378 case TK_UINT8:
2379 case TK_CHAR8:
2380 if (!skip("skip_member", "Failed to skip a member of size 1 byte", 1, 1)) {
2381 return false;
2382 }
2383 break;
2384 case TK_INT16:
2385 case TK_UINT16:
2386 case TK_CHAR16:
2387 if (!skip("skip_member", "Failed to skip a member of size 2 bytes", 1, 2)) {
2388 return false;
2389 }
2390 break;
2391 case TK_INT32:
2392 case TK_UINT32:
2393 case TK_FLOAT32:
2394 if (!skip("skip_member", "Failed to skip a member of size 4 bytes", 1, 4)) {
2395 return false;
2396 }
2397 break;
2398 case TK_INT64:
2399 case TK_UINT64:
2400 case TK_FLOAT64:
2401 if (!skip("skip_member", "Failed to skip a member of size 8 bytes", 1, 8)) {
2402 return false;
2403 }
2404 break;
2405 case TK_FLOAT128:
2406 if (!skip("skip_member", "Failed to skip a member of size 16 bytes", 1, 16)) {
2407 return false;
2408 }
2409 break;
2410 case TK_STRING8:
2411 case TK_STRING16:
2412 {
2413 const char* str_kind = member_kind == TK_STRING8 ? "string" : "wstring";
2414 ACE_CDR::ULong bytes;
2415 if (!(strm_ >> bytes)) {
2416 if (DCPS::DCPS_debug_level >= 1) {
2417 ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) DynamicDataXcdrReadImpl::skip_member -")
2418 ACE_TEXT(" Failed to read length of a %C member\n"), str_kind));
2419 }
2420 return false;
2421 }
2422
2423 const DCPS::String err_msg = DCPS::String("Failed to skip a ") + str_kind + " member";
2424 if (!skip("skip_member", err_msg.c_str(), bytes)) {
2425 return false;
2426 }

Callers

nothing calls this directly

Calls 8

get_base_typeFunction · 0.85
skipFunction · 0.85
StringClass · 0.85
skip_map_memberFunction · 0.85
typekind_to_stringFunction · 0.85
get_kindMethod · 0.80
boundMethod · 0.80
get_descriptorMethod · 0.45

Tested by

no test coverage detected