#ifndef _EVENTLOGEXAMPLE_H
#define _EVENTLOGEXAMPLE_H

#include <DsLogAdminC.h>
#include <DsEventLogAdminC.h>
#include <CosEventCommC.h>
#include <CosEventCommS.h>
#include <CosEventChannelAdminC.h>

#include <tao/corba.h>

#include <Common/ObjectAdapter.h>

#include "macro.h"

class EventLogExample
  : public POA_CosEventComm::PushSupplier
{
public:

  EventLogExample (CORBA::ORB_ptr orb, ObjectAdapter &adapter);

  int init (void);

  DsEventLogAdmin::EventLog_ptr create (void);

  void connect (DsEventLogAdmin::EventLog_ptr channel);

  void generate (void);

  void disconnect (void);

  virtual void disconnect_push_supplier (void);

private:

  CORBA::ORB_var orbVar_;

  ObjectAdapter &adapter_;

  DsEventLogAdmin::EventLogFactory_var eventLogFactoryVar_;

  CosEventChannelAdmin::ProxyPushConsumer_var proxyVar_;
};

#endif
