Client adaptor - iter

  class iter_clt : public iter<T> {
  public:
      iter_clt(hush::iterator* it = 0, T* = 0) : _bdy(it) { }
  
      hush::iterator* operator->() { return _body(); }
  
      void operator=(hush::iterator* it) { _bdy = it; }
  
      T* operator()() {
          CORBA::Object* x = _body()->next();
          if (x)
                  return (T*) dummy._narrow(x);
          else return 0;
          }
  
  protected:
      hush::iterator* _bdy;
      hush::iterator* _body() const { return (hush::iterator*) _bdy; }
  private:
      static T dummy;
  };
  

slide: Client adaptor - iter