13 #include <ace/Lib_Find.h>
25 m_pAccessMutex(nullptr),
26 m_pWaitDataMutex(nullptr),
57 char temp_dir_path[1024];
59 if (ACE::get_temp_dir(temp_dir_path, 1024) == -1) {
64 #ifdef ACE_LACKS_SYSV_SHMEM
66 snprintf(obj_name, 2048,
"%sSHMEM_FILE_%d_%d", temp_dir_path, port, 0);
68 m_pMap =
new ACE_Shared_Memory_MM(obj_name,
71 ACE_DEFAULT_FILE_PERMS,
84 #ifdef _ACE_USE_SV_SEM
85 snprintf(obj_name, 2048,
"%sSHMEM_ACCESS_MUTEX_%d", temp_dir_path, port);
87 snprintf(obj_name, 2048,
"%sSHMEM_WAITDATA_MUTEX_%d", temp_dir_path, port);
90 snprintf(obj_name, 2048,
"SHMEM_ACCESS_MUTEX_%d", port);
92 snprintf(obj_name, 2048,
"SHMEM_WAITDATA_MUTEX_%d", port);
107 ACE_Shared_Memory* pNewMap;
111 #ifdef ACE_LACKS_SYSV_SHMEM
113 char file_path[1024];
115 if (ACE::get_temp_dir(file_path, 1024) == -1) {
120 char file_name[2048];
123 pNewMap =
new ACE_Shared_Memory_MM(file_name,
126 ACE_DEFAULT_FILE_PERMS,
144 char* pNewData = (
char*)(pNewHeader + 1);
180 memcpy((
void*)(data + first_block_size), (
void*)
m_pData, len - first_block_size);
203 char* data = b.
get();
208 while (!(
ret =
read(data, (
int)len))) {
209 #ifdef _ACE_USE_SV_SEM
211 tv.sec(tv.sec() + 1);
const yarp::os::LogComponent & SHMEMCARRIER()
A simple abstraction for a block of bytes.
#define yCError(component,...)
#define yCDebug(component,...)
struct timeval YARP_timeval