int JackNetSlaveInterface::Send ( size_t size, int flags ) { packet_header_t* header = reinterpret_cast<packet_header_t*>(fTxBuffer); PacketHeaderHToN(header, header); int tx_bytes = fSocket.Send ( fTxBuffer, size, flags ); //handle errors if ( tx_bytes == SOCKET_ERROR ) { net_error_t error = fSocket.GetError(); //if a network error occurs, this exception will restart the driver if ( error == NET_CONN_ERROR ) { jack_error ( "Connection lost." ); throw JackNetException(); } else jack_error ( "Fatal error in slave send : %s", StrError ( NET_ERROR_CODE ) ); } return tx_bytes; }
int JackNetSlaveInterface::Recv ( size_t size, int flags ) { int rx_bytes = fSocket.Recv ( fRxBuffer, size, flags ); //handle errors if ( rx_bytes == SOCKET_ERROR ) { net_error_t error = fSocket.GetError(); //no data isn't really an error in realtime processing, so just return 0 if ( error == NET_NO_DATA ) jack_error ( "No data, is the master still running ?" ); //if a network error occurs, this exception will restart the driver else if ( error == NET_CONN_ERROR ) { jack_error ( "Connection lost." ); throw JackNetException(); } else jack_error ( "Fatal error in slave receive : %s", StrError ( NET_ERROR_CODE ) ); } packet_header_t* header = reinterpret_cast<packet_header_t*>(fRxBuffer); PacketHeaderNToH(header, header); return rx_bytes; }
void JackNetSlaveInterface::FatalSendError() { throw JackNetException("Send connection lost error"); }
void JackNetSlaveInterface::FatalRecvError() { throw JackNetException("Recv connection lost error"); }
void JackTools::ThrowJackNetException() { throw JackNetException(); }
void JackNetSlaveInterface::FatalSendError() { jack_error("Send connection lost error = %s", StrError(NET_ERROR_CODE)); throw JackNetException(); }