|
Boost Users : |
From: Jan Suchý (zuchy_at_[hidden])
Date: 2008-05-30 10:32:23
Hallo,
I have problem when using interprocess package from boost lib.
I would like to have map object in memory.
I created example files for creating and reading this object from shared memory.
http://www.boost.org/doc/libs/1_35_0/doc/html/interprocess/quick_guide.html#interprocess.quick_guide.qg_interprocess_map
It is working ok.
Now, I want to have library, where i want to find previously created shared segment and read it more-times.
But I do not want to open it on every runQ function call.
I need to open this segment only once and use it more-times when runQ in lib is called.
I tried this:
#include ....
managed_shared_memory segment;
int init()
{
managed_shared_memory localsegment(open_only, "MySharedMemory");
segment = localsegment;
}
int runQ()
{
mymap = segment.find<MyMap>("MyMap").first;
work with mymap....
}
But the declaration of "managed_shared_memory segment" raise error when compiling:
/usr/local/include/boost-1_35/boost/interprocess/managed_shared_memory.hpp:61: error: âboost::interprocess::basic_managed_shared_memory<CharType, MemoryAlgorithm, IndexType>::basic_managed_shared_memory() [with CharType = char, AllocationAlgorithm = boost::interprocess::rbtree_best_fit<boost::interprocess::mutex_family, boost::interprocess::offset_ptr<void>, 0u>, IndexType = boost::interprocess::iset_index]â is private
xqtrans.cpp:261: error: within this context
How can use and assign segment globaly in my lib??
Thank you very much for any idea :-)
Jan Suchy
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net