init
This commit is contained in:
78
unitree_SDK/include/dds/ddsi/ddsi_serdata_pserop.h
Normal file
78
unitree_SDK/include/dds/ddsi/ddsi_serdata_pserop.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Copyright(c) 2006 to 2021 ZettaScale Technology 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 DDSI_SERDATA_PSEROP_H
|
||||
#define DDSI_SERDATA_PSEROP_H
|
||||
|
||||
#include "dds/ddsi/ddsi_serdata.h"
|
||||
#include "dds/ddsi/ddsi_sertype.h"
|
||||
#include "dds/ddsi/ddsi_plist_generic.h"
|
||||
|
||||
#include "dds/dds.h"
|
||||
|
||||
#if defined (__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* There is an alignment requirement on the raw data (it must be at
|
||||
offset mod 8 for the conversion to/from a dds_stream to work).
|
||||
So we define two types: one without any additional padding, and
|
||||
one where the appropriate amount of padding is inserted */
|
||||
#define DDSI_SERDATA_PSEROP_PREPAD \
|
||||
struct ddsi_serdata c; \
|
||||
void *sample; \
|
||||
bool keyless; /*cached from topic*/ \
|
||||
uint32_t pos; \
|
||||
uint32_t size
|
||||
#define DDSI_SERDATA_PSEROP_POSTPAD \
|
||||
uint16_t identifier; \
|
||||
uint16_t options; \
|
||||
char data[]
|
||||
|
||||
struct ddsi_serdata_pserop_unpadded {
|
||||
DDSI_SERDATA_PSEROP_PREPAD;
|
||||
DDSI_SERDATA_PSEROP_POSTPAD;
|
||||
};
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define DDSI_SERDATA_PSEROP_PAD(n) ((n) % 8)
|
||||
#else
|
||||
#define DDSI_SERDATA_PSEROP_PAD(n) (n)
|
||||
#endif
|
||||
|
||||
struct ddsi_serdata_pserop {
|
||||
DDSI_SERDATA_PSEROP_PREPAD;
|
||||
char pad[DDSI_SERDATA_PSEROP_PAD (8 - (offsetof (struct ddsi_serdata_pserop_unpadded, data) % 8))];
|
||||
DDSI_SERDATA_PSEROP_POSTPAD;
|
||||
};
|
||||
|
||||
#undef DDSI_SERDATA_PSEROP_PAD
|
||||
#undef DDSI_SERDATA_PSEROP_POSTPAD
|
||||
#undef DDSI_SERDATA_PSEROP_PREPAD
|
||||
|
||||
struct ddsi_sertype_pserop {
|
||||
struct ddsi_sertype c;
|
||||
uint16_t encoding_format; /* CDR_ENC_FORMAT_(PLAIN|DELIMITED|PL) */
|
||||
size_t memsize;
|
||||
size_t nops;
|
||||
const enum pserop *ops;
|
||||
size_t nops_key;
|
||||
const enum pserop *ops_key; /* NULL <=> no key; != NULL <=> 16-byte key at offset 0 */
|
||||
};
|
||||
|
||||
extern DDS_EXPORT const struct ddsi_sertype_ops ddsi_sertype_ops_pserop;
|
||||
extern DDS_EXPORT const struct ddsi_serdata_ops ddsi_serdata_ops_pserop;
|
||||
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user