mirror of
https://github.com/boostorg/interprocess.git
synced 2026-01-19 04:12:13 +00:00
Simplify doc_/comp_ examples using quickbook macros instead of in-code #ifdefs.
This commit is contained in:
@@ -24,7 +24,9 @@
|
||||
[def BOOST_INTERPROCESS_RETHROW throw;]
|
||||
[def BOOST_INTERPROCESS_CATCH_END]
|
||||
|
||||
[def test::get_process_id_name() "MySharedMemory"]
|
||||
[def test::get_process_id_name() "MyName"]
|
||||
[def argv[2] "MyName"]
|
||||
|
||||
|
||||
|
||||
[section:intro Introduction]
|
||||
@@ -3195,7 +3197,7 @@ To use a managed shared memory, you must include the following header:
|
||||
[c++]
|
||||
|
||||
//1. Creates a new shared memory object
|
||||
// called "MySharedMemory".
|
||||
// called "MyName".
|
||||
//2. Maps the whole object to this
|
||||
// process' address space.
|
||||
//3. Constructs some objects in shared memory
|
||||
@@ -3203,21 +3205,21 @@ To use a managed shared memory, you must include the following header:
|
||||
//!! If anything fails, throws interprocess_exception
|
||||
//
|
||||
managed_shared_memory segment ( create_only
|
||||
, "MySharedMemory" //Shared memory object name
|
||||
, 65536); //Shared memory object size in bytes
|
||||
, "MyName" //Shared memory object name
|
||||
, 65536); //Shared memory object size in bytes
|
||||
|
||||
|
||||
[c++]
|
||||
|
||||
//1. Opens a shared memory object
|
||||
// called "MySharedMemory".
|
||||
// called "MyName".
|
||||
//2. Maps the whole object to this
|
||||
// process' address space.
|
||||
//3. Obtains pointers to constructed internal objects
|
||||
// to implement managed features.
|
||||
//!! If anything fails, throws interprocess_exception
|
||||
//
|
||||
managed_shared_memory segment (open_only, "MySharedMemory");//Shared memory object name
|
||||
managed_shared_memory segment (open_only, "MyName"); //Shared memory object name
|
||||
|
||||
|
||||
[c++]
|
||||
@@ -3228,8 +3230,8 @@ To use a managed shared memory, you must include the following header:
|
||||
//!! If anything fails, throws interprocess_exception
|
||||
//
|
||||
managed_shared_memory segment ( open_or_create
|
||||
, "MySharedMemory" //Shared memory object name
|
||||
, 65536); //Shared memory object size in bytes
|
||||
, "MyName" //Shared memory object name
|
||||
, 65536); //Shared memory object size in bytes
|
||||
|
||||
|
||||
When the `managed_shared_memory` object is destroyed, the shared memory
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include <iostream>
|
||||
#include <cstdio>
|
||||
#include "doc_anonymous_condition_shared_data.hpp"
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -24,8 +27,8 @@ int main ()
|
||||
//Erase previous shared memory and schedule erasure on exit
|
||||
struct shm_remove
|
||||
{
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -33,9 +36,9 @@ int main ()
|
||||
|
||||
//Create a shared memory object.
|
||||
shared_memory_object shm
|
||||
(create_only //only create
|
||||
,"MySharedMemory" //name
|
||||
,read_write //read-write mode
|
||||
(create_only //only create
|
||||
, test::get_process_id_name() //name
|
||||
, read_write //read-write mode
|
||||
);
|
||||
BOOST_INTERPROCESS_TRY{
|
||||
//Set size
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include <iostream>
|
||||
#include <cstring>
|
||||
#include "doc_anonymous_condition_shared_data.hpp"
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -23,7 +26,7 @@ int main ()
|
||||
//Create a shared memory object.
|
||||
shared_memory_object shm
|
||||
(open_only //only create
|
||||
,"MySharedMemory" //name
|
||||
, test::get_process_id_name() //name
|
||||
,read_write //read-write mode
|
||||
);
|
||||
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include "doc_anonymous_mutex_shared_data.hpp"
|
||||
#include <iostream>
|
||||
#include <cstdio>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -24,8 +27,8 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -33,9 +36,9 @@ int main ()
|
||||
|
||||
//Create a shared memory object.
|
||||
shared_memory_object shm
|
||||
(create_only //only create
|
||||
,"MySharedMemory" //name
|
||||
,read_write //read-write mode
|
||||
(create_only //only create
|
||||
, test::get_process_id_name() //name
|
||||
, read_write //read-write mode
|
||||
);
|
||||
|
||||
//Set size
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include "doc_anonymous_mutex_shared_data.hpp"
|
||||
#include <iostream>
|
||||
#include <cstdio>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -23,7 +26,7 @@ int main ()
|
||||
//Remove shared memory on destruction
|
||||
struct shm_remove
|
||||
{
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -32,8 +35,8 @@ int main ()
|
||||
//Open the shared memory object.
|
||||
shared_memory_object shm
|
||||
(open_only //only create
|
||||
,"MySharedMemory" //name
|
||||
,read_write //read-write mode
|
||||
, test::get_process_id_name() //name
|
||||
, read_write //read-write mode
|
||||
);
|
||||
|
||||
//Map the whole shared memory in this process
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
#include <boost/interprocess/mapped_region.hpp>
|
||||
#include <iostream>
|
||||
#include "doc_anonymous_semaphore_shared_data.hpp"
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -21,8 +24,8 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -30,9 +33,9 @@ int main ()
|
||||
|
||||
//Create a shared memory object.
|
||||
shared_memory_object shm
|
||||
(create_only //only create
|
||||
,"MySharedMemory" //name
|
||||
,read_write //read-write mode
|
||||
( create_only //only create
|
||||
, test::get_process_id_name() //name
|
||||
, read_write //read-write mode
|
||||
);
|
||||
|
||||
//Set size
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
#include <boost/interprocess/mapped_region.hpp>
|
||||
#include <iostream>
|
||||
#include "doc_anonymous_semaphore_shared_data.hpp"
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -21,7 +25,7 @@ int main ()
|
||||
//Remove shared memory on destruction
|
||||
struct shm_remove
|
||||
{
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -29,9 +33,9 @@ int main ()
|
||||
|
||||
//Create a shared memory object.
|
||||
shared_memory_object shm
|
||||
(open_only //only open
|
||||
,"MySharedMemory" //name
|
||||
,read_write //read-write mode
|
||||
( open_only //only open
|
||||
, test::get_process_id_name() //name
|
||||
, read_write //read-write mode
|
||||
);
|
||||
|
||||
//Map the whole shared memory in this process
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include "doc_upgradable_mutex_shared_data.hpp"
|
||||
#include <iostream>
|
||||
#include <cstdio>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -23,7 +26,7 @@ int main ()
|
||||
//Remove shared memory on destruction
|
||||
struct shm_remove
|
||||
{
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -31,9 +34,9 @@ int main ()
|
||||
|
||||
//Create a shared memory object.
|
||||
shared_memory_object shm
|
||||
(create_only //only create
|
||||
,"MySharedMemory" //name
|
||||
,read_write //read-write mode
|
||||
( create_only //only create
|
||||
, test::get_process_id_name() //name
|
||||
, read_write //read-write mode
|
||||
);
|
||||
|
||||
//Set size
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
#include "doc_upgradable_mutex_shared_data.hpp"
|
||||
#include <iostream>
|
||||
#include <cstdio>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -24,7 +27,8 @@ int main ()
|
||||
//Remove shared memory on destruction
|
||||
struct shm_remove
|
||||
{
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()
|
||||
); }
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -32,15 +36,15 @@ int main ()
|
||||
|
||||
//Open the shared memory object.
|
||||
shared_memory_object shm
|
||||
(open_only //only create
|
||||
,"MySharedMemory" //name
|
||||
,read_write //read-write mode
|
||||
( open_only //only create
|
||||
, test::get_process_id_name() //name
|
||||
, read_write //read-write mode
|
||||
);
|
||||
|
||||
//Map the whole shared memory in this process
|
||||
mapped_region region
|
||||
(shm //What to map
|
||||
,read_write //Map it as read-write
|
||||
( shm //What to map
|
||||
, read_write //Map it as read-write
|
||||
);
|
||||
|
||||
//Get the address of the mapped region
|
||||
|
||||
@@ -24,34 +24,15 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create a adaptive_pool that allocates ints from the managed segment
|
||||
//The number of chunks per segment is the default value
|
||||
|
||||
@@ -24,34 +24,15 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create an allocator that allocates ints from the managed segment
|
||||
allocator<int, managed_shared_memory::segment_manager>
|
||||
|
||||
@@ -26,34 +26,15 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Fill data
|
||||
std::vector<int> data;
|
||||
|
||||
@@ -24,34 +24,15 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create a cached_adaptive_pool that allocates ints from the managed segment
|
||||
//The number of chunks per segment is the default value
|
||||
|
||||
@@ -24,34 +24,15 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only, test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create a cached_node_allocator that allocates ints from the managed segment
|
||||
//The number of chunks per segment is the default value
|
||||
|
||||
@@ -63,32 +63,15 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,"MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//An allocator convertible to any allocator<T, segment_manager_t> type
|
||||
void_allocator alloc_inst (segment.get_segment_manager());
|
||||
|
||||
@@ -23,17 +23,8 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -41,17 +32,7 @@ int main ()
|
||||
|
||||
//A managed shared memory where we can construct objects
|
||||
//associated with a c-string
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Alias an STL-like allocator of ints that allocates ints from the segment
|
||||
typedef allocator<int, managed_shared_memory::segment_manager>
|
||||
|
||||
@@ -77,32 +77,15 @@ int main()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory shmem(create_only, test::get_process_id_name(), 10000);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory shmem(create_only, "MySharedMemory", 10000);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create the unique reference counted object in shared memory
|
||||
N::reference_counted_class *ref_counted =
|
||||
|
||||
@@ -24,32 +24,15 @@ int main (int argc, char *argv[])
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create a managed shared memory segment
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only, test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only, "MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Allocate a portion of the segment (raw memory)
|
||||
managed_shared_memory::size_type free_memory = segment.get_free_memory();
|
||||
@@ -77,15 +60,7 @@ int main (int argc, char *argv[])
|
||||
}
|
||||
else{
|
||||
//Open managed segment
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(open_only, argv[2]);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(open_only, "MySharedMemory");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//An handle from the base address can identify any byte of the shared
|
||||
//memory segment even if it is mapped in different base addresses
|
||||
|
||||
@@ -21,17 +21,8 @@ int main()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -39,15 +30,7 @@ int main()
|
||||
|
||||
//Managed memory segment that allocates portions of a shared memory
|
||||
//segment with the default management algorithm
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory managed_shm(create_only, test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory managed_shm(create_only, "MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
const std::size_t Alignment = 128;
|
||||
|
||||
|
||||
@@ -22,17 +22,8 @@ int main()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -40,15 +31,7 @@ int main()
|
||||
|
||||
//Managed memory segment that allocates portions of a shared memory
|
||||
//segment with the default management algorithm
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory managed_shm(create_only, test::get_process_id_name(), 10000*sizeof(std::size_t));
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory managed_shm(create_only, "MySharedMemory", 10000*sizeof(std::size_t));
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Allocate at least 100 bytes, 1000 bytes if possible
|
||||
managed_shared_memory::size_type min_size = 100;
|
||||
|
||||
@@ -28,31 +28,14 @@ int main()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory managed_shm(create_only, test::get_process_id_name(), 10000*sizeof(std::size_t));
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory managed_shm(create_only, "MySharedMemory", 10000*sizeof(std::size_t));
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Construct objects
|
||||
my_class *named_object = managed_shm.construct<my_class>("Object name")[1]();
|
||||
|
||||
@@ -27,17 +27,8 @@ int main()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -45,15 +36,7 @@ int main()
|
||||
|
||||
{
|
||||
//Create a managed shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory shm(create_only, test::get_process_id_name(), 1000);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory shm(create_only, "MySharedMemory", 1000);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Check size
|
||||
assert(shm.get_size() == 1000);
|
||||
@@ -66,26 +49,11 @@ int main()
|
||||
}
|
||||
{
|
||||
//Now that the segment is not mapped grow it adding extra 500 bytes
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory::grow(test::get_process_id_name(), 500);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory::grow("MySharedMemory", 500);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Map it again
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory shm(open_only, test::get_process_id_name());
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory shm(open_only, "MySharedMemory");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Check size
|
||||
assert(shm.get_size() == 1500);
|
||||
//Check "MyClass" is still there
|
||||
@@ -98,26 +66,11 @@ int main()
|
||||
}
|
||||
{
|
||||
//Now minimize the size of the segment
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory::shrink_to_fit(test::get_process_id_name());
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory::shrink_to_fit("MySharedMemory");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Map it again
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory shm(open_only, test::get_process_id_name());
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory shm(open_only, "MySharedMemory");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Check size
|
||||
assert(shm.get_size() < 1000);
|
||||
//Check "MyClass" is still there
|
||||
|
||||
@@ -7,8 +7,9 @@
|
||||
// See http://www.boost.org/libs/interprocess for documentation.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
#if defined(BOOST_INTERPROCESS_MAPPED_FILES)
|
||||
#include <boost/interprocess/detail/workaround.hpp>
|
||||
|
||||
#if defined(BOOST_INTERPROCESS_MAPPED_FILES)
|
||||
|
||||
//[doc_managed_multiple_allocation
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
@@ -29,31 +30,14 @@ int main()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory managed_shm(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory managed_shm(create_only,"MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Allocate 16 elements of 100 bytes in a single call. Non-throwing version.
|
||||
multiallocation_chain chain;
|
||||
|
||||
@@ -21,17 +21,8 @@ int main()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -39,15 +30,7 @@ int main()
|
||||
|
||||
//Managed memory segment that allocates portions of a shared memory
|
||||
//segment with the default management algorithm
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory managed_shm(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory managed_shm(create_only,"MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Allocate 100 bytes of memory from segment, throwing version
|
||||
void *ptr = managed_shm.allocate(100);
|
||||
|
||||
@@ -26,17 +26,8 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
@@ -45,18 +36,7 @@ int main ()
|
||||
//Shared memory front-end that is able to construct objects
|
||||
//associated with a c-string. Erase previous shared memory with the name
|
||||
//to be used and create the memory segment at the specified address and initialize resources
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment
|
||||
(create_only
|
||||
,"MySharedMemory" //segment name
|
||||
,65536); //segment size in bytes
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Note that map<Key, MappedType>'s value_type is std::pair<const Key, MappedType>,
|
||||
//so the allocator must allocate that pair.
|
||||
|
||||
@@ -34,31 +34,14 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory shm(create_only, test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory shm(create_only, "MySharedMemory", 10000);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create allocators
|
||||
CharAllocator charallocator (shm.get_segment_manager());
|
||||
|
||||
@@ -74,32 +74,15 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,"MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Construct the multi_index in shared memory
|
||||
employee_set *es = segment.construct<employee_set>
|
||||
|
||||
@@ -28,32 +28,15 @@ int main(int argc, char *argv[])
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Construct managed shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only, test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only, "MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create an object of MyType initialized to {0.0, 0}
|
||||
MyType *instance = segment.construct<MyType>
|
||||
@@ -99,15 +82,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
else{
|
||||
//Open managed shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(open_only, argv[2]);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(open_only, "MySharedMemory");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
std::pair<MyType*, managed_shared_memory::size_type> res;
|
||||
|
||||
|
||||
@@ -25,56 +25,23 @@ int main ()
|
||||
BOOST_INTERPROCESS_TRY{
|
||||
struct file_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
file_remove() { std::remove(test::get_process_id_name()); }
|
||||
~file_remove(){ std::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
file_remove() { std::remove("file_name"); }
|
||||
~file_remove(){ std::remove("file_name"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} file_remover;
|
||||
struct mutex_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
mutex_remove() { named_mutex::remove(test::get_process_id_name()); }
|
||||
~mutex_remove(){ named_mutex::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
mutex_remove() { named_mutex::remove("fstream_named_mutex"); }
|
||||
~mutex_remove(){ named_mutex::remove("fstream_named_mutex"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)file_remover;
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Open or create the named mutex
|
||||
//<-
|
||||
#if 1
|
||||
named_mutex mutex(open_or_create, test::get_process_id_name());
|
||||
#else
|
||||
//->
|
||||
named_mutex mutex(open_or_create, "fstream_named_mutex");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//<-
|
||||
#if 1
|
||||
std::ofstream file(test::get_process_id_name());
|
||||
#else
|
||||
//->
|
||||
std::ofstream file("file_name");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
for(int i = 0; i < 10; ++i){
|
||||
|
||||
|
||||
@@ -24,36 +24,17 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,
|
||||
test::get_process_id_name(), //segment name
|
||||
65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create a node_allocator that allocates ints from the managed segment
|
||||
//The number of chunks per segment is the default value
|
||||
|
||||
@@ -30,36 +30,17 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,
|
||||
test::get_process_id_name(), //segment name
|
||||
65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create linked list with 10 nodes in shared memory
|
||||
offset_ptr<list_node> prev = 0, current, first;
|
||||
|
||||
@@ -24,36 +24,17 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,
|
||||
test::get_process_id_name(), //segment name
|
||||
65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create a private_adaptive_pool that allocates ints from the managed segment
|
||||
//The number of chunks per segment is the default value
|
||||
|
||||
@@ -24,36 +24,17 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only,
|
||||
test::get_process_id_name(), //segment name
|
||||
65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create a private_node_allocator that allocates ints from the managed segment
|
||||
//The number of chunks per segment is the default value
|
||||
|
||||
@@ -53,31 +53,14 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory shmem(create_only, test::get_process_id_name(), 10000);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory shmem(create_only, "MySharedMemory", 10000);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//In the first try, there will be no exceptions
|
||||
//in the second try we will throw an exception
|
||||
|
||||
@@ -26,32 +26,15 @@ int main(int argc, char *argv[])
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create a shared memory object.
|
||||
//<-
|
||||
#if 1
|
||||
shared_memory_object shm (create_only, test::get_process_id_name(), read_write);
|
||||
#else
|
||||
//->
|
||||
shared_memory_object shm (create_only, "MySharedMemory", read_write);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Set size
|
||||
shm.truncate(1000);
|
||||
@@ -72,15 +55,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
else{
|
||||
//Open already created shared memory object.
|
||||
//<-
|
||||
#if 1
|
||||
shared_memory_object shm (open_only, argv[2], read_only);
|
||||
#else
|
||||
//->
|
||||
shared_memory_object shm (open_only, "MySharedMemory", read_only);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Map the whole shared memory in this process
|
||||
mapped_region region(shm, read_only);
|
||||
|
||||
@@ -37,31 +37,14 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only, test::get_process_id_name(), 4096);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only, "MySharedMemory", 4096);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create a shared pointer in shared memory
|
||||
//pointing to a newly created object in the segment
|
||||
|
||||
@@ -36,32 +36,15 @@ int main(int argc, char *argv[])
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create a new segment with given name and size
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only, test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only, "MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Initialize shared memory STL-compatible allocator
|
||||
const ShmemAllocator alloc_inst (segment.get_segment_manager());
|
||||
@@ -86,15 +69,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
else{ //Child process
|
||||
//Open the managed segment
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(open_only, argv[2]);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(open_only, "MySharedMemory");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Find the vector using the c-string name
|
||||
MyVector *myvector = segment.find<MyVector>("MyVector").first;
|
||||
|
||||
@@ -40,32 +40,15 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//Create shared memory
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(create_only, test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(create_only, "MySharedMemory", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Note that unordered_map<Key, MappedType>'s value_type is std::pair<const Key, MappedType>,
|
||||
//so the allocator must allocate that pair.
|
||||
|
||||
@@ -36,37 +36,17 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory segment(
|
||||
create_only,
|
||||
test::get_process_id_name(), //segment name
|
||||
65536); //segment size in bytes
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory segment(
|
||||
create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536); //segment size in bytes
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Construct shared memory vector
|
||||
MyVector *myvector =
|
||||
|
||||
@@ -35,31 +35,14 @@ int main ()
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
shm_remove() { shared_memory_object::remove(test::get_process_id_name()); }
|
||||
~shm_remove(){ shared_memory_object::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
//<-
|
||||
(void)remover;
|
||||
//->
|
||||
|
||||
//<-
|
||||
#if 1
|
||||
managed_shared_memory shm(create_only, test::get_process_id_name(), 10000);
|
||||
#else
|
||||
//->
|
||||
managed_shared_memory shm(create_only, "MySharedMemory", 10000);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Create allocators
|
||||
CharAllocator charallocator (shm.get_segment_manager());
|
||||
|
||||
@@ -28,15 +28,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
if(argc == 1){ //Parent process
|
||||
//Create a native windows shared memory object.
|
||||
//<-
|
||||
#if 1
|
||||
windows_shared_memory shm (create_only, test::get_process_id_name(), read_write, 1000);
|
||||
#else
|
||||
//->
|
||||
windows_shared_memory shm (create_only, "MySharedMemory", read_write, 1000);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Map the whole shared memory in this process
|
||||
mapped_region region(shm, read_write);
|
||||
@@ -55,15 +47,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
else{
|
||||
//Open already created shared memory object.
|
||||
//<-
|
||||
#if 1
|
||||
windows_shared_memory shm (open_only, argv[2], read_only);
|
||||
#else
|
||||
//->
|
||||
windows_shared_memory shm (open_only, "MySharedMemory", read_only);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Map the whole shared memory in this process
|
||||
mapped_region region(shm, read_only);
|
||||
|
||||
Reference in New Issue
Block a user