2014-09-23 08:04:57 -05:00
/////////////////////////////////////////////////////////////////////////////////
2013-05-24 04:07:59 -05:00
//
2014-09-23 08:04:57 -05:00
// Copyright (C) 2011- Statoil ASA
// Copyright (C) 2013- Ceetron Solutions AS
// Copyright (C) 2011-2012 Ceetron AS
2013-05-24 04:07:59 -05:00
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
2015-09-25 08:57:43 -05:00
# include "RiaSocketTools.h"
2014-04-01 08:31:13 -05:00
# include "RiaApplication.h"
# include "RiaPreferences.h"
2015-09-25 08:57:43 -05:00
# include "RiaSocketDataTransfer.h"
2013-05-24 04:07:59 -05:00
# include "RiaSocketServer.h"
2015-09-25 08:57:43 -05:00
# include "Rim3dOverlayInfoConfig.h"
# include "RimCaseCollection.h"
2015-06-25 06:45:32 -05:00
# include "RimCellEdgeColors.h"
2013-05-24 04:07:59 -05:00
# include "RimCellRangeFilterCollection.h"
2015-09-25 08:57:43 -05:00
# include "RimEclipseCase.h"
# include "RimEclipseCellColors.h"
# include "RimEclipseInputCase.h"
# include "RimEclipseInputPropertyCollection.h"
2015-06-25 06:05:28 -05:00
# include "RimEclipsePropertyFilterCollection.h"
2015-09-25 08:57:43 -05:00
# include "RimEclipseView.h"
# include "RimIdenticalGridCaseGroup.h"
2014-07-24 07:03:17 -05:00
# include "RimReservoirCellResultsStorage.h"
2017-10-13 07:20:47 -05:00
# include "RimSimWellInViewCollection.h"
2013-05-24 04:07:59 -05:00
2017-01-17 08:11:02 -06:00
# include "cvfTimer.h"
2015-09-25 08:57:43 -05:00
# include <QErrorMessage>
2014-04-14 07:36:47 -05:00
# include <QTcpSocket>
2013-05-24 04:07:59 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2015-05-15 01:40:27 -05:00
RimEclipseCase * RiaSocketTools : : findCaseFromArgs ( RiaSocketServer * server , const QList < QByteArray > & args )
2013-05-24 04:07:59 -05:00
{
2015-05-15 01:40:27 -05:00
RimEclipseCase * rimCase = NULL ;
2013-05-24 04:07:59 -05:00
int caseId = - 1 ;
if ( args . size ( ) > 1 )
{
caseId = args [ 1 ] . toInt ( ) ;
}
rimCase = server - > findReservoir ( caseId ) ;
if ( rimCase = = NULL )
{
// TODO: Display error message a different place to avoid socket comm to be halted.
//server->errorMessageDialog()->showMessage(RiaSocketServer::tr("ResInsight SocketServer: \n") + RiaSocketServer::tr("Could not find the Case with CaseId : \"%1\"").arg(caseId));
}
return rimCase ;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2015-05-15 11:51:49 -05:00
void RiaSocketTools : : getCaseInfoFromCase ( RimCase * rimCase , qint64 & caseId , QString & caseName , QString & caseType , qint64 & caseGroupId )
2013-05-24 04:07:59 -05:00
{
CVF_ASSERT ( rimCase ) ;
caseId = rimCase - > caseId ;
caseName = rimCase - > caseUserDescription ;
2015-05-15 11:51:49 -05:00
RimEclipseCase * eclCase = dynamic_cast < RimEclipseCase * > ( rimCase ) ;
RimCaseCollection * caseCollection = NULL ;
if ( eclCase )
{
caseCollection = eclCase - > parentCaseCollection ( ) ;
}
2013-05-24 04:07:59 -05:00
if ( caseCollection )
{
caseGroupId = caseCollection - > parentCaseGroup ( ) - > groupId ;
if ( RimIdenticalGridCaseGroup : : isStatisticsCaseCollection ( caseCollection ) )
{
caseType = " StatisticsCase " ;
}
else
{
caseType = " SourceCase " ;
}
}
else
{
caseGroupId = - 1 ;
2015-06-25 04:50:13 -05:00
if ( dynamic_cast < RimEclipseInputCase * > ( rimCase ) )
2013-05-24 04:07:59 -05:00
{
caseType = " InputCase " ;
}
2015-05-15 11:51:49 -05:00
else if ( eclCase )
{
2015-06-30 14:26:11 -05:00
caseType = " ResultCase " ;
2015-05-15 11:51:49 -05:00
}
2013-05-24 04:07:59 -05:00
else
{
2015-06-30 14:26:11 -05:00
caseType = " GeoMechCase " ;
2013-05-24 04:07:59 -05:00
}
}
}
2014-04-14 07:36:47 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2014-04-01 08:31:13 -05:00
bool RiaSocketTools : : writeBlockData ( RiaSocketServer * server , QTcpSocket * socket , const char * data , quint64 bytesToWrite )
{
cvf : : Timer timer ;
2014-04-14 07:36:47 -05:00
QStringList errorMessages ;
bool writeSucceded = RiaSocketDataTransfer : : writeBlockDataToSocket ( socket , data , bytesToWrite , errorMessages ) ;
2014-04-01 08:31:13 -05:00
2014-04-14 07:36:47 -05:00
if ( server )
2014-04-01 08:31:13 -05:00
{
2014-04-14 07:36:47 -05:00
for ( int i = 0 ; i < errorMessages . size ( ) ; i + + )
2014-04-01 08:31:13 -05:00
{
2014-04-14 07:36:47 -05:00
server - > errorMessageDialog ( ) - > showMessage ( errorMessages [ i ] ) ;
2014-04-01 08:31:13 -05:00
}
2014-04-15 06:40:53 -05:00
// double totalTimeMS = timer.time() * 1000.0;
// QString resultInfo = QString("Total time '%1 ms'").arg(totalTimeMS);
//
// server->errorMessageDialog()->showMessage(resultInfo);
2014-04-01 08:31:13 -05:00
}
2014-04-14 07:36:47 -05:00
return writeSucceded ;
2014-04-01 08:31:13 -05:00
}