|
1 | | -use actix_rt::Runtime; |
2 | 1 | use actix_web::{ |
3 | 2 | dev::Body, |
4 | 3 | guard, http, |
@@ -220,71 +219,67 @@ fn ping() -> HttpResponse { |
220 | 219 | HttpResponse::Ok().body(Body::Empty) |
221 | 220 | } |
222 | 221 |
|
223 | | -pub fn run(host: String, port: u16, n_threads: usize) -> std::io::Result<()> { |
224 | | - actix_rt::System::new().run()?; |
225 | | - let rt = Runtime::new()?; |
| 222 | +pub async fn run(host: String, port: u16, n_threads: usize) -> std::io::Result<()> { |
226 | 223 | let max_size = 1024 * 1024 * 4; |
227 | 224 |
|
228 | | - rt.block_on(async move { |
229 | | - HttpServer::new(move || { |
230 | | - App::new() |
231 | | - .service( |
232 | | - web::resource("/ast") |
233 | | - .guard(guard::Header("content-type", "application/json")) |
234 | | - .app_data(web::Json::<AstPayload>::configure(|cfg| { |
235 | | - cfg.limit(max_size) |
236 | | - })) |
237 | | - .route(web::post().to(ast_parser)), |
238 | | - ) |
239 | | - .service( |
240 | | - web::resource("/comment") |
241 | | - .guard(guard::Header("content-type", "application/json")) |
242 | | - .app_data(web::Json::<WebCommentPayload>::configure(|cfg| { |
243 | | - cfg.limit(max_size) |
244 | | - })) |
245 | | - .route(web::post().to(comment_removal_json)), |
246 | | - ) |
247 | | - .service( |
248 | | - web::resource("/comment") |
249 | | - .guard(guard::Header("content-type", "application/octet-stream")) |
250 | | - .data(web::PayloadConfig::default().limit(max_size)) |
251 | | - .route(web::post().to(comment_removal_plain)), |
252 | | - ) |
253 | | - .service( |
254 | | - web::resource("/metrics") |
255 | | - .guard(guard::Header("content-type", "application/json")) |
256 | | - .app_data(web::Json::<WebMetricsPayload>::configure(|cfg| { |
257 | | - cfg.limit(max_size) |
258 | | - })) |
259 | | - .route(web::post().to(metrics_json)), |
260 | | - ) |
261 | | - .service( |
262 | | - web::resource("/metrics") |
263 | | - .guard(guard::Header("content-type", "application/octet-stream")) |
264 | | - .data(web::PayloadConfig::default().limit(max_size)) |
265 | | - .route(web::post().to(metrics_plain)), |
266 | | - ) |
267 | | - .service( |
268 | | - web::resource("/function") |
269 | | - .guard(guard::Header("content-type", "application/json")) |
270 | | - .app_data(web::Json::<WebFunctionPayload>::configure(|cfg| { |
271 | | - cfg.limit(max_size) |
272 | | - })) |
273 | | - .route(web::post().to(function_json)), |
274 | | - ) |
275 | | - .service( |
276 | | - web::resource("/function") |
277 | | - .guard(guard::Header("content-type", "application/octet-stream")) |
278 | | - .data(web::PayloadConfig::default().limit(max_size)) |
279 | | - .route(web::post().to(function_plain)), |
280 | | - ) |
281 | | - .service(web::resource("/ping").route(web::get().to(ping))) |
282 | | - }) |
283 | | - .workers(n_threads) |
284 | | - .bind((host.as_str(), port))? |
285 | | - .run() |
286 | | - .await |
| 225 | + HttpServer::new(move || { |
| 226 | + App::new() |
| 227 | + .service( |
| 228 | + web::resource("/ast") |
| 229 | + .guard(guard::Header("content-type", "application/json")) |
| 230 | + .app_data(web::Json::<AstPayload>::configure(|cfg| { |
| 231 | + cfg.limit(max_size) |
| 232 | + })) |
| 233 | + .route(web::post().to(ast_parser)), |
| 234 | + ) |
| 235 | + .service( |
| 236 | + web::resource("/comment") |
| 237 | + .guard(guard::Header("content-type", "application/json")) |
| 238 | + .app_data(web::Json::<WebCommentPayload>::configure(|cfg| { |
| 239 | + cfg.limit(max_size) |
| 240 | + })) |
| 241 | + .route(web::post().to(comment_removal_json)), |
| 242 | + ) |
| 243 | + .service( |
| 244 | + web::resource("/comment") |
| 245 | + .guard(guard::Header("content-type", "application/octet-stream")) |
| 246 | + .data(web::PayloadConfig::default().limit(max_size)) |
| 247 | + .route(web::post().to(comment_removal_plain)), |
| 248 | + ) |
| 249 | + .service( |
| 250 | + web::resource("/metrics") |
| 251 | + .guard(guard::Header("content-type", "application/json")) |
| 252 | + .app_data(web::Json::<WebMetricsPayload>::configure(|cfg| { |
| 253 | + cfg.limit(max_size) |
| 254 | + })) |
| 255 | + .route(web::post().to(metrics_json)), |
| 256 | + ) |
| 257 | + .service( |
| 258 | + web::resource("/metrics") |
| 259 | + .guard(guard::Header("content-type", "application/octet-stream")) |
| 260 | + .data(web::PayloadConfig::default().limit(max_size)) |
| 261 | + .route(web::post().to(metrics_plain)), |
| 262 | + ) |
| 263 | + .service( |
| 264 | + web::resource("/function") |
| 265 | + .guard(guard::Header("content-type", "application/json")) |
| 266 | + .app_data(web::Json::<WebFunctionPayload>::configure(|cfg| { |
| 267 | + cfg.limit(max_size) |
| 268 | + })) |
| 269 | + .route(web::post().to(function_json)), |
| 270 | + ) |
| 271 | + .service( |
| 272 | + web::resource("/function") |
| 273 | + .guard(guard::Header("content-type", "application/octet-stream")) |
| 274 | + .data(web::PayloadConfig::default().limit(max_size)) |
| 275 | + .route(web::post().to(function_plain)), |
| 276 | + ) |
| 277 | + .service(web::resource("/ping").route(web::get().to(ping))) |
287 | 278 | }) |
| 279 | + .workers(n_threads) |
| 280 | + .bind((host.as_str(), port))? |
| 281 | + .run() |
| 282 | + .await |
288 | 283 | } |
289 | 284 |
|
290 | 285 | // curl --header "Content-Type: application/json" --request POST --data '{"id": "1234", "file_name": "prova.cpp", "code": "int x = 1;", "comment": true, "span": true}' http://127.0.0.1:8081/ast |
|
0 commit comments