Skip to content

Homework/03 async grpc - #127

Open
gbx-cyber2 wants to merge 3 commits into
eesast:homework/03-async-grpcfrom
gbx-cyber2:homework/03-async-grpc
Open

Homework/03 async grpc#127
gbx-cyber2 wants to merge 3 commits into
eesast:homework/03-async-grpcfrom
gbx-cyber2:homework/03-async-grpc

Conversation

@gbx-cyber2

Copy link
Copy Markdown

暑培:队式作业提交

基本信息

  • 姓名:龚伯熙
  • 班级:笃实56
  • 学号:2025013077

提交说明

Copilot AI lite review requested due to automatic review settings August 28, 2026 08:13
@mergify mergify Bot added the homework Homework PR, will not be merged label Aug 28, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

本 PR 为 03-async-grpc 作业提交:在上一节多线程日志分析器基础上,补全 request/internal 日志解析与访问者展示,并完成 gRPC Agent 的服务端/客户端链路与类型转换,从而支持远程异步调用与结果获取。

Changes:

  • 补全日志解析链路:支持 request/internal 两类日志的解析、模型 Accept、以及 KeyValue 展示输出。
  • 补全并发分析实现:完善 WorkQueue<T>LogFileAnalyzer 的生产者-消费者并行解析流程。
  • 补全 gRPC 侧能力:实现 AgentService/AgentSession 的 RPC 处理,以及 LogEntry 与 Protobuf 消息/枚举的双向转换,RemoteCli 使用异步调用完成交互。

作业提交规范检查(基于当前 PR 描述可见信息)

  • 已在 Description 中关联了 #34:符合要求。
  • 目标/源分支名是否为 README.md 指定的 homework/03-async-grpc:当前元信息未提供 base/head 分支名,建议在 GitHub PR 页面确认两者均为对应 homework 分支(不要是 main/dev)。

Reviewed changes

Copilot reviewed 14 out of 18 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/RemoteCli/Program.cs 远程 CLI:通过 gRPC 异步调用展示文件、触发分析、读取结果流
src/LocalCli/Program.cs 本地 CLI:补全文件展示/触发分析/查看结果等交互逻辑
src/LogParser/Parser/LineParser.cs 支持 request/internal 日志解析并构造对应 LogEntry
src/LogParser/Models/LogEntries.cs 补全 RequestLogEntry/InternalLogEntry 的 Visitor 分发
src/LogParser/Visitors/KeyValueVisitor.cs 补全 request/internal 日志的 KeyValue 展示
src/LogAnalyzer/WorkQueue.cs 实现线程安全工作队列(条件变量 + 完成添加)
src/LogAnalyzer/LogFileAnalyzer.cs 并行 worker 线程启动、队列分发、结果写回与 analyzing 状态管理
src/LogAnalyzerRpc/GrpcTypeConverter.cs 枚举/日志条目类型的 gRPC <-> 本地模型转换
src/LogAnalyzerRpc/GrpcLogEntryVisitor.cs Visitor:将本地 LogEntry 转为 Protobuf LogEntryMessage
src/LogAnalyzerAgent/Services/AgentService.cs gRPC 服务入口:把请求转交给 Session 并写回响应流
src/LogAnalyzerAgent/Applications/AgentSession.cs RPC 业务逻辑与异常到 OperationStatusMessage 的映射
docs/01-basic/report.md 作业报告新增:01-basic
docs/02-multithreading/report.md 作业报告新增:02-multithreading
docs/03-async-grpc/report.md 作业报告新增:03-async-grpc

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +41 to +45
private static OperationStatusMessage CreateErrorOperationStatus(AgentErrorCode code, string message)
{
return new OperationStatusMessage()
{
Success = false,
Comment thread src/RemoteCli/Program.cs
Comment on lines +232 to +233
using var call = client.GetAnalysisResult(request);
var responses = await call.ResponseStream.ReadAllAsync().ToListAsync();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

homework Homework PR, will not be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants