From: John L. <jr...@us...> - 2006-09-06 22:23:25
|
Update of /cvsroot/wxlua/wxLua/modules/wxluasocket/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv14464/wxLua/modules/wxluasocket/src Modified Files: dservice.cpp wxldserv.cpp wxlsock.cpp wxluasocket.cpp Log Message: more code refactoring, move more functions into wxLuaDebuggerBase Index: wxldserv.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxluasocket/src/wxldserv.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** wxldserv.cpp 6 Sep 2006 05:33:09 -0000 1.15 --- wxldserv.cpp 6 Sep 2006 22:23:20 -0000 1.16 *************** *** 159,325 **** IMPLEMENT_ABSTRACT_CLASS(wxLuaDebuggerBase, wxEvtHandler) ! // ---------------------------------------------------------------------------- ! // wxLuaDebugServer ! // ---------------------------------------------------------------------------- ! IMPLEMENT_ABSTRACT_CLASS(wxLuaDebugServer, wxLuaDebuggerBase) ! ! wxString wxLuaDebugServer::sm_programName; ! wxString wxLuaDebugServer::sm_networkName; ! [...1104 lines suppressed...] - { - if (m_acceptedSocket != NULL) - { - try - { - if (m_acceptedSocket->WriteByte(wxLUA_CMD_EVALUATE_EXPR) && - m_acceptedSocket->WriteInt(exprRef) && - m_acceptedSocket->WriteString(strExpression)) - { - return true; - } - } - catch(wxLuaSocketException & /*e*/) - { - } - } - return false; - } - --- 852,853 ---- Index: dservice.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxluasocket/src/dservice.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** dservice.cpp 6 Sep 2006 05:33:09 -0000 1.18 --- dservice.cpp 6 Sep 2006 22:23:20 -0000 1.19 *************** *** 748,894 **** switch(event.GetSocketEvent()) { ! case wxSOCKET_CONNECTION: { wxCriticalSectionLocker locker(m_debuggerSocketCriticalSection); m_debuggerSocket->SetSocket(sock); } ! break; ! ! case wxSOCKET_INPUT: ! { ! wxCriticalSectionLocker locker(m_debuggerSocketCriticalSection); ! ! if (!m_debuggerSocket->GetSocket()) ! return; ! ! wxASSERT_MSG(m_debuggerSocket->GetSocket() == sock,_("Debugger Socket Incorrect")); ! ! m_debuggerSocket->SetSocket(sock); ! ! // We disable input events, so that the test doesn't trigger ! // wxSocketEvent again. ! sock->SetNotify(wxSOCKET_LOST_FLAG); ! ! // Events from Debug Service ! int debuggeeEvent = m_debuggerSocket->ReadByte(); ! switch((wxLuaDebugEvents_Type) debuggeeEvent) { ! case wxLUA_EVENT_DEBUG_BREAK: ! { ! wxString fileName = m_debuggerSocket->ReadString(); ! int lineNumber = m_debuggerSocket->ReadInt(); ! ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_BREAK, lineNumber, fileName); ! ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! ! case wxLUA_EVENT_DEBUG_PRINT: ! { ! wxString strMessage = m_debuggerSocket->ReadString(); ! ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_PRINT); ! debugEvent.SetMessage(strMessage); ! ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! ! case wxLUA_EVENT_DEBUG_ERROR: ! { ! wxString strMessage = m_debuggerSocket->ReadString(); ! ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_ERROR); ! debugEvent.SetMessage(strMessage); ! ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! ! case wxLUA_EVENT_DEBUG_EXIT: ! { ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_EXIT); ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! ! case wxLUA_EVENT_DEBUG_STACK_ENUM: ! { ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_STACK_ENUM); ! wxLuaDebugData *pDebugData = m_debuggerSocket->ReadDebugData(); ! if (pDebugData != NULL) ! debugEvent.SetDebugData(-1, pDebugData); ! ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! ! case wxLUA_EVENT_DEBUG_STACK_ENTRY_ENUM: ! { ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_STACK_ENTRY_ENUM); ! int stackRef = m_debuggerSocket->ReadInt(); ! wxLuaDebugData *pDebugData = m_debuggerSocket->ReadDebugData(); ! if (pDebugData != NULL) ! debugEvent.SetDebugData(stackRef, pDebugData); ! ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! ! case wxLUA_EVENT_DEBUG_TABLE_ENUM: ! { ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_TABLE_ENUM); ! long itemNode = m_debuggerSocket->ReadLong(); ! wxLuaDebugData *pDebugData = m_debuggerSocket->ReadDebugData(); ! if (pDebugData != NULL) ! debugEvent.SetDebugData(itemNode, pDebugData); ! ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! ! case wxLUA_EVENT_DEBUG_EVALUATE_EXPR: ! { ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_EVALUATE_EXPR); ! int exprRef = m_debuggerSocket->ReadInt(); ! wxString strResult = m_debuggerSocket->ReadString(); ! debugEvent.SetMessage(strResult); ! debugEvent.SetDebugData(exprRef); ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! case wxLUA_EVENT_DEBUG_BREAKPOINT_ADDED: ! { ! wxString fileName = m_debuggerSocket->ReadString(); ! int line = m_debuggerSocket->ReadInt(); ! bool enabled = m_debuggerSocket->ReadInt() ? true : false; ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_BREAKPOINT_ADDED, line, fileName, enabled); ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } ! break; ! case wxLUA_EVENT_DEBUG_BREAKPOINT_REMOVED: ! { ! wxString fileName = m_debuggerSocket->ReadString(); ! int line = m_debuggerSocket->ReadInt(); ! wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_BREAKPOINT_REMOVED, line, fileName); ! wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); ! } break; } ! ! // Enable input events again. ! sock->SetNotify(wxSOCKET_LOST_FLAG | wxSOCKET_INPUT_FLAG); ! break; ! } ! ! case wxSOCKET_LOST: { wxCriticalSectionLocker locker(m_debuggerSocketCriticalSection); --- 748,782 ---- switch(event.GetSocketEvent()) { ! case wxSOCKET_CONNECTION: { wxCriticalSectionLocker locker(m_debuggerSocketCriticalSection); m_debuggerSocket->SetSocket(sock); + break; } ! case wxSOCKET_INPUT: { ! wxCriticalSectionLocker locker(m_debuggerSocketCriticalSection); ! if (!m_debuggerSocket->GetSocket()) ! return; ! wxASSERT_MSG(m_debuggerSocket->GetSocket() == sock,_("Debugger Socket Incorrect")); ! m_debuggerSocket->SetSocket(sock); ! // We disable input events, so that the test doesn't trigger ! // wxSocketEvent again. ! sock->SetNotify(wxSOCKET_LOST_FLAG); ! // Events from Debug Service ! int debuggeeEvent = m_debuggerSocket->ReadByte(); ! HandleDebugEvent((wxLuaDebugEvents_Type) debuggeeEvent); ! // Enable input events again. ! sock->SetNotify(wxSOCKET_LOST_FLAG | wxSOCKET_INPUT_FLAG); break; } ! case wxSOCKET_LOST: { wxCriticalSectionLocker locker(m_debuggerSocketCriticalSection); *************** *** 898,1051 **** sock->Destroy(); delete sock; } ! break; ! ! default: ! // Error ! break; } } - bool wxLuaDebugger::AddBreakPoint(const wxString &fileName, int lineNumber) - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return (m_debuggerSocket->WriteByte(wxLUA_CMD_ADD_BREAKPOINT) && - m_debuggerSocket->WriteString(fileName) && - m_debuggerSocket->WriteInt(lineNumber)); - } - - bool wxLuaDebugger::RemoveBreakPoint(const wxString &fileName, int lineNumber) - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return (m_debuggerSocket->WriteByte(wxLUA_CMD_REMOVE_BREAKPOINT) && - m_debuggerSocket->WriteString(fileName) && - m_debuggerSocket->WriteInt(lineNumber)); - } - - bool wxLuaDebugger::DisableBreakPoint(const wxString &fileName, int lineNumber) - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return (m_debuggerSocket->WriteByte(wxLUA_CMD_DISABLE_BREAKPOINT) && - m_debuggerSocket->WriteString(fileName) && - m_debuggerSocket->WriteInt(lineNumber)); - } - - bool wxLuaDebugger::EnableBreakPoint(const wxString &fileName, int lineNumber) - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return (m_debuggerSocket->WriteByte(wxLUA_CMD_ENABLE_BREAKPOINT) && - m_debuggerSocket->WriteString(fileName) && - m_debuggerSocket->WriteInt(lineNumber)); - } - - bool wxLuaDebugger::ClearAllBreakPoints() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return (m_debuggerSocket->WriteByte(wxLUA_CMD_CLEAR_ALL_BREAKPOINTS)); - } - - bool wxLuaDebugger::Step() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return m_debuggerSocket->WriteByte(wxLUA_CMD_DEBUG_STEP); - } - - bool wxLuaDebugger::StepOver() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return m_debuggerSocket->WriteByte(wxLUA_CMD_DEBUG_STEPOVER); - } - - bool wxLuaDebugger::StepOut() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return m_debuggerSocket->WriteByte(wxLUA_CMD_DEBUG_STEPOUT); - } - - bool wxLuaDebugger::Continue() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return m_debuggerSocket->WriteByte(wxLUA_CMD_DEBUG_CONTINUE); - } - - bool wxLuaDebugger::Break() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return m_debuggerSocket->WriteByte(wxLUA_CMD_DEBUG_BREAK); - } - - bool wxLuaDebugger::EnumerateStack() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return m_debuggerSocket->WriteByte(wxLUA_CMD_ENUMERATE_STACK); - } - - bool wxLuaDebugger::Reset() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return m_debuggerSocket->WriteByte(wxLUA_CMD_RESET); - } - - bool wxLuaDebugger::EnumerateStackEntry(int stackEntry) - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return (m_debuggerSocket->WriteByte(wxLUA_CMD_ENUMERATE_STACK_ENTRY) && - m_debuggerSocket->WriteInt(stackEntry)); - } - - bool wxLuaDebugger::EnumerateTable(int tableRef, int nIndex, long nItemNode) - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return (m_debuggerSocket->WriteByte(wxLUA_CMD_ENUMERATE_TABLE_REF) && - m_debuggerSocket->WriteInt(tableRef) && - m_debuggerSocket->WriteInt(nIndex) && - m_debuggerSocket->WriteLong(nItemNode)); - } - - bool wxLuaDebugger::CleanupDebugReferences() - { - if (!m_debuggerSocket->IsConnected()) - return false; - - return (m_debuggerSocket->WriteByte(wxLUA_CMD_CLEAR_DEBUG_REFERENCES)); - } - - void wxLuaDebugger::NotifyError(const wxString &msg) - { - wxLuaDebugEvent debugEvent(wxEVT_WXLUA_DEBUG_ERROR); - - debugEvent.SetMessage(msg); - - wxLuaHandler::GetHandler().AddPendingEvent(debugEvent); - } - // ---------------------------------------------------------------------------- // wxLuaDebuggee - The Lua Interpreter Being Debugged --- 786,797 ---- sock->Destroy(); delete sock; + break; } ! default: ! // Error ! break; } } // ---------------------------------------------------------------------------- // wxLuaDebuggee - The Lua Interpreter Being Debugged Index: wxluasocket.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxluasocket/src/wxluasocket.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** wxluasocket.cpp 8 Jun 2006 03:22:11 -0000 1.2 --- wxluasocket.cpp 6 Sep 2006 22:23:20 -0000 1.3 *************** *** 54,58 **** wxString buffer = lua2wx(wxlState.GetStringType(1)); // compile the file ! bool fResult = wxLuaDebugServer::Compile(buffer, fileName); // push result lua_pushboolean(L, fResult); --- 54,59 ---- wxString buffer = lua2wx(wxlState.GetStringType(1)); // compile the file ! wxLuaDebuggerBase debuggerBase; ! bool fResult = debuggerBase.Compile(buffer, fileName); // push result lua_pushboolean(L, fResult); Index: wxlsock.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxluasocket/src/wxlsock.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** wxlsock.cpp 6 Sep 2006 05:33:09 -0000 1.8 --- wxlsock.cpp 6 Sep 2006 22:23:20 -0000 1.9 *************** *** 312,317 **** sockaddr_in localAddr = { 0 }; ! localAddr.sin_family = AF_INET; ! localAddr.sin_port = htons(portNumber); localAddr.sin_addr.s_addr = htonl(INADDR_ANY); --- 312,317 ---- sockaddr_in localAddr = { 0 }; ! localAddr.sin_family = AF_INET; ! localAddr.sin_port = htons(portNumber); localAddr.sin_addr.s_addr = htonl(INADDR_ANY); *************** *** 410,427 **** } ! return length_; } // Read data from an open socket, repeat reading until all data has been read ! int wxLuaSocket::Read(char *buffer, int length) { if ((m_sockstate != SOCKET_CONNECTED) && (m_sockstate != SOCKET_ACCEPTED)) throw wxLuaSocketException(wxLuaSocketException::SOCKET_NOT_CONNECTED); while (length > 0) { int numRead = ::recv(m_sock, buffer, length, 0); if (numRead == 0) ! return length; if (numRead == SOCKET_ERROR) --- 410,429 ---- } ! return length_ - length; } // Read data from an open socket, repeat reading until all data has been read ! int wxLuaSocket::Read(char *buffer, int length_) { if ((m_sockstate != SOCKET_CONNECTED) && (m_sockstate != SOCKET_ACCEPTED)) throw wxLuaSocketException(wxLuaSocketException::SOCKET_NOT_CONNECTED); + int length = length_; + while (length > 0) { int numRead = ::recv(m_sock, buffer, length, 0); if (numRead == 0) ! return length_ - length; if (numRead == SOCKET_ERROR) *************** *** 431,435 **** buffer += numRead; } ! return 0; } --- 433,438 ---- buffer += numRead; } ! ! return length_ - length; } |