Re: [Boost-users] Help with custom classes PLEASE!!
AMDG Daniel Veneros wrote:
Thanks,
I fixed some things and its running now. What I don't know how to do is to declarate/allocate a custom class.. I got this:
typedef managed_shared_memory::segment_manager SegmentManager;
typedef allocator
CharAllocator; typedef basic_string
BasicString; typedef allocator
IntAllocator; class Action { int id; BasicString task; public: Action(int num, const char *name, const VoidAllocator &void_alloc) :id(num), task(name,void_alloc) {} void setId(int num); void setTask(BasicString newTask); };
void Action::setId(int num) { id = num; }
void Action::setTask(BasicString newTask) { task = newTask; }
Now... how should I allocate the "Class" object?? Any Idea? Thanks!!
I assume that by Class you mean the Action class?
If this class is used at the top level, you can use
managed_shared_memory::construct. If you want
to use an allocator with it, the commands are
allocator
Hi, thanks for all the help, everything is working perfect now.
I have another question, I need to access the shared memory segment from
several process and all at the same time. I tried to use pthreads but that
didn't work.
I was looking at boost::interprocess threads but I'm not sure how to
implement the mutex.
this is the code I have:
#include
AMDG
Daniel Veneros wrote:
Thanks,
I fixed some things and its running now. What I don't know how to do is to declarate/allocate a custom class.. I got this:
typedef managed_shared_memory::segment_manager SegmentManager;
typedef allocator
CharAllocator; typedef basic_string
BasicString; typedef allocator
IntAllocator; class Action { int id; BasicString task; public: Action(int num, const char *name, const VoidAllocator &void_alloc) :id(num), task(name,void_alloc) {} void setId(int num); void setTask(BasicString newTask); };
void Action::setId(int num) { id = num; }
void Action::setTask(BasicString newTask) { task = newTask; }
Now... how should I allocate the "Class" object?? Any Idea? Thanks!!
I assume that by Class you mean the Action class? If this class is used at the top level, you can use managed_shared_memory::construct. If you want to use an allocator with it, the commands are
allocator
alloc(...); // allocate memory Action* action = alloc.allocate(1); // construct an object using placement new new (action) Action(12, "action", ...); In Christ, Steven Watanabe
P.S. Please send messages like this to boost-users rather than directly to me.
participants (2)
-
Daniel Veneros
-
Steven Watanabe