Simplify doc_/comp_ examples using quickbook macros instead of in-code #ifdefs.

This commit is contained in:
Ion Gaztañaga
2024-08-05 00:39:23 +02:00
parent 86855f7c70
commit 6be5872ef7
41 changed files with 74 additions and 692 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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
);

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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());

View File

@@ -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>

View File

@@ -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 =

View File

@@ -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

View File

@@ -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;

View File

@@ -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;

View File

@@ -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]();

View File

@@ -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

View File

@@ -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;

View File

@@ -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);

View File

@@ -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.

View File

@@ -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());

View File

@@ -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>

View File

@@ -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;

View File

@@ -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){

View File

@@ -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

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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

View File

@@ -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;

View File

@@ -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.

View File

@@ -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 =

View File

@@ -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());

View File

@@ -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);