mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Added flag to control how to do IO with sockets
This commit is contained in:
@@ -40,6 +40,8 @@
|
||||
#include "Rim3dOverlayInfoConfig.h"
|
||||
|
||||
#include <QTcpSocket>
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaPreferences.h"
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -305,30 +307,61 @@ public:
|
||||
socketStream << timestepCount;
|
||||
|
||||
size_t valueIdx = 0;
|
||||
|
||||
std::vector<double> values(rigGrid->cellCount());
|
||||
cvf::Timer timer;
|
||||
|
||||
for (size_t tsIdx = 0; tsIdx < timestepCount; tsIdx++)
|
||||
if (RiaApplication::instance()->preferences()->useStreamTransfer())
|
||||
{
|
||||
cvf::ref<cvf::StructGridScalarDataAccess> cellCenterDataAccessObject = rimCase->reservoirData()->dataAccessObject(rigGrid, porosityModelEnum, requestedTimesteps[tsIdx], scalarResultIndex);
|
||||
if (cellCenterDataAccessObject.isNull())
|
||||
for (size_t tsIdx = 0; tsIdx < timestepCount; tsIdx++)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
for (size_t cellIdx = 0; cellIdx < rigGrid->cellCount(); cellIdx++)
|
||||
{
|
||||
double cellValue = cellCenterDataAccessObject->cellScalar(cellIdx);
|
||||
if (cellValue == HUGE_VAL)
|
||||
cvf::ref<cvf::StructGridScalarDataAccess> cellCenterDataAccessObject = rimCase->reservoirData()->dataAccessObject(rigGrid, porosityModelEnum, requestedTimesteps[tsIdx], scalarResultIndex);
|
||||
if (cellCenterDataAccessObject.isNull())
|
||||
{
|
||||
cellValue = 0.0;
|
||||
continue;
|
||||
}
|
||||
|
||||
for (size_t cellIdx = 0; cellIdx < rigGrid->cellCount(); cellIdx++)
|
||||
{
|
||||
double cellValue = cellCenterDataAccessObject->cellScalar(cellIdx);
|
||||
if (cellValue == HUGE_VAL)
|
||||
{
|
||||
cellValue = 0.0;
|
||||
}
|
||||
|
||||
socketStream << cellValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
std::vector<double> values(rigGrid->cellCount());
|
||||
for (size_t tsIdx = 0; tsIdx < timestepCount; tsIdx++)
|
||||
{
|
||||
cvf::ref<cvf::StructGridScalarDataAccess> cellCenterDataAccessObject = rimCase->reservoirData()->dataAccessObject(rigGrid, porosityModelEnum, requestedTimesteps[tsIdx], scalarResultIndex);
|
||||
if (cellCenterDataAccessObject.isNull())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
for (size_t cellIdx = 0; cellIdx < rigGrid->cellCount(); cellIdx++)
|
||||
{
|
||||
double cellValue = cellCenterDataAccessObject->cellScalar(cellIdx);
|
||||
if (cellValue == HUGE_VAL)
|
||||
{
|
||||
cellValue = 0.0;
|
||||
}
|
||||
values[valueIdx++] = cellValue;
|
||||
}
|
||||
values[cellIdx] = cellValue;
|
||||
}
|
||||
|
||||
server->currentClient()->write((const char *)values.data(), rigGrid->cellCount() * sizeof(double));
|
||||
}
|
||||
|
||||
double totalTimeMS = timer.time() * 1000.0;
|
||||
QString resultInfo = QString("Total time '%1 ms'").arg(totalTimeMS);
|
||||
|
||||
server->errorMessageDialog()->showMessage(resultInfo);
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user