Skip to content

Commit

Permalink
调整目录结构,隔离include路径,修正tls在win下的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
mutouyun committed Sep 13, 2020
1 parent 94c1043 commit 523d38d
Show file tree
Hide file tree
Showing 53 changed files with 252 additions and 229 deletions.
2 changes: 1 addition & 1 deletion LICENSE
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cpp-ipc - A high-performance inter-process communication using shared memory on Linux/Windows.
cpp-ipc(libipc) - A high-performance inter-process communication using shared memory on Linux/Windows.

Copyright (c) 2018 mutouyun (http://orzz.org)

Expand Down
2 changes: 1 addition & 1 deletion README.md
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# cpp-ipc - C++ IPC Library
# cpp-ipc(libipc) - C++ IPC Library

[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/mutouyun/cpp-ipc/blob/master/LICENSE) [![Build Status](https://travis-ci.org/mutouyun/cpp-ipc.svg?branch=master)](https://travis-ci.org/mutouyun/cpp-ipc) [![Build status](https://ci.appveyor.com/api/projects/status/github/mutouyun/cpp-ipc?branch=master&svg=true)](https://ci.appveyor.com/project/mutouyun/cpp-ipc)

Expand Down
2 changes: 1 addition & 1 deletion demo/chat/main.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <regex>
#include <atomic>

#include "ipc.h"
#include "libipc/ipc.h"

namespace {

Expand Down
4 changes: 2 additions & 2 deletions include/buffer.h → include/libipc/buffer.h
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
#include <vector>
#include <type_traits>

#include "export.h"
#include "def.h"
#include "libipc/export.h"
#include "libipc/def.h"

namespace ipc {

Expand Down
File renamed without changes.
File renamed without changes.
10 changes: 5 additions & 5 deletions include/ipc.h → include/libipc/ipc.h
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#pragma once

#include "export.h"
#include "def.h"
#include "buffer.h"
#include "shm.h"

#include <string>

#include "libipc/export.h"
#include "libipc/def.h"
#include "libipc/buffer.h"
#include "libipc/shm.h"

namespace ipc {

using handle_t = void*;
Expand Down
4 changes: 2 additions & 2 deletions include/pool_alloc.h → include/libipc/pool_alloc.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
#include <new>
#include <utility>

#include "export.h"
#include "def.h"
#include "libipc/export.h"
#include "libipc/def.h"

namespace ipc {
namespace mem {
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion include/shm.h → include/libipc/shm.h
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include <cstddef>

#include "export.h"
#include "libipc/export.h"

namespace ipc {
namespace shm {
Expand Down
7 changes: 3 additions & 4 deletions include/tls_pointer.h → include/libipc/tls_pointer.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
#include <utility> // std::forward
#include <cstddef> // std::size_t

#include "export.h"
#include "platform/detail.h"
#include "libipc/export.h"

namespace ipc {
namespace tls {
Expand Down Expand Up @@ -69,7 +68,7 @@ class pointer : public key_info {
template <typename... P>
T* create(P&&... params) {
destruct();
auto ptr = detail::unique_ptr(new T(std::forward<P>(params)...));
std::unique_ptr<T> ptr { new T(std::forward<P>(params)...) };
if (!tls::set(this, ptr.get())) {
return nullptr;
}
Expand All @@ -80,7 +79,7 @@ class pointer : public key_info {
T* create_once(P&&... params) {
auto p = static_cast<T*>(tls::get(this));
if (p == nullptr) {
auto ptr = detail::unique_ptr(new T(std::forward<P>(params)...));
std::unique_ptr<T> ptr { new T(std::forward<P>(params)...) };
if (!tls::set(this, ptr.get())) {
return nullptr;
}
Expand Down
4 changes: 2 additions & 2 deletions include/waiter.h → include/libipc/waiter.h
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pragma once

#include "export.h"
#include "def.h"
#include "libipc/export.h"
#include "libipc/def.h"

namespace ipc {

Expand Down
13 changes: 10 additions & 3 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,19 @@ include_directories(
${CMAKE_SOURCE_DIR}/src)

if(UNIX)
file(GLOB SRC_FILES ${CMAKE_SOURCE_DIR}/src/platform/*_linux.cpp)
file(GLOB SRC_FILES ${CMAKE_SOURCE_DIR}/src/libipc/platform/*_linux.cpp)
else()
file(GLOB SRC_FILES ${CMAKE_SOURCE_DIR}/src/platform/*_win.cpp)
file(GLOB SRC_FILES ${CMAKE_SOURCE_DIR}/src/libipc/platform/*_win.cpp)
endif()
aux_source_directory(${CMAKE_SOURCE_DIR}/src SRC_FILES)
file(GLOB HEAD_FILES ${CMAKE_SOURCE_DIR}/include/*.h ${CMAKE_SOURCE_DIR}/src/*.inc ${CMAKE_SOURCE_DIR}/src/memory/*.hpp)

file(GLOB HEAD_FILES
${CMAKE_SOURCE_DIR}/include/libipc/*.h
${CMAKE_SOURCE_DIR}/src/libipc/*.inc
${CMAKE_SOURCE_DIR}/src/libipc/circ/*.h
${CMAKE_SOURCE_DIR}/src/libipc/memory/*.h
${CMAKE_SOURCE_DIR}/src/libipc/platform/*.h
${CMAKE_SOURCE_DIR}/src/libipc/utility/*.h)

add_library(${PROJECT_NAME} SHARED ${SRC_FILES} ${HEAD_FILES})
if(NOT MSVC)
Expand Down
4 changes: 2 additions & 2 deletions src/buffer.cpp
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "buffer.h"
#include "pimpl.h"
#include "libipc/buffer.h"
#include "libipc/utility/pimpl.h"

#include <cstring>

Expand Down
29 changes: 15 additions & 14 deletions src/ipc.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#include "ipc.h"

#include <type_traits>
#include <cstring>
Expand All @@ -10,22 +9,24 @@
#include <vector>
#include <array>

#include "def.h"
#include "shm.h"
#include "tls_pointer.h"
#include "pool_alloc.h"
#include "queue.h"
#include "policy.h"
#include "rw_lock.h"
#include "log.h"
#include "id_pool.h"
#include "libipc/ipc.h"
#include "libipc/def.h"
#include "libipc/shm.h"
#include "libipc/tls_pointer.h"
#include "libipc/pool_alloc.h"
#include "libipc/queue.h"
#include "libipc/policy.h"
#include "libipc/rw_lock.h"

#include "memory/resource.h"
#include "libipc/utility/log.h"
#include "libipc/utility/id_pool.h"

#include "platform/detail.h"
#include "platform/waiter_wrapper.h"
#include "libipc/memory/resource.h"

#include "circ/elem_array.h"
#include "libipc/platform/detail.h"
#include "libipc/platform/waiter_wrapper.h"

#include "libipc/circ/elem_array.h"

namespace {

Expand Down
6 changes: 3 additions & 3 deletions src/circ/elem_array.h → src/libipc/circ/elem_array.h
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
#include <utility>
#include <type_traits>

#include "def.h"
#include "libipc/def.h"

#include "circ/elem_def.h"
#include "platform/detail.h"
#include "libipc/circ/elem_def.h"
#include "libipc/platform/detail.h"

namespace ipc {
namespace circ {
Expand Down
4 changes: 2 additions & 2 deletions src/circ/elem_def.h → src/libipc/circ/elem_def.h
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
#include <cstdint>
#include <new>

#include "rw_lock.h"
#include "libipc/rw_lock.h"

#include "platform/detail.h"
#include "libipc/platform/detail.h"

namespace ipc {
namespace circ {
Expand Down
10 changes: 5 additions & 5 deletions src/memory/alloc.h → src/libipc/memory/alloc.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@
#include <cstdlib>
#include <cassert> // assert

#include "def.h"
#include "rw_lock.h"
#include "concept.h"
#include "libipc/def.h"
#include "libipc/rw_lock.h"

#include "memory/allocator_wrapper.h"
#include "platform/detail.h"
#include "libipc/utility/concept.h"
#include "libipc/memory/allocator_wrapper.h"
#include "libipc/platform/detail.h"

namespace ipc {
namespace mem {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
#include <limits> // std::numeric_limits
#include <utility> // std::forward
#include <cstddef>
#include <new> // ::new

#include "libipc/pool_alloc.h"

namespace ipc {
namespace mem {
Expand Down Expand Up @@ -86,11 +87,11 @@ class allocator_wrapper {

template <typename... P>
static void construct(pointer p, P && ... params) {
::new (static_cast<void*>(p)) value_type(std::forward<P>(params) ...);
ipc::mem::construct(p, std::forward<P>(params)...);
}

static void destroy(pointer p) {
p->~value_type();
ipc::mem::destruct(p);
}
};

Expand Down
8 changes: 4 additions & 4 deletions src/memory/resource.h → src/libipc/memory/resource.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
#include <string>
#include <cstdio>

#include "def.h"
#include "libipc/def.h"

#include "memory/alloc.h"
#include "memory/wrapper.h"
#include "platform/detail.h"
#include "libipc/memory/alloc.h"
#include "libipc/memory/wrapper.h"
#include "libipc/platform/detail.h"

namespace ipc {
namespace mem {
Expand Down
26 changes: 15 additions & 11 deletions src/memory/wrapper.h → src/libipc/memory/wrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
#include <cstddef>
#include <cassert> // assert
#include <type_traits> // std::aligned_storage_t
#include <new> // ::new

#include "def.h"
#include "rw_lock.h"
#include "tls_pointer.h"
#include "concept.h"
#include "libipc/def.h"
#include "libipc/rw_lock.h"
#include "libipc/tls_pointer.h"
#include "libipc/pool_alloc.h"

#include "memory/alloc.h"
#include "platform/detail.h"
#include "libipc/utility/concept.h"
#include "libipc/memory/alloc.h"
#include "libipc/platform/detail.h"

namespace ipc {
namespace mem {
Expand Down Expand Up @@ -230,7 +230,9 @@ struct default_mapping_policy {

template <typename F, typename ... P>
IPC_CONSTEXPR_ static void foreach(F && f, P && ... params) {
for (std::size_t i = 0; i < classes_size; ++i) f(i, std::forward<P>(params)...);
for (std::size_t i = 0; i < classes_size; ++i) {
f(i, std::forward<P>(params)...);
}
}

IPC_CONSTEXPR_ static std::size_t block_size(std::size_t id) noexcept {
Expand All @@ -240,7 +242,9 @@ struct default_mapping_policy {
template <typename F, typename D, typename ... P>
IPC_CONSTEXPR_ static auto classify(F && f, D && d, std::size_t size, P && ... params) {
std::size_t id = (size - base_size - 1) / iter_size;
return (id < classes_size) ? f(id, size, std::forward<P>(params)...) : d(size, std::forward<P>(params)...);
return (id < classes_size) ?
f(id, size, std::forward<P>(params)...) :
d(size, std::forward<P>(params)...);
}
};

Expand All @@ -256,13 +260,13 @@ class variable_wrapper {

initiator() {
MappingP::foreach([](std::size_t id, falc_t * a) {
::new (&(a[id])) FixedAlloc(MappingP::block_size(id));
ipc::mem::construct(&initiator::at(a, id), MappingP::block_size(id));
}, arr_);
}

~initiator() {
MappingP::foreach([](std::size_t id, falc_t * a) {
initiator::at(a, id).~FixedAlloc();
ipc::mem::destruct(&initiator::at(a, id));
}, arr_);
}

Expand Down
File renamed without changes.
File renamed without changes.
10 changes: 5 additions & 5 deletions src/platform/shm_linux.cpp → src/libipc/platform/shm_linux.cpp
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#include "shm.h"

#include <sys/shm.h>
#include <sys/stat.h>
Expand All @@ -13,11 +12,12 @@
#include <utility>
#include <cstring>

#include "def.h"
#include "log.h"
#include "pool_alloc.h"
#include "libipc/shm.h"
#include "libipc/def.h"
#include "libipc/pool_alloc.h"

#include "memory/resource.h"
#include "libipc/utility/log.h"
#include "libipc/memory/resource.h"

namespace {

Expand Down
14 changes: 7 additions & 7 deletions src/platform/shm_win.cpp → src/libipc/platform/shm_win.cpp
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
#include "shm.h"

#include <Windows.h>

#include <string>
#include <utility>

#include "def.h"
#include "log.h"
#include "pool_alloc.h"
#include "libipc/shm.h"
#include "libipc/def.h"
#include "libipc/pool_alloc.h"

#include "platform/to_tchar.h"
#include "platform/get_sa.h"
#include "memory/resource.h"
#include "libipc/utility/log.h"
#include "libipc/platform/to_tchar.h"
#include "libipc/platform/get_sa.h"
#include "libipc/memory/resource.h"

namespace {

Expand Down
Loading

0 comments on commit 523d38d

Please sign in to comment.