diff --git a/OctavePlugin/CMakeLists.txt b/OctavePlugin/CMakeLists.txt index 68a4b588d3..7a11e18ab9 100644 --- a/OctavePlugin/CMakeLists.txt +++ b/OctavePlugin/CMakeLists.txt @@ -141,7 +141,10 @@ if (RESINSIGHT_OCTAVE_PLUGIN_QMAKE AND RESINSIGHT_OCTAVE_PLUGIN_MKOCTFILE) "${CMAKE_CURRENT_BINARY_DIR}/riGetWellNames.oct" "${CMAKE_CURRENT_BINARY_DIR}/riGetWellStatus.oct" "${CMAKE_CURRENT_BINARY_DIR}/riGetWellCells.oct" - SOURCES ${CPP_SOURCES} + SOURCES + ${CPP_SOURCES} + riSocketTools.h + riSettings.h ) diff --git a/OctavePlugin/riSettings.h b/OctavePlugin/riSettings.h index bc7220e845..5765244a6d 100644 --- a/OctavePlugin/riSettings.h +++ b/OctavePlugin/riSettings.h @@ -24,6 +24,8 @@ namespace riOctavePlugin const int shortTimeOutMilliSecs = 5000; const int longTimeOutMilliSecs = 6000000; + const int socketMaxByteCount = 100000; + // Octave data structure : CaseInfo char caseInfo_CaseId[] = "CaseId"; char caseInfo_CaseName[] = "CaseName"; diff --git a/OctavePlugin/riSocketTools.h b/OctavePlugin/riSocketTools.h index 7d01381668..63cc24d890 100644 --- a/OctavePlugin/riSocketTools.h +++ b/OctavePlugin/riSocketTools.h @@ -7,7 +7,7 @@ bool readBlockData(QTcpSocket& socket, char* data, quint64 bytesToRead, QStringL quint64 bytesRead = 0; int blockCount = 0; - quint64 maxBlockSize = 100000; + quint64 maxBlockSize = riOctavePlugin::socketMaxByteCount; while (bytesRead < bytesToRead) { @@ -18,7 +18,7 @@ bool readBlockData(QTcpSocket& socket, char* data, quint64 bytesToRead, QStringL qint64 actuallyBytesRead = socket.read(data + bytesRead, byteCountToRead); if (actuallyBytesRead < 0) { - errorMessages.push_back("Error detected when writing data, error string from socket"); + errorMessages.push_back("Error detected when reading data, error string from socket :"); errorMessages.push_back(socket.errorString()); return false; @@ -41,6 +41,40 @@ bool readBlockData(QTcpSocket& socket, char* data, quint64 bytesToRead, QStringL } } } + + octave_stdout << "Bytes read " << bytesToRead << std::endl; + + return true; +} + + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool writeBlockData(QTcpSocket& socket, const char* data, quint64 bytesToWrite, QStringList& errorMessages) +{ + quint64 bytesWritten = 0; + int blockCount = 0; + + quint64 maxBlockSize = riOctavePlugin::socketMaxByteCount; + + while (bytesWritten < bytesToWrite) + { + quint64 byteCountToWrite = qMin(bytesToWrite - bytesWritten, maxBlockSize); + + qint64 actuallyBytesWritten = socket.write(data + bytesWritten, byteCountToWrite); + if (actuallyBytesWritten < 0) + { + errorMessages.push_back("Error detected when writing data, error string from socket"); + errorMessages.push_back(socket.errorString()); + + return false; + } + + bytesWritten += actuallyBytesWritten; + + blockCount++; + } return true; }