From: John L. <jr...@us...> - 2006-12-01 23:40:31
|
Update of /cvsroot/wxlua/wxLua/modules/wxluasocket/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv26750/wxLua/modules/wxluasocket/src Modified Files: wxldserv.cpp wxlsock.cpp Log Message: socket cleanup\ Index: wxldserv.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxluasocket/src/wxldserv.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** wxldserv.cpp 5 Oct 2006 05:10:47 -0000 1.30 --- wxldserv.cpp 1 Dec 2006 23:40:27 -0000 1.31 *************** *** 472,476 **** ! bool wxLuaDebuggerBase::CheckSocketConnected(bool send_event) { if (GetSocketBase() == NULL) --- 472,476 ---- ! bool wxLuaDebuggerBase::CheckSocketConnected(bool send_event, const wxString& msg) { if (GetSocketBase() == NULL) *************** *** 479,483 **** { wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_DEBUGGEE_DISCONNECTED, this); ! debugEvent.SetMessage(wxT("Debugger socket not created.")); SendEvent(debugEvent); } --- 479,483 ---- { wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_DEBUGGEE_DISCONNECTED, this); ! debugEvent.SetMessage(wxT("Debugger socket not created. ") + msg); SendEvent(debugEvent); } *************** *** 491,495 **** { wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_DEBUGGEE_DISCONNECTED, this); ! debugEvent.SetMessage(wxT("Debugger socket not connected.")); SendEvent(debugEvent); } --- 491,495 ---- { wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_DEBUGGEE_DISCONNECTED, this); ! debugEvent.SetMessage(wxT("Debugger socket not connected. ") + msg); SendEvent(debugEvent); } *************** *** 500,509 **** return true; } ! bool wxLuaDebuggerBase::CheckSocketRead(bool read_ok) { if (!read_ok) { wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_DEBUGGEE_DISCONNECTED, this); ! debugEvent.SetMessage(wxT("Failed reading from the debugger socket.")); SendEvent(debugEvent); } --- 500,509 ---- return true; } ! bool wxLuaDebuggerBase::CheckSocketRead(bool read_ok, const wxString& msg) { if (!read_ok) { wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_DEBUGGEE_DISCONNECTED, this); ! debugEvent.SetMessage(wxT("Failed reading from the debugger socket. ") + msg); SendEvent(debugEvent); } *************** *** 511,520 **** return read_ok; } ! bool wxLuaDebuggerBase::CheckSocketWrite(bool write_ok) { if (!write_ok) { wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_DEBUGGEE_DISCONNECTED, this); ! debugEvent.SetMessage(wxT("Failed writing to the debugger socket.")); SendEvent(debugEvent); } --- 511,520 ---- return read_ok; } ! bool wxLuaDebuggerBase::CheckSocketWrite(bool write_ok, const wxString& msg) { if (!write_ok) { wxLuaDebuggerEvent debugEvent(wxEVT_WXLUA_DEBUGGER_DEBUGGEE_DISCONNECTED, this); ! debugEvent.SetMessage(wxT("Failed writing to the debugger socket. ") + msg); SendEvent(debugEvent); } Index: wxlsock.cpp =================================================================== RCS file: /cvsroot/wxlua/wxLua/modules/wxluasocket/src/wxlsock.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** wxlsock.cpp 11 Oct 2006 03:24:03 -0000 1.20 --- wxlsock.cpp 1 Dec 2006 23:40:27 -0000 1.21 *************** *** 159,212 **** bool ok = false; ! try ! { ! wxInt32 idx, idxMax = 0; ! ok = ReadInt32(idxMax); ! wxLuaSocketDebugMsg(m_name + wxT(" wxLuaSocketBase::ReadDebugData"), wxString::Format(wxT("items %d"), idxMax)); ! for (idx = 0; ok && (idx < idxMax); ++idx) ! { ! wxInt32 bufferLength = 0; ! ok = Read((char*)&bufferLength, sizeof(wxInt32)) == sizeof(wxInt32); ! if (ok && (bufferLength > 0)) ! { ! char *pBuffer = new char[bufferLength]; ! char *pMemory = pBuffer; ! ok = Read(pMemory, bufferLength) == bufferLength; ! if (!ok) break; ! wxInt32 nReference = *(wxInt32 *) pMemory; ! pMemory += sizeof(wxInt32); ! wxInt32 nIndex = *(wxInt32 *) pMemory; ! pMemory += sizeof(wxInt32); ! bool fExpanded = (0 != (*(wxInt32 *) pMemory)); ! pMemory += sizeof(wxInt32); ! const char *pNamePtr = pMemory; ! pMemory += strlen(pNamePtr) + 1; ! const char *pTypePtr = pMemory; ! pMemory += strlen(pTypePtr) + 1; ! const char *pValuePtr = pMemory; ! wxLuaDebugDataItem *pItem = new wxLuaDebugDataItem(lua2wx(pNamePtr), ! lua2wx(pTypePtr), ! lua2wx(pValuePtr), ! wxEmptyString, // FIXME! source? ! nReference, ! nIndex, ! fExpanded); ! debugData.Add(pItem); ! delete[] pBuffer; ! } } } - catch(wxLuaSocketException &) - { - } if (ok) value = debugData; --- 159,208 ---- bool ok = false; ! wxInt32 idx, idxMax = 0; ! ok = ReadInt32(idxMax); ! wxLuaSocketDebugMsg(m_name + wxT(" wxLuaSocketBase::ReadDebugData"), wxString::Format(wxT("items %d"), idxMax)); ! for (idx = 0; ok && (idx < idxMax); ++idx) ! { ! wxInt32 bufferLength = 0; ! ok = Read((char*)&bufferLength, sizeof(wxInt32)) == sizeof(wxInt32); ! if (ok && (bufferLength > 0)) ! { ! char *pBuffer = new char[bufferLength]; ! char *pMemory = pBuffer; ! ok = Read(pMemory, bufferLength) == bufferLength; ! if (!ok) break; ! wxInt32 nReference = *(wxInt32 *) pMemory; ! pMemory += sizeof(wxInt32); ! wxInt32 nIndex = *(wxInt32 *) pMemory; ! pMemory += sizeof(wxInt32); ! bool fExpanded = (0 != (*(wxInt32 *) pMemory)); ! pMemory += sizeof(wxInt32); ! const char *pNamePtr = pMemory; ! pMemory += strlen(pNamePtr) + 1; ! const char *pTypePtr = pMemory; ! pMemory += strlen(pTypePtr) + 1; ! const char *pValuePtr = pMemory; ! pMemory += strlen(pValuePtr) + 1; ! const char *pSourcePtr = pMemory; ! wxLuaDebugDataItem *pItem = new wxLuaDebugDataItem(lua2wx(pNamePtr), ! lua2wx(pTypePtr), ! lua2wx(pValuePtr), ! lua2wx(pSourcePtr), ! nReference, ! nIndex, ! fExpanded); ! debugData.Add(pItem); ! delete[] pBuffer; } } if (ok) value = debugData; *************** *** 247,309 **** bool wxLuaSocketBase::WriteDebugData(const wxLuaDebugData& debugData) { ! bool result = false; wxInt32 idx, idxMax = debugData.GetCount(); wxLuaSocketDebugMsg(m_name + wxT(" wxLuaSocketBase::WriteDebugData"), wxString::Format(wxT("items %d"), idxMax)); ! WriteInt32(idxMax); ! for (idx = 0; idx < idxMax; ++idx) { ! try ! { ! const wxLuaDebugDataItem *item = debugData.Item(idx); ! wxLuaCharBuffer nameBuffer(item->GetName()); ! wxLuaCharBuffer typeBuffer(item->GetType()); ! wxLuaCharBuffer valueBuffer(item->GetValue()); ! int nameLength = nameBuffer.Length() + 1; ! int typeLength = typeBuffer.Length() + 1; ! int valueLength = valueBuffer.Length() + 1; ! wxInt32 bufferLength = (3 * sizeof(wxInt32)) + ! nameLength + typeLength + valueLength; ! unsigned char *pBuffer = new unsigned char[bufferLength]; ! unsigned char *pMemory = pBuffer; ! Write((const char*)&bufferLength, sizeof(wxInt32)); ! *(wxInt32 *) pMemory = item->GetReference(); ! pMemory += sizeof(wxInt32); ! *(wxInt32 *) pMemory = item->GetIndex(); ! pMemory += sizeof(wxInt32); ! *(wxInt32 *) pMemory = item->IsExpanded() ? 1 : 0; ! pMemory += sizeof(wxInt32); ! memcpy(pMemory, nameBuffer.GetData(), nameLength); ! pMemory += nameLength; ! memcpy(pMemory, typeBuffer.GetData(), typeLength); ! pMemory += typeLength; ! memcpy(pMemory, valueBuffer.GetData(), valueLength); ! Write((const char *) pBuffer, bufferLength); ! delete[] pBuffer; ! result = true; ! } ! catch(wxLuaSocketException &) ! { ! } ! if (result == false) ! break; } ! return result; } --- 243,308 ---- bool wxLuaSocketBase::WriteDebugData(const wxLuaDebugData& debugData) { ! // Debug data is written as ! // [wxInt32 debug data item count] then for each item ! // [wxInt32 item data length] ! // [{wxInt32 GetReference}{wxInt32 GetIndex}{wxInt32 IsExpanded} ! // {char GetName \0}{char GetType \0}{char GetValue \0}{char GetSource \0}] ! ! bool ok = false; wxInt32 idx, idxMax = debugData.GetCount(); wxLuaSocketDebugMsg(m_name + wxT(" wxLuaSocketBase::WriteDebugData"), wxString::Format(wxT("items %d"), idxMax)); ! ok = WriteInt32(idxMax); ! for (idx = 0; ok && (idx < idxMax); ++idx) { ! const wxLuaDebugDataItem *item = debugData.Item(idx); ! wxLuaCharBuffer nameBuffer(item->GetName()); ! wxLuaCharBuffer typeBuffer(item->GetType()); ! wxLuaCharBuffer valueBuffer(item->GetValue()); ! wxLuaCharBuffer sourceBuffer(item->GetSource()); ! int nameLength = nameBuffer.Length() + 1; // add 1 for terminating \0 ! int typeLength = typeBuffer.Length() + 1; ! int valueLength = valueBuffer.Length() + 1; ! int sourceLength = sourceBuffer.Length() + 1; ! wxInt32 bufferLength = (3 * sizeof(wxInt32)) + ! nameLength + typeLength + valueLength + sourceLength; ! unsigned char *pBuffer = new unsigned char[bufferLength]; ! unsigned char *pMemory = pBuffer; ! ok = Write((const char*)&bufferLength, sizeof(wxInt32)); ! if (!ok) break; ! *(wxInt32 *) pMemory = (wxInt32)item->GetReference(); ! pMemory += sizeof(wxInt32); ! *(wxInt32 *) pMemory = (wxInt32)item->GetIndex(); ! pMemory += sizeof(wxInt32); ! *(wxInt32 *) pMemory = (wxInt32)(item->IsExpanded() ? 1 : 0); ! pMemory += sizeof(wxInt32); ! memcpy(pMemory, nameBuffer.GetData(), nameLength); ! pMemory += nameLength; ! memcpy(pMemory, typeBuffer.GetData(), typeLength); ! pMemory += typeLength; ! memcpy(pMemory, valueBuffer.GetData(), valueLength); ! pMemory += valueLength; ! memcpy(pMemory, sourceBuffer.GetData(), sourceLength); ! ok = Write((const char *) pBuffer, bufferLength); ! delete[] pBuffer; } ! ! return ok; } |