src/core/model/make-event.cc
author Peter D. Barnes, Jr. <barnes26@llnl.gov>
Mon, 15 Jul 2013 14:19:57 -0700
changeset 9949 254133001f4f
parent 9134 7a750f032acd
child 10968 2d29fee2b7b8
permissions -rw-r--r--
Fix strict aliasing warning.

#include "make-event.h"
#include "log.h"

NS_LOG_COMPONENT_DEFINE ("MakeEvent");

namespace ns3 {

EventImpl * MakeEvent (void (*f)(void))
{
  NS_LOG_FUNCTION (f);
  // zero arg version
  class EventFunctionImpl0 : public EventImpl
  {
public:
    typedef void (*F)(void);

    EventFunctionImpl0 (F function)
      : m_function (function)
    {
    }
    virtual ~EventFunctionImpl0 ()
    {
    }
protected:
    virtual void Notify (void)
    {
      (*m_function)();
    }
private:
    F m_function;
  } *ev = new EventFunctionImpl0 (f);
  return ev;
}

} // namespace ns3