Skip to content

Commit

Permalink
iox-eclipse-iceoryx#14 refactor ChunkHeader types on C API
Browse files Browse the repository at this point in the history
Signed-off-by: Mathias Kraus <[email protected]>
  • Loading branch information
elBoberido authored and marthtz committed May 12, 2021
1 parent 8cd8574 commit a76b55a
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 15 deletions.
14 changes: 5 additions & 9 deletions iceoryx_binding_c/include/iceoryx_binding_c/chunk.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,30 +17,26 @@
#ifndef IOX_BINDING_C_CHUNK_H
#define IOX_BINDING_C_CHUNK_H

#include "iceoryx_binding_c/internal/c2cpp_binding.h"

/// @brief handle of the chunk header
typedef void* iox_chunk_header_t;
typedef const void* iox_chunk_header_const_t;
#include "iceoryx_binding_c/types.h"

/// @brief gets the user-payload from the chunk-header
/// @param[in] chunkHeader pointer to the chunk-header
/// @return pointer to the user-payload
void* iox_chunk_header_to_user_payload(const iox_chunk_header_t chunkHeader);
void* iox_chunk_header_to_user_payload(iox_chunk_header_t* const chunkHeader);

/// @brief gets the const user-payload from the const chunk-header
/// @param[in] chunkHeader const pointer to the chunk-header
/// @return const pointer to the user-payload
const void* iox_chunk_header_to_user_payload_const(const iox_chunk_header_const_t chunkHeader);
const void* iox_chunk_header_to_user_payload_const(const iox_chunk_header_t* const chunkHeader);

/// @brief gets the chunk-header from the user-payload
/// @param[in] userPayload pointer to the user-payload
/// @return pointer to the chunk-header
iox_chunk_header_t iox_chunk_header_from_user_payload(void* const userPayload);
iox_chunk_header_t* iox_chunk_header_from_user_payload(void* const userPayload);

/// @brief gets the const chunk-header from the const user-payload
/// @param[in] userPayload const pointer to the user-payload
/// @return const pointer to the chunk-header
iox_chunk_header_const_t iox_chunk_header_from_user_payload_const(const void* const userPayload);
const iox_chunk_header_t* iox_chunk_header_from_user_payload_const(const void* const userPayload);

#endif
6 changes: 6 additions & 0 deletions iceoryx_binding_c/include/iceoryx_binding_c/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,5 +79,11 @@ struct iox_listener_storage_t_
};
typedef struct iox_listener_storage_t_ iox_listener_storage_t;

/// @brief handle of the chunk header
typedef struct
{
// could be empty but then we get `struct has no members` warning
uint8_t do_not_touch_me[1];
} iox_chunk_header_t;

#endif
12 changes: 6 additions & 6 deletions iceoryx_binding_c/source/c_chunk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,22 @@ extern "C" {

using namespace iox::mepoo;

void* iox_chunk_header_to_user_payload(const iox_chunk_header_t chunkHeader)
void* iox_chunk_header_to_user_payload(iox_chunk_header_t* const chunkHeader)
{
return reinterpret_cast<ChunkHeader*>(chunkHeader)->userPayload();
}

const void* iox_chunk_header_to_user_payload_const(const iox_chunk_header_const_t chunkHeader)
const void* iox_chunk_header_to_user_payload_const(const iox_chunk_header_t* const chunkHeader)
{
return reinterpret_cast<const ChunkHeader*>(chunkHeader)->userPayload();
}

iox_chunk_header_t iox_chunk_header_from_user_payload(void* const userPayload)
iox_chunk_header_t* iox_chunk_header_from_user_payload(void* const userPayload)
{
return ChunkHeader::fromUserPayload(userPayload);
return reinterpret_cast<iox_chunk_header_t*>(ChunkHeader::fromUserPayload(userPayload));
}

iox_chunk_header_const_t iox_chunk_header_from_user_payload_const(const void* const userPayload)
const iox_chunk_header_t* iox_chunk_header_from_user_payload_const(const void* const userPayload)
{
return ChunkHeader::fromUserPayload(userPayload);
return reinterpret_cast<const iox_chunk_header_t*>(ChunkHeader::fromUserPayload(userPayload));
}

0 comments on commit a76b55a

Please sign in to comment.