#ifndef _SEQUENCEPUSHSUPPLIER_H
#define _SEQUENCEPUSHSUPPLIER_H

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

#include "ChannelUtil.h"

class SequencePushSupplierImpl : public POA_CosNotifyComm::SequencePushSupplier
{
public:

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

  virtual void disconnect_sequence_push_supplier (void);

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

  void pushEvents (void);

private:

  void connectToChannel (void);

  CORBA::ORB_var orbVar_;

  ChannelUtil &util_;

  CosNotifyComm::SequencePushSupplier_var supplierVar_;

  CosNotifyChannelAdmin::SequenceProxyPushConsumer_var proxyVar_;
};

#endif // _SEQUENCEPUSHSUPPLIER_H
