Program Listing for File dds_data_allocator.h¶
↰ Return to documentation for file (ddsc/dds_data_allocator.h
)
/*
* Copyright(c) 2021 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_DATA_ALLOCATOR_H
#define DDS_DATA_ALLOCATOR_H
/* A quick-and-dirty provisional interface */
#include "dds/dds.h"
#include "dds/ddsrt/attributes.h"
#include "dds/export.h"
#if defined (__cplusplus)
extern "C" {
#endif
#define DDS_DATA_ALLOCATOR_MAX_SIZE (8 * sizeof (void *))
typedef struct dds_data_allocator {
dds_entity_t entity;
union {
unsigned char bytes[DDS_DATA_ALLOCATOR_MAX_SIZE];
void *align_ptr;
uint64_t align_u64;
} opaque;
} dds_data_allocator_t;
DDS_EXPORT dds_return_t dds_data_allocator_init (dds_entity_t entity, dds_data_allocator_t *data_allocator);
DDS_EXPORT dds_return_t dds_data_allocator_init_heap (dds_data_allocator_t *data_allocator);
DDS_EXPORT dds_return_t dds_data_allocator_fini (dds_data_allocator_t *data_allocator);
DDS_EXPORT void *dds_data_allocator_alloc (dds_data_allocator_t *data_allocator, size_t size)
ddsrt_attribute_warn_unused_result ddsrt_attribute_malloc;
DDS_EXPORT dds_return_t dds_data_allocator_free (dds_data_allocator_t *data_allocator, void *ptr);
DDS_EXPORT bool dds_is_loan_available (const dds_entity_t entity);
DDS_DEPRECATED_EXPORT bool is_loan_available (const dds_entity_t entity);
#if defined (__cplusplus)
}
#endif
#endif