#include "mem/tport.hh"
 
+using namespace std;
+
+SimpleTimingPort::SimpleTimingPort(string pname, MemObject *_owner)
+    : Port(pname, _owner), sendEvent(0), drainEvent(NULL),
+      waitingOnRetry(false)
+{
+    sendEvent =  new EventWrapper<SimpleTimingPort,
+        &SimpleTimingPort::processSendEvent>(this);
+}
+
+SimpleTimingPort::~SimpleTimingPort()
+{
+    delete sendEvent;
+}
+
 bool
 SimpleTimingPort::checkFunctional(PacketPtr pkt)
 {
 
      * When the event time expires it attempts to send the packet.
      * If it cannot, the packet sent when recvRetry() is called.
      **/
-    typedef EventWrapper<SimpleTimingPort, &SimpleTimingPort::processSendEvent>
-            SendEvent;
-
     Event *sendEvent;
 
     /** If we need to drain, keep the drain event around until we're done
 
 
   public:
-
-    SimpleTimingPort(std::string pname, MemObject *_owner)
-        : Port(pname, _owner),
-          sendEvent(new SendEvent(this)),
-          drainEvent(NULL),
-          waitingOnRetry(false)
-    {}
-
-    ~SimpleTimingPort() { delete sendEvent; }
+    SimpleTimingPort(std::string pname, MemObject *_owner);
+    ~SimpleTimingPort();
 
     /** Hook for draining timing accesses from the system.  The
      * associated SimObject's drain() functions should be implemented