Minor gRPC updates

This commit is contained in:
Gaute Lindkvist
2019-05-22 16:03:03 +02:00
parent c30721593e
commit 690ab840c5
6 changed files with 88 additions and 10 deletions

View File

@@ -9,6 +9,7 @@ service GridInfo
// This function returns a two dimensional matrix: One row for each grid, starting with the main grid.
rpc GetGridCount(Case) returns(GridCount) {}
rpc GetGridDimensions(Case) returns (GridDimensions) {}
rpc GetCellCount(CellInfoRequest) returns (CellCount) {}
rpc GetCellInfoForActiveCells(CellInfoRequest) returns (stream CellInfoArray) {}
rpc GetAllCoarseningInfoArray(Case) returns (CoarseningInfoArray) {}
rpc GetTimeSteps(Case) returns (TimeStepDates) {}
@@ -31,6 +32,12 @@ message Vec3i {
int32 k = 3;
}
message CellCount
{
int32 active_cell_count = 1;
int32 reservoir_cell_count = 2;
}
enum PorosityModelType
{
MATRIX_MODEL = 0;

View File

@@ -255,6 +255,53 @@ grpc::Status RiaGrpcGridInfoService::GetGridDimensions(grpc::ServerContext*
return grpc::Status(grpc::NOT_FOUND, "Eclipse Case not found");
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
grpc::Status RiaGrpcGridInfoService::GetCellCount(grpc::ServerContext* context, const rips::CellInfoRequest* request, rips::CellCount* reply)
{
RimCase* rimCase = findCase(request->case_id());
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(rimCase);
if (eclipseCase)
{
auto porosityModel = RiaDefines::PorosityModelType(request->porosity_model());
RigActiveCellInfo* activeCellInfo = eclipseCase->eclipseCaseData()->activeCellInfo(porosityModel);
reply->set_active_cell_count((int) activeCellInfo->reservoirActiveCellCount());
reply->set_reservoir_cell_count((int) activeCellInfo->reservoirCellCount());
return grpc::Status::OK;
}
return grpc::Status(grpc::NOT_FOUND, "Eclipse Case not found");
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
grpc::Status
RiaGrpcGridInfoService::GetTimeSteps(grpc::ServerContext* context, const rips::Case* request, rips::TimeStepDates* reply)
{
RimCase* rimCase = findCase(request->id());
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>(rimCase);
if (eclipseCase)
{
std::vector<QDateTime> timeStepDates = eclipseCase->timeStepDates();
for (QDateTime dateTime : timeStepDates)
{
rips::TimeStepDate* date = reply->add_date();
date->set_year(dateTime.date().year());
date->set_month(dateTime.date().month());
date->set_day(dateTime.date().day());
date->set_hour(dateTime.time().hour());
date->set_minute(dateTime.time().minute());
date->set_second(dateTime.time().second());
}
return grpc::Status::OK;
}
return grpc::Status(grpc::NOT_FOUND, "Eclipse Case not found");
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -275,6 +322,8 @@ std::vector<RiaAbstractGrpcCallback*> RiaGrpcGridInfoService::createCallbacks()
return {new RiaGrpcCallback<Self, Case, GridCount>(this, &Self::GetGridCount, &Self::RequestGetGridCount),
new RiaGrpcCallback<Self, Case, GridDimensions>(this, &Self::GetGridDimensions, &Self::RequestGetGridDimensions),
new RiaGrpcCallback<Self, CellInfoRequest, CellCount>(this, &Self::GetCellCount, &Self::RequestGetCellCount),
new RiaGrpcCallback<Self, Case, TimeStepDates>(this, &Self::GetTimeSteps, &Self::RequestGetTimeSteps),
new RiaGrpcStreamCallback<Self, CellInfoRequest, CellInfoArray, RiaActiveCellInfoStateHandler>(
this, &Self::GetCellInfoForActiveCells, &Self::RequestGetCellInfoForActiveCells, new RiaActiveCellInfoStateHandler)};
}

View File

@@ -71,9 +71,12 @@ class RiaGrpcGridInfoService final : public rips::GridInfo::AsyncService, public
public:
grpc::Status GetGridCount(grpc::ServerContext* context, const rips::Case* request, rips::GridCount* reply) override;
grpc::Status GetGridDimensions(grpc::ServerContext* context, const rips::Case* request, rips::GridDimensions* reply) override;
grpc::Status GetCellCount(grpc::ServerContext* context, const rips::CellInfoRequest* request, rips::CellCount* reply) override;
grpc::Status GetTimeSteps(grpc::ServerContext* context, const rips::Case* request, rips::TimeStepDates* reply) override;
grpc::Status GetCellInfoForActiveCells(grpc::ServerContext* context,
const rips::CellInfoRequest* request,
rips::CellInfoArray* reply,
RiaActiveCellInfoStateHandler* stateHandler);
RiaActiveCellInfoStateHandler* stateHandler);
std::vector<RiaAbstractGrpcCallback*> createCallbacks() override;
};