Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@
- [4.3. RPC 服务调用](#43-rpc-服务调用)
- [4.3.1. 阻塞协程式异步调用](#431-阻塞协程式异步调用)
- [4.3.2. 非阻塞协程式异步调用](#432-非阻塞协程式异步调用)
- [4.4. TinyRPC 脚手架(tinyrpc_generator)](#44-tinyrpc-脚手架tinyrpc_generator)
- [4.4. TinyRPC 脚手架(tinyrpc\_generator)](#44-tinyrpc-脚手架tinyrpc_generator)
- [4.4.1 准备 protobuf 文件](#441-准备-protobuf-文件)
- [4.4.2 生成 TinyRPC 框架](#442-生成-tinyrpc-框架)
- [4.4.3 业务逻辑开发](#443-业务逻辑开发)
- [4.4.4 Protobuf 接口升级怎么办?](#444-protobuf-接口升级怎么办)
- [4.4.5 tinyrpc_generator 选项详解](#445-tinyrpc_generator-选项详解)
- [4.4.5 tinyrpc\_generator 选项详解](#445-tinyrpc_generator-选项详解)
- [5. 概要设计](#5-概要设计)
- [5.1. 异步日志模块](#51-异步日志模块)
- [5.2. 协程模块](#52-协程模块)
Expand Down Expand Up @@ -881,7 +881,7 @@ OK, 你唯一需要做的就是进入 `order_server/order_server` 目录,执
```
sh run.sh order_server
```
不出意外的话,你的 TinyRPC 服务已经成功的运行起来了。接下来简单测试一下,进入 `order_server/test_client` 目录,执行客户端测试工具,如:
不出意外的话,你的 TinyRPC 服务已经成功的运行起来了。接下来简单测试一下,进入 `order_server/test_client/test_tool` 目录,执行客户端测试工具,如:
```
./test_query_order_detail
```
Expand Down
27 changes: 21 additions & 6 deletions generator/tinyrpc_generator.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
#!/usr/bin/python3.7
#!/usr/bin/python3.8

import string
import sys
import os
import getopt
import traceback
import re

from string import Template
from datetime import datetime
Expand Down Expand Up @@ -49,13 +50,27 @@ def generate_framework_code():
origin_text = file.read()

# parse all rpc interface method from pb.h file
begin = origin_text.find('virtual ~')
i1 = origin_text[begin:].find('~')
i2 = origin_text[begin:].find('(')
service_name = origin_text[begin + i1 + 1 : begin + i2]
# begin = origin_text.find('virtual ~')
# i1 = origin_text[begin:].find('~')
# i2 = origin_text[begin:].find('(')
# service_name = origin_text[begin + i1 + 1 : begin + i2]

# find the service_name by '*_stub'
service_name = ''
pattern = r'\b(\w+_Stub)\b'
matches = re.search(pattern, origin_text)
start_pos = 0
if matches:
service_name = matches[0][:-5]
start_pos = matches.start()
print("Stub class name is " + service_name)
else:
print("Stub class name not found.")


print("service name is " + service_name)

origin_text = origin_text[begin + i2: ]
origin_text = origin_text[start_pos: ]
method_list = []

i1 = 0
Expand Down