Discussion:
[omniORB] deactivate an object
Ronald Andrae
2008-01-15 17:23:32 UTC
Permalink
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20080115/0cba69ce/attachment.htm
Wernke zur Borg
2008-01-17 19:32:15 UTC
Permalink
I have a problem with a corba factory object. With the
function createStudent() I want to built an Object of the
class Student, this works. But after the work the student
object should be destroyed. Now I get an error that the
Object is still activated. My question is, how I can
deactivate this object in the factory class with the function
destroy().
Student_ptr createStudent(const char* name) {
string temp;
newStudent = new Student_impl(temp.assign(name));
a = newStudent->_this();
return a;//Student::_duplicate(a);
}
void destroyStudent() {
delete newStudent;
}
Thanks.
You must not delete the object while it is still in use by the ORB/POA.

One correct way is to:

1. Ask the object's POA to deactivate the object with
deactivate_object().
2. Remove your implicit reference to the object with remove_ref().

You can do 2. at any time after activation. If you do not need an own
reference, you should do that immediately after activation, then
deactivate_object() will cause the object to be deleted when all
references are removed.

Cheers, Wernke

Continue reading on narkive:
Loading...