#ifndef _SEQUENCEPUSHCONSUMERIMPL_H
#define _SEQUENCEPUSHCONSUMERIMPL_H

#include <CosNotifyCommS.h>
#include <CosNotifyChannelAdminS.h>
#include <CosNotificationS.h>

#include "tao/TimeBaseC.h"

#include "ChannelUtil.h"

class SequencePushConsumerImpl : public POA_CosNotifyComm::SequencePushConsumer
{
public:

  SequencePushConsumerImpl (CORBA::ORB_ptr orb, ChannelUtil &util);

  virtual void disconnect_sequence_push_consumer (void);

  virtual void offer_change (const CosNotification::EventTypeSeq &/*added*/,
                             const CosNotification::EventTypeSeq &/*removed*/);

  virtual void push_structured_events (const CosNotification::EventBatch &events);

private:

  void connectToChannel (void);

  CORBA::ORB_var orbVar_;

  ChannelUtil &util_;

  CosNotifyComm::SequencePushConsumer_var consumerVar_;
};

#endif  // _SEQUENCEPUSHCONSUMERIMPL_H
