49 lines
1.2 KiB
C
49 lines
1.2 KiB
C
|
|
/**
|
||
|
|
* @file mix_cc/shm/container/string.h
|
||
|
|
* @brief 共享内存string
|
||
|
|
* @author Cat (null.null.null@qq.com)
|
||
|
|
* @version 0.1
|
||
|
|
* @date 2021-05-07
|
||
|
|
*
|
||
|
|
* Copyright: Baosight Co. Ltd.
|
||
|
|
* DO NOT COPY/USE WITHOUT PERMISSION
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
#pragma once
|
||
|
|
|
||
|
|
#include <mix_cc/shm/stl_builder.h>
|
||
|
|
#include <string>
|
||
|
|
#include <boost/interprocess/containers/string.hpp>
|
||
|
|
|
||
|
|
namespace mix_cc {
|
||
|
|
namespace shm {
|
||
|
|
/**
|
||
|
|
* @brief 共享内存的基本String
|
||
|
|
* @tparam T
|
||
|
|
* @tparam Traits
|
||
|
|
* @tparam Segment
|
||
|
|
*/
|
||
|
|
template <class T, class Traits = std::char_traits<T>,
|
||
|
|
class Segment = bip::managed_mapped_file>
|
||
|
|
using BasicString = bip::basic_string<T, Traits, ScopedShmAlloc<T, Segment>>;
|
||
|
|
|
||
|
|
typedef BasicString<char> String;
|
||
|
|
typedef BasicString<wchar_t> WString;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @brief 共享内存的基本String构造器
|
||
|
|
* @tparam T
|
||
|
|
* @tparam Traits
|
||
|
|
* @tparam Segment
|
||
|
|
*/
|
||
|
|
template <class T, class Traits = std::char_traits<T>,
|
||
|
|
class Segment = bip::managed_mapped_file>
|
||
|
|
class BasicStringBuilder
|
||
|
|
: public StlBuilder<BasicString<T, Traits, Segment>, T, Segment> {};
|
||
|
|
|
||
|
|
typedef BasicStringBuilder<char> StringBuilder;
|
||
|
|
typedef BasicStringBuilder<wchar_t> WStringBuilder;
|
||
|
|
} // namespace shm
|
||
|
|
|
||
|
|
} // namespace mix_cc
|