Server code -- list
template<class T>
class list_srv : _crob(hush,container) {
public:
list_srv(list<T>* it = 0) : _bdy(it) {
this->_duplicate();
}
hush::iterator* walk( ENV ) {
iter<void>* it = ((list<void>*) _body())->walk();
iter_srv* x = new iter_srv(it);
x->_duplicate();
return x;
}
long length( ENV ) {
return (long) _body()->length();
}
CORBA::Object* first( ENV ) {
T* x = _body()->first();
//dummy->_duplicate(x); // Orbix 2.0
x->_duplicate();
return x;
}
CORBA::Object* current( ENV ) {
T* x = _body()->current();
x->_duplicate();
return x;
}
CORBA::Object* next( ENV ) {
T* x = _body()->next();
x->_duplicate();
return x;
}
protected:
T* dummy; // for duplication in 2.0
list<T>* _bdy;
list<T>* _body() const { return (list<T>*) _bdy; }
};
slide: Server code -- list