| 290 | } |
| 291 | |
| 292 | std::shared_ptr<Span> Span::CreateServerSpan( |
| 293 | const std::string& full_method_name, |
| 294 | uint64_t trace_id, uint64_t span_id, uint64_t parent_span_id, |
| 295 | int64_t base_real_us) { |
| 296 | Span* span_raw = butil::get_object<Span>(Forbidden()); |
| 297 | if (__builtin_expect(span_raw == NULL, 0)) { |
| 298 | return nullptr; |
| 299 | } |
| 300 | std::shared_ptr<Span> span(span_raw, SpanDeleter()); |
| 301 | span->_trace_id = (trace_id ? trace_id : GenerateTraceId()); |
| 302 | span->_span_id = (span_id ? span_id : GenerateSpanId()); |
| 303 | span->_parent_span_id = parent_span_id; |
| 304 | span->_log_id = 0; |
| 305 | span->_base_cid = INVALID_BTHREAD_ID; |
| 306 | span->_ending_cid = INVALID_BTHREAD_ID; // Server Span uses ending_cid |
| 307 | span->_type = SPAN_TYPE_SERVER; |
| 308 | span->_async = false; |
| 309 | span->_protocol = PROTOCOL_UNKNOWN; |
| 310 | span->_error_code = 0; |
| 311 | span->_request_size = 0; |
| 312 | span->_response_size = 0; |
| 313 | span->_base_real_us = base_real_us; |
| 314 | span->_received_real_us = 0; |
| 315 | span->_start_parse_real_us = 0; |
| 316 | span->_start_callback_real_us = 0; |
| 317 | span->_start_send_real_us = 0; |
| 318 | span->_sent_real_us = 0; |
| 319 | span->_full_method_name = (!full_method_name.empty() ? |
| 320 | full_method_name : unknown_span_name()); |
| 321 | span->_info.clear(); |
| 322 | return span; |
| 323 | } |
| 324 | |
| 325 | std::shared_ptr<Span> Span::CreateServerSpan( |
| 326 | uint64_t trace_id, uint64_t span_id, uint64_t parent_span_id, |
nothing calls this directly
no test coverage detected