示例#1
0
        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);
        }
示例#2
0
        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));
        }