-static void send_callback(Ptr<Socket> localSocket, uint32_t txSpace){
-
- Address addr;
- localSocket->GetSockName (addr);
- InetSocketAddress iaddr = InetSocketAddress::ConvertFrom (addr);
- MySocket* mysocket = (MySocket*)xbt_dict_get_or_null(dict_socket,(char*)&localSocket);
- uint32_t totalBytes = mysocket->TotalBytes;
- while ((mysocket->sentBytes) < totalBytes && localSocket->GetTxAvailable () > 0){
- uint32_t toWrite = min ((mysocket->remaining), writeSize);
- toWrite = min (toWrite, localSocket->GetTxAvailable ());
- int amountSent = localSocket->Send (&data[0], toWrite, 0);
-
- if(amountSent < 0)
- return;
- (mysocket->sentBytes) += amountSent;
- (mysocket->remaining) -= amountSent;
- //cout << "[" << Simulator::Now ().GetSeconds() << "] " << "Send one packet, remaining "<< mysocket->remaining << " bytes!" << endl;
- }
- if ((mysocket->sentBytes) >= totalBytes){
- localSocket->Close();
- }
+static void errorClose_callback(ns3::Ptr<ns3::Socket> socket)
+{
+ SgFlow* flow = getFlowFromSocket(socket);
+ XBT_DEBUG("errorClose_cb of F[%p, %p, %d]", flow, flow->action_, flow->totalBytes_);
+ xbt_die("NS3: a socket was closed anormally");
+}