private GrpcValueInfo CreateValueInfoAndUpdateStores(RemoteValue remoteValue) { if (remoteValue == null) { return(null); } string expressionPath; var hasExpressionPath = remoteValue.GetExpressionPath(out expressionPath); var valueInfo = new GrpcValueInfo { ExpressionPath = expressionPath ?? "", HasExpressionPath = hasExpressionPath, NumChildren = remoteValue.GetNumChildren(), Summary = remoteValue.GetSummary() ?? "", TypeName = remoteValue.GetTypeName() ?? "", Value = remoteValue.GetValue() ?? "", ValueType = EnumUtil.ConvertTo <Debugger.Common.ValueType>( remoteValue.GetValueType()), IsPointerType = remoteValue.TypeIsPointerType(), ByteSize = remoteValue.GetByteSize(), }; var typeInfo = remoteValue.GetTypeInfo(); if (typeInfo != null) { valueInfo.Type = GrpcFactoryUtils.CreateType( typeInfo, typeStore.AddObject(typeInfo)); } return(valueInfo); }
public override Task <GetTypeInfoResponse> GetTypeInfo( GetTypeInfoRequest request, ServerCallContext context) { var value = valueStore.GetObject(request.Value.Id); var sbType = value.GetTypeInfo(); var response = new GetTypeInfoResponse(); if (sbType != null) { response.Type = GrpcFactoryUtils.CreateType(sbType, typeStore.AddObject(sbType)); } return(Task.FromResult(response)); }
public override Task <GetCanonicalTypeResponse> GetCanonicalType( GetCanonicalTypeRequest request, ServerCallContext context) { var type = typeStore.GetObject(request.Type.Id); var canonicalType = type.GetCanonicalType(); var response = new GetCanonicalTypeResponse(); if (canonicalType != null) { response.Type = GrpcFactoryUtils.CreateType( canonicalType, typeStore.AddObject(canonicalType)); } return(Task.FromResult(response)); }