mirror of
https://github.com/boostorg/interprocess.git
synced 2026-01-19 04:12:13 +00:00
Modified examples so that they can be run in parallel.
[SVN r52391]
This commit is contained in:
@@ -22,10 +22,10 @@ int main ()
|
||||
{
|
||||
|
||||
//Erase previous shared memory and schedule erasure on exit
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create a shared memory object.
|
||||
|
||||
@@ -22,10 +22,10 @@ int main ()
|
||||
{
|
||||
try{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create a shared memory object.
|
||||
|
||||
@@ -21,9 +21,9 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Open the shared memory object.
|
||||
|
||||
@@ -19,10 +19,10 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create a shared memory object.
|
||||
|
||||
@@ -19,9 +19,9 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create a shared memory object.
|
||||
|
||||
@@ -21,9 +21,9 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create a shared memory object.
|
||||
|
||||
@@ -22,9 +22,9 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Open the shared memory object.
|
||||
|
||||
@@ -19,10 +19,10 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create shared memory
|
||||
|
||||
@@ -19,10 +19,10 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create shared memory
|
||||
|
||||
@@ -21,10 +21,10 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create shared memory
|
||||
|
||||
@@ -19,10 +19,10 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create shared memory
|
||||
|
||||
@@ -19,10 +19,10 @@ using namespace boost::interprocess;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create shared memory
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include <boost/interprocess/containers/map.hpp>
|
||||
#include <boost/interprocess/containers/vector.hpp>
|
||||
#include <boost/interprocess/containers/string.hpp>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -53,14 +56,31 @@ typedef map< char_string, complex_data
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//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());
|
||||
|
||||
@@ -18,10 +18,10 @@ int main ()
|
||||
{
|
||||
using namespace boost::interprocess;
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//A managed shared memory where we can construct objects
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
#include <cstring>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
@@ -26,8 +29,17 @@ int main(int argc, char *argv[])
|
||||
if(argc == 1){ //Parent process executes this
|
||||
{ //Create a file
|
||||
std::filebuf fbuf;
|
||||
//<-
|
||||
#if 1
|
||||
fbuf.open(test::get_process_id_name(), std::ios_base::in | std::ios_base::out
|
||||
| std::ios_base::trunc | std::ios_base::binary);
|
||||
#else
|
||||
//->
|
||||
fbuf.open("file.bin", std::ios_base::in | std::ios_base::out
|
||||
| std::ios_base::trunc | std::ios_base::binary);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
//Set the size
|
||||
fbuf.pubseekoff(FileSize-1, std::ios_base::beg);
|
||||
fbuf.sputc(0);
|
||||
@@ -35,11 +47,27 @@ int main(int argc, char *argv[])
|
||||
//Remove file on exit
|
||||
struct file_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
~file_remove (){ file_mapping::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
~file_remove (){ file_mapping::remove("file.bin"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} destroy_on_exit;
|
||||
|
||||
//Create a file mapping
|
||||
//<-
|
||||
#if 1
|
||||
file_mapping m_file(test::get_process_id_name(), read_write);
|
||||
#else
|
||||
//->
|
||||
file_mapping m_file("file.bin", read_write);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Map the whole file with read-write permissions in this process
|
||||
mapped_region region(m_file, read_write);
|
||||
@@ -52,13 +80,25 @@ int main(int argc, char *argv[])
|
||||
std::memset(addr, 1, size);
|
||||
|
||||
//Launch child process
|
||||
std::string s(argv[0]); s += " child";
|
||||
std::string s(argv[0]); s += " child ";
|
||||
//<-
|
||||
s += test::get_process_id_name();
|
||||
//->
|
||||
if(0 != std::system(s.c_str()))
|
||||
return 1;
|
||||
}
|
||||
else{ //Child process executes this
|
||||
{ //Open the file mapping and map it as read-only
|
||||
file_mapping m_file ("file.bin", read_only);
|
||||
//<-
|
||||
#if 1
|
||||
file_mapping m_file(argv[2], read_only);
|
||||
#else
|
||||
//->
|
||||
file_mapping m_file("file.bin", read_only);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
mapped_region region(m_file, read_only);
|
||||
|
||||
//Get the address of the mapped region
|
||||
@@ -73,7 +113,15 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
{ //Now test it reading the file
|
||||
std::filebuf fbuf;
|
||||
//<-
|
||||
#if 1
|
||||
fbuf.open(argv[2], std::ios_base::in | std::ios_base::binary);
|
||||
#else
|
||||
//->
|
||||
fbuf.open("file.bin", std::ios_base::in | std::ios_base::binary);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Read it to memory
|
||||
std::vector<char> vect(FileSize, 0);
|
||||
|
||||
@@ -72,10 +72,10 @@ class intrusive_ptr_owner
|
||||
int main()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Create shared memory
|
||||
|
||||
@@ -13,6 +13,9 @@
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
#include <cstdlib> //std::system
|
||||
#include <sstream>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
@@ -21,12 +24,29 @@ 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;
|
||||
|
||||
//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)
|
||||
std::size_t free_memory = segment.get_free_memory();
|
||||
@@ -40,8 +60,11 @@ int main (int argc, char *argv[])
|
||||
//memory segment even if it is mapped in different base addresses
|
||||
managed_shared_memory::handle_t handle = segment.get_handle_from_address(shptr);
|
||||
std::stringstream s;
|
||||
s << argv[0] << " " << handle << std::ends;
|
||||
|
||||
s << argv[0] << " " << handle;
|
||||
//<-
|
||||
s << " " << test::get_process_id_name();
|
||||
//->
|
||||
s << std::ends;
|
||||
//Launch child process
|
||||
if(0 != std::system(s.str().c_str()))
|
||||
return 1;
|
||||
@@ -51,7 +74,15 @@ 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
|
||||
|
||||
@@ -17,10 +17,10 @@ int main()
|
||||
using namespace boost::interprocess;
|
||||
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Managed memory segment that allocates portions of a shared memory
|
||||
|
||||
@@ -17,10 +17,10 @@ int main()
|
||||
using namespace boost::interprocess;
|
||||
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Managed memory segment that allocates portions of a shared memory
|
||||
|
||||
@@ -23,10 +23,10 @@ int main()
|
||||
using namespace boost::interprocess;
|
||||
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
managed_shared_memory managed_shm(create_only, "MySharedMemory", 10000*sizeof(std::size_t));
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <boost/interprocess/allocators/allocator.hpp>
|
||||
#include <boost/interprocess/containers/list.hpp>
|
||||
#include <cstring>
|
||||
#include <boost/aligned_storage.hpp>
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -20,12 +21,13 @@ int main()
|
||||
|
||||
//Create the static memory who will store all objects
|
||||
const int memsize = 65536;
|
||||
static char static_buffer [memsize];
|
||||
|
||||
static boost::aligned_storage<memsize>::type static_buffer;
|
||||
|
||||
//This managed memory will construct objects associated with
|
||||
//a wide string in the static buffer
|
||||
wmanaged_external_buffer objects_in_static_memory
|
||||
(create_only, static_buffer, memsize);
|
||||
(create_only, &static_buffer, memsize);
|
||||
|
||||
//We optimize resources to create 100 named objects in the static buffer
|
||||
objects_in_static_memory.reserve_named_objects(100);
|
||||
@@ -50,12 +52,12 @@ int main()
|
||||
//pointers and all the pointers constructed int the static memory point
|
||||
//to objects in the same segment, we can create another static buffer
|
||||
//from the first one and duplicate all the data.
|
||||
static char static_buffer2 [memsize];
|
||||
std::memcpy(static_buffer2, static_buffer, memsize);
|
||||
static boost::aligned_storage<memsize>::type static_buffer2;
|
||||
std::memcpy(&static_buffer2, &static_buffer, memsize);
|
||||
|
||||
//Now open the duplicated managed memory passing the memory as argument
|
||||
wmanaged_external_buffer objects_in_static_memory2
|
||||
(open_only, static_buffer2, memsize);
|
||||
(open_only, &static_buffer2, memsize);
|
||||
|
||||
//Check that "MyList" has been duplicated in the second buffer
|
||||
if(!objects_in_static_memory2.find<MyBufferList>(L"MyList").first)
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
#include <boost/interprocess/managed_mapped_file.hpp>
|
||||
#include <cassert>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
class MyClass
|
||||
{
|
||||
@@ -22,15 +25,33 @@ int main()
|
||||
{
|
||||
using namespace boost::interprocess;
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
{
|
||||
//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);
|
||||
//Construct a named object
|
||||
@@ -42,9 +63,26 @@ 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
|
||||
@@ -54,9 +92,26 @@ 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
|
||||
|
||||
@@ -23,10 +23,10 @@ int main()
|
||||
typedef managed_shared_memory::multiallocation_chain multiallocation_chain;
|
||||
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
managed_shared_memory managed_shm(create_only, "MySharedMemory", 65536);
|
||||
|
||||
@@ -16,10 +16,10 @@ int main()
|
||||
using namespace boost::interprocess;
|
||||
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Managed memory segment that allocates portions of a shared memory
|
||||
|
||||
@@ -21,10 +21,10 @@ int main ()
|
||||
using namespace boost::interprocess;
|
||||
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
//Shared memory front-end that is able to construct objects
|
||||
|
||||
@@ -29,10 +29,10 @@ int main ()
|
||||
typedef vector<MyShmString, StringAllocator> MyShmStringVector;
|
||||
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
} remover;
|
||||
|
||||
managed_shared_memory shm(create_only, "MySharedMemory", 10000);
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
#include <boost/multi_index_container.hpp>
|
||||
#include <boost/multi_index/member.hpp>
|
||||
#include <boost/multi_index/ordered_index.hpp>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
namespace bmi = boost::multi_index;
|
||||
@@ -62,14 +65,31 @@ typedef bmi::multi_index_container<
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//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>
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <utility>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
@@ -25,12 +28,29 @@ int main(int argc, char *argv[])
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//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>
|
||||
@@ -55,7 +75,10 @@ int main(int argc, char *argv[])
|
||||
, &int_initializer[0]); //Iterator for the 2nd ctor argument
|
||||
|
||||
//Launch child process
|
||||
std::string s(argv[0]); s += " child";
|
||||
std::string s(argv[0]); s += " child ";
|
||||
//<-
|
||||
s += test::get_process_id_name();
|
||||
//->
|
||||
if(0 != std::system(s.c_str()))
|
||||
return 1;
|
||||
|
||||
@@ -73,7 +96,15 @@ 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*, std::size_t> res;
|
||||
|
||||
|
||||
@@ -15,15 +15,63 @@
|
||||
#include <iostream>
|
||||
#include <cstdio>
|
||||
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
int main ()
|
||||
{
|
||||
using namespace boost::interprocess;
|
||||
try{
|
||||
|
||||
//Open or create the named mutex
|
||||
named_mutex mutex(open_or_create, "fstream_named_mutex");
|
||||
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;
|
||||
|
||||
//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){
|
||||
|
||||
@@ -37,13 +85,9 @@ int main ()
|
||||
}
|
||||
}
|
||||
catch(interprocess_exception &ex){
|
||||
named_mutex::remove("fstream_named_mutex");
|
||||
std::remove("file_name");
|
||||
std::cout << ex.what() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
named_mutex::remove("fstream_named_mutex");
|
||||
std::remove("file_name");
|
||||
return 0;
|
||||
}
|
||||
//]
|
||||
|
||||
@@ -13,22 +13,44 @@
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
#include <boost/interprocess/allocators/node_allocator.hpp>
|
||||
#include <cassert>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//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
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
//[doc_offset_ptr
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
#include <boost/interprocess/offset_ptr.hpp>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -25,16 +28,35 @@ struct list_node
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
managed_shared_memory segment(
|
||||
create_only,
|
||||
"MySharedMemory", //segment name
|
||||
65536); //segment size in bytes
|
||||
//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;
|
||||
|
||||
@@ -13,22 +13,44 @@
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
#include <boost/interprocess/allocators/private_adaptive_pool.hpp>
|
||||
#include <cassert>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//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
|
||||
|
||||
@@ -13,22 +13,44 @@
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
#include <boost/interprocess/allocators/private_node_allocator.hpp>
|
||||
#include <cassert>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//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
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
//[doc_scoped_ptr
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
#include <boost/interprocess/smart_ptr/scoped_ptr.hpp>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -48,13 +51,30 @@ int main ()
|
||||
{
|
||||
//Create shared memory
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//<-
|
||||
#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
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
#include <cstring>
|
||||
#include <cstdlib>
|
||||
#include <string>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
@@ -23,12 +26,29 @@ int main(int argc, char *argv[])
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//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);
|
||||
@@ -40,13 +60,24 @@ int main(int argc, char *argv[])
|
||||
std::memset(region.get_address(), 1, region.get_size());
|
||||
|
||||
//Launch child process
|
||||
std::string s(argv[0]); s += " child";
|
||||
std::string s(argv[0]); s += " child ";
|
||||
//<-
|
||||
s += test::get_process_id_name();
|
||||
//->
|
||||
if(0 != std::system(s.c_str()))
|
||||
return 1;
|
||||
}
|
||||
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);
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
#include <boost/interprocess/smart_ptr/shared_ptr.hpp>
|
||||
#include <boost/interprocess/smart_ptr/weak_ptr.hpp>
|
||||
#include <cassert>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -46,9 +49,30 @@ struct shared_ptr_owner
|
||||
int main ()
|
||||
{
|
||||
//Destroy any previous file with the name to be used.
|
||||
file_mapping::remove("MyMappedFile");
|
||||
struct file_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
file_remove() { file_mapping::remove(test::get_process_id_name()); }
|
||||
~file_remove(){ file_mapping::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
file_remove() { file_mapping::remove("MyMappedFile"); }
|
||||
~file_remove(){ file_mapping::remove("MyMappedFile"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
managed_mapped_file file(create_only, test::get_process_id_name(), 4096);
|
||||
#else
|
||||
//->
|
||||
managed_mapped_file file(create_only, "MyMappedFile", 4096);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Construct the shared type in the file and
|
||||
//pass ownership to this local shared pointer
|
||||
@@ -77,7 +101,16 @@ int main ()
|
||||
}
|
||||
{
|
||||
//Reopen the mapped file and find again all owners
|
||||
//<-
|
||||
#if 1
|
||||
managed_mapped_file file(open_only, test::get_process_id_name());
|
||||
#else
|
||||
//->
|
||||
managed_mapped_file file(open_only, "MyMappedFile");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
shared_ptr_owner *owner1 = file.find<shared_ptr_owner>("owner1").first;
|
||||
shared_ptr_owner *owner2 = file.find<shared_ptr_owner>("owner2").first;
|
||||
assert(owner1 && owner2);
|
||||
@@ -113,7 +146,6 @@ int main ()
|
||||
//The reference count will be deallocated when all weak pointers
|
||||
//disappear. After that, the file is unmapped.
|
||||
}
|
||||
file_mapping::remove("MyMappedFile");
|
||||
return 0;
|
||||
}
|
||||
//]
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
#include <boost/interprocess/allocators/allocator.hpp>
|
||||
#include <boost/interprocess/smart_ptr/deleter.hpp>
|
||||
#include <cassert>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -32,13 +35,30 @@ typedef shared_ptr<MyType, void_allocator_type, deleter_type> my_shared_ptr;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//<-
|
||||
#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
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
#include <boost/interprocess/allocators/allocator.hpp>
|
||||
#include <string>
|
||||
#include <cstdlib> //std::system
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -33,12 +36,29 @@ int main(int argc, char *argv[])
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_remove
|
||||
{
|
||||
shm_remove() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_remove(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//Create a new segment with given name and size
|
||||
managed_shared_memory segment(create_only ,"MySharedMemory", 65536);
|
||||
//<-
|
||||
#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());
|
||||
@@ -50,7 +70,10 @@ int main(int argc, char *argv[])
|
||||
myvector->push_back(i);
|
||||
|
||||
//Launch child process
|
||||
std::string s(argv[0]); s += " child";
|
||||
std::string s(argv[0]); s += " child ";
|
||||
//<-
|
||||
s += test::get_process_id_name();
|
||||
//->
|
||||
if(0 != std::system(s.c_str()))
|
||||
return 1;
|
||||
|
||||
@@ -60,7 +83,15 @@ 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;
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
#include <boost/interprocess/containers/list.hpp>
|
||||
#include <boost/interprocess/allocators/allocator.hpp>
|
||||
#include <cassert>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -48,9 +51,30 @@ typedef list
|
||||
int main ()
|
||||
{
|
||||
//Destroy any previous file with the name to be used.
|
||||
file_mapping::remove("MyMappedFile");
|
||||
struct file_remove
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
file_remove() { file_mapping::remove(test::get_process_id_name()); }
|
||||
~file_remove(){ file_mapping::remove(test::get_process_id_name()); }
|
||||
#else
|
||||
//->
|
||||
file_remove() { file_mapping::remove("MyMappedFile"); }
|
||||
~file_remove(){ file_mapping::remove("MyMappedFile"); }
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
} remover;
|
||||
{
|
||||
//<-
|
||||
#if 1
|
||||
managed_mapped_file file(create_only, test::get_process_id_name(), 65536);
|
||||
#else
|
||||
//->
|
||||
managed_mapped_file file(create_only, "MyMappedFile", 65536);
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
//Construct an object in the file and
|
||||
//pass ownership to this local unique pointer
|
||||
@@ -98,7 +122,16 @@ int main ()
|
||||
}
|
||||
{
|
||||
//Reopen the mapped file and find again the list
|
||||
//<-
|
||||
#if 1
|
||||
managed_mapped_file file(open_only, test::get_process_id_name());
|
||||
#else
|
||||
//->
|
||||
managed_mapped_file file(open_only, "MyMappedFile");
|
||||
//<-
|
||||
#endif
|
||||
//->
|
||||
|
||||
unique_ptr_list_t *unique_list =
|
||||
file.find<unique_ptr_list_t>("unique list").first;
|
||||
assert(unique_list);
|
||||
@@ -112,7 +145,6 @@ int main ()
|
||||
//Now destroy the list. All elements will be automatically deallocated.
|
||||
file.destroy_ptr(unique_list);
|
||||
}
|
||||
file_mapping::remove("MyMappedFile");
|
||||
return 0;
|
||||
}
|
||||
//]
|
||||
|
||||
@@ -16,19 +16,39 @@
|
||||
#include <boost/unordered_map.hpp> //boost::unordered_map
|
||||
#include <functional> //std::equal_to
|
||||
#include <boost/functional/hash.hpp> //boost::hash
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
int main ()
|
||||
{
|
||||
using namespace boost::interprocess;
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//Create shared memory
|
||||
managed_shared_memory segment(create_only ,"MySharedMemory" ,65536);
|
||||
//<-
|
||||
#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.
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
#include <boost/interprocess/managed_shared_memory.hpp>
|
||||
#include <boost/interprocess/streams/vectorstream.hpp>
|
||||
#include <iterator>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
using namespace boost::interprocess;
|
||||
|
||||
@@ -31,16 +34,36 @@ typedef basic_vectorstream<MyString> MyVectorStream;
|
||||
int main ()
|
||||
{
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//<-
|
||||
#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 =
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
#include <boost/interprocess/containers/vector.hpp>
|
||||
#include <boost/interprocess/containers/string.hpp>
|
||||
#include <boost/interprocess/allocators/allocator.hpp>
|
||||
//<-
|
||||
#include "../test/get_process_id_name.hpp"
|
||||
//->
|
||||
|
||||
int main ()
|
||||
{
|
||||
@@ -30,13 +33,30 @@ int main ()
|
||||
|
||||
//Open shared memory
|
||||
//Remove shared memory on construction and destruction
|
||||
struct shm_destroy
|
||||
struct shm_remove
|
||||
{
|
||||
shm_destroy() { shared_memory_object::remove("MySharedMemory"); }
|
||||
~shm_destroy(){ shared_memory_object::remove("MySharedMemory"); }
|
||||
//<-
|
||||
#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;
|
||||
|
||||
//<-
|
||||
#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());
|
||||
|
||||
@@ -24,7 +24,15 @@ 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);
|
||||
@@ -33,14 +41,25 @@ int main(int argc, char *argv[])
|
||||
std::memset(region.get_address(), 1, region.get_size());
|
||||
|
||||
//Launch child process
|
||||
std::string s(argv[0]); s += " child";
|
||||
std::string s(argv[0]); s += " child ";
|
||||
//<-
|
||||
s += test::get_process_id_name();
|
||||
//->
|
||||
if(0 != std::system(s.c_str()))
|
||||
return 1;
|
||||
//windows_shared_memory is destroyed when the last attached process dies...
|
||||
}
|
||||
else{
|
||||
//Open already created shared memory object.
|
||||
//<-
|
||||
#if 1
|
||||
windows_shared_memory shm (open_only, test::get_process_id_name(), 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);
|
||||
|
||||
@@ -1,136 +1,4 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shared_memory_mapping_test", "shared_memory_mappable_test.vcproj", "{5CE18C83-6025-36FE-A4F7-BA09176D3A11}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shared_memory_test", "shared_memory_test.vcproj", "{5E2838CC-0916-8F4E-A4F7-93506BA0D310}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shared_ptr_test", "shared_ptr_test.vcproj", "{5371C383-6092-1238-A877-BAEB37867609}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slist_test", "slist_test.vcproj", "{58CCE183-6092-48FE-A4F7-BA0D3A792608}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "string_test", "string_test.vcproj", "{58CCE183-6092-48FE-A4F7-BA0D4A792607}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tree_test", "tree_test.vcproj", "{58CCE183-6092-48FE-A4F7-BA0D3A792606}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "upgradable_mutex_test", "upgradable_mutex.vcproj", "{4E88C1C2-0961-F7A4-F48E-A6A7D3B06004}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "user_buffer_test", "user_buffer_test.vcproj", "{58CCE183-6092-48FE-A4F7-BA0D3A792603}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vectorstream_test", "vectorstream_test.vcproj", "{58CCE183-6032-12FE-A4F7-BA893A767601}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vector_test", "vector_test.vcproj", "{5CE11C83-096A-84FE-4FA2-D3A6BA792002}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "named_condition_test", "named_condition_test.vcproj", "{58CC2563-6092-48FE-FAF7-BA046A792658}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_anonymous_mutexA", "doc_anonymous_mutexA.vcproj", "{58C1B183-9026-4E63-12F2-005412200054}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_anonymous_mutexB", "doc_anonymous_mutexB.vcproj", "{58C1B183-9026-4E63-12F2-005202441254}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_named_mutex", "doc_named_mutex.vcproj", "{58C181B3-9516-463E-2F12-122155400054}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_anonymous_conditionA", "doc_anonymous_conditionA.vcproj", "{5C1B8183-0296-4F83-1F22-001005220544}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_anonymous_conditionB", "doc_anonymous_conditionB.vcproj", "{58C1FE83-2906-E643-2F12-024410052254}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_named_conditionA", "doc_named_conditionA.vcproj", "{58EB1CB3-1354-364E-12F2-154356612054}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_named_conditionB", "doc_named_conditionB.vcproj", "{58181CB3-5134-634E-12F2-155435622054}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_anonymous_semaphoreA", "doc_anonymous_semaphoreA.vcproj", "{5CB81183-29FB-F843-24FF-022050100544}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_anonymous_semaphoreB", "doc_anonymous_semaphoreB.vcproj", "{58FBE8C3-9026-FAB2-E643-000522441254}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "named_upgradable_mutex_test", "named_upgradable_mutex.vcproj", "{48C1FBE8-F7A4-0961-48FE-7D93A63B0A04}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_anonymous_upgradable_mutexA", "doc_anonymous_upgradable_mutexA.vcproj", "{5C18831B-F162-FA96-E6C3-FA5122040054}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_anonymous_upgradable_mutexB", "doc_anonymous_upgradable_mutexB.vcproj", "{5C1B1043-1EFF-2793-4E63-245241283054}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_message_queueA", "doc_message_queueA.vcproj", "{51B189C3-4E63-9026-12F2-12200AF54054}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_message_queueB", "doc_message_queueB.vcproj", "{5C1B1813-12C2-0296-4E63-244549126520}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_cont", "doc_cont.vcproj", "{58CCE183-6092-48FE-A4F7-BA0D3A792653}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unique_ptr_test", "unique_ptr_test.vcproj", "{571C3383-6092-A877-1238-B3786BAE7605}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_move_containers", "doc_move_containers.vcproj", "{58C1B183-0296-EA42-EF04-005120054104}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map_index_allocation_test", "map_index_allocation_test.vcproj", "{588CCD13-2962-83FE-F4B7-92230DB73629}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flat_map_index_allocation_test", "flat_map_index_allocation_test.vcproj", "{51D8E9C3-2D65-48FE-3AA7-7922C0E36329}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iset_index_allocation_test", "iset_index_allocation_test.vcproj", "{58BD1CC3-6972-F3F7-84BE-0DB736035922}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iunordered_set_index_allocation_test", "iunordered_set_index_allocation_test.vcproj", "{5BD1C7C3-3F7F-6972-84BE-B731D9236035}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_file_mapping", "doc_file_mapping.vcproj", "{58DE18C3-3261-2F3E-FD47-83760B9FA761}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "doc_map", "doc_map.vcproj", "{59CEC183-8192-8F6D-4FB7-BA260A79D352}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
@@ -451,138 +319,6 @@ Global
|
||||
GlobalSection(ProjectDependencies) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{5CE18C83-6025-36FE-A4F7-BA09176D3A11}.Debug.ActiveCfg = Debug|Win32
|
||||
{5CE18C83-6025-36FE-A4F7-BA09176D3A11}.Debug.Build.0 = Debug|Win32
|
||||
{5CE18C83-6025-36FE-A4F7-BA09176D3A11}.Release.ActiveCfg = Release|Win32
|
||||
{5CE18C83-6025-36FE-A4F7-BA09176D3A11}.Release.Build.0 = Release|Win32
|
||||
{5E2838CC-0916-8F4E-A4F7-93506BA0D310}.Debug.ActiveCfg = Debug|Win32
|
||||
{5E2838CC-0916-8F4E-A4F7-93506BA0D310}.Debug.Build.0 = Debug|Win32
|
||||
{5E2838CC-0916-8F4E-A4F7-93506BA0D310}.Release.ActiveCfg = Release|Win32
|
||||
{5E2838CC-0916-8F4E-A4F7-93506BA0D310}.Release.Build.0 = Release|Win32
|
||||
{5371C383-6092-1238-A877-BAEB37867609}.Debug.ActiveCfg = Debug|Win32
|
||||
{5371C383-6092-1238-A877-BAEB37867609}.Debug.Build.0 = Debug|Win32
|
||||
{5371C383-6092-1238-A877-BAEB37867609}.Release.ActiveCfg = Release|Win32
|
||||
{5371C383-6092-1238-A877-BAEB37867609}.Release.Build.0 = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792608}.Debug.ActiveCfg = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792608}.Debug.Build.0 = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792608}.Release.ActiveCfg = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792608}.Release.Build.0 = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D4A792607}.Debug.ActiveCfg = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D4A792607}.Debug.Build.0 = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D4A792607}.Release.ActiveCfg = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D4A792607}.Release.Build.0 = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792606}.Debug.ActiveCfg = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792606}.Debug.Build.0 = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792606}.Release.ActiveCfg = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792606}.Release.Build.0 = Release|Win32
|
||||
{4E88C1C2-0961-F7A4-F48E-A6A7D3B06004}.Debug.ActiveCfg = Debug|Win32
|
||||
{4E88C1C2-0961-F7A4-F48E-A6A7D3B06004}.Debug.Build.0 = Debug|Win32
|
||||
{4E88C1C2-0961-F7A4-F48E-A6A7D3B06004}.Release.ActiveCfg = Release|Win32
|
||||
{4E88C1C2-0961-F7A4-F48E-A6A7D3B06004}.Release.Build.0 = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792603}.Debug.ActiveCfg = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792603}.Debug.Build.0 = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792603}.Release.ActiveCfg = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792603}.Release.Build.0 = Release|Win32
|
||||
{58CCE183-6032-12FE-A4F7-BA893A767601}.Debug.ActiveCfg = Debug|Win32
|
||||
{58CCE183-6032-12FE-A4F7-BA893A767601}.Debug.Build.0 = Debug|Win32
|
||||
{58CCE183-6032-12FE-A4F7-BA893A767601}.Release.ActiveCfg = Release|Win32
|
||||
{58CCE183-6032-12FE-A4F7-BA893A767601}.Release.Build.0 = Release|Win32
|
||||
{5CE11C83-096A-84FE-4FA2-D3A6BA792002}.Debug.ActiveCfg = Debug|Win32
|
||||
{5CE11C83-096A-84FE-4FA2-D3A6BA792002}.Debug.Build.0 = Debug|Win32
|
||||
{5CE11C83-096A-84FE-4FA2-D3A6BA792002}.Release.ActiveCfg = Release|Win32
|
||||
{5CE11C83-096A-84FE-4FA2-D3A6BA792002}.Release.Build.0 = Release|Win32
|
||||
{58CC2563-6092-48FE-FAF7-BA046A792658}.Debug.ActiveCfg = Debug|Win32
|
||||
{58CC2563-6092-48FE-FAF7-BA046A792658}.Debug.Build.0 = Debug|Win32
|
||||
{58CC2563-6092-48FE-FAF7-BA046A792658}.Release.ActiveCfg = Release|Win32
|
||||
{58CC2563-6092-48FE-FAF7-BA046A792658}.Release.Build.0 = Release|Win32
|
||||
{58C1B183-9026-4E63-12F2-005412200054}.Debug.ActiveCfg = Debug|Win32
|
||||
{58C1B183-9026-4E63-12F2-005412200054}.Debug.Build.0 = Debug|Win32
|
||||
{58C1B183-9026-4E63-12F2-005412200054}.Release.ActiveCfg = Release|Win32
|
||||
{58C1B183-9026-4E63-12F2-005412200054}.Release.Build.0 = Release|Win32
|
||||
{58C1B183-9026-4E63-12F2-005202441254}.Debug.ActiveCfg = Debug|Win32
|
||||
{58C1B183-9026-4E63-12F2-005202441254}.Debug.Build.0 = Debug|Win32
|
||||
{58C1B183-9026-4E63-12F2-005202441254}.Release.ActiveCfg = Release|Win32
|
||||
{58C1B183-9026-4E63-12F2-005202441254}.Release.Build.0 = Release|Win32
|
||||
{58C181B3-9516-463E-2F12-122155400054}.Debug.ActiveCfg = Debug|Win32
|
||||
{58C181B3-9516-463E-2F12-122155400054}.Debug.Build.0 = Debug|Win32
|
||||
{58C181B3-9516-463E-2F12-122155400054}.Release.ActiveCfg = Release|Win32
|
||||
{58C181B3-9516-463E-2F12-122155400054}.Release.Build.0 = Release|Win32
|
||||
{5C1B8183-0296-4F83-1F22-001005220544}.Debug.ActiveCfg = Debug|Win32
|
||||
{5C1B8183-0296-4F83-1F22-001005220544}.Debug.Build.0 = Debug|Win32
|
||||
{5C1B8183-0296-4F83-1F22-001005220544}.Release.ActiveCfg = Release|Win32
|
||||
{5C1B8183-0296-4F83-1F22-001005220544}.Release.Build.0 = Release|Win32
|
||||
{58C1FE83-2906-E643-2F12-024410052254}.Debug.ActiveCfg = Debug|Win32
|
||||
{58C1FE83-2906-E643-2F12-024410052254}.Debug.Build.0 = Debug|Win32
|
||||
{58C1FE83-2906-E643-2F12-024410052254}.Release.ActiveCfg = Release|Win32
|
||||
{58C1FE83-2906-E643-2F12-024410052254}.Release.Build.0 = Release|Win32
|
||||
{58EB1CB3-1354-364E-12F2-154356612054}.Debug.ActiveCfg = Debug|Win32
|
||||
{58EB1CB3-1354-364E-12F2-154356612054}.Debug.Build.0 = Debug|Win32
|
||||
{58EB1CB3-1354-364E-12F2-154356612054}.Release.ActiveCfg = Release|Win32
|
||||
{58EB1CB3-1354-364E-12F2-154356612054}.Release.Build.0 = Release|Win32
|
||||
{58181CB3-5134-634E-12F2-155435622054}.Debug.ActiveCfg = Debug|Win32
|
||||
{58181CB3-5134-634E-12F2-155435622054}.Debug.Build.0 = Debug|Win32
|
||||
{58181CB3-5134-634E-12F2-155435622054}.Release.ActiveCfg = Release|Win32
|
||||
{58181CB3-5134-634E-12F2-155435622054}.Release.Build.0 = Release|Win32
|
||||
{5CB81183-29FB-F843-24FF-022050100544}.Debug.ActiveCfg = Debug|Win32
|
||||
{5CB81183-29FB-F843-24FF-022050100544}.Debug.Build.0 = Debug|Win32
|
||||
{5CB81183-29FB-F843-24FF-022050100544}.Release.ActiveCfg = Release|Win32
|
||||
{5CB81183-29FB-F843-24FF-022050100544}.Release.Build.0 = Release|Win32
|
||||
{58FBE8C3-9026-FAB2-E643-000522441254}.Debug.ActiveCfg = Debug|Win32
|
||||
{58FBE8C3-9026-FAB2-E643-000522441254}.Debug.Build.0 = Debug|Win32
|
||||
{58FBE8C3-9026-FAB2-E643-000522441254}.Release.ActiveCfg = Release|Win32
|
||||
{58FBE8C3-9026-FAB2-E643-000522441254}.Release.Build.0 = Release|Win32
|
||||
{48C1FBE8-F7A4-0961-48FE-7D93A63B0A04}.Debug.ActiveCfg = Debug|Win32
|
||||
{48C1FBE8-F7A4-0961-48FE-7D93A63B0A04}.Debug.Build.0 = Debug|Win32
|
||||
{48C1FBE8-F7A4-0961-48FE-7D93A63B0A04}.Release.ActiveCfg = Release|Win32
|
||||
{48C1FBE8-F7A4-0961-48FE-7D93A63B0A04}.Release.Build.0 = Release|Win32
|
||||
{5C18831B-F162-FA96-E6C3-FA5122040054}.Debug.ActiveCfg = Debug|Win32
|
||||
{5C18831B-F162-FA96-E6C3-FA5122040054}.Debug.Build.0 = Debug|Win32
|
||||
{5C18831B-F162-FA96-E6C3-FA5122040054}.Release.ActiveCfg = Release|Win32
|
||||
{5C18831B-F162-FA96-E6C3-FA5122040054}.Release.Build.0 = Release|Win32
|
||||
{5C1B1043-1EFF-2793-4E63-245241283054}.Debug.ActiveCfg = Debug|Win32
|
||||
{5C1B1043-1EFF-2793-4E63-245241283054}.Debug.Build.0 = Debug|Win32
|
||||
{5C1B1043-1EFF-2793-4E63-245241283054}.Release.ActiveCfg = Release|Win32
|
||||
{5C1B1043-1EFF-2793-4E63-245241283054}.Release.Build.0 = Release|Win32
|
||||
{51B189C3-4E63-9026-12F2-12200AF54054}.Debug.ActiveCfg = Debug|Win32
|
||||
{51B189C3-4E63-9026-12F2-12200AF54054}.Debug.Build.0 = Debug|Win32
|
||||
{51B189C3-4E63-9026-12F2-12200AF54054}.Release.ActiveCfg = Release|Win32
|
||||
{51B189C3-4E63-9026-12F2-12200AF54054}.Release.Build.0 = Release|Win32
|
||||
{5C1B1813-12C2-0296-4E63-244549126520}.Debug.ActiveCfg = Debug|Win32
|
||||
{5C1B1813-12C2-0296-4E63-244549126520}.Debug.Build.0 = Debug|Win32
|
||||
{5C1B1813-12C2-0296-4E63-244549126520}.Release.ActiveCfg = Release|Win32
|
||||
{5C1B1813-12C2-0296-4E63-244549126520}.Release.Build.0 = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792653}.Debug.ActiveCfg = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792653}.Debug.Build.0 = Debug|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792653}.Release.ActiveCfg = Release|Win32
|
||||
{58CCE183-6092-48FE-A4F7-BA0D3A792653}.Release.Build.0 = Release|Win32
|
||||
{571C3383-6092-A877-1238-B3786BAE7605}.Debug.ActiveCfg = Debug|Win32
|
||||
{571C3383-6092-A877-1238-B3786BAE7605}.Debug.Build.0 = Debug|Win32
|
||||
{571C3383-6092-A877-1238-B3786BAE7605}.Release.ActiveCfg = Release|Win32
|
||||
{571C3383-6092-A877-1238-B3786BAE7605}.Release.Build.0 = Release|Win32
|
||||
{58C1B183-0296-EA42-EF04-005120054104}.Debug.ActiveCfg = Debug|Win32
|
||||
{58C1B183-0296-EA42-EF04-005120054104}.Debug.Build.0 = Debug|Win32
|
||||
{58C1B183-0296-EA42-EF04-005120054104}.Release.ActiveCfg = Release|Win32
|
||||
{58C1B183-0296-EA42-EF04-005120054104}.Release.Build.0 = Release|Win32
|
||||
{588CCD13-2962-83FE-F4B7-92230DB73629}.Debug.ActiveCfg = Debug|Win32
|
||||
{588CCD13-2962-83FE-F4B7-92230DB73629}.Debug.Build.0 = Debug|Win32
|
||||
{588CCD13-2962-83FE-F4B7-92230DB73629}.Release.ActiveCfg = Release|Win32
|
||||
{588CCD13-2962-83FE-F4B7-92230DB73629}.Release.Build.0 = Release|Win32
|
||||
{51D8E9C3-2D65-48FE-3AA7-7922C0E36329}.Debug.ActiveCfg = Debug|Win32
|
||||
{51D8E9C3-2D65-48FE-3AA7-7922C0E36329}.Debug.Build.0 = Debug|Win32
|
||||
{51D8E9C3-2D65-48FE-3AA7-7922C0E36329}.Release.ActiveCfg = Release|Win32
|
||||
{51D8E9C3-2D65-48FE-3AA7-7922C0E36329}.Release.Build.0 = Release|Win32
|
||||
{58BD1CC3-6972-F3F7-84BE-0DB736035922}.Debug.ActiveCfg = Debug|Win32
|
||||
{58BD1CC3-6972-F3F7-84BE-0DB736035922}.Debug.Build.0 = Debug|Win32
|
||||
{58BD1CC3-6972-F3F7-84BE-0DB736035922}.Release.ActiveCfg = Release|Win32
|
||||
{58BD1CC3-6972-F3F7-84BE-0DB736035922}.Release.Build.0 = Release|Win32
|
||||
{5BD1C7C3-3F7F-6972-84BE-B731D9236035}.Debug.ActiveCfg = Debug|Win32
|
||||
{5BD1C7C3-3F7F-6972-84BE-B731D9236035}.Debug.Build.0 = Debug|Win32
|
||||
{5BD1C7C3-3F7F-6972-84BE-B731D9236035}.Release.ActiveCfg = Release|Win32
|
||||
{5BD1C7C3-3F7F-6972-84BE-B731D9236035}.Release.Build.0 = Release|Win32
|
||||
{58DE18C3-3261-2F3E-FD47-83760B9FA761}.Debug.ActiveCfg = Debug|Win32
|
||||
{58DE18C3-3261-2F3E-FD47-83760B9FA761}.Debug.Build.0 = Debug|Win32
|
||||
{58DE18C3-3261-2F3E-FD47-83760B9FA761}.Release.ActiveCfg = Release|Win32
|
||||
{58DE18C3-3261-2F3E-FD47-83760B9FA761}.Release.Build.0 = Release|Win32
|
||||
{59CEC183-8192-8F6D-4FB7-BA260A79D352}.Debug.ActiveCfg = Debug|Win32
|
||||
{59CEC183-8192-8F6D-4FB7-BA260A79D352}.Debug.Build.0 = Debug|Win32
|
||||
{59CEC183-8192-8F6D-4FB7-BA260A79D352}.Release.ActiveCfg = Release|Win32
|
||||
|
||||
Reference in New Issue
Block a user