@@ -337,7 +337,7 @@ std::future<response::Value> ModifiedResult<Object>::convert(std::future<std::sh
337337 : response::Type::Map);
338338 }
339339
340- return wrappedResult->resolve (paramsFuture.requestId , *paramsFuture.selection , paramsFuture.fragments , paramsFuture.variables ).get ();
340+ return wrappedResult->resolve (paramsFuture.state , *paramsFuture.selection , paramsFuture.fragments , paramsFuture.variables ).get ();
341341 }, std::move (result), std::move (params));
342342}
343343
@@ -347,21 +347,21 @@ Object::Object(TypeNames&& typeNames, ResolverMap&& resolvers)
347347{
348348}
349349
350- std::future<response::Value> Object::resolve (RequestId requestId , const peg::ast_node& selection, const FragmentMap& fragments, const response::Value& variables) const
350+ std::future<response::Value> Object::resolve (const std::shared_ptr<RequestState>& state , const peg::ast_node& selection, const FragmentMap& fragments, const response::Value& variables) const
351351{
352352 std::queue<std::future<response::Value>> selections;
353353
354- beginSelectionSet (requestId );
354+ beginSelectionSet (state );
355355
356356 for (const auto & child : selection.children )
357357 {
358- SelectionVisitor visitor (requestId , fragments, variables, _typeNames, _resolvers);
358+ SelectionVisitor visitor (state , fragments, variables, _typeNames, _resolvers);
359359
360360 visitor.visit (*child);
361361 selections.push (visitor.getValues ());
362362 }
363363
364- endSelectionSet (requestId );
364+ endSelectionSet (state );
365365
366366 return std::async (std::launch::deferred,
367367 [](std::queue<std::future<response::Value>>&& promises)
@@ -389,11 +389,11 @@ std::future<response::Value> Object::resolve(RequestId requestId, const peg::ast
389389 }, std::move (selections));
390390}
391391
392- void Object::beginSelectionSet (RequestId ) const
392+ void Object::beginSelectionSet (const std::shared_ptr<RequestState>& ) const
393393{
394394}
395395
396- void Object::endSelectionSet (RequestId ) const
396+ void Object::endSelectionSet (const std::shared_ptr<RequestState>& ) const
397397{
398398}
399399
@@ -402,7 +402,7 @@ Request::Request(TypeMap&& operationTypes)
402402{
403403}
404404
405- std::future<response::Value> Request::resolve (RequestId requestId , const peg::ast_node& root, const std::string& operationName, const response::Value& variables) const
405+ std::future<response::Value> Request::resolve (std::shared_ptr<RequestState> state , const peg::ast_node& root, const std::string& operationName, const response::Value& variables) const
406406{
407407 FragmentDefinitionVisitor fragmentVisitor;
408408
@@ -413,7 +413,7 @@ std::future<response::Value> Request::resolve(RequestId requestId, const peg::as
413413 });
414414
415415 auto fragments = fragmentVisitor.getFragments ();
416- OperationDefinitionVisitor operationVisitor (requestId , _operations, operationName, variables, fragments);
416+ OperationDefinitionVisitor operationVisitor (state , _operations, operationName, variables, fragments);
417417
418418 peg::for_each_child<peg::operation_definition>(root,
419419 [&operationVisitor](const peg::ast_node& child)
@@ -424,8 +424,8 @@ std::future<response::Value> Request::resolve(RequestId requestId, const peg::as
424424 return operationVisitor.getValue ();
425425}
426426
427- SelectionVisitor::SelectionVisitor (RequestId requestId , const FragmentMap& fragments, const response::Value& variables, const TypeNames& typeNames, const ResolverMap& resolvers)
428- : _requestId(requestId )
427+ SelectionVisitor::SelectionVisitor (const std::shared_ptr<RequestState>& state , const FragmentMap& fragments, const response::Value& variables, const TypeNames& typeNames, const ResolverMap& resolvers)
428+ : _state(state )
429429 , _fragments(fragments)
430430 , _variables(variables)
431431 , _typeNames(typeNames)
@@ -543,7 +543,7 @@ void SelectionVisitor::visitField(const peg::ast_node& field)
543543
544544 _values.push ({
545545 std::move (alias),
546- itr->second ({ _requestId , arguments, selection, _fragments, _variables })
546+ itr->second ({ _state , arguments, selection, _fragments, _variables })
547547 });
548548}
549549
@@ -879,8 +879,8 @@ void FragmentDefinitionVisitor::visit(const peg::ast_node& fragmentDefinition)
879879 _fragments.insert ({ fragmentDefinition.children .front ()->content (), Fragment (fragmentDefinition) });
880880}
881881
882- OperationDefinitionVisitor::OperationDefinitionVisitor (RequestId requestId , const TypeMap& operations, const std::string& operationName, const response::Value& variables, const FragmentMap& fragments)
883- : _requestId(requestId )
882+ OperationDefinitionVisitor::OperationDefinitionVisitor (const std::shared_ptr<RequestState>& state , const TypeMap& operations, const std::string& operationName, const response::Value& variables, const FragmentMap& fragments)
883+ : _state(state )
884884 , _operations(operations)
885885 , _operationName(operationName)
886886 , _variables(variables)
@@ -1045,7 +1045,7 @@ void OperationDefinitionVisitor::visit(const peg::ast_node& operationDefinition)
10451045 });
10461046
10471047 response::Value document (response::Type::Map);
1048- auto data = operationObject->resolve (_requestId , *operationDefinition.children .back (), _fragments, operationVariables);
1048+ auto data = operationObject->resolve (_state , *operationDefinition.children .back (), _fragments, operationVariables);
10491049
10501050 document.emplace_back (" data" , data.get ());
10511051
0 commit comments