Clean up sertopic_default definition
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
ad19f571ae
commit
ab7c95e02f
22 changed files with 454 additions and 380 deletions
|
@ -30,7 +30,6 @@ PREPEND(srcs_ddsc "${CMAKE_CURRENT_LIST_DIR}/src"
|
|||
dds_topic.c
|
||||
dds_listener.c
|
||||
dds_read.c
|
||||
dds_stream.c
|
||||
dds_waitset.c
|
||||
dds_readcond.c
|
||||
dds_guardcond.c
|
||||
|
@ -70,7 +69,6 @@ PREPEND(hdrs_private_ddsc "${CMAKE_CURRENT_LIST_DIR}/src"
|
|||
dds__guardcond.h
|
||||
dds__reader.h
|
||||
dds__rhc_default.h
|
||||
dds__stream.h
|
||||
dds__subscriber.h
|
||||
dds__topic.h
|
||||
dds__types.h
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
void dds_sample_free_contents (char * data, const uint32_t * ops);
|
||||
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -9,9 +9,10 @@
|
|||
*
|
||||
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||
*/
|
||||
#ifndef DDSI_SERDATA_BUILTINTOPIC_H
|
||||
#define DDSI_SERDATA_BUILTINTOPIC_H
|
||||
#ifndef DDS__SERDATA_BUILTINTOPIC_H
|
||||
#define DDS__SERDATA_BUILTINTOPIC_H
|
||||
|
||||
#include "dds/dds.h"
|
||||
#include "dds/ddsi/ddsi_xqos.h"
|
||||
#include "dds/ddsi/ddsi_serdata.h"
|
||||
#include "dds/ddsi/ddsi_sertopic.h"
|
||||
|
@ -33,7 +34,6 @@ enum ddsi_sertopic_builtintopic_type {
|
|||
DSBT_WRITER
|
||||
};
|
||||
|
||||
struct ddsi_domaingv;
|
||||
struct ddsi_sertopic_builtintopic {
|
||||
struct ddsi_sertopic c;
|
||||
enum ddsi_sertopic_builtintopic_type type;
|
||||
|
|
|
@ -1,88 +0,0 @@
|
|||
/*
|
||||
* Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
||||
*
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the Eclipse Public License v. 2.0 which is available at
|
||||
* http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||
* v. 1.0 which is available at
|
||||
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||
*/
|
||||
#ifndef _DDS_STREAM_H_
|
||||
#define _DDS_STREAM_H_
|
||||
|
||||
#include "dds/ddsi/ddsi_serdata.h"
|
||||
#include "dds/ddsi/ddsi_serdata_default.h"
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct dds_istream {
|
||||
const unsigned char *m_buffer;
|
||||
uint32_t m_size; /* Buffer size */
|
||||
uint32_t m_index; /* Read/write offset from start of buffer */
|
||||
} dds_istream_t;
|
||||
|
||||
typedef struct dds_ostream {
|
||||
unsigned char *m_buffer;
|
||||
uint32_t m_size; /* Buffer size */
|
||||
uint32_t m_index; /* Read/write offset from start of buffer */
|
||||
} dds_ostream_t;
|
||||
|
||||
typedef struct dds_ostreamBE {
|
||||
dds_ostream_t x;
|
||||
} dds_ostreamBE_t;
|
||||
|
||||
DDS_EXPORT void dds_ostream_init (dds_ostream_t * __restrict st, uint32_t size);
|
||||
DDS_EXPORT void dds_ostream_fini (dds_ostream_t * __restrict st);
|
||||
DDS_EXPORT void dds_ostreamBE_init (dds_ostreamBE_t * __restrict st, uint32_t size);
|
||||
DDS_EXPORT void dds_ostreamBE_fini (dds_ostreamBE_t * __restrict st);
|
||||
|
||||
bool dds_stream_normalize (void * __restrict data, uint32_t size, bool bswap, const struct ddsi_sertopic_default * __restrict topic, bool just_key);
|
||||
|
||||
void dds_stream_write_sample (dds_ostream_t * __restrict os, const void * __restrict data, const struct ddsi_sertopic_default * __restrict topic);
|
||||
void dds_stream_read_sample (dds_istream_t * __restrict is, void * __restrict data, const struct ddsi_sertopic_default * __restrict topic);
|
||||
|
||||
size_t dds_stream_check_optimize (const dds_topic_descriptor_t * __restrict desc);
|
||||
void dds_istream_from_serdata_default (dds_istream_t * __restrict s, const struct ddsi_serdata_default * __restrict d);
|
||||
void dds_ostream_from_serdata_default (dds_ostream_t * __restrict s, struct ddsi_serdata_default * __restrict d);
|
||||
void dds_ostream_add_to_serdata_default (dds_ostream_t * __restrict s, struct ddsi_serdata_default ** __restrict d);
|
||||
void dds_ostreamBE_from_serdata_default (dds_ostreamBE_t * __restrict s, struct ddsi_serdata_default * __restrict d);
|
||||
void dds_ostreamBE_add_to_serdata_default (dds_ostreamBE_t * __restrict s, struct ddsi_serdata_default ** __restrict d);
|
||||
|
||||
void dds_stream_write_key (dds_ostream_t * __restrict os, const char * __restrict sample, const struct ddsi_sertopic_default * __restrict topic);
|
||||
void dds_stream_write_keyBE (dds_ostreamBE_t * __restrict os, const char * __restrict sample, const struct ddsi_sertopic_default * __restrict topic);
|
||||
void dds_stream_extract_key_from_data (dds_istream_t * __restrict is, dds_ostream_t * __restrict os, const struct ddsi_sertopic_default * __restrict topic);
|
||||
void dds_stream_extract_keyBE_from_data (dds_istream_t * __restrict is, dds_ostreamBE_t * __restrict os, const struct ddsi_sertopic_default * __restrict topic);
|
||||
void dds_stream_extract_keyhash (dds_istream_t * __restrict is, dds_keyhash_t * __restrict kh, const struct ddsi_sertopic_default * __restrict topic, const bool just_key);
|
||||
|
||||
void dds_stream_read_key (dds_istream_t * __restrict is, char * __restrict sample, const struct ddsi_sertopic_default * __restrict topic);
|
||||
|
||||
size_t dds_stream_print_key (dds_istream_t * __restrict is, const struct ddsi_sertopic_default * __restrict topic, char * __restrict buf, size_t size);
|
||||
|
||||
size_t dds_stream_print_sample (dds_istream_t * __restrict is, const struct ddsi_sertopic_default * __restrict topic, char * __restrict buf, size_t size);
|
||||
|
||||
/* For marshalling op code handling */
|
||||
|
||||
#define DDS_OP_MASK 0xff000000
|
||||
#define DDS_OP_TYPE_MASK 0x00ff0000
|
||||
#define DDS_OP_SUBTYPE_MASK 0x0000ff00
|
||||
#define DDS_OP_JMP_MASK 0x0000ffff
|
||||
#define DDS_OP_FLAGS_MASK 0x000000ff
|
||||
#define DDS_JEQ_TYPE_MASK 0x00ff0000
|
||||
|
||||
#define DDS_OP(o) ((enum dds_stream_opcode) ((o) & DDS_OP_MASK))
|
||||
#define DDS_OP_TYPE(o) ((enum dds_stream_typecode) (((o) & DDS_OP_TYPE_MASK) >> 16))
|
||||
#define DDS_OP_SUBTYPE(o) ((enum dds_stream_typecode) (((o) & DDS_OP_SUBTYPE_MASK) >> 8))
|
||||
#define DDS_OP_FLAGS(o) ((o) & DDS_OP_FLAGS_MASK)
|
||||
#define DDS_OP_ADR_JSR(o) ((o) & DDS_OP_JMP_MASK)
|
||||
#define DDS_OP_JUMP(o) ((int16_t) ((o) & DDS_OP_JMP_MASK))
|
||||
#define DDS_OP_ADR_JMP(o) ((o) >> 16)
|
||||
#define DDS_JEQ_TYPE(o) ((enum dds_stream_typecode) (((o) & DDS_JEQ_TYPE_MASK) >> 16))
|
||||
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
#endif
|
|
@ -13,21 +13,9 @@
|
|||
#include <string.h>
|
||||
|
||||
#include "dds__alloc.h"
|
||||
#include "dds__stream.h"
|
||||
#include "dds/ddsrt/heap.h"
|
||||
#include "dds/ddsi/q_config.h"
|
||||
|
||||
/*
|
||||
#define OP_DEBUG_FREE 1
|
||||
*/
|
||||
|
||||
#if defined OP_DEBUG_FREE
|
||||
static const char * stream_op_type[11] =
|
||||
{
|
||||
NULL, "1Byte", "2Byte", "4Byte", "8Byte", "String",
|
||||
"BString", "Sequence", "Array", "Union", "Struct"
|
||||
};
|
||||
#endif
|
||||
#include "dds/ddsi/ddsi_cdrstream.h"
|
||||
|
||||
static dds_allocator_t dds_allocator_fns = { ddsrt_malloc, ddsrt_realloc, ddsrt_free };
|
||||
|
||||
|
@ -87,287 +75,30 @@ void dds_string_free (char * str)
|
|||
dds_free (str);
|
||||
}
|
||||
|
||||
void dds_sample_free_contents (char *data, const uint32_t * ops)
|
||||
static void dds_sample_free_key (void *vsample, const struct dds_topic_descriptor * desc)
|
||||
{
|
||||
uint32_t op;
|
||||
uint32_t type;
|
||||
uint32_t num;
|
||||
uint32_t subtype;
|
||||
char * addr;
|
||||
|
||||
while ((op = *ops) != DDS_OP_RTS)
|
||||
char *sample = vsample;
|
||||
for (uint32_t i = 0; i < desc->m_nkeys; i++)
|
||||
{
|
||||
switch (DDS_OP_MASK & op)
|
||||
{
|
||||
case DDS_OP_ADR:
|
||||
{
|
||||
type = DDS_OP_TYPE (op);
|
||||
#ifdef OP_DEBUG_FREE
|
||||
DDS_TRACE("F-ADR: %s offset %d\n", stream_op_type[type], ops[1]);
|
||||
#endif
|
||||
addr = data + ops[1];
|
||||
ops += 2;
|
||||
switch (type)
|
||||
{
|
||||
case DDS_OP_VAL_1BY:
|
||||
case DDS_OP_VAL_2BY:
|
||||
case DDS_OP_VAL_4BY:
|
||||
case DDS_OP_VAL_8BY:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_STR:
|
||||
{
|
||||
#ifdef OP_DEBUG_FREE
|
||||
DDS_TRACE("F-STR: @ %p %s\n", addr, *((char**) addr));
|
||||
#endif
|
||||
dds_free (*((char**) addr));
|
||||
*((char**) addr) = NULL;
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_SEQ:
|
||||
{
|
||||
dds_sequence_t * seq = (dds_sequence_t*) addr;
|
||||
subtype = DDS_OP_SUBTYPE (op);
|
||||
num = (seq->_maximum > seq->_length) ? seq->_maximum : seq->_length;
|
||||
|
||||
#ifdef OP_DEBUG_FREE
|
||||
DDS_TRACE("F-SEQ: of %s\n", stream_op_type[subtype]);
|
||||
#endif
|
||||
if ((seq->_release && num) || (subtype > DDS_OP_VAL_STR))
|
||||
{
|
||||
switch (subtype)
|
||||
{
|
||||
case DDS_OP_VAL_1BY:
|
||||
case DDS_OP_VAL_2BY:
|
||||
case DDS_OP_VAL_4BY:
|
||||
case DDS_OP_VAL_8BY:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_BST:
|
||||
{
|
||||
ops++;
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_STR:
|
||||
{
|
||||
char ** ptr = (char**) seq->_buffer;
|
||||
while (num--)
|
||||
{
|
||||
dds_free (*ptr++);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
const uint32_t elem_size = *ops++;
|
||||
const uint32_t * jsr_ops = ops + DDS_OP_ADR_JSR (*ops) - 3;
|
||||
const uint32_t jmp = DDS_OP_ADR_JMP (*ops);
|
||||
char * ptr = (char*) seq->_buffer;
|
||||
|
||||
while (num--)
|
||||
{
|
||||
dds_sample_free_contents (ptr, jsr_ops);
|
||||
ptr += elem_size;
|
||||
}
|
||||
ops += jmp ? (jmp - 3) : 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (seq->_release)
|
||||
{
|
||||
dds_free (seq->_buffer);
|
||||
seq->_maximum = 0;
|
||||
seq->_length = 0;
|
||||
seq->_buffer = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_ARR:
|
||||
{
|
||||
subtype = DDS_OP_SUBTYPE (op);
|
||||
num = *ops++;
|
||||
|
||||
#ifdef OP_DEBUG_FREE
|
||||
DDS_TRACE("F-ARR: of %s size %d\n", stream_op_type[subtype], num);
|
||||
#endif
|
||||
switch (subtype)
|
||||
{
|
||||
case DDS_OP_VAL_1BY:
|
||||
case DDS_OP_VAL_2BY:
|
||||
case DDS_OP_VAL_4BY:
|
||||
case DDS_OP_VAL_8BY:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_STR:
|
||||
{
|
||||
char ** ptr = (char**) addr;
|
||||
while (num--)
|
||||
{
|
||||
dds_free (*ptr++);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_BST:
|
||||
{
|
||||
ops += 2;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
const uint32_t * jsr_ops = ops + DDS_OP_ADR_JSR (*ops) - 3;
|
||||
const uint32_t jmp = DDS_OP_ADR_JMP (*ops);
|
||||
const uint32_t elem_size = ops[1];
|
||||
|
||||
while (num--)
|
||||
{
|
||||
dds_sample_free_contents (addr, jsr_ops);
|
||||
addr += elem_size;
|
||||
}
|
||||
ops += jmp ? (jmp - 3) : 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_UNI:
|
||||
{
|
||||
const bool has_default = op & DDS_OP_FLAG_DEF;
|
||||
subtype = DDS_OP_SUBTYPE (op);
|
||||
num = ops[0];
|
||||
const uint32_t * jeq_op = ops + DDS_OP_ADR_JSR (ops[1]) - 2;
|
||||
uint32_t disc = 0;
|
||||
|
||||
assert (subtype <= DDS_OP_VAL_4BY);
|
||||
|
||||
#ifdef OP_DEBUG_FREE
|
||||
DDS_TRACE("F-UNI: switch %s cases %d\n", stream_op_type[subtype], num);
|
||||
#endif
|
||||
/* Get discriminant */
|
||||
|
||||
switch (subtype)
|
||||
{
|
||||
case DDS_OP_VAL_1BY:
|
||||
{
|
||||
disc = *((uint8_t*) addr);
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_2BY:
|
||||
{
|
||||
disc = *((uint16_t*) addr);
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_4BY:
|
||||
{
|
||||
disc = *((uint32_t*) addr);
|
||||
break;
|
||||
}
|
||||
default: assert (0);
|
||||
}
|
||||
|
||||
/* Free case matching discriminant */
|
||||
|
||||
while (num--)
|
||||
{
|
||||
assert ((DDS_OP_MASK & jeq_op[0]) == DDS_OP_JEQ);
|
||||
if ((jeq_op[1] == disc) || (has_default && (num == 0)))
|
||||
{
|
||||
subtype = DDS_JEQ_TYPE (jeq_op[0]);
|
||||
addr = data + jeq_op[2];
|
||||
|
||||
switch (subtype)
|
||||
{
|
||||
case DDS_OP_VAL_1BY:
|
||||
case DDS_OP_VAL_2BY:
|
||||
case DDS_OP_VAL_4BY:
|
||||
case DDS_OP_VAL_8BY:
|
||||
case DDS_OP_VAL_BST:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_STR:
|
||||
{
|
||||
dds_free (*((char**) addr));
|
||||
*((char**) addr) = NULL;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
dds_sample_free_contents (addr, jeq_op + DDS_OP_ADR_JSR (jeq_op[0]));
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
jeq_op += 3;
|
||||
}
|
||||
|
||||
/* Jump to next instruction */
|
||||
|
||||
ops += DDS_OP_ADR_JMP (ops[1]) - 2;
|
||||
break;
|
||||
}
|
||||
case DDS_OP_VAL_BST:
|
||||
{
|
||||
ops++;
|
||||
break;
|
||||
}
|
||||
default: assert (0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DDS_OP_JSR: /* Implies nested type */
|
||||
{
|
||||
#ifdef OP_DEBUG_FREE
|
||||
DDS_TRACE("F-JSR: %d\n", DDS_OP_JUMP (op));
|
||||
#endif
|
||||
dds_sample_free_contents (data, ops + DDS_OP_JUMP (op));
|
||||
ops++;
|
||||
break;
|
||||
}
|
||||
default: assert (0);
|
||||
}
|
||||
}
|
||||
#ifdef OP_DEBUG_FREE
|
||||
DDS_TRACE("F-RTS:\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
static void dds_sample_free_key (char * sample, const struct dds_topic_descriptor * desc)
|
||||
{
|
||||
uint32_t i;
|
||||
const uint32_t * op;
|
||||
|
||||
for (i = 0; i < desc->m_nkeys; i++)
|
||||
{
|
||||
op = desc->m_ops + desc->m_keys[i].m_index;
|
||||
const uint32_t *op = desc->m_ops + desc->m_keys[i].m_index;
|
||||
if (DDS_OP_TYPE (*op) == DDS_OP_VAL_STR)
|
||||
{
|
||||
dds_free (*(char**)(sample + op[1]));
|
||||
}
|
||||
dds_free (*(char **) (sample + op[1]));
|
||||
}
|
||||
}
|
||||
|
||||
void dds_sample_free (void * sample, const struct dds_topic_descriptor * desc, dds_free_op_t op)
|
||||
{
|
||||
/* external API, so can't replace the dds_topic_decsriptor type ... */
|
||||
assert (desc);
|
||||
|
||||
if (sample)
|
||||
{
|
||||
if (op & DDS_FREE_CONTENTS_BIT)
|
||||
{
|
||||
dds_sample_free_contents ((char*) sample, desc->m_ops);
|
||||
}
|
||||
dds_stream_free_sample (sample, desc->m_ops);
|
||||
else if (op & DDS_FREE_KEY_BIT)
|
||||
{
|
||||
dds_sample_free_key ((char*) sample, desc);
|
||||
}
|
||||
dds_sample_free_key (sample, desc);
|
||||
|
||||
if (op & DDS_FREE_ALL_BIT)
|
||||
{
|
||||
dds_free (sample);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include "dds/ddsi/q_config.h"
|
||||
#include "dds/ddsi/q_freelist.h"
|
||||
#include "dds/ddsi/ddsi_plist.h"
|
||||
#include "dds__stream.h"
|
||||
#include "dds__serdata_builtintopic.h"
|
||||
#include "dds/ddsi/ddsi_tkmap.h"
|
||||
#include "dds/ddsi/q_entity.h"
|
||||
|
|
|
@ -49,7 +49,7 @@ static bool sertopic_builtin_equal (const struct ddsi_sertopic *acmn, const stru
|
|||
static uint32_t sertopic_builtin_hash (const struct ddsi_sertopic *tpcmn)
|
||||
{
|
||||
const struct ddsi_sertopic_builtintopic *tp = (struct ddsi_sertopic_builtintopic *) tpcmn;
|
||||
return tp->type;
|
||||
return (uint32_t) tp->type;
|
||||
}
|
||||
|
||||
static void free_pp (void *vsample)
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -19,7 +19,6 @@
|
|||
#include "dds__topic.h"
|
||||
#include "dds__listener.h"
|
||||
#include "dds__participant.h"
|
||||
#include "dds__stream.h"
|
||||
#include "dds__init.h"
|
||||
#include "dds__domain.h"
|
||||
#include "dds__get_status.h"
|
||||
|
@ -32,6 +31,7 @@
|
|||
#include "dds/ddsi/ddsi_iid.h"
|
||||
#include "dds/ddsi/ddsi_plist.h"
|
||||
#include "dds/ddsi/ddsi_domaingv.h"
|
||||
#include "dds/ddsi/ddsi_cdrstream.h"
|
||||
#include "dds__serdata_builtintopic.h"
|
||||
|
||||
DECL_ENTITY_LOCK_UNLOCK (extern inline, dds_topic)
|
||||
|
@ -399,13 +399,19 @@ dds_entity_t dds_create_topic (dds_entity_t participant, const dds_topic_descrip
|
|||
ddsi_sertopic_init (&st->c, name, desc->m_typename, &ddsi_sertopic_ops_default, desc->m_nkeys ? &ddsi_serdata_ops_cdr : &ddsi_serdata_ops_cdr_nokey, (desc->m_nkeys == 0));
|
||||
st->native_encoding_identifier = (DDSRT_ENDIAN == DDSRT_LITTLE_ENDIAN ? CDR_LE : CDR_BE);
|
||||
st->serpool = ppent->m_domain->gv.serpool;
|
||||
st->type = (void*) desc;
|
||||
st->nkeys = desc->m_nkeys;
|
||||
st->keys = desc->m_keys;
|
||||
st->type.m_size = desc->m_size;
|
||||
st->type.m_align = desc->m_align;
|
||||
st->type.m_flagset = desc->m_flagset;
|
||||
st->type.m_nkeys = desc->m_nkeys;
|
||||
st->type.m_keys = ddsrt_malloc (st->type.m_nkeys * sizeof (*st->type.m_keys));
|
||||
for (uint32_t i = 0; i < st->type.m_nkeys; i++)
|
||||
st->type.m_keys[i] = desc->m_keys[i].m_index;
|
||||
st->type.m_nops = dds_stream_countops (desc->m_ops);
|
||||
st->type.m_ops = ddsrt_memdup (desc->m_ops, st->type.m_nops * sizeof (*st->type.m_ops));
|
||||
|
||||
/* Check if topic cannot be optimised (memcpy marshal) */
|
||||
if (!(desc->m_flagset & DDS_TOPIC_NO_OPTIMIZE)) {
|
||||
st->opt_size = dds_stream_check_optimize (desc);
|
||||
if (!(st->type.m_flagset & DDS_TOPIC_NO_OPTIMIZE)) {
|
||||
st->opt_size = dds_stream_check_optimize (&st->type);
|
||||
DDS_CTRACE (&ppent->m_domain->gv.logconfig, "Marshalling for type: %s is %soptimised\n", desc->m_typename, st->opt_size ? "" : "not ");
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
#include "dds/ddsi/q_xmsg.h"
|
||||
#include "dds/ddsi/ddsi_rhc.h"
|
||||
#include "dds/ddsi/ddsi_serdata.h"
|
||||
#include "dds__stream.h"
|
||||
#include "dds/ddsi/ddsi_cdrstream.h"
|
||||
#include "dds/ddsi/q_transmit.h"
|
||||
#include "dds/ddsi/ddsi_entity_index.h"
|
||||
#include "dds/ddsi/q_config.h"
|
||||
|
|
|
@ -125,7 +125,6 @@ static const dds_topic_descriptor_t type_uni_desc =
|
|||
DDS_OP_ADR | DDS_OP_TYPE_ARR | DDS_OP_SUBTYPE_4BY, 0u, 4,
|
||||
DDS_OP_RTS,
|
||||
DDS_OP_RTS
|
||||
|
||||
},
|
||||
.m_meta = "" /* this is on its way out anyway */
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue