From a5cdfc1b40e2771f866f715e0b66551fa715d2ae Mon Sep 17 00:00:00 2001 From: zchuang185 Date: Tue, 25 Nov 2025 09:56:12 +0800 Subject: [PATCH 01/45] add the progressive read idle timout checker --- example/http_c++/http_client.cpp | 34 ++++++++++++++++++++ example/http_c++/http_server.cpp | 7 +++++ src/brpc/controller.cpp | 54 +++++++++++++++++++++++++++++++- src/brpc/controller.h | 25 +++++++++++++-- 4 files changed, 116 insertions(+), 4 deletions(-) diff --git a/example/http_c++/http_client.cpp b/example/http_c++/http_client.cpp index 23222dee9b..7df7461135 100644 --- a/example/http_c++/http_client.cpp +++ b/example/http_c++/http_client.cpp @@ -25,8 +25,11 @@ #include #include #include +#include "bthread/countdown_event.h" DEFINE_string(d, "", "POST this data to the http server"); +DEFINE_bool(progressive, false, "whether or not progressive read data from server"); +DEFINE_int32(progressive_read_timeout_ms, 5000, "progressive read data idle timeout in milliseconds"); DEFINE_string(load_balancer, "", "The algorithm for load balancing"); DEFINE_int32(timeout_ms, 2000, "RPC timeout in milliseconds"); DEFINE_int32(max_retry, 3, "Max retries(not including the first RPC)"); @@ -36,6 +39,25 @@ namespace brpc { DECLARE_bool(http_verbose); } +class PartDataReader: public brpc::ProgressiveReader { +public: + explicit PartDataReader(bthread::CountdownEvent* done): _done(done){} + + butil::Status OnReadOnePart(const void* data, size_t length) { + memcpy(_buffer, data, length); + LOG(INFO) << "data : " << _buffer << " size : " << length; + return butil::Status::OK(); + } + + void OnEndOfMessage(const butil::Status& status) { + _done->signal(); + LOG(INFO) << "progressive read data final status : " << status; + } +private: + char _buffer[1024]; + bthread::CountdownEvent* _done; +}; + int main(int argc, char* argv[]) { // Parse gflags. We recommend you to use gflags as well. GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true); @@ -71,6 +93,11 @@ int main(int argc, char* argv[]) { cntl.request_attachment().append(FLAGS_d); } + if (FLAGS_progressive) { + cntl.set_progressive_read_timeout_ms(FLAGS_progressive_read_timeout_ms); + cntl.response_will_be_read_progressively(); + } + // Because `done'(last parameter) is NULL, this function waits until // the response comes back or error occurs(including timedout). channel.CallMethod(NULL, &cntl, NULL, NULL, NULL); @@ -78,6 +105,13 @@ int main(int argc, char* argv[]) { std::cerr << cntl.ErrorText() << std::endl; return -1; } + + if (FLAGS_progressive) { + bthread::CountdownEvent done(1); + cntl.ReadProgressiveAttachmentBy(new PartDataReader(&done)); + done.wait(); + LOG(INFO) << "wait client progressive read done safely"; + } // If -http_verbose is on, brpc already prints the response to stderr. if (!brpc::FLAGS_http_verbose) { std::cout << cntl.response_attachment() << std::endl; diff --git a/example/http_c++/http_server.cpp b/example/http_c++/http_server.cpp index 05c9a0ee4c..3da17ccc0c 100644 --- a/example/http_c++/http_server.cpp +++ b/example/http_c++/http_server.cpp @@ -31,6 +31,7 @@ DEFINE_int32(idle_timeout_s, -1, "Connection will be closed if there is no " DEFINE_string(certificate, "cert.pem", "Certificate file path to enable SSL"); DEFINE_string(private_key, "key.pem", "Private key file path to enable SSL"); DEFINE_string(ciphers, "", "Cipher suite used for SSL connections"); +DEFINE_bool(enable_progressive_timeout, false, "whether or not trigger progressive write attachement data timeout"); namespace example { @@ -104,6 +105,9 @@ class FileServiceImpl : public FileService { // sleep a while to send another part. bthread_usleep(10000); + if (FLAGS_enable_progressive_timout && i > 50) { + bthread_usleep(100000000UL); + } } return NULL; } @@ -194,6 +198,9 @@ class HttpSSEServiceImpl : public HttpSSEService { // sleep a while to send another part. bthread_usleep(10000 * 10); + if (FLAGS_enable_progressive_timout && i > 50) { + bthread_usleep(100000000UL); + } } return NULL; } diff --git a/src/brpc/controller.cpp b/src/brpc/controller.cpp index d4dbab951b..4c15385a0c 100644 --- a/src/brpc/controller.cpp +++ b/src/brpc/controller.cpp @@ -95,7 +95,8 @@ DEFINE_bool(graceful_quit_on_sigterm, false, "Register SIGTERM handle func to quit graceful"); DEFINE_bool(graceful_quit_on_sighup, false, "Register SIGHUP handle func to quit graceful"); - +DEFINE_bool(log_idle_progressive_read_close, false, + "Print log when an idle progressive read is closed"); const IdlNames idl_single_req_single_res = { "req", "res" }; const IdlNames idl_single_req_multi_res = { "req", "" }; const IdlNames idl_multi_req_single_res = { "", "res" }; @@ -331,6 +332,15 @@ void Controller::Call::Reset() { stream_user_data = NULL; } +void Controller::set_progressive_read_timeout_ms(int32_t progressive_read_timeout_ms){ + if(progressive_read_timeout_ms <= 0x7fffffff){ + _progressive_read_timeout_ms = progressive_read_timeout_ms; + } else { + _progressive_read_timeout_ms = 0x7fffffff; + LOG(WARNING) << "progressive_read_timeout_seconds is limited to 0x7fffffff"; + } +} + void Controller::set_timeout_ms(int64_t timeout_ms) { if (timeout_ms <= 0x7fffffff) { _timeout_ms = timeout_ms; @@ -1027,6 +1037,43 @@ void Controller::SubmitSpan() { _span = NULL; } +void* Controller::HandleIdleProgressiveReader(void* arg) { + auto* cntl = static_cast(arg); + const uint64_t CHECK_INTERVAL_US = 1000000UL; + auto log_idle = FLAGS_log_idle_progressive_read_close; + std::vector remove_socket_ids; + while (bthread_usleep(CHECK_INTERVAL_US) == 0) { + // TODO: this is not efficient for a lot of connections(>100K) + auto socketIds = cntl->_checking_progressive_read_fds; + int64_t progressive_read_timeout_us = cntl->_progressive_read_timeout_ms * 1000; + for (auto socket_id : socketIds){ + SocketUniquePtr s; + if (Socket::Address(socket_id, &s) == 0) { + auto cpuwide_time_us = butil::cpuwide_time_us(); + const int64_t last_active_us = s->last_active_time_us(); + if (cpuwide_time_us - last_active_us <= progressive_read_timeout_us) { + continue; + } + LOG_IF(INFO, log_idle) << "progressive read timeout socket id : " << socket_id + << " progressive read timeout us : " << progressive_read_timeout_us + << " progressive read idle duration : " << cpuwide_time_us - last_active_us; + if (s->parsing_context() != NULL) { + s->parsing_context()->Destroy(); + } + s->ReleaseReferenceIfIdle(0xffffffff); + remove_socket_ids.push_back(socket_id); + } else { + LOG(ERROR) << "not found the socket id : " << socket_id; + remove_socket_ids.push_back(socket_id); + } + } + for (auto remove_socket_id : remove_socket_ids) { + socketIds.erase(remove_socket_id); + } + } + return NULL; +} + void Controller::HandleSendFailed() { if (!FailedInline()) { SetFailed("Must be SetFailed() before calling HandleSendFailed()"); @@ -1179,6 +1226,11 @@ void Controller::IssueRPC(int64_t start_realtime_us) { // Tag the socket so that when the response comes back, the parser will // stop before reading all body. _current_call.sending_sock->read_will_be_progressive(_connection_type); + auto socket_id = _current_call.sending_sock->id(); + if (_progressive_read_timeout_ms > 0 && _checking_progressive_read_fds.seek(socket_id) == NULL) { + _checking_progressive_read_fds.insert(socket_id); + LOG(INFO) << "insert the progressive read fd : " << socket_id << " socket fds size : " << _checking_progressive_read_fds.size(); + } } // Handle authentication diff --git a/src/brpc/controller.h b/src/brpc/controller.h index 69d859ea8f..190b2fba57 100644 --- a/src/brpc/controller.h +++ b/src/brpc/controller.h @@ -47,7 +47,6 @@ #include "brpc/grpc.h" #include "brpc/kvmap.h" #include "brpc/rpc_dump.h" - // EAUTH is defined in MAC #ifndef EAUTH #define EAUTH ERPCAUTH @@ -163,7 +162,7 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); uint64_t log_id; std::string request_id; }; - + static void* HandleIdleProgressiveReader(void* arg); public: Controller(); Controller(const Inheritable& parent_ctx); @@ -177,6 +176,9 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); // Set/get timeout in milliseconds for the RPC call. Use // ChannelOptions.timeout_ms on unset. + void set_progressive_read_timeout_ms(int32_t progressive_read_timeout_ms); + int32_t progressive_read_timeout_ms() const { return _progressive_read_timeout_ms; } + void set_timeout_ms(int64_t timeout_ms); int64_t timeout_ms() const { return _timeout_ms; } @@ -323,7 +325,19 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); // Make the RPC end when the HTTP response has complete headers and let // user read the remaining body by using ReadProgressiveAttachmentBy(). - void response_will_be_read_progressively() { add_flag(FLAGS_READ_PROGRESSIVELY); } + void response_will_be_read_progressively() { + if(has_flag(FLAGS_READ_PROGRESSIVELY) && _progressive_read_idle_tid > 0) { + return; + } + bthread_attr_t tmp = BTHREAD_ATTR_NORMAL; + tmp.tag = _bthread_tag; + if(bthread_start_background(&_progressive_read_idle_tid, &tmp, HandleIdleProgressiveReader, this) != 0){ + LOG(FATAL) << "Failed to start controller bthread id : " << _progressive_read_idle_tid; + } + LOG(INFO) << "Start Response progressive reader idle checker close idle_tid : " << _progressive_read_idle_tid + << " _bthread_tag : " << _bthread_tag; + add_flag(FLAGS_READ_PROGRESSIVELY); + } // Make the RPC end when the HTTP request has complete headers and let // user read the remaining body by using ReadProgressiveAttachmentBy(). void request_will_be_read_progressively() { add_flag(FLAGS_READ_PROGRESSIVELY); } @@ -837,6 +851,11 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); int32_t _timeout_ms; int32_t _connect_timeout_ms; int32_t _backup_request_ms; + int32_t _progressive_read_timeout_ms; + butil::FlatSet _checking_progressive_read_fds; + bthread_t _progressive_read_idle_tid; + // Controller belongs to this tag + bthread_tag_t _bthread_tag = bthread_self_tag(); // Priority: `_backup_request_policy' > `_backup_request_ms'. BackupRequestPolicy* _backup_request_policy; // If this rpc call has retry/backup request,this var save the real timeout for current call From ae7bc0f0b7fd3e6f2b869c7ec4a7ac5f5c2674f0 Mon Sep 17 00:00:00 2001 From: zchuang185 Date: Tue, 25 Nov 2025 10:10:08 +0800 Subject: [PATCH 02/45] modify the bug for http c++ example --- example/http_c++/http_server.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/example/http_c++/http_server.cpp b/example/http_c++/http_server.cpp index 3da17ccc0c..3cc4c63f86 100644 --- a/example/http_c++/http_server.cpp +++ b/example/http_c++/http_server.cpp @@ -105,7 +105,7 @@ class FileServiceImpl : public FileService { // sleep a while to send another part. bthread_usleep(10000); - if (FLAGS_enable_progressive_timout && i > 50) { + if (FLAGS_enable_progressive_timeout && i > 50) { bthread_usleep(100000000UL); } } @@ -198,7 +198,7 @@ class HttpSSEServiceImpl : public HttpSSEService { // sleep a while to send another part. bthread_usleep(10000 * 10); - if (FLAGS_enable_progressive_timout && i > 50) { + if (FLAGS_enable_progressive_timeout && i > 50) { bthread_usleep(100000000UL); } } From f08f266fb265384ca89dfba3eb9edb3d27a4bde8 Mon Sep 17 00:00:00 2001 From: zchuang185 Date: Fri, 28 Nov 2025 16:41:10 +0800 Subject: [PATCH 03/45] change the timeout checker bthread to timer bthread --- src/brpc/controller.cpp | 129 ++++++++++++++++++++++++++++++---------- src/brpc/controller.h | 16 +---- 2 files changed, 101 insertions(+), 44 deletions(-) diff --git a/src/brpc/controller.cpp b/src/brpc/controller.cpp index 4c15385a0c..0c53970371 100644 --- a/src/brpc/controller.cpp +++ b/src/brpc/controller.cpp @@ -175,6 +175,61 @@ class IgnoreAllRead : public ProgressiveReader { void OnEndOfMessage(const butil::Status&) {} }; +class ProgressiveTimeoutRead : public ProgressiveReader { +public: + explicit ProgressiveTimeoutRead(Controller* cntl, ProgressiveReader* reader): + _cntl(cntl), _reader(reader), _timeout_id(0), _latest_add_timer_ms(0), _add_timer_delay_ms(1000) { + AddIdleReadTimeoutMonitor(); + } + butil::Status OnReadOnePart(const void* data, size_t length) { + auto status = _reader->OnReadOnePart(data, length); + AddIdleReadTimeoutMonitor(); + return status; + } + void OnEndOfMessage(const butil::Status& status) { + _reader->OnEndOfMessage(status); + if(_timeout_id > 0) { + bthread_timer_del(_timeout_id); + } + } +private: + void AddToTimer() { + if (_timeout_id > 0) { + bthread_timer_del(_timeout_id); + } + bthread_timer_add(&_timeout_id, + butil::milliseconds_from_now(_cntl->progressive_read_timeout_ms()), + Controller::HandleIdleProgressiveReader, + _cntl + ); + } + + void AddIdleReadTimeoutMonitor() { + if (_cntl->progressive_read_timeout_ms() <= 0) { + return; + } + if(_cntl->progressive_read_timeout_ms() < _add_timer_delay_ms) { + AddToTimer(); + return; + } + auto current_ms = butil::cpuwide_time_ms(); + if (current_ms - _latest_add_timer_ms < _add_timer_delay_ms) { + return; + } + _latest_add_timer_ms = current_ms; + AddToTimer(); + } + +private: + Controller* _cntl; + ProgressiveReader* _reader; + // Timer registered to trigger progressive timeout event + bthread_timer_t _timeout_id; + int64_t _latest_add_timer_ms; + // avoid frequently add timer for idle handler + int32_t _add_timer_delay_ms; +}; + static IgnoreAllRead* s_ignore_all_read = NULL; static pthread_once_t s_ignore_all_read_once = PTHREAD_ONCE_INIT; static void CreateIgnoreAllRead() { s_ignore_all_read = new IgnoreAllRead; } @@ -1037,41 +1092,52 @@ void Controller::SubmitSpan() { _span = NULL; } -void* Controller::HandleIdleProgressiveReader(void* arg) { +void Controller::HandleIdleProgressiveReader(void* arg) { + if(arg == nullptr){ + LOG(ERROR) << "Controller::HandleIdleProgressiveReader arg is null."; + return; + } auto* cntl = static_cast(arg); - const uint64_t CHECK_INTERVAL_US = 1000000UL; auto log_idle = FLAGS_log_idle_progressive_read_close; + int64_t progressive_read_timeout_us = cntl->_progressive_read_timeout_ms * 1000; std::vector remove_socket_ids; - while (bthread_usleep(CHECK_INTERVAL_US) == 0) { - // TODO: this is not efficient for a lot of connections(>100K) - auto socketIds = cntl->_checking_progressive_read_fds; - int64_t progressive_read_timeout_us = cntl->_progressive_read_timeout_ms * 1000; - for (auto socket_id : socketIds){ - SocketUniquePtr s; - if (Socket::Address(socket_id, &s) == 0) { - auto cpuwide_time_us = butil::cpuwide_time_us(); - const int64_t last_active_us = s->last_active_time_us(); - if (cpuwide_time_us - last_active_us <= progressive_read_timeout_us) { - continue; - } - LOG_IF(INFO, log_idle) << "progressive read timeout socket id : " << socket_id - << " progressive read timeout us : " << progressive_read_timeout_us - << " progressive read idle duration : " << cpuwide_time_us - last_active_us; - if (s->parsing_context() != NULL) { - s->parsing_context()->Destroy(); - } - s->ReleaseReferenceIfIdle(0xffffffff); - remove_socket_ids.push_back(socket_id); - } else { - LOG(ERROR) << "not found the socket id : " << socket_id; - remove_socket_ids.push_back(socket_id); + butil::AutoLock guard(cntl->_progressive_read_lock); + auto socketIds = cntl->_checking_progressive_read_fds; + for (auto socket_id : socketIds){ + SocketUniquePtr s; + if (Socket::Address(socket_id, &s) == 0) { + int64_t pre_idle_duration_us = 0; + int64_t idle_duration_us = butil::cpuwide_time_us() - s->last_active_time_us(); + while (progressive_read_timeout_us > idle_duration_us && idle_duration_us > pre_idle_duration_us) { + auto sleep_ms = (progressive_read_timeout_us - idle_duration_us) / 1000; + bthread_usleep(sleep_ms > 0 ? sleep_ms : 1); + pre_idle_duration_us = idle_duration_us; + idle_duration_us = butil::cpuwide_time_us() - s->last_active_time_us(); } - } - for (auto remove_socket_id : remove_socket_ids) { - socketIds.erase(remove_socket_id); + if (idle_duration_us <= pre_idle_duration_us) { + LOG_IF(INFO, log_idle) << "stop pgressive read timeout checking process!" + << " progressive_read_timeout_us : " << progressive_read_timeout_us + << " idle_duration_us : " << idle_duration_us + << " pre_idle_duration_us : " << pre_idle_duration_us; + return; + } + LOG_IF(INFO, log_idle) << "progressive read timeout socket id : " << socket_id + << " progressive read timeout us : " << progressive_read_timeout_us + << " progressive read idle duration : " << idle_duration_us; + if (s->parsing_context() != NULL) { + s->parsing_context()->Destroy(); + } + s->ReleaseReferenceIfIdle(0); + cntl->CloseConnection("progressive read timeout"); + remove_socket_ids.push_back(socket_id); + } else { + LOG(ERROR) << "not found the socket id : " << socket_id; + remove_socket_ids.push_back(socket_id); } } - return NULL; + for (auto remove_socket_id : remove_socket_ids) { + socketIds.erase(remove_socket_id); + } } void Controller::HandleSendFailed() { @@ -1227,9 +1293,9 @@ void Controller::IssueRPC(int64_t start_realtime_us) { // stop before reading all body. _current_call.sending_sock->read_will_be_progressive(_connection_type); auto socket_id = _current_call.sending_sock->id(); + butil::AutoLock guard(_progressive_read_lock); if (_progressive_read_timeout_ms > 0 && _checking_progressive_read_fds.seek(socket_id) == NULL) { _checking_progressive_read_fds.insert(socket_id); - LOG(INFO) << "insert the progressive read fd : " << socket_id << " socket fds size : " << _checking_progressive_read_fds.size(); } } @@ -1594,6 +1660,9 @@ void Controller::ReadProgressiveAttachmentBy(ProgressiveReader* r) { __FUNCTION__)); } add_flag(FLAGS_PROGRESSIVE_READER); + if (progressive_read_timeout_ms() > 0) { + return _rpa->ReadProgressiveAttachmentBy(new ProgressiveTimeoutRead(this, r)); + } return _rpa->ReadProgressiveAttachmentBy(r); } diff --git a/src/brpc/controller.h b/src/brpc/controller.h index 190b2fba57..8c82a41496 100644 --- a/src/brpc/controller.h +++ b/src/brpc/controller.h @@ -162,7 +162,7 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); uint64_t log_id; std::string request_id; }; - static void* HandleIdleProgressiveReader(void* arg); + static void HandleIdleProgressiveReader(void* arg); public: Controller(); Controller(const Inheritable& parent_ctx); @@ -326,16 +326,6 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); // Make the RPC end when the HTTP response has complete headers and let // user read the remaining body by using ReadProgressiveAttachmentBy(). void response_will_be_read_progressively() { - if(has_flag(FLAGS_READ_PROGRESSIVELY) && _progressive_read_idle_tid > 0) { - return; - } - bthread_attr_t tmp = BTHREAD_ATTR_NORMAL; - tmp.tag = _bthread_tag; - if(bthread_start_background(&_progressive_read_idle_tid, &tmp, HandleIdleProgressiveReader, this) != 0){ - LOG(FATAL) << "Failed to start controller bthread id : " << _progressive_read_idle_tid; - } - LOG(INFO) << "Start Response progressive reader idle checker close idle_tid : " << _progressive_read_idle_tid - << " _bthread_tag : " << _bthread_tag; add_flag(FLAGS_READ_PROGRESSIVELY); } // Make the RPC end when the HTTP request has complete headers and let @@ -853,9 +843,7 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); int32_t _backup_request_ms; int32_t _progressive_read_timeout_ms; butil::FlatSet _checking_progressive_read_fds; - bthread_t _progressive_read_idle_tid; - // Controller belongs to this tag - bthread_tag_t _bthread_tag = bthread_self_tag(); + mutable butil::Lock _progressive_read_lock; // Priority: `_backup_request_policy' > `_backup_request_ms'. BackupRequestPolicy* _backup_request_policy; // If this rpc call has retry/backup request,this var save the real timeout for current call From 9bd8016bd084b02d01280957562dbd850e330133 Mon Sep 17 00:00:00 2001 From: zchuang185 Date: Wed, 3 Dec 2025 15:33:53 +0800 Subject: [PATCH 04/45] refine ProgressiveReadTimeoutReader class hold SocketId and read_timeout_ms fields --- src/brpc/controller.cpp | 117 ++++++++++++++------------ src/brpc/controller.h | 2 - src/brpc/policy/http_rpc_protocol.cpp | 1 + src/brpc/policy/http_rpc_protocol.h | 9 ++ src/brpc/progressive_reader.h | 3 + 5 files changed, 77 insertions(+), 55 deletions(-) diff --git a/src/brpc/controller.cpp b/src/brpc/controller.cpp index 09acbd133c..a6f026761b 100644 --- a/src/brpc/controller.cpp +++ b/src/brpc/controller.cpp @@ -175,10 +175,16 @@ class IgnoreAllRead : public ProgressiveReader { void OnEndOfMessage(const butil::Status&) {} }; -class ProgressiveTimeoutRead : public ProgressiveReader { +class ProgressiveTimeoutReader : public ProgressiveReader { public: - explicit ProgressiveTimeoutRead(Controller* cntl, ProgressiveReader* reader): - _cntl(cntl), _reader(reader), _timeout_id(0), _latest_add_timer_ms(0), _add_timer_delay_ms(1000) { + explicit ProgressiveTimeoutReader(SocketId id, int32_t read_timeout_ms, ProgressiveReader* reader): + _socket_id(id), + _read_timeout_ms(read_timeout_ms), + _reader(reader), + _timeout_id(0), + _latest_add_timer_ms(0), + _add_timer_delay_ms(1000), + _is_read_timeout(false) { AddIdleReadTimeoutMonitor(); } butil::Status OnReadOnePart(const void* data, size_t length) { @@ -187,28 +193,45 @@ class ProgressiveTimeoutRead : public ProgressiveReader { return status; } void OnEndOfMessage(const butil::Status& status) { - _reader->OnEndOfMessage(status); + if (_is_read_timeout) { + _reader->OnEndOfMessage(butil::Status(ECONNRESET, "The progressive read timeout")); + } else { + _reader->OnEndOfMessage(status); + } if(_timeout_id > 0) { bthread_timer_del(_timeout_id); } } + + SocketId GetSocketId() { + return _socket_id; + } + + int32_t read_timeout_ms() { + return _read_timeout_ms; + } + + void set_read_timeout(bool read_timeout = true) { + _is_read_timeout = read_timeout; + } + private: void AddToTimer() { if (_timeout_id > 0) { bthread_timer_del(_timeout_id); } bthread_timer_add(&_timeout_id, - butil::milliseconds_from_now(_cntl->progressive_read_timeout_ms()), + butil::milliseconds_from_now(_read_timeout_ms), Controller::HandleIdleProgressiveReader, - _cntl + this ); } void AddIdleReadTimeoutMonitor() { - if (_cntl->progressive_read_timeout_ms() <= 0) { + if (_read_timeout_ms <= 0) { return; } - if(_cntl->progressive_read_timeout_ms() < _add_timer_delay_ms) { + if(_read_timeout_ms < _add_timer_delay_ms) { AddToTimer(); return; } @@ -221,13 +244,15 @@ class ProgressiveTimeoutRead : public ProgressiveReader { } private: - Controller* _cntl; + SocketId _socket_id; + int32_t _read_timeout_ms; ProgressiveReader* _reader; // Timer registered to trigger progressive timeout event bthread_timer_t _timeout_id; int64_t _latest_add_timer_ms; // avoid frequently add timer for idle handler int32_t _add_timer_delay_ms; + bool _is_read_timeout; }; static IgnoreAllRead* s_ignore_all_read = NULL; @@ -1098,47 +1123,37 @@ void Controller::HandleIdleProgressiveReader(void* arg) { LOG(ERROR) << "Controller::HandleIdleProgressiveReader arg is null."; return; } - auto* cntl = static_cast(arg); + ProgressiveTimeoutReader* reader = static_cast(arg); + SocketUniquePtr s; + if (Socket::Address(reader->GetSocketId(), &s) != 0) { + LOG(ERROR) << "not found the socket id : " << reader->GetSocketId(); + return; + } auto log_idle = FLAGS_log_idle_progressive_read_close; - int64_t progressive_read_timeout_us = cntl->_progressive_read_timeout_ms * 1000; - std::vector remove_socket_ids; - butil::AutoLock guard(cntl->_progressive_read_lock); - auto socketIds = cntl->_checking_progressive_read_fds; - for (auto socket_id : socketIds){ - SocketUniquePtr s; - if (Socket::Address(socket_id, &s) == 0) { - int64_t pre_idle_duration_us = 0; - int64_t idle_duration_us = butil::cpuwide_time_us() - s->last_active_time_us(); - while (progressive_read_timeout_us > idle_duration_us && idle_duration_us > pre_idle_duration_us) { - auto sleep_ms = (progressive_read_timeout_us - idle_duration_us) / 1000; - bthread_usleep(sleep_ms > 0 ? sleep_ms : 1); - pre_idle_duration_us = idle_duration_us; - idle_duration_us = butil::cpuwide_time_us() - s->last_active_time_us(); - } - if (idle_duration_us <= pre_idle_duration_us) { - LOG_IF(INFO, log_idle) << "stop pgressive read timeout checking process!" - << " progressive_read_timeout_us : " << progressive_read_timeout_us - << " idle_duration_us : " << idle_duration_us - << " pre_idle_duration_us : " << pre_idle_duration_us; - return; - } - LOG_IF(INFO, log_idle) << "progressive read timeout socket id : " << socket_id - << " progressive read timeout us : " << progressive_read_timeout_us - << " progressive read idle duration : " << idle_duration_us; - if (s->parsing_context() != NULL) { - s->parsing_context()->Destroy(); - } - s->ReleaseReferenceIfIdle(0); - cntl->CloseConnection("progressive read timeout"); - remove_socket_ids.push_back(socket_id); - } else { - LOG(ERROR) << "not found the socket id : " << socket_id; - remove_socket_ids.push_back(socket_id); - } + int64_t progressive_read_timeout_us = reader->read_timeout_ms() * 1000; + int64_t pre_idle_duration_us = 0; + int64_t idle_duration_us = butil::cpuwide_time_us() - s->last_active_time_us(); + while (progressive_read_timeout_us > idle_duration_us && idle_duration_us > pre_idle_duration_us) { + auto sleep_ms = (progressive_read_timeout_us - idle_duration_us) / 1000; + bthread_usleep(sleep_ms > 0 ? sleep_ms : 1); + pre_idle_duration_us = idle_duration_us; + idle_duration_us = butil::cpuwide_time_us() - s->last_active_time_us(); + } + if (idle_duration_us <= pre_idle_duration_us) { + LOG_IF(INFO, log_idle) << "stop progressive read timeout checking process!" + << " progressive_read_timeout_us : " << progressive_read_timeout_us + << " idle_duration_us : " << idle_duration_us + << " pre_idle_duration_us : " << pre_idle_duration_us; + return; } - for (auto remove_socket_id : remove_socket_ids) { - socketIds.erase(remove_socket_id); + reader->set_read_timeout(); + LOG_IF(INFO, log_idle) << "progressive read timeout socket id : " << reader->GetSocketId() + << " progressive read timeout us : " << progressive_read_timeout_us + << " progressive read idle duration : " << idle_duration_us; + if (s->parsing_context() != NULL) { + s->parsing_context()->Destroy(); } + s->ReleaseReferenceIfIdle(0); } void Controller::HandleSendFailed() { @@ -1293,11 +1308,6 @@ void Controller::IssueRPC(int64_t start_realtime_us) { // Tag the socket so that when the response comes back, the parser will // stop before reading all body. _current_call.sending_sock->read_will_be_progressive(_connection_type); - auto socket_id = _current_call.sending_sock->id(); - butil::AutoLock guard(_progressive_read_lock); - if (_progressive_read_timeout_ms > 0 && _checking_progressive_read_fds.seek(socket_id) == NULL) { - _checking_progressive_read_fds.insert(socket_id); - } } // Handle authentication @@ -1662,7 +1672,8 @@ void Controller::ReadProgressiveAttachmentBy(ProgressiveReader* r) { } add_flag(FLAGS_PROGRESSIVE_READER); if (progressive_read_timeout_ms() > 0) { - return _rpa->ReadProgressiveAttachmentBy(new ProgressiveTimeoutRead(this, r)); + auto reader = new ProgressiveTimeoutReader(_rpa->GetSocketId(), _progressive_read_timeout_ms, r); + return _rpa->ReadProgressiveAttachmentBy(reader); } return _rpa->ReadProgressiveAttachmentBy(r); } diff --git a/src/brpc/controller.h b/src/brpc/controller.h index 8c82a41496..f2d9f01fd3 100644 --- a/src/brpc/controller.h +++ b/src/brpc/controller.h @@ -842,8 +842,6 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); int32_t _connect_timeout_ms; int32_t _backup_request_ms; int32_t _progressive_read_timeout_ms; - butil::FlatSet _checking_progressive_read_fds; - mutable butil::Lock _progressive_read_lock; // Priority: `_backup_request_policy' > `_backup_request_ms'. BackupRequestPolicy* _backup_request_policy; // If this rpc call has retry/backup request,this var save the real timeout for current call diff --git a/src/brpc/policy/http_rpc_protocol.cpp b/src/brpc/policy/http_rpc_protocol.cpp index 872c2897cc..d4dea9efb9 100644 --- a/src/brpc/policy/http_rpc_protocol.cpp +++ b/src/brpc/policy/http_rpc_protocol.cpp @@ -1197,6 +1197,7 @@ ParseResult ParseHttpMessage(butil::IOBuf *source, Socket *socket, LOG(FATAL) << "Fail to new HttpContext"; return MakeParseError(PARSE_ERROR_NO_RESOURCE); } + http_imsg->SetSocketId(socket->id()); // Parsing http is costly, parsing an incomplete http message from the // beginning repeatedly should be avoided, otherwise the cost may reach // O(n^2) in the worst case. Save incomplete http messages in sockets diff --git a/src/brpc/policy/http_rpc_protocol.h b/src/brpc/policy/http_rpc_protocol.h index bc8bd06593..ee0c7924c6 100644 --- a/src/brpc/policy/http_rpc_protocol.h +++ b/src/brpc/policy/http_rpc_protocol.h @@ -87,6 +87,14 @@ class HttpContext : public ReadableProgressiveAttachment , public InputMessageBase , public HttpMessage { public: + SocketId GetSocketId() override { + return _socket_id; + } + + void SetSocketId(SocketId id) override { + _socket_id = id; + } + explicit HttpContext(bool read_body_progressively, HttpMethod request_method = HTTP_METHOD_GET) : InputMessageBase() @@ -122,6 +130,7 @@ class HttpContext : public ReadableProgressiveAttachment private: bool _is_stage2; + SocketId _socket_id; }; // Implement functions required in protocol.h diff --git a/src/brpc/progressive_reader.h b/src/brpc/progressive_reader.h index 6f54ae68a7..799d996fdf 100644 --- a/src/brpc/progressive_reader.h +++ b/src/brpc/progressive_reader.h @@ -20,6 +20,7 @@ #define BRPC_PROGRESSIVE_READER_H #include "brpc/shared_object.h" +#include "brpc/socket.h" namespace brpc { @@ -84,6 +85,8 @@ class ReadableProgressiveAttachment : public SharedObject { // Any error occurred should destroy the reader by calling r->Destroy(). // r->Destroy() should be guaranteed to be called once and only once. virtual void ReadProgressiveAttachmentBy(ProgressiveReader* r) = 0; + virtual SocketId GetSocketId() = 0; + virtual void SetSocketId(SocketId id) = 0; }; } // namespace brpc From 8830eab09fcb8b25162c06b0d8c16106e6edaf5c Mon Sep 17 00:00:00 2001 From: Chuang Zhang Date: Sat, 6 Dec 2025 00:10:51 +0800 Subject: [PATCH 05/45] Prog read timeout dev merge (#4) * change the timeout checker bthread to timer bthread * refine ProgressiveReadTimeoutReader class hold SocketId and read_timeout_ms fields * refine socektId access method, change HandleIdleProgressiveReader belong and logic --- src/brpc/controller.cpp | 112 +++++++++------------------- src/brpc/controller.h | 1 - src/brpc/policy/http_rpc_protocol.h | 5 +- src/brpc/progressive_reader.h | 1 - 4 files changed, 38 insertions(+), 81 deletions(-) diff --git a/src/brpc/controller.cpp b/src/brpc/controller.cpp index a6f026761b..84d979d5ae 100644 --- a/src/brpc/controller.cpp +++ b/src/brpc/controller.cpp @@ -182,16 +182,20 @@ class ProgressiveTimeoutReader : public ProgressiveReader { _read_timeout_ms(read_timeout_ms), _reader(reader), _timeout_id(0), - _latest_add_timer_ms(0), - _add_timer_delay_ms(1000), _is_read_timeout(false) { AddIdleReadTimeoutMonitor(); } + + ~ProgressiveTimeoutReader() { + if(_timeout_id > 0) { + bthread_timer_del(_timeout_id); + } + } + butil::Status OnReadOnePart(const void* data, size_t length) { - auto status = _reader->OnReadOnePart(data, length); - AddIdleReadTimeoutMonitor(); - return status; + return _reader->OnReadOnePart(data, length); } + void OnEndOfMessage(const butil::Status& status) { if (_is_read_timeout) { _reader->OnEndOfMessage(butil::Status(ECONNRESET, "The progressive read timeout")); @@ -200,47 +204,40 @@ class ProgressiveTimeoutReader : public ProgressiveReader { } if(_timeout_id > 0) { bthread_timer_del(_timeout_id); + _timeout_id = 0; } } - SocketId GetSocketId() { - return _socket_id; - } - - int32_t read_timeout_ms() { - return _read_timeout_ms; - } - - void set_read_timeout(bool read_timeout = true) { - _is_read_timeout = read_timeout; - } - private: - void AddToTimer() { - if (_timeout_id > 0) { - bthread_timer_del(_timeout_id); - } - bthread_timer_add(&_timeout_id, - butil::milliseconds_from_now(_read_timeout_ms), - Controller::HandleIdleProgressiveReader, - this - ); - } - - void AddIdleReadTimeoutMonitor() { - if (_read_timeout_ms <= 0) { + static void HandleIdleProgressiveReader(void* arg) { + if(arg == nullptr){ + LOG(ERROR) << "Controller::HandleIdleProgressiveReader arg is null."; return; } - if(_read_timeout_ms < _add_timer_delay_ms) { - AddToTimer(); + ProgressiveTimeoutReader* reader = static_cast(arg); + SocketUniquePtr s; + if (Socket::Address(reader->_socket_id, &s) != 0) { + LOG(ERROR) << "not found the socket id : " << reader->_socket_id; return; } - auto current_ms = butil::cpuwide_time_ms(); - if (current_ms - _latest_add_timer_ms < _add_timer_delay_ms) { + auto log_idle = FLAGS_log_idle_progressive_read_close; + reader->_is_read_timeout = true; + LOG_IF(INFO, log_idle) << "progressive read timeout socket id : " << reader->_socket_id + << " progressive read timeout us : " << reader->_read_timeout_ms; + if (s->parsing_context() != NULL) { + s->parsing_context()->Destroy(); + } + s->ReleaseReferenceIfIdle(0); + } + void AddIdleReadTimeoutMonitor() { + if (_read_timeout_ms <= 0) { return; } - _latest_add_timer_ms = current_ms; - AddToTimer(); + bthread_timer_add(&_timeout_id, + butil::milliseconds_from_now(_read_timeout_ms), + HandleIdleProgressiveReader, + this + ); } private: @@ -249,10 +246,7 @@ class ProgressiveTimeoutReader : public ProgressiveReader { ProgressiveReader* _reader; // Timer registered to trigger progressive timeout event bthread_timer_t _timeout_id; - int64_t _latest_add_timer_ms; - // avoid frequently add timer for idle handler - int32_t _add_timer_delay_ms; - bool _is_read_timeout; + butil::atomic _is_read_timeout; }; static IgnoreAllRead* s_ignore_all_read = NULL; @@ -341,6 +335,7 @@ void Controller::ResetPods() { _backup_request_ms = UNSET_MAGIC_NUM; _backup_request_policy = NULL; _connect_timeout_ms = UNSET_MAGIC_NUM; + _progressive_read_timeout_ms = UNSET_MAGIC_NUM; _real_timeout_ms = UNSET_MAGIC_NUM; _deadline_us = -1; _timeout_id = 0; @@ -1118,43 +1113,6 @@ void Controller::SubmitSpan() { _span = NULL; } -void Controller::HandleIdleProgressiveReader(void* arg) { - if(arg == nullptr){ - LOG(ERROR) << "Controller::HandleIdleProgressiveReader arg is null."; - return; - } - ProgressiveTimeoutReader* reader = static_cast(arg); - SocketUniquePtr s; - if (Socket::Address(reader->GetSocketId(), &s) != 0) { - LOG(ERROR) << "not found the socket id : " << reader->GetSocketId(); - return; - } - auto log_idle = FLAGS_log_idle_progressive_read_close; - int64_t progressive_read_timeout_us = reader->read_timeout_ms() * 1000; - int64_t pre_idle_duration_us = 0; - int64_t idle_duration_us = butil::cpuwide_time_us() - s->last_active_time_us(); - while (progressive_read_timeout_us > idle_duration_us && idle_duration_us > pre_idle_duration_us) { - auto sleep_ms = (progressive_read_timeout_us - idle_duration_us) / 1000; - bthread_usleep(sleep_ms > 0 ? sleep_ms : 1); - pre_idle_duration_us = idle_duration_us; - idle_duration_us = butil::cpuwide_time_us() - s->last_active_time_us(); - } - if (idle_duration_us <= pre_idle_duration_us) { - LOG_IF(INFO, log_idle) << "stop progressive read timeout checking process!" - << " progressive_read_timeout_us : " << progressive_read_timeout_us - << " idle_duration_us : " << idle_duration_us - << " pre_idle_duration_us : " << pre_idle_duration_us; - return; - } - reader->set_read_timeout(); - LOG_IF(INFO, log_idle) << "progressive read timeout socket id : " << reader->GetSocketId() - << " progressive read timeout us : " << progressive_read_timeout_us - << " progressive read idle duration : " << idle_duration_us; - if (s->parsing_context() != NULL) { - s->parsing_context()->Destroy(); - } - s->ReleaseReferenceIfIdle(0); -} void Controller::HandleSendFailed() { if (!FailedInline()) { diff --git a/src/brpc/controller.h b/src/brpc/controller.h index f2d9f01fd3..7861b4cb37 100644 --- a/src/brpc/controller.h +++ b/src/brpc/controller.h @@ -162,7 +162,6 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); uint64_t log_id; std::string request_id; }; - static void HandleIdleProgressiveReader(void* arg); public: Controller(); Controller(const Inheritable& parent_ctx); diff --git a/src/brpc/policy/http_rpc_protocol.h b/src/brpc/policy/http_rpc_protocol.h index ee0c7924c6..2b2e9296ab 100644 --- a/src/brpc/policy/http_rpc_protocol.h +++ b/src/brpc/policy/http_rpc_protocol.h @@ -91,7 +91,7 @@ class HttpContext : public ReadableProgressiveAttachment return _socket_id; } - void SetSocketId(SocketId id) override { + void SetSocketId(SocketId id) { _socket_id = id; } @@ -99,7 +99,8 @@ class HttpContext : public ReadableProgressiveAttachment HttpMethod request_method = HTTP_METHOD_GET) : InputMessageBase() , HttpMessage(read_body_progressively, request_method) - , _is_stage2(false) { + , _is_stage2(false) + , _socket_id(0) { // add one ref for Destroy butil::intrusive_ptr(this).detach(); } diff --git a/src/brpc/progressive_reader.h b/src/brpc/progressive_reader.h index 799d996fdf..860068e2e6 100644 --- a/src/brpc/progressive_reader.h +++ b/src/brpc/progressive_reader.h @@ -86,7 +86,6 @@ class ReadableProgressiveAttachment : public SharedObject { // r->Destroy() should be guaranteed to be called once and only once. virtual void ReadProgressiveAttachmentBy(ProgressiveReader* r) = 0; virtual SocketId GetSocketId() = 0; - virtual void SetSocketId(SocketId id) = 0; }; } // namespace brpc From 6f301da89761400ee86e4c1ccbf00c214f04840d Mon Sep 17 00:00:00 2001 From: Chuang Zhang Date: Wed, 10 Dec 2025 09:33:51 +0800 Subject: [PATCH 06/45] Prog read timeout dev (#5) * change the timeout checker bthread to timer bthread * refine ProgressiveReadTimeoutReader class hold SocketId and read_timeout_ms fields * refine socektId access method, change HandleIdleProgressiveReader belong and logic --- src/brpc/controller.cpp | 2 +- src/brpc/errno.proto | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/brpc/controller.cpp b/src/brpc/controller.cpp index 84d979d5ae..f4a813c87f 100644 --- a/src/brpc/controller.cpp +++ b/src/brpc/controller.cpp @@ -198,7 +198,7 @@ class ProgressiveTimeoutReader : public ProgressiveReader { void OnEndOfMessage(const butil::Status& status) { if (_is_read_timeout) { - _reader->OnEndOfMessage(butil::Status(ECONNRESET, "The progressive read timeout")); + _reader->OnEndOfMessage(butil::Status(EPROGREADTIMEOUT, "The progressive read timeout")); } else { _reader->OnEndOfMessage(status); } diff --git a/src/brpc/errno.proto b/src/brpc/errno.proto index 26ffadc201..45e0c00568 100644 --- a/src/brpc/errno.proto +++ b/src/brpc/errno.proto @@ -41,7 +41,8 @@ enum Errno { ESSL = 1016; // SSL related error EH2RUNOUTSTREAMS = 1017; // The H2 socket was run out of streams EREJECT = 1018; // The Request is rejected - + EPROGREADTIMEOUT = 1019; // The Progressive read timeout + // Errno caused by server EINTERNAL = 2001; // Internal Server Error ERESPONSE = 2002; // Bad Response From bad9a84202981bdd8cd4e290ecf5e80c7bf6e50c Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Tue, 21 Jul 2026 16:37:34 +0800 Subject: [PATCH 07/45] Add UrmaTransport: URMA-based remote memory transport with CI mock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a fourth transport (SOCKET_MODE_URMA) that uses openEuler's URMA (Unified Remote Memory Access) SDK for remote-memory RPC, modeled on the existing RdmaTransport design. Targets super-node (UB-bus-interconnected) clusters as Route B of #3217, complementing the OBMM-based UBRing transport (Route C double-backend) for large-packet / cross-node paths. Design (mirrors RdmaTransport / UBShmTransport): - UrmaTransport + urma::UrmaEndpoint two-layer structure - Tri-state URMA_ON/OFF/UNKNOWN with TCP fallback - Dual-plane handshake (TCP control + URMA data), v2 binary / v3 protobuf - Dual-window credit flow control, URMA_OPC_SEND send path, JFC poll recv - import_seg-before-import_jetty (TP routing fix, per yalantinglibs) - Dedicated buffer pool (mmap + urma_register_seg, IOBuf allocator swap) CI without URMA hardware: - Bundled link-time mock (src/brpc/urma/mock_urma.cpp), modeled on Mooncake's mock_urma.cpp, provides fake urma_* symbols when liburma is absent - CMake falls back to the mock (URMA_USE_MOCK=1) instead of FATAL_ERROR - brpc_urma_unittest covers handshake wire-format, state machine, fallback, and mock init/post/poll smoke tests Referenced implementations: - yalantinglibs urma_socket.hpp (event mode, buffer pool, import order) - ubs-comm UrmaApi dlopen bindings + RAII wrappers - Mooncake mock_urma.cpp (mock pattern) Proposal: docs/cn/urma_proposal.md (with mermaid diagrams + mock design §7.1) --- CMakeLists.txt | 42 +- docs/cn/urma.md | 148 +++ docs/cn/urma_proposal.md | 528 +++++++++ docs/en/urma.md | 158 +++ example/urma_performance/CMakeLists.txt | 134 +++ example/urma_performance/client.cpp | 112 ++ example/urma_performance/server.cpp | 90 ++ example/urma_performance/test.proto | 33 + src/brpc/channel.h | 3 +- src/brpc/input_messenger.h | 4 + src/brpc/server.h | 4 +- src/brpc/socket_mode.h | 3 +- src/brpc/transport_factory.cpp | 11 + src/brpc/urma/mock_urma.cpp | 607 ++++++++++ src/brpc/urma/urma_api.h | 1147 ++++++++++++++++++ src/brpc/urma/urma_endpoint.cpp | 1162 ++++++++++++++++++ src/brpc/urma/urma_endpoint.h | 341 ++++++ src/brpc/urma/urma_handshake.cpp | 293 +++++ src/brpc/urma/urma_handshake.h | 171 +++ src/brpc/urma/urma_handshake.proto | 47 + src/brpc/urma/urma_helper.cpp | 584 +++++++++ src/brpc/urma/urma_helper.h | 101 ++ src/brpc/urma/urma_opcode.h | 260 +++++ src/brpc/urma/urma_types.h | 1430 +++++++++++++++++++++++ src/brpc/urma_transport.cpp | 242 ++++ src/brpc/urma_transport.h | 84 ++ test/brpc_urma_unittest.cpp | 380 ++++++ 27 files changed, 8113 insertions(+), 6 deletions(-) create mode 100644 docs/cn/urma.md create mode 100644 docs/cn/urma_proposal.md create mode 100644 docs/en/urma.md create mode 100644 example/urma_performance/CMakeLists.txt create mode 100644 example/urma_performance/client.cpp create mode 100644 example/urma_performance/server.cpp create mode 100644 example/urma_performance/test.proto create mode 100644 src/brpc/urma/mock_urma.cpp create mode 100644 src/brpc/urma/urma_api.h create mode 100644 src/brpc/urma/urma_endpoint.cpp create mode 100644 src/brpc/urma/urma_endpoint.h create mode 100644 src/brpc/urma/urma_handshake.cpp create mode 100644 src/brpc/urma/urma_handshake.h create mode 100644 src/brpc/urma/urma_handshake.proto create mode 100644 src/brpc/urma/urma_helper.cpp create mode 100644 src/brpc/urma/urma_helper.h create mode 100644 src/brpc/urma/urma_opcode.h create mode 100644 src/brpc/urma/urma_types.h create mode 100644 src/brpc/urma_transport.cpp create mode 100644 src/brpc/urma_transport.h create mode 100644 test/brpc_urma_unittest.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 77703a4661..b7be38deab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,7 @@ option(WITH_THRIFT "With thrift framed protocol supported" OFF) option(WITH_BTHREAD_TRACER "With bthread tracer supported" OFF) option(WITH_SNAPPY "With snappy" OFF) option(WITH_RDMA "With RDMA" OFF) +option(WITH_URMA "With URMA (openEuler Unified Remote Memory Access)" OFF) option(WITH_DEBUG_BTHREAD_SCHE_SAFETY "With debugging bthread sche safety" OFF) option(WITH_DEBUG_LOCK "With debugging lock" OFF) option(WITH_ASAN "With AddressSanitizer" OFF) @@ -104,6 +105,11 @@ if(WITH_RDMA) set(WITH_RDMA_VAL "1") endif() +set(WITH_URMA_VAL "0") +if(WITH_URMA) + set(WITH_URMA_VAL "1") +endif() + set(WITH_DEBUG_BTHREAD_SCHE_SAFETY_VAL "0") if(WITH_DEBUG_BTHREAD_SCHE_SAFETY) set(WITH_DEBUG_BTHREAD_SCHE_SAFETY_VAL "1") @@ -136,7 +142,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -Wno-deprecated-declarations -Wno-inconsistent-missing-override") endif() -set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} ${DEFINE_CLOCK_GETTIME} -DBRPC_WITH_GLOG=${WITH_GLOG_VAL} -DBRPC_WITH_RDMA=${WITH_RDMA_VAL} -DBRPC_DEBUG_BTHREAD_SCHE_SAFETY=${WITH_DEBUG_BTHREAD_SCHE_SAFETY_VAL} -DBRPC_DEBUG_LOCK=${WITH_DEBUG_LOCK_VAL}") +set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} ${DEFINE_CLOCK_GETTIME} -DBRPC_WITH_GLOG=${WITH_GLOG_VAL} -DBRPC_WITH_RDMA=${WITH_RDMA_VAL} -DBRPC_WITH_URMA=${WITH_URMA_VAL} -DBRPC_DEBUG_BTHREAD_SCHE_SAFETY=${WITH_DEBUG_BTHREAD_SCHE_SAFETY_VAL} -DBRPC_DEBUG_LOCK=${WITH_DEBUG_LOCK_VAL}") if (WITH_ASAN) set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -fsanitize=address") set(CMAKE_C_FLAGS "${CMAKE_CPP_FLAGS} -fsanitize=address") @@ -270,6 +276,22 @@ if(WITH_RDMA) endif() endif() +if(WITH_URMA) + message("brpc compile with urma") + # Try to find the real liburma. If it is not installed, fall back to the + # bundled mock (src/brpc/urma/mock_urma.cpp) so CI can build and test + # UrmaTransport on hosts without URMA hardware. The mock provides + # link-time stubs of every urma_* symbol the transport calls. + find_library(URMA_LIB NAMES urma) + if(URMA_LIB) + message(STATUS "Found liburma: ${URMA_LIB}") + set(URMA_USE_MOCK 0) + else() + message(WARNING "liburma not found; building UrmaTransport with the bundled mock (no real URMA hardware).") + set(URMA_USE_MOCK 1) + endif() +endif() + find_library(PROTOC_LIB NAMES protoc) if(NOT PROTOC_LIB) message(FATAL_ERROR "Fail to find protoc lib") @@ -322,6 +344,13 @@ if(WITH_RDMA) list(APPEND DYNAMIC_LIB ${RDMA_LIB}) endif() +if(WITH_URMA) + message(STATUS "brpc compile with urma (mock=${URMA_USE_MOCK})") + if(NOT URMA_USE_MOCK) + list(APPEND DYNAMIC_LIB ${URMA_LIB}) + endif() +endif() + set(BRPC_PRIVATE_LIBS "-lgflags -lprotobuf -lleveldb -lprotoc -lssl -lcrypto -ldl -lz") if(WITH_GLOG) @@ -509,6 +538,14 @@ file(GLOB_RECURSE BRPC_SOURCES "${PROJECT_SOURCE_DIR}/src/brpc/*.cpp") file(GLOB_RECURSE THRIFT_SOURCES "${PROJECT_SOURCE_DIR}/src/brpc/thrift*.cpp") file(GLOB_RECURSE EXCLUDE_SOURCES "${PROJECT_SOURCE_DIR}/src/brpc/event_dispatcher_*.cpp") +# When building with the real liburma, exclude the bundled mock so its urma_* +# symbols do not clash with the library. When liburma is absent, keep it so CI +# can build/test UrmaTransport without URMA hardware. +if(WITH_URMA AND NOT URMA_USE_MOCK) + list(REMOVE_ITEM BRPC_SOURCES + "${PROJECT_SOURCE_DIR}/src/brpc/urma/mock_urma.cpp") +endif() + if(WITH_THRIFT) message("brpc compile with thrift protocol") else() @@ -548,7 +585,8 @@ set(PROTO_FILES idl_options.proto brpc/policy/mongo.proto brpc/trackme.proto brpc/streaming_rpc_meta.proto - brpc/proto_base.proto) + brpc/proto_base.proto + brpc/urma/urma_handshake.proto) file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/output/include/brpc) set(PROTOC_FLAGS ${PROTOC_FLAGS} -I${PROTOBUF_INCLUDE_DIR}) compile_proto(PROTO_HDRS PROTO_SRCS ${PROJECT_BINARY_DIR} diff --git a/docs/cn/urma.md b/docs/cn/urma.md new file mode 100644 index 0000000000..6dbd64e634 --- /dev/null +++ b/docs/cn/urma.md @@ -0,0 +1,148 @@ +# UrmaTransport:基于 URMA 的远程内存 RPC + +UrmaTransport 是使用 openEuler +[URMA](https://atomgit.com/openeuler/umdk)(Unified Remote Memory Access)SDK +实现的传输层。它是 +[#3217](https://github.com/apache/brpc/discussions/3217) 中提出的路线 B, +与基于 OBMM 的 UBRing 传输(路线 A, +[#3226](https://github.com/apache/brpc/issues/3226))互补,承担大包/跨节点 +高吞吐场景,共同构成路线 C(双后端)。 + +## 技术背景 + +URMA 在 RoCE v2、InfiniBand、PCIe P2P 之上提供统一的 verbs 风格接口 +(`urma_post_send` / `urma_post_recv`)。与 RC-RDMA 不同,URMA 采用 +**无连接 UM(Unreliable Datagram)语义**,驱动内置重传:单个 Jetty 即可 +寻址 N 个远端,避免了 RC-RDMA 在千节点规模下的 QP 爆炸问题。一个 Jetty +聚合了发送队列(JFS)、接收队列(JFR,可共享)和完成队列(JFC,可由 JFCE +事件 fd 支持)。 + +在超节点(UB 总线互联的集群)场景下,相较 RDMA 的优势: + +- **无 QP 爆炸**:O(N) 个 Jetty 替代 O(N×线程数) 个 QP。 +- **统一语义**:一套 API 覆盖 RoCE/IB/PCIe P2P(未来可平滑切换 CXL)。 +- **硬件流控**:Jetty 级信用替代 PFC/ECN。 +- **性能对标 RDMA**:RoCE 上单跳 ~2-5μs。 + +## 编译配置 + +### CMake 编译 + +```bash +# 带 URMA 支持编译 brpc(需要已安装 liburma) +cmake -B build -DWITH_URMA=ON +make -C build -j$(nproc) + +# 编译 urma_performance 示例 +cd example/urma_performance +cmake -B build +make -C build -j$(nproc) +``` + +`WITH_URMA=ON` 注入 `-DBRPC_WITH_URMA=1` 并链接 `liburma`。关闭时所有 +URMA 源码编译为空 stub(与 RDMA / UBRing 一致),非 URMA 构建保持干净。 + +## 使用 + +通过在 channel / server 上设置 `socket_mode` 选择传输层: + +```cpp +// 客户端 +brpc::ChannelOptions opt; +opt.socket_mode = brpc::SOCKET_MODE_URMA; +opt.protocol = "baidu_std"; // URMA 仅支持 baidu_std +brpc::Channel channel; +channel.Init("127.0.0.1:8003", &opt); + +// 服务端 +brpc::ServerOptions sopt; +sopt.socket_mode = brpc::SOCKET_MODE_URMA; +server.Start(port, &sopt); +``` + +若对端不支持 URMA(例如 TCP 客户端连接 URMA 服务端),在 4 字节 magic +握手后透明回退到 TCP,应用代码无需改动。 + +## 架构 + +UrmaTransport 沿用与 `RdmaTransport` / `UBShmTransport` 一致的两层设计: + +``` +UrmaTransport : public Transport (urma_transport.{h,cpp}) + +-- std::shared_ptr (回退路径) + +-- urma::UrmaEndpoint* (URMA 数据路径) + +-- UrmaState { URMA_ON, URMA_OFF, URMA_UNKNOWN } + +urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.{h,cpp}) + +-- UrmaResource { jfc, jfce, jfr, jetty, remote_jetty, remote_seg } + +-- 握手状态机(C/S 对称,在 TCP fd 上驱动) + +-- 发送路径:urma_post_jetty_send_wr(URMA_OPC_SEND) + +-- 接收路径:urma_poll_jfc -> HandleCompletion -> InputMessenger + +-- 双窗口信用流控(_remote_rq_window / _sq_window) +``` + +### 建链流程(双平面) + +与 RDMA / UBRing 一致,控制面为 TCP,数据面为 URMA: + +1. TCP 连接建立。 +2. `UrmaConnect::StartConnect` 起客户端握手 bthread。 +3. 双方在 TCP fd 上交换 `UrmaHello` 消息(v2 二进制 magic `URMA`, + v3 protobuf magic `URM3`),携带本地 EID、jetty id、recv buffer 数量、 + 以及扁平化的 buffer 池 segment。 +4. 双方先调用 `urma_import_seg` **再**调用 `urma_import_jetty`,为远端 EID + 建立传输路径(TP)路由。跳过 `import_seg` 会导致首个 SEND 被硬件以 + `URMA_CR_RNR_RETRY_CNT_EXC_ERR` 拒绝。 +5. 4 字节 ACK(`HELLO_ACK_URMA_OK = 0x1`)确认双方均要 URMA。 +6. 成功后 TCP fd 仅保留用于 epoll 生命周期和回退,数据走 URMA。 + +### 内存管理 + +申请一大段 `mmap` 内存,用 `urma_register_seg` 一次性注册,再切成固定大小 +buffer(默认 8KB)。劫持 `butil::iobuf::blockmem_allocate` 使每个 IOBuf +block 都由注册 segment 支撑,发送路径可直接从 IOBuf block refs 构建 +`urma_sge_t`,无需逐消息注册(与 RDMA `block_pool` 设计一致)。用户注册 +内存通过 `urma::RegisterMemoryForUrma` / `DeregisterMemoryForUrma` 支持。 + +## 配置 + +所有 flag 使用 `urma_` 前缀(对标 RDMA 的 `rdma_` 前缀): + +| Flag | 默认 | 用途 | +|------|------|------| +| `--urma_use_polling` | false | 轮询 JFC 而非事件模式 | +| `--urma_poller_num` | 1 | 每 bthread tag 的轮询器数(轮询模式) | +| `--urma_disable_bthread` | false | 内联处理消息(不起 bthread) | +| `--urma_sq_size` | 128 | 本地 JFS 深度 [16, 4096] | +| `--urma_rq_size` | 128 | 本地 JFR 深度 [16, 4096] | +| `--urma_cqe_poll_once` | 32 | 每次 `urma_poll_jfc` 的上限 | +| `--urma_recv_zerocopy` | true | 大于 `--urma_zerocopy_min_size` 的接收零拷贝 | +| `--urma_zerocopy_min_size` | 512 | 小于此值的接收拷贝 | +| `--urma_device` | "" | URMA 设备名(空=首个) | +| `--urma_max_sge` | 0 | 每 WR SGE 上限(0=设备上限) | +| `--urma_prepared_jetty_cnt` | 1024 | 预连接 Jetty+CQ 数量 | +| `--urma_buffer_size` | 8192 | 池中每个 buffer 大小(字节) | +| `--urma_buffer_count` | 65536 | 池中 buffer 数量 | +| `--urma_client_handshake_version` | 2 | 客户端握手版本(2=二进制,3=protobuf) | + +## 与 UBRing 协同 + +UrmaTransport 推荐用于**大包和跨节点**高吞吐路径,而 UBRing +(`SOCKET_MODE_UBRING`)对**小包和同机 IPC**最优(亚微秒、零系统调用)。 +混合负载可按服务选择传输层: + +| 场景 | 建议 `socket_mode` | +|------|---------------------| +| 同机 IPC | `SOCKET_MODE_UBRING` | +| 跨节点小包(< 64KB) | `SOCKET_MODE_UBRING`(UBS-Mem)或 `SOCKET_MODE_URMA` | +| 跨节点大包(>= 64KB) | `SOCKET_MODE_URMA` | +| 传统 RoCE/IB 数据中心 | `SOCKET_MODE_URMA` 或 `SOCKET_MODE_RDMA` | + +单连接内按包大小自动分流的方案(路线 C 方案 B)作为后续演进方向。 + +## 限制 + +- 仅支持 `baidu_std` 协议(与 RDMA 一致)。SSL、RTMP、NSHEAD、MONGO 在 + `ContextInitOrDie` 阶段拒绝。 +- 需要 openEuler UB 驱动 + `liburma`。非 UB 平台透明回退 TCP。 +- 仅支持 Linux/openEuler。macOS/Windows 提供空 stub。 diff --git a/docs/cn/urma_proposal.md b/docs/cn/urma_proposal.md new file mode 100644 index 0000000000..459222a47e --- /dev/null +++ b/docs/cn/urma_proposal.md @@ -0,0 +1,528 @@ +# UrmaTransport 提案:基于 openEuler URMA 的远程内存语义传输层 + +> 关联讨论: +> - [#3167 brpc支持传输层多协议改进建议](https://github.com/apache/brpc/issues/3167) —— Socket-Transport 架构改造共识 +> - [#3217 openEuler总线协议 urma 和 obmm 技术路线讨论](https://github.com/apache/brpc/discussions/3217) —— 路线 B(URMA-UrmaTransport)与路线 C(双后端)共识 +> - [#3226 基于UB协议OBMM共享内存Transport方案设计](https://github.com/apache/brpc/issues/3226) —— OBMM/ShmTransport 实现方案 +> +> 本提案对应 #3217 中的**路线 B**,并与 #3226 的 OBMM-ShmTransport 形成**路线 C(双后端协同)**。 + +## 1. 背景与动机 + +### 1.1 现有传输层的局限 + +brpc 当前内置三种传输层(`SOCKET_MODE_TCP` / `SOCKET_MODE_RDMA` / `SOCKET_MODE_UBRING`),均通过 #3167 落地的 `Transport` 抽象接入: + +| 传输层 | 访问语义 | 单跳延迟 | 连接模型 | 适用场景 | +|--------|----------|----------|----------|----------| +| TCP | Socket API(字节流) | ~50μs | 5-tuple | 广域网/局域网 | +| RDMA | Verbs API(异步) | ~2-5μs | RC-QP(每连接一个 QP) | 数据中心,`baidu_std` 协议 | +| UBRing | Load/Store(共享内存) | ~500ns | 共享内存环 | 同机 IPC / UBS-Mem 跨节点 | + +三者各有边界,但在以下场景仍存在缺口: + +1. **RDMA 的 QP 爆炸**:RC 模型下每条逻辑连接占用一个 QP,千级节点规模下 QP 数量达百万级,耗尽网卡片上 SRAM,触发 QP 状态 Cache Miss,延迟从 ~12μs 跳变至 ~300μs。 +2. **RDMA 的控制面/数据面资源争用**:内存注册/注销与数据面竞争网卡内部资源,高并发下性能抖动。 +3. **RDMA 编程模型笨重**:`准备 WQE → Doorbell → 轮询 CQE` 的异步流程在小包(数百字节)场景下,WQE 构建开销占比可达 17.8%。 +4. **UBRing 的跨节点能力受限**:当前跨节点依赖 UBS-Mem(`ub_shm_type=2`),需要额外 `libubsm_sdk.so`;其 64 字节定长分块(60B payload + 4B header)对大包不友好,单消息上限受 `data_queue_size` 约束(超限返回 `EMSGSIZE`)。 +5. **大包/小包协同缺失**:UBRing 对小包极优(亚微秒、零系统调用),但大包要切分成 ~17k 个 64 字节块逐块拷贝;RDMA 对大包友好(直接 SGE 零拷贝),但小包开销高。目前两者各自独立,无法在一个连接内按包大小自动选择最优路径。 + +### 1.2 URMA 是什么 + +[URMA(Unified Remote Memory Access)](https://atomgit.com/openeuler/umdk)是 openEuler 在 UB(Unified Bus)总线上提供的用户态远程内存访问 SDK,核心特性: + +- **无连接 UM(Unreliable Datagram)语义**:驱动内置重传/CRC,可靠且免 RC-QP 爆炸——**单 Jetty 可打 N 个远端**,连接数为 O(N) 而非 O(N×线程数)。 +- **统一内存操作语义**:单边(`URMA_OP_SEND`/`URMA_OP_READ`/`URMA_OP_WRITE`)、双边、原子操作通过同一套 `urma_post_send/recv` API 实现,**RoCE v2 / InfiniBand / PCIe P2P 三种底层统一对接**。 +- **URMA-SHM 模式**:远端映射同一物理页,本机与跨机共享内存统一访问,天然适配 `one2all` 场景。 +- **Jetty 流控**:硬件级流控替代 RDMA 的 PFC/ECN,避免拥塞丢包。 + +性能定位(引用 #3217 实测口径): + +| 技术方案 | 访问方式 | 单跳延迟 | 编程模型 | 缓存一致性 | 适用边界 | +|----------|----------|----------|----------|------------|----------| +| RDMA | Verbs API(异步) | ~2-5μs | Read/Write/Send | 无(需软件同步) | 数据中心 | +| URMA | Segment API(异步) | ~2-5μs | Read/Write | 可选硬件一致性 | 超节点 | +| OBMM | Load/Store | ~几百ns | 直接内存访问 | 可选 NC 和 CC 两种 | 超节点 | + +### 1.3 本提案的目标 + +**面向超节点(UB 总线互联的 CPU/GPU 集群)场景,新增一个 UrmaTransport,作为 RDMA 在 UB 场景的对等替代与升级**: + +1. **性能对标 RDMA**:在 RoCE/IB 底层上达到与现有 `RdmaTransport` 同量级延迟(~2-5μs),并通过 UM 语义消除 QP 爆炸。 +2. **与 UBSHMTransport 大小包协同**:复用 #3226 的 OBMM-ShmTransport 小包极速路径,由 UrmaTransport 承接大包/跨节点高吞吐路径,运行时按包大小与拓扑自动选择(路线 C)。 +3. **复用现有 Transport 框架**:完全沿用 #3167 落地的 `Transport` / `TransportFactory` / `SocketMode` 抽象,不侵入 `Socket`/`InputMessenger`/协议层。 +4. **平滑落地**:参考 `RdmaTransport` 的「compose TcpTransport + tri-state 协商 + TCP fallback」模式,保证未启用/对端不支持时透明回退 TCP。 + +## 2. 总体架构 + +### 2.1 在 brpc 中的位置 + +```mermaid +flowchart TD + subgraph UserAPI["用户接口层"] + CS["Channel / Server
ChannelOptions / ServerOptions
socket_mode = SOCKET_MODE_URMA"] + end + subgraph Factory["TransportFactory (transport_factory.{h,cpp})"] + F["if/else-if on SocketMode
TCP → TcpTransport
RDMA → RdmaTransport #if BRPC_WITH_RDMA
UBRING → UBShmTransport #if BRPC_WITH_UBRING
URMA → UrmaTransport #if BRPC_WITH_URMA ★新增"] + end + subgraph UrmaTransportLayer["UrmaTransport : public Transport (urma_transport.{h,cpp})"] + T["std::shared_ptr<TcpTransport> _tcp_transport (fallback)
urma::UrmaEndpoint* _urma_ep
UrmaState _urma_state {ON / OFF / UNKNOWN}"] + end + subgraph UrmaEndpointLayer["urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.*)"] + E["Jetty / URMA Segment 管理
建链握手状态机(C/S 对称)
数据收发:urma_post_send / urma_post_recv / CQ 轮询
大小包分流:与小包 ShmTransport 协同"] + end + CS -->|"ContextInitOrDie(mode, ...)
CreateTransport(mode)"| F + F --> T + T --> E +``` + +UrmaTransport 与 `RdmaTransport`、`UBShmTransport` 并列为第四种 `Transport` 实现,对外行为完全一致:用户只需把 `socket_mode` 设为 `SOCKET_MODE_URMA`,其余 brpc API(`Channel`/`Server`/`Controller`/`baidu_std` 协议)零改动。 + +### 2.2 核心类设计 + +完全沿用 RDMA/UBShm 已验证的两层结构(Transport + Endpoint),保证代码风格与维护成本对齐: + +| 类 | 文件 | 职责 | 参考 | +|----|------|------|------| +| `brpc::UrmaTransport` | `src/brpc/urma_transport.{h,cpp}` | `Transport` 子类;持有 `UrmaEndpoint*` + fallback `TcpTransport`;三态 `URMA_ON/OFF/UNKNOWN`;`ContextInitOrDie` 校验协议/SSL | `rdma_transport.{h,cpp}` / `ubshm_transport.{h,cpp}` | +| `urma::UrmaEndpoint` | `src/brpc/urma/urma_endpoint.{h,cpp}` | 每连接状态机;`SocketUser` 子类;`BAIDU_CACHELINE_ALIGNMENT`;Jetty/Segment 生命周期;CQ 轮询;收发数据路径 | `rdma/rdma_endpoint.{h,cpp}` | +| `urma::UrmaConnect : public AppConnect` | 同上 | 客户端握手驱动;`StartConnect` 起后台 bthread 跑 `ProcessHandshakeAtClient` | `RdmaConnect` / `UBConnect` | +| `urma::UrmaHandshake` | `src/brpc/urma/urma_handshake.{h,cpp}` | 握手策略基类 + v2/v3 子类;`ParsedHello` 中间结构;magic 分发 | `rdma/rdma_handshake.{h,cpp}` | +| `urma::UrmaResource` | 同 endpoint | POD:`urma_jetty*`、`urma_cq*`、comp channel;预连接池 | `RdmaResource` | +| `urma::BlockPool`(复用) | `src/brpc/rdma/block_pool.{h,cpp}` | 内存注册池;UrmaTransport 复用 RDMA 已有的 `block_pool`(URMA 底层同为 verbs 风格注册) | 现有 | +| `urma::UrmaHelper` | `src/brpc/urma/urma_helper.{h,cpp}` | 全局初始化;`liburma` dlopen;设备/Jetty 管理 | `rdma/rdma_helper.{h,cpp}` | + +**关键设计决策**(与 RDMA 对齐,便于复用与评审): + +1. **Compose TCP,不替换**:`UrmaTransport` 内嵌 `std::shared_ptr`,握手未完成/对端不支持/资源不可用时,所有数据路径方法回退到 TCP,保证现有 RPC 语义不破。 +2. **三态协商**:`URMA_UNKNOWN → URMA_ON / URMA_OFF`,数据路径统一判断 `_urma_state != URMA_OFF`,与 RDMA 的 `RDMA_UNKNOWN/ON/OFF` 完全对称。 +3. **Send/Recv + Immediate**:采用 `URMA_OP_SEND_WITH_IMM`(对应 `IBV_WR_SEND_WITH_IMM`),32-bit immediate 携带 recv-WR ack 数,实现 piggyback 流控,避免额外控制报文。不使用单边 RDMA Write/Read 作为主路径,降低收端预注册缓冲的复杂度。 +4. **双窗口 credit 流控**:`_remote_rq_window_size`(对端 recv 容量)+ `_sq_window_size`(本地 SQ 容量),均为 atomic;窗口耗尽返回 EAGAIN,`WaitEpollOut` 阻塞在 `_epollout_butex`。 +5. **复用 `block_pool` + IOBuf allocator 劫持**:URMA 同为 verbs 风格,需要注册内存。直接复用 `src/brpc/rdma/block_pool.{h,cpp}` 与 `rdma_helper.cpp` 中 `butil::iobuf::blockmem_allocate` 的替换逻辑,避免重复造轮子。若内存池后端需区分,通过 `RegisterCallback` 注入 Urma 版本的 `UrmaRegisterMemory`。 +6. **预连接 Jetty 池**:参考 `FLAGS_rdma_prepared_qp_cnt`(默认 1024),在 `GlobalUrmaInitializeOrDie` 时预分配 Jetty+CQ 集合,连接时从池中取,断开后 RESET 回收。 +7. **dlopen `liburma.so`**:参考 `rdma_helper.cpp::ReadRdmaDynamicLib`,运行时 `dlopen` + `dlsym` 解析 `urma_*` 符号,未启用时 `#else` 提供空 stub,保证非 URMA 构建干净。 + +### 2.3 大小包协同:路线 C 的关键 + +这是本提案相对于 #3226 OBMM 方案的**核心增量价值**。UBShmTransport(#3226)在 64 字节定长块上对小包极优,但对大包存在 `EMSGSIZE` 上限和 ~17k 块拷贝开销。UrmaTransport 通过 URMA 的 SGE 零拷贝对大包友好。两者协同设计: + +```mermaid +flowchart LR + Sock["Socket
(UrmaChannel)"] + Sock -->|"小包 < FLAGS_urma_shm_split_threshold
(默认 64KB)"| Small + Sock -->|"大包 >= threshold"| Large + subgraph Small["小包路径"] + S1["走 UBSHMTransport / OBMM 共享内存
Load/Store,~1μs"] + S2["适用:特征查询、CTR 分数、
控制信令、ANN 倒排"] + S1 --- S2 + end + subgraph Large["大包路径"] + L1["走 UrmaTransport
URMA SGE 零拷贝,~2-5μs,无 EMSGSIZE"] + L2["适用:Embedding 大向量、
模型参数拉取、特征序列化大包"] + L1 --- L2 + end +``` + +**协同实现方式(两选一,倾向方案 A,留待社区讨论)**: + +**方案 A:应用层显式选择(推荐先行落地)** +- 用户在 `ChannelOptions` 中显式为不同服务选择 `socket_mode`:小包服务用 `SOCKET_MODE_UBRING`,大包服务用 `SOCKET_MODE_URMA`。 +- 不引入跨 transport 的连接复用复杂度,符合 brpc「一个 Socket 一种 transport」的既有不变量(见 §3.3 of the RDMA 探索报告:A given Socket is bound to exactly one transport for its lifetime)。 +- 落地快、改动小、可测、可回退。 + +**方案 B:单连接内按包分流(远期演进,本提案不立即实现)** +- 新增 `SOCKET_MODE_HYBRID_UB_URMA`,`HybridTransport` 内部同时持有 `UBShmEndpoint` 与 `UrmaEndpoint`。 +- `CutFromIOBufList` 根据 `IOBuf` 总长度路由:小包走 SHM ring,大包走 URMA send。 +- 需要解决:双 Socket 生命周期、双握手、双 CQ 轮询、`_read_buf` 归并解析、`WaitEpollOut` 双路径唤醒。复杂度高,建议方案 A 稳定后再议。 +- 对应 #3217 路线 C「单后端自动切换」。 + +**本提案先交付方案 A 的 UrmaTransport 主体**,并在文档中明确小包场景建议使用 `SOCKET_MODE_UBRING`(#3226),形成路线 C 的「双后端各司其职」格局。方案 B 作为后续演进方向记录。 + +## 3. 与 brpc 架构的结合 + +### 3.1 Transport 接口实现映射 + +`Transport` 基类(`src/brpc/transport.h`)定义了 10 个纯虚方法。下表给出 `UrmaTransport` 每个方法的实现要点,及其与 `RdmaTransport` 的对应关系: + +| `Transport` 虚方法 | `UrmaTransport` 实现 | RDMA 对照 | +|---|---|---| +| `Init(socket, options)` | 构造 `UrmaEndpoint(socket)`;创建 fallback `TcpTransport`;若 `options.socket_mode == SOCKET_MODE_URMA` 则设 `_on_edge_trigger = urma::UrmaEndpoint::OnNewDataFromTcp` | `RdmaTransport::Init` | +| `Release()` | `delete _urma_ep`;释放 Jetty/CQ 资源回预连接池 | `RdmaTransport::Release` | +| `Reset(expected_nref)` | `UrmaEndpoint::Reset()`:Jetty 置 RESET,CQ drain,状态回 `UNINIT`,窗口计数器归零 | `RdmaEndpoint::Reset` | +| `Connect()` | 返回 `std::make_shared()`(或用户 `_default_connect`) | `RdmaTransport::Connect` | +| `CutFromIOBuf(buf)` | `_urma_ep && _urma_state != OFF` → `_urma_ep->CutFromIOBufList({buf},1)`;否则 `_tcp_transport->CutFromIOBuf(buf)` | `RdmaTransport::CutFromIOBuf` | +| `CutFromIOBufList(bufs,n)` | URMA send 路径:构建 SGE → `urma_post_send` → 窗口扣减;EAGAIN 时返回 -1 | `RdmaEndpoint::CutFromIOBufList` | +| `WaitEpollOut(butex,pollin,dt)` | `URMA_ON` 且 `!IsWritable()` → `butex_wait(_epollout_butex)`;否则委托 TCP。注意 URMA 同样无法靠 write 探测失败,wait 后需重检 `_socket->Failed()` | `RdmaTransport::WaitEpollOut` | +| `ProcessEvent(attr)` | 与 TCP 版本一致:把 `OnEdge(socket)` 调度到 bthread | `RdmaTransport::ProcessEvent` | +| `QueueMessage(msg,n,last)` | 与 TCP 版本一致;尊重 `FLAGS_urma_use_polling`/`FLAGS_urma_disable_bthread` | `RdmaTransport::QueueMessage` | +| `Debug(os)` | 输出 `UrmaEndpoint::DebugInfo`(状态、Jetty、窗口大小、索引) | `RdmaTransport::Debug` | + +数据路径流向(与 RDMA 完全一致,便于评审对照): + +```mermaid +flowchart TD + subgraph Write["写路径"] + W1["Socket::DoWrite"] --> W2["UrmaTransport::CutFromIOBufList"] + W2 --> W3["UrmaEndpoint::CutFromIOBufList"] + W3 --> W4["构建 ibv_sge
(从 IOBuf block refs + block_pool lkey)"] + W4 --> W5["urma_post_send(JETTY,
wr=SEND_WITH_IMM, imm=ack_count)"] + W5 --> W6{"窗口扣减"} + W6 -->|窗口满| W7["EAGAIN -> WaitEpollOut 阻塞"] + end + subgraph Read["读路径"] + R1["URMA CQ comp-channel fd
epoll 触发"] --> R2["Transport::ProcessEvent ->
OnEdge -> _on_edge_trigger"] + R2 --> R3["UrmaEndpoint::PollCq -> ibv_poll_cq"] + R3 --> R4["HandleCompletion"] + R4 -->|"SEND"| R5["回收 SQ 窗口
WakeAsEpollOut"] + R4 -->|"RECV"| R6["cutn 进 _socket->_read_buf
(zerocopy 阈值)"] + R6 --> R7["imm -> 补 _remote_rq_window_size
PostRecv(1) + SendAck(1)"] + R7 --> R8["InputMessenger::ProcessNewMessage
(协议解析与 TCP 完全一致)"] + end +``` + +### 3.2 注册机制(三处改动,完全沿用 RDMA 模板) + +参考探索结论:brpc 无动态注册,新 transport 需改三处: + +1. **`src/brpc/socket_mode.h`** — 新增枚举: +```cpp +enum SocketMode { + SOCKET_MODE_TCP = 0, + SOCKET_MODE_RDMA = 1, + SOCKET_MODE_UBRING = 2, + SOCKET_MODE_URMA = 3 // 新增 +}; +``` + +2. **`src/brpc/transport_factory.cpp`** — 两处 `if/else-if`,`#if BRPC_WITH_URMA` 守卫: +```cpp +int TransportFactory::ContextInitOrDie(SocketMode mode, bool serverOrNot, const void* _options) { + if (mode == SOCKET_MODE_TCP) { return 0; } +#if BRPC_WITH_RDMA + else if (mode == SOCKET_MODE_RDMA) { return RdmaTransport::ContextInitOrDie(serverOrNot, _options); } +#endif +#if BRPC_WITH_UBRING + else if (mode == SOCKET_MODE_UBRING) { return UBShmTransport::ContextInitOrDie(serverOrNot, _options); } +#endif +#if BRPC_WITH_URMA + else if (mode == SOCKET_MODE_URMA) { return UrmaTransport::ContextInitOrDie(serverOrNot, _options); } +#endif + ... +} + +std::unique_ptr TransportFactory::CreateTransport(SocketMode mode) { + ... +#if BRPC_WITH_URMA + else if (mode == SOCKET_MODE_URMA) { + return std::unique_ptr(new UrmaTransport()); + } +#endif +} +``` + +3. **`CMakeLists.txt`** — 新增 option 与宏: +```cmake +option(WITH_URMA "With URMA (openEuler Unified Remote Memory Access)" OFF) +if(WITH_URMA) + set(BRPC_WITH_URMA 1) + # liburma 由 dlopen 加载,无需 link;可选 link libumdk + list(APPEND BRPC_PUBLIC_LIBS ${URMA_LIB}) +endif() +``` + +所有 `urma*` 源文件统一 `#if BRPC_WITH_URMA ... #else #endif`,非启用构建零侵入(与 RDMA/UBRing 一致)。 + +### 3.3 建链握手(双平面:TCP 控制 + URMA 数据) + +沿用 RDMA/UBShm 已验证的**「TCP 控制面 + 原生数据面」双平面**模式,避免重新发明轮子: + +- **控制面**:复用 brpc 现有的 TCP connect + `AppConnect` 钩子。TCP 连接建立后,`Socket::CheckConnectedAndKeepWrite` 调用 `_app_connect->StartConnect`,在后台 bthread 跑 URMA 握手。 +- **数据面**:握手成功后切换到 URMA Jetty 收发,TCP fd 仅保留用于 epoll 生命周期与 fallback。 + +**客户端状态机**(`ProcessHandshakeAtClient`,参考 `RdmaEndpoint::ProcessHandshakeAtClient`): + +```mermaid +stateDiagram-v2 + [*] --> C_ALLOC_JETTY + C_ALLOC_JETTY --> C_HELLO_SEND: AllocateResources()
(从预连接池取 Jetty+CQ,或新建) + C_HELLO_SEND --> C_HELLO_WAIT: handshake->SendLocalHello()
(发 "URMA"/"URM3" magic + 本地参数) + C_HELLO_WAIT --> C_ACK_SEND: negotiated=true
ApplyRemoteHello + BringUpJetty + C_HELLO_WAIT --> C_ACK_SEND: negotiated=false → URMA_OFF + C_ACK_SEND --> ESTABLISHED: URMA_ON
(WriteToFd flags_be bit0=URMA_OK) + C_ACK_SEND --> FALLBACK_TCP: URMA_OFF + ESTABLISHED --> [*] + FALLBACK_TCP --> [*] +``` + +**服务端状态机**(`ProcessHandshakeAtServer`,由 `_on_edge_trigger = OnNewDataFromTcp` 在首次可读时拉起): + +```mermaid +stateDiagram-v2 + [*] --> S_HELLO_WAIT + S_HELLO_WAIT --> FALLBACK_TCP: 非 URMA magic
(字节推回 _read_buf, TryReadOnTcp()) + S_HELLO_WAIT --> S_ALLOC_JETTY: negotiated=true
ApplyRemoteHello + S_HELLO_WAIT --> FALLBACK_TCP: negotiated=false -> URMA_OFF + S_ALLOC_JETTY --> S_BRINGUP_JETTY: AllocateResources() + S_BRINGUP_JETTY --> S_HELLO_SEND: BringUpJetty() + S_HELLO_SEND --> S_ACK_WAIT: SendLocalHello() + S_ACK_WAIT --> ESTABLISHED: client_ack_ok && !URMA_OFF
(URMA_ON) + S_ACK_WAIT --> FAILED: client_ack_ok && URMA_OFF
(SetFailed EPROTO) + S_ACK_WAIT --> FALLBACK_TCP: !client_ack_ok
(URMA_OFF) + ESTABLISHED --> [*]: TryReadOnTcp() + FALLBACK_TCP --> [*]: TryReadOnTcp() + FAILED --> [*] +``` + +4 字节 ACK `URMA_OK=0x1` 为最终共识位,双端独立决策后确认,不一致即硬错误。与 RDMA 的 `HELLO_ACK_RDMA_OK` 完全对称。 + +握手 IO 复用 `ReadFromFd`/`WriteToFd`(EAGAIN 感知循环,`_read_butex` 等待 + 50ms `WAIT_TIMEOUT_MS`),直接照搬 `rdma_endpoint.cpp:316-421`。 + +### 3.4 CQ 作为第二个 Socket + +URMA 每连接需要一个额外可 poll 的 fd(CQ comp-channel,或 polling 模式下的 carrier)。参考 `RdmaEndpoint::AllocateResources`(`rdma_endpoint.cpp:1159-1178`)的成熟做法: + +- 创建第二个 brpc `Socket`,其 `fd` 为 CQ comp-channel fd,`options.user = this`(即 `UrmaEndpoint`),`options.on_edge_triggered_events = PollCq`。 +- 释放时 `SetFailed()` 该 CQ socket 并清 `_user`,避免 endpoint 被双重释放(参考 `rdma_endpoint.cpp:1370-1380`)。 +- Polling 模式下,参考 `PollerGroup`/`Poller`(每 bthread tag 一组),`FLAGS_urma_poller_num` 个轮询 bthread 循环遍历注册的 CQ socket id。 + +### 3.5 内存管理 + +URMA 底层为 verbs 风格,内存需注册。**直接复用 RDMA 的 `block_pool`**(`src/brpc/rdma/block_pool.{h,cpp}`),避免维护两套 slab 池: + +- `block_pool` 的 `RegisterCallback` 注入 `UrmaRegisterMemory`(使用 `IBV_ACCESS_LOCAL_WRITE | IBV_ACCESS_RELAXED_ORDERING`,失败回退 `LOCAL_WRITE`,与 `RdmaRegisterMemory` 一致)。 +- `UrmaHelper::GlobalUrmaInitializeOrDieImpl` 中同样劫持 `butil::iobuf::blockmem_allocate` → `BlockAllocate`,使所有 IOBuf block 天然 URMA 可用(参考 `rdma_helper.cpp:584-587`)。 +- 用户态注册内存:复用 `RegisterMemoryForRdma`/`DeregisterMemoryForRdma`/`GetLKey`(在 `block_pool` 的 `g_user_mrs` 表中),或新增 `urma::*` 别名包装以命名清晰。 + +> **讨论点**:URMA 与 RDMA 是否共享同一个 `block_pool` 实例?若同进程内 RDMA 与 URMA 同时启用(一般不会),需评估设备间 lkey 命名空间。初步建议:单进程二选一,由 `ContextInitOrDie` 校验互斥。 + +## 4. 关键接口与配置 + +### 4.1 用户接口 + +```cpp +// 客户端 +brpc::ChannelOptions opt; +opt.socket_mode = brpc::SOCKET_MODE_URMA; // 选择 UrmaTransport +opt.protocol = "baidu_std"; // URMA 仅支持 baidu_std(同 RDMA) +channel.Init("127.0.0.1:8000", &opt); + +// 服务端 +brpc::ServerOptions sopt; +sopt.socket_mode = brpc::SOCKET_MODE_URMA; +server.Start(port, &sopt); +``` + +`OptionsAvailableForUrma` / `OptionsAvailableOverUrma` 校验:拒绝 SSL、RTMP、NSHEAD、MONGO;仅允许 `baidu_std` 协议(与 `SupportedByRdma` 对齐)。 + +### 4.2 gflags(对照 RDMA 命名,`urma_*` 前缀) + +| Flag | 默认 | 文件 | 用途 | +|------|------|------|------| +| `--urma_max_sge` | 0 | `urma_helper.cpp` | 每 WR SGE 上限;0=设备上限 | +| `--urma_device` | "" | `urma_helper.cpp` | URMA 设备名;空=首个活跃 | +| `--urma_sq_size` | 128 | `urma_endpoint.cpp` | 每连接 SQ 深度([16,4096]) | +| `--urma_rq_size` | 128 | `urma_endpoint.cpp` | 每连接 RQ 深度 | +| `--urma_prepared_jetty_cnt` | 1024 | `urma_endpoint.cpp` | 预连接 Jetty 池大小 | +| `--urma_cqe_poll_once` | 32 | `urma_endpoint.cpp` | 每次 `ibv_poll_cq` 上限 | +| `--urma_recv_zerocopy` | true | `urma_endpoint.cpp` | 接收零拷贝开关 | +| `--urma_zerocopy_min_size` | 512 | `urma_endpoint.cpp` | 零拷贝阈值(小于则拷贝) | +| `--urma_use_polling` | false | `urma_endpoint.cpp` | 轮询 vs 事件模式 | +| `--urma_poller_num` | 1 | `urma_endpoint.cpp` | 每 bthread tag 轮询器数 | +| `--urma_poller_yield` | false | `urma_endpoint.cpp` | 轮询循环 `bthread_yield` | +| `--urma_disable_bthread` | false | `urma_endpoint.cpp` | 内联处理消息(不走 bthread) | +| `--urma_trace_verbose` | false | `urma_endpoint.cpp` | 握手详细日志 | +| `--urma_client_handshake_version` | 2 | `urma_handshake.cpp` | 握手版本(2=binary,3=protobuf) | +| `--urma_memory_pool_initial_size_mb` | 1024 | `block_pool.cpp` | 内存池初始大小(复用) | +| `--urma_memory_pool_max_regions` | 3 | `block_pool.cpp` | 内存池区域上限(硬上限16) | + +### 4.3 与 UBSHMTransport 的协同约定 + +| 场景 | 建议 `socket_mode` | 理由 | +|------|---------------------|------| +| 同机 IPC(同主机进程间) | `SOCKET_MODE_UBRING` | Load/Store 亚微秒,零系统调用 | +| 超节点跨机小包(<64KB,特征/分数/控制) | `SOCKET_MODE_UBRING`(`ub_shm_type=2` UBS-Mem)或 `SOCKET_MODE_URMA` | 两者均优;UBRing 更低延迟 | +| 超节点跨机大包(>=64KB,Embedding/参数) | `SOCKET_MODE_URMA` | SGE 零拷贝,无 `EMSGSIZE` | +| 传统 RoCE/IB 数据中心 | `SOCKET_MODE_URMA` 或 `SOCKET_MODE_RDMA` | URMA 统一语义,无 QP 爆炸 | + +`--urma_shm_split_threshold`(默认 64KB)为方案 B(hybrid)预留 flag,方案 A 阶段仅作文档阈值参考。 + +## 5. 文件清单与改动范围 + +### 5.1 新增文件 + +``` +src/brpc/ +├── urma_transport.h # UrmaTransport : public Transport +├── urma_transport.cpp +├── urma/ +│ ├── urma_endpoint.h # UrmaEndpoint : public SocketUser, UrmaConnect, UrmaResource +│ ├── urma_endpoint.cpp +│ ├── urma_helper.h # 全局初始化, liburma dlopen, 设备管理 +│ ├── urma_helper.cpp +│ ├── urma_handshake.h # 握手策略基类 + v2/v3 子类 +│ ├── urma_handshake.cpp +│ ├── urma_handshake.proto # v3 protobuf 握手(参考 rdma_handshake.proto) +│ ├── mock_urma.cpp # URMA 链接时 mock(无 liburma 时编译,供 CI 测试) +│ ├── urma_api.h # URMA SDK API 声明(vendored from umdk) +│ ├── urma_types.h # URMA SDK 类型定义(vendored from umdk) +│ └── urma_opcode.h # URMA SDK opcode/常量(vendored from umdk) +docs/ +├── cn/urma.md +└── en/urma.md +example/ +└── urma_performance/ + ├── client.cpp + └── server.cpp +test/ +└── brpc_urma_unittest.cpp +``` + +### 5.2 修改文件 + +| 文件 | 改动 | +|------|------| +| `src/brpc/socket_mode.h` | 新增 `SOCKET_MODE_URMA = 3` | +| `src/brpc/transport_factory.{h,cpp}` | 两个 `if/else-if` 分支,`#if BRPC_WITH_URMA` 守卫 | +| `src/brpc/channel.h` | `ChannelOptions::socket_mode` 注释补充 URMA | +| `src/brpc/server.h` | `ServerOptions::socket_mode` 注释补充 URMA | +| `src/brpc/input_messenger.h` | `friend class urma::UrmaEndpoint;` | +| `CMakeLists.txt` | `option(WITH_URMA ...)` + `BRPC_WITH_URMA` 宏 + 源文件列表 | + +### 5.3 复用文件(不改或最小改) + +- `src/brpc/rdma/block_pool.{h,cpp}` — 内存注册池(`RegisterCallback` 注入 Urma 版本) +- `src/brpc/rdma/rdma_helper.cpp` — `blockmem_allocate` 劫持逻辑(提取为公共或 Urma 复制一份) +- `src/brpc/tcp_transport.{h,cpp}` — fallback 依赖 + +## 6. 落地计划 + +### Phase 1:框架与最小可用(本提案目标) +1. `SocketMode` + `TransportFactory` 注册通路。 +2. `UrmaTransport` + `UrmaEndpoint` 骨架:三态、TCP fallback、握手状态机(v2 binary)。 +3. 数据路径:`CutFromIOBufList` 走 `urma_post_send(SEND_WITH_IMM)`,`PollCq` + `HandleCompletion` 走 recv。 +4. 复用 `block_pool`。 +5. `example/urma_performance` 可跑通 `baidu_std` echo。 +6. 单测 `brpc_urma_unittest.cpp`(参考 `brpc_rdma_unittest.cpp` 与新写的 `brpc_ubring_unittest.cpp`)。 + +### Phase 2:性能与协同 +1. 握手 v3(protobuf `UrmaHello`),前向兼容。 +2. Polling 模式 + `PollerGroup` per-tag。 +3. Unsignaled/solicited 完成抑制(降低 CPU)。 +4. 与 UBSHMTransport 的大小包协同文档与示例(方案 A)。 + +### Phase 3:演进(留待社区讨论) +1. 方案 B:`SOCKET_MODE_HYBRID_UB_URMA` 单连接按包分流。 +2. URMA-SHM 模式接入,与本机 UBRing 统一。 +3. GPU memory 直接注册(`urma_register_memory` over HBM),对接 GPUDirect 类语义。 + +## 7. 风险与开放问题 + +1. **硬件/驱动依赖**:URMA 需要 openEuler UB 驱动 + `liburma`。非 UB 平台只能 fallback TCP。是否接受 ko 依赖已在 #3217 征询,本提案沿用其结论。**CI 无 URMA 硬件时的可测试性由 §7.1 的 mock 保证**。 +2. **`block_pool` 复用边界**:URMA 与 RDMA 共享内存池的设备命名空间问题,倾向 `ContextInitOrDie` 互斥校验,需评审确认。 +3. **URMA API 成熟度**:`urma_post_send`/`urma_post_recv` 与 verbs 的差异需在 `UrmaEndpoint` 适配层抹平(如 `ibv_sge` 是否复用、imm_data 位宽)。Phase 1 需先对齐 SDK 头文件。 +4. **大小包协同方案选择**:方案 A(显式)vs 方案 B(自动分流)的取舍,请社区给出倾向。本提案默认先 A 后 B。 +5. **`baidu_std` 协议限制**:与 RDMA 一致,暂不支持其他协议。若社区有 URMA over HTTP 等需求,后续议。 +6. **跨平台**:URMA 当前为 Linux/openEuler 专有。macOS/Windows 提供 stub(同 RDMA/UBRing 的 `#else` 处理)。 + +### 7.1 URMA Mock:无硬件环境下的 CI 可测试性 + +**问题**:brpc 的 CI 运行在普通 Linux 容器中,没有 URMA 硬件/`liburma`。若 `WITH_URMA=ON` 时找不到 `liburma` 就 `FATAL_ERROR`,CI 无法构建和测试 UrmaTransport,回归风险高。 + +**方案**:在 brpc 中内置一个 **链接时替换(link-time substitution)** 的 URMA mock。 + +```mermaid +flowchart TD + Build["cmake -DWITH_URMA=ON"] + Build --> Find{"find_library(URMA_LIB NAMES urma)"} + Find -->|"找到 liburma.so"| Real["编译 UrmaTransport
链接 liburma
URMA_USE_MOCK=0"] + Find -->|"未找到"| Mock["编译 UrmaTransport + mock_urma.cpp
不链接 liburma
URMA_USE_MOCK=1"] + Real --> Test1["硬件环境测试
(真实 URMA)"] + Mock --> Test2["CI 无硬件环境测试
(mock 完成路径)"] +``` + +**Mock 设计**(`src/brpc/urma/mock_urma.cpp`,Mooncake 同款模式): + +| 设计点 | 实现 | +|--------|------| +| 替换方式 | **链接时**:mock 定义与 `liburma.so` 完全同名的 `urma_*` 自由函数符号,链接器按链接顺序选择 mock | +| 对象存储 | 匿名命名空间内 `std::map` 注册表,按对象类型分表(`context_map`/`jfc_state_map`/`jfr_map`/`seg_map`/`jetty_map`/`target_jetty_map`) | +| 成员校验 | 每个 `delete_*` 检查 map 成员资格,误用返回 `URMA_EINVAL` 而非崩溃 | +| 完成路径 | 每个 posted send/recv WR 的 `user_ctx` 推入所属 JFC 的 FIFO,下次 `urma_poll_jfc` 返回 `URMA_CR_SUCCESS` | +| 数据搬运 | **不搬运 payload 字节**--mock 是控制面替身,仅驱动握手/状态机;CI 数据路径测试不校验 payload 内容 | +| 设备名契约 | `device->name == "mock_urma_device"`,测试用 `--urma_device=mock_urma_device` 匹配 | + +**Mock 覆盖的 `urma_*` 符号**(brpc transport 实际调用的全集): + +``` +urma_init / urma_uninit +urma_get_device_list / urma_free_device_list / urma_get_device_by_name +urma_query_device / urma_get_eid_list / urma_free_eid_list +urma_create_context / urma_delete_context +urma_create_jfce / urma_delete_jfce +urma_create_jfc / urma_delete_jfc +urma_create_jfr / urma_delete_jfr +urma_register_seg / urma_unregister_seg +urma_import_seg / urma_unimport_seg +urma_create_jetty / urma_delete_jetty +urma_import_jetty / urma_unimport_jetty +urma_bind_jetty / urma_unbind_jetty / urma_modify_jetty +urma_post_jetty_send_wr (send 路径) +urma_post_jfr_wr (recv 路径,Mooncake mock 未含,brpc 新增) +urma_poll_jfc (完成轮询) +urma_get_async_event / urma_ack_async_event +``` + +> **与 Mooncake mock 的差异**:Mooncake 的 transport 是单边 write/read(仅 JFS),mock 不含 `urma_post_jfr_wr`。brpc 的 `UrmaEndpoint` 是双边 send/recv,recv 路径走 `urma_post_jfr_wr`,故 brpc mock 新增该函数--将 recv WR 的 `user_ctx` 推入 JFC 的 `pending_recv` 队列,`urma_poll_jfc` 先排空 send 完成再排空 recv 完成(`cr.flag.bs.s_r` 区分)。 + +**CMake 集成**(`CMakeLists.txt`): + +```cmake +if(WITH_URMA) + find_library(URMA_LIB NAMES urma) + if(URMA_LIB) + message(STATUS "Found liburma: ${URMA_LIB}") + set(URMA_USE_MOCK 0) + else() + message(WARNING "liburma not found; building UrmaTransport with the bundled mock.") + set(URMA_USE_MOCK 1) + endif() +endif() +# ... 源文件收集 ... +if(WITH_URMA AND NOT URMA_USE_MOCK) + list(REMOVE_ITEM BRPC_SOURCES + "${PROJECT_SOURCE_DIR}/src/brpc/urma/mock_urma.cpp") +endif() +# ... 链接 ... +if(WITH_URMA) + if(NOT URMA_USE_MOCK) + list(APPEND DYNAMIC_LIB ${URMA_LIB}) + endif() +endif() +``` + +**Mock 自身守卫**:`mock_urma.cpp` 包裹在 `#if BRPC_WITH_URMA ... #endif` 中,`WITH_URMA=OFF` 时不编译(与其它 URMA 源一致)。 + +**CI 保证**: + +- `WITH_URMA=OFF`:所有 URMA 源编译为空 stub,mock 不参与编译,brpc 主库与现有行为一致。 +- `WITH_URMA=ON` + 无 `liburma`(CI 默认):mock 编译进 brpc,`brpc_urma_unittest` 链接 mock,跑通握手序列化/状态机/fallback 等纯逻辑测试。 +- `WITH_URMA=ON` + 有 `liburma`(硬件环境):mock 从源列表移除,链接真实 `liburma`,跑通真实 URMA 数据路径。 + +## 8. 与既有提案的关系 + +| 提案 | 关系 | +|------|------| +| #3167 | 本提案完全基于其落地的 `Transport` 抽象,不再讨论架构改造 | +| #3217 路线 B | 本提案即路线 B 的具体设计 | +| #3217 路线 C | 本提案 §2.3 给出方案 A(先行)+ 方案 B(演进),与 #3226 OBMM 形成 C | +| #3226 | OBMM-ShmTransport 为小包路径,本提案 UrmaTransport 为大包/跨节点路径,互补 | + +## 9. 致谢 + +感谢 @chenBright @wwbmmm @yanglimingcn @ivanallen @dwh110 在 #3167 / #3217 / #3226 中的深入讨论,本提案在架构取舍上大量吸纳了这些讨论结论(尤其是 wwbmmm 关于「Transport 持有协议私有成员、Socket 只持 `_transport` 指针」的解耦思路,已成为现有 `Transport` 接口的设计基线)。 + +欢迎各位继续评审,特别是: +- 方案 A vs 方案 B 的倾向 +- `block_pool` 复用 vs 独立 +- URMA SDK API 与 verbs 的差异适配 +- Phase 划分与落地节奏 diff --git a/docs/en/urma.md b/docs/en/urma.md new file mode 100644 index 0000000000..69fc6ac55f --- /dev/null +++ b/docs/en/urma.md @@ -0,0 +1,158 @@ +# UrmaTransport: URMA-based Remote Memory RPC + +UrmaTransport is a transport implementation that uses openEuler's +[URMA](https://atomgit.com/openeuler/umdk) (Unified Remote Memory Access) SDK +for remote-memory RPC. It is the Route B transport proposed in +[#3217](https://github.com/apache/brpc/discussions/3217) and complements the +OBMM-based UBRing transport (Route A, [#3226](https://github.com/apache/brpc/issues/3226)) +for large-packet / cross-node scenarios (Route C, "double backend"). + +## Technical Background + +URMA exposes a unified verbs-style API (`urma_post_send` / `urma_post_recv`) +over RoCE v2, InfiniBand, and PCIe P2P. Unlike RC-RDMA, URMA uses +**connection-less UM (Unreliable Datagram) semantics** with driver-internal +retransmission: a single Jetty can address N remote peers without the QP +explosion that limits RC-RDMA at thousand-node scale. A Jetty bundles a send +queue (JFS), a receive queue (JFR, optionally shared), and a completion queue +(JFC, optionally backed by a JFCE event fd). + +Key advantages over RDMA in super-node (UB-bus-interconnected) clusters: + +- **No QP explosion**: O(N) Jetties instead of O(N x thread-count) QPs. +- **Unified semantics**: one API across RoCE/IB/PCIe P2P (and future CXL). +- **Hardware flow control**: Jetty-level credit replaces PFC/ECN. +- **Performance parity with RDMA**: ~2-5us single-hop on RoCE. + +## Build Configuration + +### Build with CMake + +```bash +# Build brpc with URMA support (requires liburma installed) +cmake -B build -DWITH_URMA=ON +make -C build -j$(nproc) + +# Build the urma_performance example +cd example/urma_performance +cmake -B build +make -C build -j$(nproc) +``` + +`WITH_URMA=ON` injects `-DBRPC_WITH_URMA=1` and links `liburma`. When OFF, +all URMA sources compile to empty stubs (matching the RDMA / UBRing pattern), +so a URMA-less build stays clean. + +## Usage + +Select the transport by setting `socket_mode` on the channel / server: + +```cpp +// Client +brpc::ChannelOptions opt; +opt.socket_mode = brpc::SOCKET_MODE_URMA; +opt.protocol = "baidu_std"; // URMA supports baidu_std only +brpc::Channel channel; +channel.Init("127.0.0.1:8003", &opt); + +// Server +brpc::ServerOptions sopt; +sopt.socket_mode = brpc::SOCKET_MODE_URMA; +server.Start(port, &sopt); +``` + +If the peer does not speak URMA (e.g. a TCP-only client connecting to a +URMA-enabled server), the transport transparently falls back to TCP after +the 4-byte magic handshake. No application code change is required. + +## Architecture + +UrmaTransport follows the same two-layer design as `RdmaTransport` and +`UBShmTransport`: + +``` +UrmaTransport : public Transport (urma_transport.{h,cpp}) + +-- std::shared_ptr (fallback path) + +-- urma::UrmaEndpoint* (URMA data path) + +-- UrmaState { URMA_ON, URMA_OFF, URMA_UNKNOWN } + +urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.{h,cpp}) + +-- UrmaResource { jfc, jfce, jfr, jetty, remote_jetty, remote_seg } + +-- handshake state machine (C/S symmetric, driven over the TCP fd) + +-- send path: urma_post_jetty_send_wr(URMA_OPC_SEND) + +-- recv path: urma_poll_jfc -> HandleCompletion -> InputMessenger + +-- two-window credit flow control (_remote_rq_window / _sq_window) +``` + +### Connection establishment (dual-plane) + +Like RDMA / UBRing, the control plane is TCP and the data plane is URMA: + +1. TCP connect completes. +2. `UrmaConnect::StartConnect` spawns the client handshake bthread. +3. Both sides exchange a `UrmaHello` message (magic `URMA` for v2 binary, + `URM3` for v3 protobuf) over the TCP fd. The message carries the local + EID, jetty id, recv buffer count, and the flattened buffer-pool segment. +4. Each side calls `urma_import_seg` **before** `urma_import_jetty` to + establish transport-path (TP) routing for the remote EID. Skipping the + `import_seg` step causes the first SEND to be rejected by hardware with + `URMA_CR_RNR_RETRY_CNT_EXC_ERR`. +5. A 4-byte ACK (`HELLO_ACK_URMA_OK = 0x1`) confirms both sides want URMA. +6. On success, the TCP fd is kept only for the epoll lifecycle and fallback; + payloads flow through URMA. + +### Memory management + +A single large region is `mmap`-ed and registered once with +`urma_register_seg`, then sliced into fixed-size buffers (default 8 KB). +`butil::iobuf::blockmem_allocate` is hijacked so every IOBuf block is backed +by the registered segment, allowing the send path to build `urma_sge_t` +directly from IOBuf block refs without per-message registration (mirroring the +RDMA `block_pool` design). User-registered memory is supported via +`urma::RegisterMemoryForUrma` / `DeregisterMemoryForUrma`. + +## Configuration + +All flags use the `urma_` prefix (mirroring RDMA's `rdma_` prefix): + +| Flag | Default | Purpose | +|------|---------|---------| +| `--urma_use_polling` | false | Busy-poll the JFC instead of event mode | +| `--urma_poller_num` | 1 | Poller bthreads per bthread tag (polling mode) | +| `--urma_disable_bthread` | false | Run message processing inline | +| `--urma_sq_size` | 128 | Local JFS depth [16, 4096] | +| `--urma_rq_size` | 128 | Local JFR depth [16, 4096] | +| `--urma_cqe_poll_once` | 32 | Max CQEs per `urma_poll_jfc` | +| `--urma_recv_zerocopy` | true | Zero-copy receives above `--urma_zerocopy_min_size` | +| `--urma_zerocopy_min_size` | 512 | Receives smaller than this are copied | +| `--urma_device` | "" | URMA device name (empty = first) | +| `--urma_max_sge` | 0 | Max SGEs per WR (0 = device max) | +| `--urma_prepared_jetty_cnt` | 1024 | Pre-allocated Jetty+CQ sets | +| `--urma_buffer_size` | 8192 | Per-buffer size in the pool (bytes) | +| `--urma_buffer_count` | 65536 | Number of buffers in the pool | +| `--urma_client_handshake_version` | 2 | Client wire version (2=binary, 3=protobuf) | + +## Coexistence with UBRing + +UrmaTransport is the recommended transport for **large packets and +cross-node** high-throughput paths, while UBRing (`SOCKET_MODE_UBRING`) is +optimal for **small packets and same-node IPC** (sub-microsecond, zero +syscalls). For a mixed workload, select the transport per service: + +| Scenario | Recommended `socket_mode` | +|----------|---------------------------| +| Same-host IPC | `SOCKET_MODE_UBRING` | +| Cross-node small packets (< 64 KB) | `SOCKET_MODE_UBRING` (UBS-Mem) or `SOCKET_MODE_URMA` | +| Cross-node large packets (>= 64 KB) | `SOCKET_MODE_URMA` | +| Traditional RoCE / IB datacenter | `SOCKET_MODE_URMA` or `SOCKET_MODE_RDMA` | + +A single-connection hybrid that auto-routes by packet size (Route C, scheme B) +is tracked as a future enhancement. + +## Limitations + +- `baidu_std` protocol only (same as RDMA). SSL, RTMP, NSHEAD, MONGO are + rejected at `ContextInitOrDie`. +- Requires the openEuler UB driver + `liburma`. Non-UB platforms fall back to + TCP transparently. +- Linux/openEuler only. macOS / Windows provide no-op stubs. diff --git a/example/urma_performance/CMakeLists.txt b/example/urma_performance/CMakeLists.txt new file mode 100644 index 0000000000..07aa2440d6 --- /dev/null +++ b/example/urma_performance/CMakeLists.txt @@ -0,0 +1,134 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +cmake_minimum_required(VERSION 2.8.10) +project(urma_performance C CXX) + +option(LINK_SO "Whether examples are linked dynamically" OFF) + +execute_process( + COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex '.*output/include$' | head -n1 | xargs dirname | tr -d '\n'" + OUTPUT_VARIABLE OUTPUT_PATH +) + +set(CMAKE_PREFIX_PATH ${OUTPUT_PATH}) + +include(FindThreads) +include(FindProtobuf) +protobuf_generate_cpp(PROTO_SRC PROTO_HEADER test.proto) +# include PROTO_HEADER +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +# Search for libthrift* by best effort. If it is not found and brpc is +# compiled with thrift protocol enabled, a link error would be reported. +find_library(THRIFT_LIB NAMES thrift) +if (NOT THRIFT_LIB) + set(THRIFT_LIB "") +endif() + +find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h) +if(LINK_SO) + find_library(BRPC_LIB NAMES brpc) +else() + find_library(BRPC_LIB NAMES libbrpc.a brpc) +endif() +if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB)) + message(FATAL_ERROR "Fail to find brpc") +endif() +include_directories(${BRPC_INCLUDE_PATH}) + +find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h) +find_library(GFLAGS_LIBRARY NAMES gflags libgflags) +if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY)) + message(FATAL_ERROR "Fail to find gflags") +endif() +include_directories(${GFLAGS_INCLUDE_PATH}) + +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + include(CheckFunctionExists) + CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME) + if(NOT HAVE_CLOCK_GETTIME) + set(DEFINE_CLOCK_GETTIME "-DNO_CLOCK_GETTIME_IN_MAC") + endif() +endif() + +set(CMAKE_CPP_FLAGS "${DEFINE_CLOCK_GETTIME} -DBRPC_WITH_URMA=1") +set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -DNDEBUG -O2 -D__const__=__unused__ -pipe -W -Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer") + +if(CMAKE_VERSION VERSION_LESS "3.1.3") + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + endif() + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + endif() +else() + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) +endif() + +find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h) +find_library(LEVELDB_LIB NAMES leveldb) +if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB)) + message(FATAL_ERROR "Fail to find leveldb") +endif() +include_directories(${LEVELDB_INCLUDE_PATH}) + +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + set(OPENSSL_ROOT_DIR + "/usr/local/opt/openssl" # Homebrew installed OpenSSL + ) +endif() + +find_package(OpenSSL) +include_directories(${OPENSSL_INCLUDE_DIR}) + +set(DYNAMIC_LIB + ${CMAKE_THREAD_LIBS_INIT} + ${GFLAGS_LIBRARY} + ${PROTOBUF_LIBRARIES} + ${LEVELDB_LIB} + ${OPENSSL_CRYPTO_LIBRARY} + ${OPENSSL_SSL_LIBRARY} + ${THRIFT_LIB} + dl + z + ) + +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + set(DYNAMIC_LIB ${DYNAMIC_LIB} + pthread + "-framework CoreFoundation" + "-framework CoreGraphics" + "-framework CoreData" + "-framework CoreText" + "-framework Security" + "-framework Foundation" + "-Wl,-U,_MallocExtension_ReleaseFreeMemory" + "-Wl,-U,_ProfilerStart" + "-Wl,-U,_ProfilerStop" + "-Wl,-U,__Z13GetStackTracePPvii" + "-Wl,-U,_mallctl" + "-Wl,-U,_malloc_stats_print" + ) +endif() + +add_executable(urma_performance_client client.cpp ${PROTO_SRC} ${PROTO_HEADER}) +add_executable(urma_performance_server server.cpp ${PROTO_SRC} ${PROTO_HEADER}) + +target_link_libraries(urma_performance_client ${BRPC_LIB} ${DYNAMIC_LIB}) +target_link_libraries(urma_performance_server ${BRPC_LIB} ${DYNAMIC_LIB}) diff --git a/example/urma_performance/client.cpp b/example/urma_performance/client.cpp new file mode 100644 index 0000000000..32371321e8 --- /dev/null +++ b/example/urma_performance/client.cpp @@ -0,0 +1,112 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include +#include +#include +#include +#include +#include "butil/atomicops.h" +#include "butil/fast_rand.h" +#include "butil/logging.h" +#include "brpc/server.h" +#include "brpc/channel.h" +#include "bthread/bthread.h" +#include "bvar/latency_recorder.h" +#include "bvar/variable.h" +#include "test.pb.h" + +#ifdef BRPC_WITH_URMA + +DEFINE_string(server, "127.0.0.1:8003", "IP Port of urma performance server"); +DEFINE_int32(thread_num, 0, "How many threads are used"); +DEFINE_int32(queue_depth, 1, "How many requests can be pending in the queue"); +DEFINE_int32(expected_qps, 0, "The expected QPS"); +DEFINE_int32(max_thread_num, 16, "The max number of threads are used"); +DEFINE_int32(attachment_size, -1, "Attachment size is used (in Bytes)"); +DEFINE_bool(echo_attachment, false, "Select whether attachment should be echo"); +DEFINE_bool(use_urma, true, "Use URMA transport (true) or TCP (false)"); + +bvar::LatencyRecorder g_latency("client"); + +static void* worker(void* arg) { + test::PerfTestService_Stub* stub = + static_cast(arg); + int qps = FLAGS_expected_qps; + while (!brpc::IsAskedToQuit()) { + butil::FastRand fr; + std::vector cntls(FLAGS_queue_depth); + std::vector reqs(FLAGS_queue_depth); + std::vector resps(FLAGS_queue_depth); + std::vector ids(FLAGS_queue_depth); + for (int i = 0; i < FLAGS_queue_depth; ++i) { + cntls[i].set_log_id(fr.next() & 0x7fffffff); + reqs[i].set_echo_attachment(FLAGS_echo_attachment); + if (FLAGS_attachment_size >= 0) { + cntls[i].request_attachment().resize(FLAGS_attachment_size, 'a'); + } + ids[i] = cntls[i].call_id(); + stub->Test(&cntls[i], &reqs[i], &resps[i], brpc::DoNothing()); + } + for (int i = 0; i < FLAGS_queue_depth; ++i) { + brpc::Join(ids[i]); + g_latency << cntls[i].latency_us(); + } + if (qps > 0) { + usleep(FLAGS_queue_depth * 1000000 / qps); + } + } + return nullptr; +} + +int main(int argc, char* argv[]) { + gflags::ParseCommandLineFlags(&argc, &argv, true); + brpc::ChannelOptions options; + options.socket_mode = FLAGS_use_urma ? brpc::SOCKET_MODE_URMA + : brpc::SOCKET_MODE_TCP; + brpc::Channel channel; + if (channel.Init(FLAGS_server.c_str(), &options) != 0) { + LOG(ERROR) << "Fail to init channel to " << FLAGS_server; + return -1; + } + test::PerfTestService_Stub stub(&channel); + + int thread_num = FLAGS_thread_num; + if (thread_num == 0) { + thread_num = FLAGS_max_thread_num; + } + std::vector tids(thread_num); + for (int i = 0; i < thread_num; ++i) { + bthread_start_background(&tids[i], nullptr, worker, &stub); + } + LOG(INFO) << "URMA performance client started (use_urma=" << FLAGS_use_urma + << ", threads=" << thread_num << ")"; + for (int i = 0; i < thread_num; ++i) { + bthread_join(tids[i], nullptr); + } + return 0; +} + +#else + +#include +int main() { + printf("This example requires brpc built with -DWITH_URMA=ON.\n"); + return 0; +} + +#endif // BRPC_WITH_URMA diff --git a/example/urma_performance/server.cpp b/example/urma_performance/server.cpp new file mode 100644 index 0000000000..07accfd0a1 --- /dev/null +++ b/example/urma_performance/server.cpp @@ -0,0 +1,90 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include +#include "butil/atomicops.h" +#include "butil/logging.h" +#include "butil/time.h" +#include "brpc/server.h" +#include "bvar/variable.h" +#include "test.pb.h" + +#ifdef BRPC_WITH_URMA + +DEFINE_int32(port, 8003, "TCP Port of this server"); +DEFINE_bool(use_urma, true, "Use URMA transport (true) or TCP (false)"); + +butil::atomic g_last_time(0); + +namespace test { +class PerfTestServiceImpl : public PerfTestService { +public: + PerfTestServiceImpl() {} + ~PerfTestServiceImpl() {} + + void Test(google::protobuf::RpcController* cntl_base, + const PerfTestRequest* request, + PerfTestResponse* response, + google::protobuf::Closure* done) { + brpc::ClosureGuard done_guard(done); + uint64_t last = g_last_time.load(butil::memory_order_relaxed); + uint64_t now = butil::monotonic_time_us(); + if (now > last && now - last > 100000) { + if (g_last_time.exchange(now, butil::memory_order_relaxed) == last) { + response->set_cpu_usage(bvar::Variable::describe_exposed("process_cpu_usage")); + } else { + response->set_cpu_usage(""); + } + } else { + response->set_cpu_usage(""); + } + if (request->echo_attachment()) { + brpc::Controller* cntl = static_cast(cntl_base); + cntl->response_attachment().append(cntl->request_attachment()); + } + } +}; +} // namespace test + +int main(int argc, char* argv[]) { + gflags::ParseCommandLineFlags(&argc, &argv, true); + brpc::Server server; + test::PerfTestServiceImpl service; + + brpc::ServerOptions options; + options.socket_mode = FLAGS_use_urma ? brpc::SOCKET_MODE_URMA + : brpc::SOCKET_MODE_TCP; + if (server.Start(FLAGS_port, &options) != 0) { + LOG(ERROR) << "Fail to start server"; + return -1; + } + server.AddService(&service, brpc::SERVER_DOESNT_OWN_SERVICE); + LOG(INFO) << "URMA performance server started on port " << FLAGS_port + << " (use_urma=" << FLAGS_use_urma << ")"; + server.RunUntilAskedToQuit(); + return 0; +} + +#else + +#include +int main() { + printf("This example requires brpc built with -DWITH_URMA=ON.\n"); + return 0; +} + +#endif // BRPC_WITH_URMA diff --git a/example/urma_performance/test.proto b/example/urma_performance/test.proto new file mode 100644 index 0000000000..8e33009688 --- /dev/null +++ b/example/urma_performance/test.proto @@ -0,0 +1,33 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +syntax="proto2"; +option cc_generic_services = true; + +package test; + +message PerfTestRequest { + required bool echo_attachment = 1; +}; + +message PerfTestResponse { + required string cpu_usage = 1; +}; + +service PerfTestService { + rpc Test(PerfTestRequest) returns (PerfTestResponse); +}; diff --git a/src/brpc/channel.h b/src/brpc/channel.h index 28a17ac8ea..f0aff0f5b9 100644 --- a/src/brpc/channel.h +++ b/src/brpc/channel.h @@ -106,7 +106,8 @@ struct ChannelOptions { const ChannelSSLOptions& ssl_options() const { return *_ssl_options; } ChannelSSLOptions* mutable_ssl_options(); - // Let this channel Choose to use a certain socket: 0 SOCKET_MODE_TCP, 1 SOCKET_MODE_RDMA. + // Let this channel Choose to use a certain socket: + // 0 SOCKET_MODE_TCP, 1 SOCKET_MODE_RDMA, 2 SOCKET_MODE_UBRING, 3 SOCKET_MODE_URMA. // Default: SOCKET_MODE_TCP SocketMode socket_mode; diff --git a/src/brpc/input_messenger.h b/src/brpc/input_messenger.h index 8482c3f3fc..e01150972b 100644 --- a/src/brpc/input_messenger.h +++ b/src/brpc/input_messenger.h @@ -29,6 +29,9 @@ namespace brpc { namespace rdma { class RdmaEndpoint; } +namespace urma { +class UrmaEndpoint; +} class TcpTransport; struct InputMessageHandler { // The callback to cut a message from `source'. @@ -93,6 +96,7 @@ class InputMessenger : public SocketUser { friend class Socket; friend class TcpTransport; friend class rdma::RdmaEndpoint; +friend class urma::UrmaEndpoint; public: explicit InputMessenger(size_t capacity = 128); ~InputMessenger(); diff --git a/src/brpc/server.h b/src/brpc/server.h index 9f69a83458..6da32dc482 100644 --- a/src/brpc/server.h +++ b/src/brpc/server.h @@ -224,7 +224,7 @@ struct ServerOptions { // Force ssl for all connections of the port to Start(). bool force_ssl; - // the server socket mode uses tcp or rdma or other + // the server socket mode uses tcp or rdma or ubring or urma // Default: SOCKET_MODE_TCP SocketMode socket_mode; @@ -717,7 +717,7 @@ friend class Controller; int SetServiceMaxConcurrency(T* service) { if (NULL != service && NULL != service->_status) { const AdaptiveMaxConcurrency* amc = &service->_max_concurrency; - if (amc->type() == AdaptiveMaxConcurrency::UNLIMITED) { + if (amc->type() == AdaptiveMaxConcurrency::UNLIMITED()) { amc = &_options.method_max_concurrency; } ConcurrencyLimiter* cl = NULL; diff --git a/src/brpc/socket_mode.h b/src/brpc/socket_mode.h index b5d42be4aa..13269559f1 100644 --- a/src/brpc/socket_mode.h +++ b/src/brpc/socket_mode.h @@ -20,7 +20,8 @@ namespace brpc { enum SocketMode { SOCKET_MODE_TCP = 0, - SOCKET_MODE_RDMA = 1 + SOCKET_MODE_RDMA = 1, + SOCKET_MODE_URMA = 2 }; } // namespace brpc #endif //BRPC_SOCKET_MODE_H \ No newline at end of file diff --git a/src/brpc/transport_factory.cpp b/src/brpc/transport_factory.cpp index b689e2edd2..b6163442c3 100644 --- a/src/brpc/transport_factory.cpp +++ b/src/brpc/transport_factory.cpp @@ -18,6 +18,7 @@ #include "brpc/transport_factory.h" #include "brpc/tcp_transport.h" #include "brpc/rdma_transport.h" +#include "brpc/urma_transport.h" namespace brpc { int TransportFactory::ContextInitOrDie(SocketMode mode, bool serverOrNot, const void* _options) { @@ -28,6 +29,11 @@ int TransportFactory::ContextInitOrDie(SocketMode mode, bool serverOrNot, const else if (mode == SOCKET_MODE_RDMA) { return RdmaTransport::ContextInitOrDie(serverOrNot, _options); } +#endif +#if BRPC_WITH_URMA + else if (mode == SOCKET_MODE_URMA) { + return UrmaTransport::ContextInitOrDie(serverOrNot, _options); + } #endif else { LOG(ERROR) << "unknown transport type " << mode; @@ -43,6 +49,11 @@ std::unique_ptr TransportFactory::CreateTransport(SocketMode mode) { else if (mode == SOCKET_MODE_RDMA) { return std::unique_ptr(new RdmaTransport()); } +#endif +#if BRPC_WITH_URMA + else if (mode == SOCKET_MODE_URMA) { + return std::unique_ptr(new UrmaTransport()); + } #endif else { LOG(ERROR) << "socket_mode set error"; diff --git a/src/brpc/urma/mock_urma.cpp b/src/brpc/urma/mock_urma.cpp new file mode 100644 index 0000000000..f7bc8dda2d --- /dev/null +++ b/src/brpc/urma/mock_urma.cpp @@ -0,0 +1,607 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// Link-time mock of the URMA user-level C API, modeled on Mooncake's +// mock_urma.cpp. When liburma.so is not available, this TU is compiled into +// brpc and provides fake implementations of every urma_* symbol the transport +// calls. It lets CI run UrmaTransport unit tests on hosts without URMA +// hardware. +// +// Design (same as Mooncake): +// - Link-time substitution: the symbols are literally named urma_create_jfc +// etc.; the linker picks this TU when liburma is absent. +// - Per-object state is held in anonymous-namespace maps keyed on the opaque +// pointer returned to the caller. Membership is checked on delete so misuse +// returns URMA_EINVAL rather than crashes. +// - Completion path: each posted send/recv WR's user_ctx is pushed onto the +// owning JFC's FIFO and handed back (URMA_CR_SUCCESS) on the next +// urma_poll_jfc. No payload bytes are moved - the mock is a control-plane +// stand-in, sufficient for unit tests of the handshake / state machine. +// - Device-name contract: device->name == "mock_urma_device" so tests can +// match it with --urma_device=mock_urma_device. + +#if BRPC_WITH_URMA + +#include "brpc/urma/urma_api.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + +// Per-JFC completion queue: a FIFO of user_ctx awaiting completion. +struct JfcState { + std::mutex mutex; + std::deque pending_ctx; // send completions + std::deque pending_recv; // recv completions (user_ctx of recv WR) +}; + +std::shared_mutex g_rw_mutex; +bool initialized = false; +std::vector device_list; +std::map context_map; +std::map jfce_map; +std::map jfc_state_map; +std::map jfr_map; +// Side-table: JFR -> the JFC it was created with (used to route recv +// completions to the right JfcState, since the JFR is an opaque handle). +std::map jfr_jfc_map; +std::map seg_map; +std::map jetty_map; +std::map target_jetty_map; + +urma_device_attr_t mock_device_attr = { + .guid = {.raw = {10}}, + .dev_cap = {}, + .port_cnt = 1, + .port_attr = {{.max_mtu = URMA_MTU_4096, + .state = URMA_PORT_ACTIVE, + .active_width = URMA_LINK_X1, + .active_speed = URMA_SP_100G, + .active_mtu = URMA_MTU_4096}}, + .reserved_jetty_id_min = 0, + .reserved_jetty_id_max = 1024}; + +urma_eid_info_t mock_eid_info = { + .eid = {{0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, + 0x0C, 0x0D, 0x0E, 0x0F, 0x10}}, + .eid_index = 0}; + +} // namespace + +extern "C" { + +urma_status_t urma_init(urma_init_attr_t *init_attr) { + std::unique_lock lock(g_rw_mutex); + if (initialized) { + return URMA_EEXIST; + } + initialized = true; + return URMA_SUCCESS; +} + +urma_status_t urma_uninit(void) { + std::unique_lock lock(g_rw_mutex); + initialized = false; + for (auto device : device_list) { + delete device; + } + device_list.clear(); + context_map.clear(); + jfce_map.clear(); + for (auto &kv : jfc_state_map) { + delete kv.second; + } + jfc_state_map.clear(); + jfr_map.clear(); + jfr_jfc_map.clear(); + seg_map.clear(); + jetty_map.clear(); + target_jetty_map.clear(); + return URMA_SUCCESS; +} + +urma_device_t **urma_get_device_list(int *num_devices) { + { + std::shared_lock lock(g_rw_mutex); + if (!initialized) { + *num_devices = 0; + return nullptr; + } + if (!device_list.empty()) { + *num_devices = device_list.size(); + urma_device_t **devices = new urma_device_t *[device_list.size()]; + for (size_t i = 0; i < device_list.size(); ++i) { + devices[i] = device_list[i]; + } + return devices; + } + } + { + std::unique_lock write_lock(g_rw_mutex); + if (!initialized) { + *num_devices = 0; + return nullptr; + } + if (device_list.empty()) { + urma_device_t *device = new urma_device_t; + strcpy(device->name, "mock_urma_device"); + strcpy(device->path, "/sys/class/infiniband/mock_device"); + device->type = URMA_TRANSPORT_UB; + device->ops = nullptr; + device->sysfs_dev = nullptr; + device_list.push_back(device); + } + *num_devices = device_list.size(); + urma_device_t **devices = new urma_device_t *[device_list.size()]; + for (size_t i = 0; i < device_list.size(); ++i) { + devices[i] = device_list[i]; + } + return devices; + } +} + +urma_device_t *urma_get_device_by_name(char *dev_name) { + { + std::shared_lock lock(g_rw_mutex); + if (!initialized) { + return nullptr; + } + if (!device_list.empty()) { + for (auto device : device_list) { + if (strcmp(device->name, dev_name) == 0) { + return device; + } + } + return device_list[0]; + } + } + { + std::unique_lock write_lock(g_rw_mutex); + if (!initialized) { + return nullptr; + } + if (device_list.empty()) { + auto *device = new urma_device_t; + strcpy(device->name, "mock_urma_device"); + strcpy(device->path, "/sys/class/infiniband/mock_device"); + device->type = URMA_TRANSPORT_UB; + device->ops = nullptr; + device->sysfs_dev = nullptr; + device_list.push_back(device); + } + for (auto device : device_list) { + if (strcmp(device->name, dev_name) == 0) { + return device; + } + } + return device_list.empty() ? nullptr : device_list[0]; + } +} + +void urma_free_device_list(urma_device_t **device_list) { + if (device_list) { + delete[] device_list; + } +} + +urma_status_t urma_query_device(urma_device_t *device, + urma_device_attr_t *attr) { + if (!device || !attr) { + return URMA_EINVAL; + } + mock_device_attr.dev_cap.max_jfc = 1024; + mock_device_attr.dev_cap.max_jetty = 1024; + mock_device_attr.dev_cap.max_jfs_sge = 8; + mock_device_attr.dev_cap.max_jfr_sge = 8; + memcpy(attr, &mock_device_attr, sizeof(urma_device_attr_t)); + return URMA_SUCCESS; +} + +urma_eid_info_t *urma_get_eid_list(urma_device_t *device, uint32_t *eid_cnt) { + if (!device || !eid_cnt) { + return nullptr; + } + *eid_cnt = 1; + auto *eid_list = new urma_eid_info_t[1]; + memcpy(eid_list, &mock_eid_info, sizeof(urma_eid_info_t)); + return eid_list; +} + +void urma_free_eid_list(urma_eid_info_t *eid_list) { + if (eid_list) { + delete[] eid_list; + } +} + +urma_context_t *urma_create_context(urma_device_t *device, uint32_t eid_index) { + std::unique_lock lock(g_rw_mutex); + if (!device) { + return nullptr; + } + urma_context_t *ctx = new urma_context_t; + ctx->async_fd = 0; + ctx->dev = device; + context_map[ctx] = 1; + return ctx; +} + +urma_status_t urma_delete_context(urma_context_t *ctx) { + std::unique_lock lock(g_rw_mutex); + if (!ctx || context_map.find(ctx) == context_map.end()) { + return URMA_EINVAL; + } + context_map.erase(ctx); + delete ctx; + return URMA_SUCCESS; +} + +urma_jfce_t *urma_create_jfce(urma_context_t *ctx) { + std::unique_lock lock(g_rw_mutex); + if (!ctx || context_map.find(ctx) == context_map.end()) { + return nullptr; + } + // Allocate a real urma_jfce_t so consumers (brpc's AllocateResources reads + // jfce->fd) get a valid struct. Zero-init first so the embedded urma_ref + // (std::atomic_ulong) is in a valid state; the fd is left at -1 so + // Socket::Create falls back to the synthetic-carrier path when used. + urma_jfce_t *jfce = new urma_jfce_t; + memset(jfce, 0, sizeof(urma_jfce_t)); + jfce->urma_ctx = ctx; + jfce->fd = -1; + jfce_map[jfce] = 1; + return jfce; +} + +urma_status_t urma_delete_jfce(urma_jfce_t *jfce) { + std::unique_lock lock(g_rw_mutex); + if (!jfce || jfce_map.find(jfce) == jfce_map.end()) { + return URMA_EINVAL; + } + jfce_map.erase(jfce); + delete jfce; + return URMA_SUCCESS; +} + +urma_jfc_t *urma_create_jfc(urma_context_t *ctx, urma_jfc_cfg_t *cfg) { + std::unique_lock lock(g_rw_mutex); + if (!ctx || !cfg || context_map.find(ctx) == context_map.end()) { + return nullptr; + } + urma_jfc_t *jfc = new urma_jfc_t; + memset(&jfc->jfc_id.eid, 0, sizeof(urma_eid_t)); + jfc->jfc_id.eid.raw[0] = 1; + jfc->jfc_id.uasid = 0; + jfc->jfc_id.id = 1; + jfc->handle = cfg->user_ctx; + jfc->comp_events_acked = 0; + jfc->async_events_acked = 0; + jfc->jfc_cfg = *cfg; + jfc_state_map[jfc] = new JfcState(); + return jfc; +} + +urma_status_t urma_delete_jfc(urma_jfc_t *jfc) { + std::unique_lock lock(g_rw_mutex); + if (!jfc || jfc_state_map.find(jfc) == jfc_state_map.end()) { + return URMA_EINVAL; + } + delete jfc_state_map[jfc]; + jfc_state_map.erase(jfc); + delete jfc; + return URMA_SUCCESS; +} + +urma_jfr_t *urma_create_jfr(urma_context_t *ctx, urma_jfr_cfg_t *cfg) { + std::unique_lock lock(g_rw_mutex); + if (!ctx || !cfg || context_map.find(ctx) == context_map.end()) { + return nullptr; + } + // Opaque handle (avoids partially initializing urma_jfr_t's pthread + // members). brpc's endpoint reads back jfr_cfg.jfc from the stored cfg + // pointer below, so we keep a side-table mapping jfr -> cfg.jfc. + urma_jfr_t *jfr = reinterpret_cast(new int(1)); + jfr_map[jfr] = 1; + // Stash the JFC for urma_post_jfr_wr's completion routing. + jfr_jfc_map[jfr] = cfg->jfc; + return jfr; +} + +urma_status_t urma_delete_jfr(urma_jfr_t *jfr) { + std::unique_lock lock(g_rw_mutex); + if (!jfr || jfr_map.find(jfr) == jfr_map.end()) { + return URMA_EINVAL; + } + jfr_map.erase(jfr); + jfr_jfc_map.erase(jfr); + delete reinterpret_cast(jfr); + return URMA_SUCCESS; +} + +urma_target_seg_t *urma_register_seg(urma_context_t *ctx, urma_seg_cfg_t *cfg) { + std::unique_lock lock(g_rw_mutex); + if (!ctx || !cfg || context_map.find(ctx) == context_map.end()) { + return nullptr; + } + urma_target_seg_t *seg = new urma_target_seg_t; + memset(&seg->seg.ubva.eid, 0, sizeof(urma_eid_t)); + seg->seg.ubva.eid.raw[0] = 1; + seg->seg.ubva.uasid = 0; + seg->seg.ubva.va = cfg->va; + seg->seg.len = cfg->len; + seg->seg.token_id = cfg->token_value.token; + seg_map[seg] = 1; + return seg; +} + +urma_status_t urma_unregister_seg(urma_target_seg_t *seg) { + std::unique_lock lock(g_rw_mutex); + if (!seg || seg_map.find(seg) == seg_map.end()) { + return URMA_EINVAL; + } + seg_map.erase(seg); + delete seg; + return URMA_SUCCESS; +} + +urma_target_seg_t *urma_import_seg(urma_context_t *ctx, urma_seg_t *seg, + urma_token_t *token_value, uint64_t addr, + urma_import_seg_flag_t flag) { + std::unique_lock lock(g_rw_mutex); + if (!ctx || !seg || !token_value || + context_map.find(ctx) == context_map.end()) { + return nullptr; + } + urma_target_seg_t *tseg = new urma_target_seg_t; + tseg->seg = *seg; + *token_value = {.token = seg->token_id}; + seg_map[tseg] = 1; + return tseg; +} + +urma_status_t urma_unimport_seg(urma_target_seg_t *tseg) { + std::unique_lock lock(g_rw_mutex); + if (!tseg || seg_map.find(tseg) == seg_map.end()) { + return URMA_EINVAL; + } + seg_map.erase(tseg); + delete tseg; + return URMA_SUCCESS; +} + +urma_status_t urma_get_async_event(urma_context_t *ctx, + urma_async_event_t *event) { + if (!ctx || !event) { + return URMA_EINVAL; + } + std::shared_lock lock(g_rw_mutex); + if (context_map.find(ctx) == context_map.end()) { + return URMA_EINVAL; + } + return URMA_ETIMEOUT; +} + +void urma_ack_async_event(urma_async_event_t *event) {} + +urma_jetty_t *urma_create_jetty(urma_context_t *ctx, urma_jetty_cfg_t *cfg) { + std::unique_lock lock(g_rw_mutex); + if (!ctx || !cfg || context_map.find(ctx) == context_map.end()) { + return nullptr; + } + urma_jetty_t *jetty = new urma_jetty_t; + memset(&jetty->jetty_id.eid, 0, sizeof(urma_eid_t)); + jetty->jetty_id.eid.raw[0] = 1; + jetty->jetty_id.uasid = 0; + jetty->jetty_id.id = 1; + jetty->jetty_cfg = *cfg; + jetty->remote_jetty = nullptr; + jetty_map[jetty] = 1; + return jetty; +} + +urma_status_t urma_delete_jetty(urma_jetty_t *jetty) { + std::unique_lock lock(g_rw_mutex); + if (!jetty || jetty_map.find(jetty) == jetty_map.end()) { + return URMA_EINVAL; + } + jetty_map.erase(jetty); + delete jetty; + return URMA_SUCCESS; +} + +urma_status_t urma_unbind_jetty(urma_jetty_t *jetty) { + std::unique_lock lock(g_rw_mutex); + if (!jetty || jetty_map.find(jetty) == jetty_map.end()) { + return URMA_EINVAL; + } + jetty->remote_jetty = nullptr; + return URMA_SUCCESS; +} + +urma_target_jetty_t *urma_import_jetty(urma_context_t *ctx, + urma_rjetty_t *rjetty, + urma_token_t *token_value) { + std::unique_lock lock(g_rw_mutex); + if (!ctx || !rjetty || !token_value || + context_map.find(ctx) == context_map.end()) { + return nullptr; + } + urma_target_jetty_t *tjetty = new urma_target_jetty_t; + tjetty->id = rjetty->jetty_id; + target_jetty_map[tjetty] = 1; + *token_value = {.token = 1}; + return tjetty; +} + +urma_status_t urma_unimport_jetty(urma_target_jetty_t *tjetty) { + std::unique_lock lock(g_rw_mutex); + if (!tjetty || target_jetty_map.find(tjetty) == target_jetty_map.end()) { + return URMA_EINVAL; + } + target_jetty_map.erase(tjetty); + delete tjetty; + return URMA_SUCCESS; +} + +urma_status_t urma_bind_jetty(urma_jetty_t *jetty, + urma_target_jetty_t *tjetty) { + std::unique_lock lock(g_rw_mutex); + if (!jetty || !tjetty || jetty_map.find(jetty) == jetty_map.end() || + target_jetty_map.find(tjetty) == target_jetty_map.end()) { + return URMA_EINVAL; + } + jetty->remote_jetty = tjetty; + return URMA_SUCCESS; +} + +urma_status_t urma_modify_jetty(urma_jetty_t *jetty, urma_jetty_attr_t *attr) { + std::shared_lock lock(g_rw_mutex); + if (!jetty || !attr || jetty_map.find(jetty) == jetty_map.end()) { + return URMA_EINVAL; + } + return URMA_SUCCESS; +} + +urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, + urma_jfs_wr_t **bad_wr) { + { + std::shared_lock lock(g_rw_mutex); + if (!jetty || !wr || jetty_map.find(jetty) == jetty_map.end()) { + if (bad_wr) { + *bad_wr = wr; + } + return URMA_EINVAL; + } + } + + urma_jfc_t *jfc = jetty->jetty_cfg.jfs_cfg.jfc; + JfcState *state = nullptr; + { + std::shared_lock lock(g_rw_mutex); + auto it = jfc_state_map.find(jfc); + if (it == jfc_state_map.end()) { + if (bad_wr) { + *bad_wr = wr; + } + return URMA_EINVAL; + } + state = it->second; + } + + { + std::lock_guard jfc_lock(state->mutex); + urma_jfs_wr_t *current_wr = wr; + while (current_wr) { + // Send completion: user_ctx == 0 marks a pure-ack WR; still + // complete it so HandleCompletion reclaims the imm budget. + state->pending_ctx.push_back(current_wr->user_ctx); + current_wr = current_wr->next; + } + } + + if (bad_wr) { + *bad_wr = nullptr; + } + return URMA_SUCCESS; +} + +// brpc's recv path posts recv WRs via the JFR. In the real driver a posted +// recv completes when a peer SEND arrives; the mock has no peer, so we +// immediately enqueue a recv completion (URMA_CR_SUCCESS, zero-length) on +// the JFC the JFR is bound to. This lets the endpoint's PollCq loop drain +// recv completions and exercise PostRecv/SendAck without real traffic. +urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, + urma_jfr_wr_t **bad_wr) { + std::shared_lock lock(g_rw_mutex); + if (!jfr || !wr || jfr_map.find(jfr) == jfr_map.end()) { + if (bad_wr) { *bad_wr = wr; } + return URMA_EINVAL; + } + auto jfc_it = jfr_jfc_map.find(jfr); + if (jfc_it == jfr_jfc_map.end() || jfc_it->second == nullptr) { + if (bad_wr) { *bad_wr = wr; } + return URMA_EINVAL; + } + urma_jfc_t *jfc = jfc_it->second; + auto it = jfc_state_map.find(jfc); + if (it == jfc_state_map.end()) { + if (bad_wr) { *bad_wr = wr; } + return URMA_EINVAL; + } + // Walk the linked list of recv WRs and enqueue one completion per WR. + JfcState *state = it->second; + std::lock_guard jfc_lock(state->mutex); + urma_jfr_wr_t *cur = wr; + while (cur) { + state->pending_recv.push_back(cur->user_ctx); + cur = cur->next; + } + if (bad_wr) { *bad_wr = nullptr; } + return URMA_SUCCESS; +} + +int urma_poll_jfc(urma_jfc_t *jfc, int num_entries, urma_cr_t *cr_list) { + JfcState *state = nullptr; + { + std::shared_lock lock(g_rw_mutex); + auto it = jfc_state_map.find(jfc); + if (it == jfc_state_map.end()) { + return -1; + } + state = it->second; + } + + int num_completed = 0; + { + std::lock_guard jfc_lock(state->mutex); + // Drain send completions first, then recv completions. + int available_send = static_cast(state->pending_ctx.size()); + int from_send = std::min(num_entries, available_send); + for (int i = 0; i < from_send; ++i) { + cr_list[num_completed].status = URMA_CR_SUCCESS; + cr_list[num_completed].user_ctx = state->pending_ctx[i]; + cr_list[num_completed].flag.bs.s_r = 0; // send + cr_list[num_completed].completion_len = 0; + ++num_completed; + } + state->pending_ctx.erase(state->pending_ctx.begin(), + state->pending_ctx.begin() + from_send); + int remaining = num_entries - num_completed; + int available_recv = static_cast(state->pending_recv.size()); + int from_recv = std::min(remaining, available_recv); + for (int i = 0; i < from_recv; ++i) { + cr_list[num_completed].status = URMA_CR_SUCCESS; + cr_list[num_completed].user_ctx = state->pending_recv[i]; + cr_list[num_completed].flag.bs.s_r = 1; // recv + cr_list[num_completed].completion_len = 0; // no payload moved + ++num_completed; + } + state->pending_recv.erase(state->pending_recv.begin(), + state->pending_recv.begin() + from_recv); + } + return num_completed; +} + +} // extern "C" + +#endif // if BRPC_WITH_URMA diff --git a/src/brpc/urma/urma_api.h b/src/brpc/urma/urma_api.h new file mode 100644 index 0000000000..3f9a84425e --- /dev/null +++ b/src/brpc/urma/urma_api.h @@ -0,0 +1,1147 @@ +/* + * SPDX-License-Identifier: MIT + * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. + * Description: URMA API + * Author: Ouyang changchun, Bojie Li, Yan Fangfang, Qian Guoxin + * Create: 2021-07-13 + * Note: + * History: 2021-07-13 Create File + */ +#ifndef URMA_API_H +#define URMA_API_H + +#include +#include + +#include "urma_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Init urma environment. + * @param[in] [Required] conf: urma init attr, a random uasid will be assigned when conf is null. + * Return: 0 on success, other value on error + */ +urma_status_t urma_init(urma_init_attr_t *conf); + +/** + * Un-init urma environment, it will free uasid. + * Return: 0 on success, other value on error + */ +urma_status_t urma_uninit(void); + +/* Device Manage API */ + /** + * Get device list. + * @param[out] num_devices: number of urma device; + * Return: pointer array of urma_device; NULL means no device returned; + * Note: urma_free_device_list() needs to be called to free memory; + */ +urma_device_t **urma_get_device_list(int *num_devices); + +/** +* free device list. +* @param[in] [Required] device_list: pointer array of urma_device,return value of urma_get_device_list. + Can be called after using urma_device list; +* Return: void; +*/ +void urma_free_device_list(urma_device_t **device_list); + +/** +* Get eid list. +* @param[in] [Required] dev: device pointer +* @param[out] cnt: Return the number of valid eids; +* Return: If it succeeds, it will return the eid_info array pointer, and the number of elements +* is cnt; if it fails, it will return NULL; it will be released by the user calling +*/ +urma_eid_info_t *urma_get_eid_list(urma_device_t *dev, uint32_t *cnt); + +/** +* free eid list. +* @param[in] [Required] eid_list: The eid array pointer to be released +* Return: void; +*/ +void urma_free_eid_list(urma_eid_info_t *eid_list); + +/** + * Get device by device name. + * @param[in] [Required] dev_name: device's name; + * Return: urma_device; NULL means no device returned; + */ +urma_device_t *urma_get_device_by_name(char *dev_name); + + /** + * Get device by device eid. + * @param[in] [Required] eid: device's eid; + * @param[in] [Required] type: device's transport type; + * Return: urma_device; NULL means no device returned; + */ +urma_device_t *urma_get_device_by_eid(urma_eid_t eid, urma_transport_type_t type); + +/** + * Query the attributes and capabilities of urma devices. + * @param[in] [Required] dev: urma_device; + * @param[out] dev_attr: Return device attributes, user needs to allocate and free the memory; + * Return: 0 on success, other value on error + */ +urma_status_t urma_query_device(urma_device_t *dev, urma_device_attr_t *dev_attr); + +/** + * Create an urma context on the urma device. + * @param[in] [Required] dev: urma device, by get_device apis. + * @param[in] [Required] eid_index: device's eid index. + * Return urma context pointer on success, NULL on error. + */ +urma_context_t *urma_create_context(urma_device_t *dev, uint32_t eid_index); + +/** + * Delete the created urma context. + * @param[in] [Required] ctx: handle of the created context. + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_context(urma_context_t *ctx); + +/** + * Set option of urma context. + * @param[in] [Required] ctx: handle of the created context. + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_context_opt(urma_context_t *ctx, urma_opt_name_t opt_name, const void *opt_value, + size_t opt_len); + +/** + * Create a jetty for completion (jfc). + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] jfc_cfg: configuration including: depth, flag, jfce, user context; + * Return: the handle of created jfc, not NULL on success; NULL on error + */ +urma_jfc_t *urma_create_jfc(urma_context_t *ctx, urma_jfc_cfg_t *jfc_cfg); + +/** + * Modify JFC attributes. + * @param[in] [Required] jfc: specify JFC; + * @param[in] [Required] attr: attributes to be modified; + * Return: 0 on success, other value on error + */ +urma_status_t urma_modify_jfc(urma_jfc_t *jfc, urma_jfc_attr_t *attr); + +/** + * Delete the created jfc. + * @param[in] [Required] jfc: handle of the created jfc; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jfc(urma_jfc_t *jfc); + +/** + * Alloc a jfc. + * @param[in] [Required] urma_ctx: the urma context created before; + * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; + * @param[out] [Required] jfc: handle of the allocated jfc; + * Return: 0 on success, other value on error + */ +urma_status_t urma_alloc_jfc(urma_context_t *urma_ctx, urma_jfc_cfg_t *cfg, urma_jfc_t **jfc); + +/** + * Set the opt of jfc. + * @param[in] [Required] jfc: the jfc allocated before; + * @param[in] [Required] opt: the opt to change cfg of jfc; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[in] [Required] buf: the buffer containing the value to set; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_jfc_opt(urma_jfc_t *jfc, uint64_t opt, void *buf, uint32_t len); + +/** + * Active the allocated jfc. + * @param[in] [Required] jfc: the jfc allocated before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_active_jfc(urma_jfc_t *jfc); + +/** + * Get the opt of jfc. + * @param[in] [Required] jfc: the jfc allocated before; + * @param[in] [Required] opt: the opt to change cfg of jfc; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[out] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_jfc_opt(urma_jfc_t *jfc, uint64_t opt, void *buf, uint32_t len); + +/** + * Deactive the created jfc. + * @param[in] [Required] jfc: the jfc actived before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_deactive_jfc(urma_jfc_t *jfc); + +/** + * Free the created jfc. + * @param[in] [Required] jfc: the jfc allocated before; + * After free, the jfc pointer is no longer allowed to be accessed. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_jfc(urma_jfc_t *jfc); + +/** + * Delete the created jfc in a batch. + * @param[in] [Required] jfc_arr: the array of the jfc pointer; + * @param[in] [Required] jfc_num: array length; + * @param[out] [Required] bad_jfc: the address of the first failed jfc pointer; + * Return: 0 on success, EINVAL on invalid parameter, other value on other batch + * delete errors. + * If delete error happens(except invalid parameter), stop at the first failed + * jfc and return, these jfc before the failed jfc will be deleted normally. + */ +urma_status_t urma_delete_jfc_batch(urma_jfc_t **jfc_arr, int jfc_num, urma_jfc_t **bad_jfc); + +/** + * Create a jetty for send (jfs). + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] jfs_cfg: address to pu the jfs config; + * Return: the handle of created jfs, not NULL on success, NULL on error + */ +urma_jfs_t *urma_create_jfs(urma_context_t *ctx, urma_jfs_cfg_t *jfs_cfg); + +/** + * Modify a jetty for send (jfs). + * @param[in] [Required] jfs: the jfs created before; + * @param[in] [Required] attr: attributes to be modified; + * Return: 0 on success, other value on error + */ +urma_status_t urma_modify_jfs(urma_jfs_t *jfs, urma_jfs_attr_t *attr); + +/** + * Query a jetty for send (jfs). + * @param[in] [Required] jfs: the jfs created before; + * @param[out] [Required] cfg: config of jfs; + * @param[out] [Required] attr: attributes of jfs; + * Return: 0 on success, other value on error + */ +urma_status_t urma_query_jfs(urma_jfs_t *jfs, urma_jfs_cfg_t *cfg, urma_jfs_attr_t *attr); + +/** + * Delete the created jfs. + * @param[in] [Required] jfs: the jfs created before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jfs(urma_jfs_t *jfs); + +/** + * Delete the created jfs in a batch. + * @param[in] [Required] jfs_arr: the array of the jfs pointer; + * @param[in] [Required] jfs_num: array length; + * @param[out] [Required] bad_jfs: the address of the first failed jfs pointer; + * Return: 0 on success, EINVAL on invalid parameter, other value on other batch + * delete errors. + * If delete error happens(except invalid parameter), stop at the first failed + * jfs and return, these jfs before the failed jfs will be deleted normally. + */ +urma_status_t urma_delete_jfs_batch(urma_jfs_t **jfs_arr, int jfs_num, urma_jfs_t **bad_jfs); + +/** + * Poll the CRs for all the WRs that posted to JFS, but are not completed. + * Call the API after modify JFS to error, or polled a suspened done CR. + * CRs with status of URMA_CR_WR_FLUSH_ERR will be returned on success. + * @param[in] [Required] jfs: the jfs created before; + * @param[in] [Required] cr_cnt: Number of CR expected to be received.; + * @param[out] [Required] cr: Address for storing CR; + * Return: the number of CR returned, 0 means no CR returned, -1 on error + */ +int urma_flush_jfs(urma_jfs_t *jfs, int cr_cnt, urma_cr_t *cr); + +/** + * Alloc a jfs. + * @param[in] [Required] urma_ctx: the urma context created before; + * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; + * @param[out] [Required] jfs: handle of the allocated jfs; + * Return: 0 on success, other value on error + */ +urma_status_t urma_alloc_jfs(urma_context_t *urma_ctx, urma_jfs_cfg_t *cfg, urma_jfs_t **jfs); + +/** + * Set the opt of jfs. + * @param[in] [Required] jfs: the jfs allocated before; + * @param[in] [Required] opt: the opt to change cfg of jfs; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[in] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_jfs_opt(urma_jfs_t *jfs, uint64_t opt, void *buf, uint32_t len); + +/** + * Active the created jfs. + * @param[in] [Required] jfs: the jfs allocated before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_active_jfs(urma_jfs_t *jfs); + +/** + * Get the opt of jfs. + * @param[in] [Required] jfs: the jfs allocated before; + * @param[in] [Required] opt: the opt to change cfg of jfs; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[out] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_jfs_opt(urma_jfs_t *jfs, uint64_t opt, void *buf, uint32_t len); + +/** + * Deactive the created jfs. + * @param[in] [Required] jfs: the jfs actived before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_deactive_jfs(urma_jfs_t *jfs); + +/** + * Free the created jfs. + * @param[in] [Required] jfs: the jfs allocated before; + * After free, the jfs pointer is no longer allowed to be accessed. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_jfs(urma_jfs_t *jfs); + + /** + * Create a jetty for receive (jfr). + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] jfr_cfg: address to put the jfr config; + * Return: the handle of created jfr, not NULL on success, NULL on error + */ +urma_jfr_t *urma_create_jfr(urma_context_t *ctx, urma_jfr_cfg_t *jfr_cfg); + +/** + * Modify JFR attributes. + * @param[in] [Required] jfr: specify JFR; + * @param[in] [Required] attr: attributes to be modified; + * Return: 0 on success, other value on error + */ +urma_status_t urma_modify_jfr(urma_jfr_t *jfr, urma_jfr_attr_t *attr); + +/** + * Query a jetty for recv(jfr). + * @param[in] [Required] jfr: the jfr created before; + * @param[out] [Required] cfg: config of jfr; + * @param[out] [Required] attr: attributes of jfr; + * Return: 0 on success, other value on error + */ +urma_status_t urma_query_jfr(urma_jfr_t *jfr, urma_jfr_cfg_t *cfg, urma_jfr_attr_t *attr); + +/** + * Delete the created jfr. + * @param[in] [Required] jfr: the jfr created before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jfr(urma_jfr_t *jfr); + +/** + * Delete the created jfr in a batch. + * @param[in] [Required] jfr_arr: the array of the jfr pointer; + * @param[in] [Required] jfr_num: array length; + * @param[out] [Required] bad_jfr: the address of the first failed jfr pointer; + * Return: 0 on success, EINVAL on invalid parameter, other value on other batch + * delete errors. + * If delete error happens(except invalid parameter), stop at the first failed + * jfr and return, these jfr before the failed jfr will be deleted normally. + */ +urma_status_t urma_delete_jfr_batch(urma_jfr_t **jfr_arr, int jfr_num, urma_jfr_t **bad_jfr); + +/** + * Import a remote jfr to local node. + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] rjfr: the information of remote jfr to import into user node, trans_mode required, + * trans_mode same to create_jfr trans_mode; + * @param[in] [Required] token_value: token to put into output jetty/protection table; + * Return: the address of target jfr, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jfr(urma_context_t *ctx, urma_rjfr_t *rjfr, urma_token_t *token_value); + +/** + * Import a remote jfr to local node by control plane. + * Note: trans_mode from rjfr should be the same as the trans_mode of get_tp_list, + * users should obey this rule in case of unexpected errors. + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] rjfr: the information of remote jfr to import into user node, trans_mode required, + * trans_mode same to create_jfr trans_mode; + * @param[in] [Required] token_value: token to put into output jetty/protection table; + * @param[in] [Required] cfg: tp active configuration to exchange with target; + * Return: the address of target jfr, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jfr_ex(urma_context_t *ctx, urma_rjfr_t *rjfr, urma_token_t *token_value, + urma_import_jfr_ex_cfg_t *cfg); + +/** + * Unimport the imported remote jfr. + * @param[in] [Required] target_jfr: the target jfr to unimport; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unimport_jfr(urma_target_jetty_t *target_jfr); + +/** + * Advise jfr: construct the transport channel for jfs and remote jfr. + * @param[in] [Required] jfs: jfs to use to construct the transport channel; + * @param[in] [Required] tjfr: target jfr information including full qualified jfr id; + * Return: 0 on success, URMA_EEXIST if the jfr has been advised, other value on error + */ +urma_status_t urma_advise_jfr(urma_jfs_t *jfs, urma_target_jetty_t *tjfr); + +/** + * Async API for urma_advise_jfr + * Advise jfr: construct the transport channel for jfs and remote jfr. + * @param[in] [Required] jfs: jfs to use to construct the transport channel; + * @param[in] [Required] tjfr: target jfr information including full qulified jfr id; + * @param[in] [Required] cb_func: user defined callback function. + * @param[in] [Required] cb_arg: user defined arguments for the callback function. + * Return: 0 on success, URMA_EEXIST if the jfr has been advised, other value on error. + * Note: User must define callback function to handle result, + * as the async respone will call the cb_func and pass the result to it. + */ +urma_status_t urma_advise_jfr_async(urma_jfs_t *jfs, urma_target_jetty_t *tjfr, urma_advise_async_cb_func cb_fun, + void *cb_arg); + +/** + * Unadvise jfr: disconnect the transport channel for jfs and remote jfr. Optional API for optimization + * @param[in] [Required] jfs: jfs to use to construct the transport channel; + * @param[in] [Required] tjfr: target jfr information including full qualified jfr id; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unadvise_jfr(urma_jfs_t *jfs, urma_target_jetty_t *tjfr); + +/** + * Alloc a jfr. + * @param[in] [Required] urma_ctx: the urma context created before; + * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; + * @param[out] [Required] jfr: handle of the allocated jfr; + * Return: 0 on success, other value on error + */ +urma_status_t urma_alloc_jfr(urma_context_t *urma_ctx, urma_jfr_cfg_t *cfg, urma_jfr_t **jfr); + +/** + * Set the opt of jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * @param[in] [Required] opt: the opt to change cfg of jfr; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[in] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_jfr_opt(urma_jfr_t *jfr, uint64_t opt, void *buf, uint32_t len); + +/** + * Active the allocated jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * Return: 0 on success, other value on error + */ +urma_status_t urma_active_jfr(urma_jfr_t *jfr); + +/** + * Get the opt of jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * @param[in] [Required] opt: the opt to change cfg of jfr; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[out] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_jfr_opt(urma_jfr_t *jfr, uint64_t opt, void *buf, uint32_t len); + +/** + * Deactive the actived jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * Return: 0 on success, other value on error + */ +urma_status_t urma_deactive_jfr(urma_jfr_t *jfr); + +/** + * Free the allocated jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * After free, the jfr pointer is no longer allowed to be accessed. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_jfr(urma_jfr_t *jfr); + +/** + ******************** Beginning of URMA JETTY APIs *************************** + */ + +/** + * Create jetty, which is a pair of jfs and jfr + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] jetty_cfg: pointer of the jetty config; + * Return: the handle of created jetty, not NULL on success, NULL on error + */ +urma_jetty_t *urma_create_jetty(urma_context_t *ctx, urma_jetty_cfg_t *jetty_cfg); + +/** + * Modify jetty attributes. + * @param[in] [Required] jetty: specify jetty; + * @param[in] [Required] attr: attributes to be modified; + * Return: 0 on success, other value on error + */ +urma_status_t urma_modify_jetty(urma_jetty_t *jetty, urma_jetty_attr_t *attr); + +/** + * Query jetty attributes. + * @param[in] [Required] jetty: specify jetty; + * @param[out] [Required] cfg: cconfig to query; + * @param[out] [Required] attr: attributes to query; + * Return: 0 on success, other value on error + */ +urma_status_t urma_query_jetty(urma_jetty_t *jetty, urma_jetty_cfg_t *cfg, urma_jetty_attr_t *attr); + +/** + * Delete the created jetty. + * @param[in] [Required] jetty: the jetty created before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jetty(urma_jetty_t *jetty); + +/** + * Delete the created jetty in a batch. + * @param[in] [Required] jetty_arr: the array of the jetty pointer; + * @param[in] [Required] jetty_num: array length; + * @param[out] [Required] bad_jetty: the address of the first failed jetty pointer; + * Return: 0 on success, EINVAL on invalid parameter, other value on other batch + * delete errors. + * If delete error happens(except invalid parameter), stop at the first failed + * jetty and return, these jetty before the failed jetty will be deleted normally. + */ +urma_status_t urma_delete_jetty_batch(urma_jetty_t **jetty_arr, int jetty_num, urma_jetty_t **bad_jetty); + +/** + * Import a remote jetty. + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, + * trans_mode same to create_jetty trans_mode; + * @param[in] [Required] token_value: token to put into output jetty protection table; + * Return: the address of target jetty, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jetty(urma_context_t *ctx, urma_rjetty_t *rjetty, urma_token_t *token_value); + +/** + * Import a remote jetty by control plane. + * Note: trans_mode from rjetty should be the same as the trans_mode of get_tp_list, + * users should obey this rule in case of unexpected errors. + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, + * trans_mode same to create_jetty trans_mode; + * @param[in] [Required] token_value: token to put into output jetty protection table; + * @param[in] [Required] cfg: tp active configuration to exchange with target; + * Return: the address of target jetty, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jetty_ex(urma_context_t *ctx, urma_rjetty_t *rjetty, urma_token_t *token_value, + urma_import_jetty_ex_cfg_t *cfg); + +/** + * Unimport the imported remote jetty. + * @param[in] [Required] tjetty: the target jetty to unimport; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unimport_jetty(urma_target_jetty_t *tjetty); + +/** + * Advise jetty: construct the transport channel between local jetty and remote jetty. + * @param[in] [Required] jetty: local jetty to construct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * Return: 0 on success, URMA_EEXIST if the jetty has been advised, other value on error + * Note: A local jetty can be advised with several remote jetties. A connectionless jetty is free to call the adivse API + */ +/* todo: available after implementing URMA_TM_RM(IB_RC) */ +urma_status_t urma_advise_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); + +/** + * Unadvise jetty: deconstruct the transport channel between local jetty and remote jetty. + * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * Return: 0 on success, other value on error + */ +/* todo: available after implementing URMA_TM_RM(IB_RC) */ +urma_status_t urma_unadvise_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); + +/** + * Bind jetty: construct the transport channel between local jetty and remote jetty. + * @param[in] [Required] jetty: local jetty to construct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error + * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. + */ +urma_status_t urma_bind_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); + +/** + * Bind jetty: construct the transport channel between local jetty and remote jetty by control plane. + * Note: trans_mode from tjetty should be the same as the trans_mode of get_tp_list, + * users should obey this rule in case of unexpected errors. + * @param[in] [Required] jetty: local jetty to construct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error; + * @param[in] [Required] cfg: tp active configuration to exchange with target; + * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. + */ +urma_status_t urma_bind_jetty_ex(urma_jetty_t *jetty, urma_target_jetty_t *tjetty, urma_bind_jetty_ex_cfg_t *cfg); + +/** + * Unbind jetty: deconstruct the transport channel between local jetty and remote jetty. + * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unbind_jetty(urma_jetty_t *jetty); + +/** + * Poll the CRs for all the WRs that posted to Jetty, but are not completed. + * Call the API after modify Jetty to error, or polled a suspened done CR. + * CRs with status of URMA_CR_WR_FLUSH_ERR will be returned on success. + * @param[in] [Required] jetty: the jetty created before; + * @param[in] [Required] cr_cnt: Number of CR expected to be received.; + * @param[out] [Required] cr: Address for storing CR; + * Return: the number of CR returned, 0 means no CR returned, -1 on error + */ +int urma_flush_jetty(urma_jetty_t *jetty, int cr_cnt, urma_cr_t *cr); + +/** + * Import a remote jetty asynchronously. + * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; + * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, + * trans_mode same to create_jetty trans_mode; + * @param[in] [Required] token_value: token to put into output jetty protection table; + * @param[in] [Required] user_ctx: user_ctx create by user; + * @param[in] [Required] timeout: task timeout set by user (milliseconds); + * Return: the address of target jetty, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jetty_async(urma_notifier_t *notifier, const urma_rjetty_t *rjetty, + const urma_token_t *token_value, uint64_t user_ctx, int timeout); + +/** + * Unimport the imported remote jetty asynchronously. + * @param[in] [Required] tjetty: the target jetty to unimport; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unimport_jetty_async(urma_target_jetty_t *tjetty); + +/** + * Bind jetty asynchronously: construct the transport channel between local jetty and remote jetty. + * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; + * @param[in] [Required] jetty: local jetty to construct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * @param[in] [Required] user_ctx: user_ctx create by user; + * @param[in] [Required] timeout: task timeout set by user (milliseconds); + * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error + * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. + */ +urma_status_t urma_bind_jetty_async(urma_notifier_t *notifier, urma_jetty_t *jetty, urma_target_jetty_t *tjetty, + uint64_t user_ctx, int timeout); + +/** + * Unbind jetty: deconstruct the transport channel between local jetty and remote jetty asynchronously. + * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unbind_jetty_async(urma_jetty_t *jetty); + +/** + * Create a data structure for sensing asynchronous link establishment results. + * @param[in] [Required] ctx: the urma context created before; + * Return: the address of urma notifier, not NULL on success, NULL on error + */ +urma_notifier_t *urma_create_notifier(urma_context_t *ctx); + +/** + * Delete the created notifier. + * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_notifier(urma_notifier_t *notifier); + +/** + * Alloc a jetty. + * @param[in] [Required] urma_ctx: the urma context created before; + * @param[in] [Required] jetty_cfg: configuration including: depth, flag, jfce, user context; + * @param[out] [Required] jetty: handle of the allocated jetty; + * Return: 0 on success, other value on error + */ +urma_status_t urma_alloc_jetty(urma_context_t *urma_ctx, urma_jetty_cfg_t *cfg, urma_jetty_t **jetty); + +/** + * Set the opt of jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * @param[in] [Required] opt: the opt to change cfg of jetty; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[in] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_jetty_opt(urma_jetty_t *jetty, uint64_t opt, void *buf, uint32_t len); + +/** + * Active the allocated jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * Return: 0 on success, other value on error + */ +urma_status_t urma_active_jetty(urma_jetty_t *jetty); + +/** + * Get the opt of jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * @param[in] [Required] opt: the opt to change cfg of jetty; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[out] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_jetty_opt(urma_jetty_t *jetty, uint64_t opt, void *buf, uint32_t len); + +/** + * Deactive the actived jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * Return: 0 on success, other value on error + */ +urma_status_t urma_deactive_jetty(urma_jetty_t *jetty); + +/** + * Free the allocated jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * After free, the jfc pointer is no longer allowed to be accessed. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_jetty(urma_jetty_t *jetty); + +/** + * Wait for asynchronous event notification to obtain the connection establishment result. + * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; + * @param[in] [Required] cnt: expected number of target jetty to return; + * @param[in] [Required] timeout: max time to wait (milliseconds), + timeout = 0: return immediately even if no events are ready, + timeout = -1: an infinite timeout; + * @param[out] [Required] notify: created by user to store target jetty results; + * Return: the number of target jetty returned, 0 means no target jetty returned, -1 on error + */ +int urma_wait_notify(urma_notifier_t *notifier, uint32_t cnt, urma_notify_t *notify, int timeout); + +/** + * This interface is no longer functional and will be removed later. + * Keep parameter checks to ensure the function works as before. + */ +urma_status_t urma_ack_notify(urma_context_t *ctx, uint32_t cnt, urma_notify_t *notify); + +/** + ******************** Beginning of URMA JETTY GROUP APIs *************************** + */ + +/** + * Create jetty group + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] cfg: pointer of the jetty group config; + * Return: the handle of created jetty group, not NULL on success, NULL on error + */ +urma_jetty_grp_t *urma_create_jetty_grp(urma_context_t *ctx, urma_jetty_grp_cfg_t *cfg); + +/** + * Destroy jetty group + * @param[in] [Required] jetty_grp: the Jetty group created before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jetty_grp(urma_jetty_grp_t *jetty_grp); + +/** + * Create a jfce + * @param[in] [Required] ctx: the urma context created before; + * Return: the address of created jfce, not NULL on success, NULL on error + */ +urma_jfce_t *urma_create_jfce(urma_context_t *ctx); + +/** + * Delete a jfce + * @param[in] [Required] jfce: the jfce to be deleted; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jfce(urma_jfce_t *jfce); + +/** + * Get asyn event. + * @param[in] [Required] ctx: handle of the created urma context; + * @param[out] [Required] event: the address to put event + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_async_event(urma_context_t *ctx, urma_async_event_t *event); + +/** + * Ack asyn event. + * @param[in] [Required] event: the address to ack event; + * Return: void + */ +void urma_ack_async_event(urma_async_event_t *event); + +/** + * Request to assign a token id. token id is used to register the segment with the protection table. + * @param[in] [Required] ctx: specifies the urma context. + * Return: pointer to key id on success, NULL on error. + */ +urma_token_id_t *urma_alloc_token_id(urma_context_t *ctx); + +/** + * Request to assign a token id. token id is used to register multiple segments with the protection table. + * Can use table mode or entry mode based on flag. + * @param[in] [Required] ctx: specifies the urma context. + * @param[in] [Required] flag: decides the mode of token id. use table mode if enable multi_seg in flag. + * Return: pointer to key id on success, NULL on error. + * Note: if use table mode, the VA address page alignment is required when register the segments. + */ +urma_token_id_t *urma_alloc_token_id_ex(urma_context_t *ctx, urma_token_id_flag_t flag); + +/** + * Request to release token id. + * @param[in] [Required] token_id: Specifies the token id to be released. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_token_id(urma_token_id_t *token_id); + +/** + * Register a memory segment on specified va address for local or remote access. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] seg_cfg: Specify cfg of seg to be registered, including address, len, token, and so on; + * Return: pointer to target segment on success, NULL on error + * And the immedidate data wrote from clients is polled from this common jfc. + */ +urma_target_seg_t *urma_register_seg(urma_context_t *ctx, urma_seg_cfg_t *seg_cfg); + +/** + * Unregister a local memory segment on specified va address. + * @param[in] [Required] target_seg: target segment to be unregistered; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unregister_seg(urma_target_seg_t *target_seg); + +/** + * Import a memory segment on specified ubva address. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] seg: handle of memory segment to import; + * @param[in] [Required] token_value: token of remote side to put into output protection table; + * @param[in] [Optional] addr: the virtual address to which the segment will be mapped; + * @param[in] [Required] flag: flag to indicate the import attribute of memory segment; + * Return: pointer to target segment on success, NULL on error + */ +urma_target_seg_t *urma_import_seg(urma_context_t *ctx, urma_seg_t *seg, urma_token_t *token_value, uint64_t addr, + urma_import_seg_flag_t flag); + +/** + * Unimport a memory segment on specified ubva address. + * @param[in] [Required] tseg: the address of the target segment to unimport; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unimport_seg(urma_target_seg_t *tseg); + +/** + * post a request to read, write, atomic or send data. + * @param[in] jfs: the jfs created before, which is used to put command; + * @param[in] wr: the posting request all information, including src addr, dst addr, len, jfc, flag, ordering etc. + * @param[in] bad_wr: the first of failure request. + * Return: 0 on success, other value on error + */ +urma_status_t urma_post_jfs_wr(urma_jfs_t *jfs, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr); + +/** + * post a request to recv data. + * @param[in] jfr: the jfr created before, which is used to put command; + * @param[in] wr: the posting request all information, including sge, flag. + * @param[in] bad_wr: the first of failure request. + * Return: 0 on success, other value on error + */ +urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr); + +/** + * post a request to read, write, atomic or send data. + * @param[in] jetty: the jetty created before, which is used to put command; + * @param[in] wr: the posting request all information, including src addr, dst addr, len, jfc, flag, ordering etc. + * @param[in] bad_wr: the first of failure request. + * Return: 0 on success, other value on error + */ +urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr); + +/** + * post a request to recv data. + * @param[in] jetty: the jetty created before, which is used to put command; + * @param[in] wr: the posting request all information, including sge, flag. + * @param[in] bad_wr: the first of failure request. + * Return: 0 on success, other value on error + */ +urma_status_t urma_post_jetty_recv_wr(urma_jetty_t *jetty, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr); + +/** + * Write data to remote node. + * @param[in] jfs: the jfs created before, which is used to put command; + * @param[in] target_jfr: destination jetty receiver; + * @param[in] dst_tseg: the dst target seg imported before; + * @param[in] src_tseg: the src target seg registered before; + * @param[in] dst: destination address(mapping va on user node or rva in ubva on home node) to be written into + * @param[in] src: source address(local process address space) to fetch data + * @param[in] len: the data len to be written + * @param[in] flag: flag to control jfs work request attritube + * @param[in] user_ctx: the user context, such as request id(rid) etc. + * Return: 0 on success, other value on error + */ +urma_status_t urma_write(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *dst_tseg, + urma_target_seg_t *src_tseg, uint64_t dst, uint64_t src, uint32_t len, urma_jfs_wr_flag_t flag, + uint64_t user_ctx); + +/** + * Read data from remote node. + * @param[in] jfs: the jfs created before, which is used to put command; + * @param[in] target_jfr: destination jetty receiver; + * @param[in] dst_tseg: the seg registered before; + * @param[in] src_tseg: the target seg imported before; + * @param[in] dst: destination address(local process address space) to be written into + * @param[in] src: source address(mapping va or rva in ubva) to fetch data + * @param[in] len: the data len to be written + * @param[in] flag: the flag to control jfs work request attritube + * @param[in] user_ctx: the user context, such as request id(rid) etc. + * Return: 0 on success, other value on error + */ +urma_status_t urma_read(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *dst_tseg, + urma_target_seg_t *src_tseg, uint64_t dst, uint64_t src, uint32_t len, urma_jfs_wr_flag_t flag, + uint64_t user_ctx); + +/** + * Send data to remote node. + * @param[in] jfs: the jfs created before, which is used to put command; + * @param[in] target_jfr: destination jetty receiver(with full qualifed jfr id); + * @param[in] src_tseg: the seg registered before, can be NULL only when flag.bs.inline_flag == URMA_INLINE_ENABLE + * @param[in] src: source address for sending; + * @param[in] len: data length; + * @param[in] flag: flag to control jfs work request attritube + * @param[in] user_ctx: the user context, such as request id(rid) etc; + * Return: 0 on success, other value on error. + */ +urma_status_t urma_send(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *src_tseg, uint64_t src, + uint32_t len, urma_jfs_wr_flag_t flag, uint64_t user_ctx); + +/** + * Assign local buffer to receive data from remote node. + * @param[in] jfr: jetty receiver; + * @param[in] recv_tseg: the locally registered segment before for receiving; + * @param[in] buf: buffer address for receiving; + * @param[in] len: buffer length; + * @param[in] user_ctx: the user context, such as request id(rid) etc; + * Return: 0 on success, other value on error. + */ +urma_status_t urma_recv(urma_jfr_t *jfr, urma_target_seg_t *recv_tseg, uint64_t buf, uint32_t len, uint64_t user_ctx); + +/** + * Poll jfc to get completion record. + * @param[in] jfc: jetty completion queue to poll + * @param[in] cr_cnt: the expected number of completion record to get + * @param[out] cr: the completion record array to fill at least cr_cnt completion records + * Return: the number of completion record returned, 0 means no completion record returned, less than 0 on error + * Note that: at most 16 completion records can be polled for RDMA device + */ +int urma_poll_jfc(urma_jfc_t *jfc, int cr_cnt, urma_cr_t *cr); + +/** + * Arm jfc with interrupt mode. + * @param[in] jfc: jetty completion queue to arm to interrupt mode + * @param[in] solicited_only: indicate it will trigger event only for packets with solicited flag. + * Return: 0 on success, other value on error + */ +urma_status_t urma_rearm_jfc(urma_jfc_t *jfc, bool solicited_only); + +/** + * Wait jfce for event of any completion message is generated. + * @param[in] jfce: jetty event channel to wait on + * @param[in] jfc_cnt: expected jfc count to return + * @param[in] time_out: max time to wait (milliseconds), + * timeout = 0: return immediately even if no events are ready, + * timeout = -1: an infinite timeout + * @param[out] jfc: address to put the jfc handle + * Return: the number of jfc returned, 0 means no jfc returned, -1 on error + * Note: User should check error when wait_jfc returns 0, errno ERESTARTSYS(512) + * means wait operation was interrupted by a signal and this error should + * be ignored, users should continue to wait jfc. + */ +int urma_wait_jfc(urma_jfce_t *jfce, uint32_t jfc_cnt, int time_out, urma_jfc_t *jfc[]); + +/** + * Confirm that a JFC generated event has been processed. + * @param[in] jfc: jfc pointer array to be acknowledged + * @param[in] nevents: event count array to be acknowledged + * @param[in] jfc_cnt: number of elements in the array + * Return: void + */ +void urma_ack_jfc(urma_jfc_t *jfc[], uint32_t nevents[], uint32_t jfc_cnt); + +/** + * Get or allocate a uasid. + * @param[out] uasid: the address to put uasid + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_uasid(uint32_t *uasid); + +/** + * User defined control of the context. + * @param[in] ctx: the created urma context pointer; + * @param[in] in: user ioctl cmd; + * @param[out] out: result of execution; + * Return: 0 on success, other value on error + * Note: This API only supports UB hardware currently. + */ +urma_status_t urma_user_ctl(urma_context_t *ctx, urma_user_ctl_in_t *in, urma_user_ctl_out_t *out); + +/** + * User register own log function, default rsyslog. + * @param[in] func: log callback func; + * Return: 0 on success, other value on error + */ +urma_status_t urma_register_log_func(urma_log_cb_t func); + +/** + * User register location log function with file, function and line info. + * @param[in] func: location log callback function; + * Return: 0 on success, other value on error + * Note: If both urma_register_log_func and urma_register_loc_log_func are called, + * the last registered function will be used. + */ +urma_status_t urma_register_loc_log_func(urma_loc_log_cb func); + +/** + * User unregister own log function, use rsyslog. + * Return: 0 on success, other value on error + */ +urma_status_t urma_unregister_log_func(void); + +/** + * get log level. + * Return: urma_vlog_level_t + */ +urma_vlog_level_t urma_log_get_level(void); + +/** + * set log level. + * @param[in] level: log level to set; + */ +void urma_log_set_level(urma_vlog_level_t level); + +/** + * get log thread tag. + * Return: const char * + */ +const char *urma_log_get_thread_tag(void); + +/** + * set log thread tag. + * @param[in] tag: log tag per thread; + */ +void urma_log_set_thread_tag(const char *tag); + +/** + * User tp only. + * Get tpn of tp created when creating jetty. + * @param[in] jetty: the created jetty pointer; + * Return: >= 0 on success, return as tpn; < 0 on error + */ +int urma_get_tpn(urma_jetty_t *jetty); + +/** + * Get net address info list, user tp only. + * @param[in] ctx: the created urma context pointer; + * @param[out] cnt: numer of net address info; + * Return: pointer of net address list; NULL on error + */ +urma_net_addr_info_t *urma_get_net_addr_list(urma_context_t *ctx, uint32_t *cnt); + +/** + * Free net address info list. + * @param[in] net_addr_list: pointer of net address list + */ +void urma_free_net_addr_list(urma_net_addr_info_t *net_addr_list); + +/** + * Modify tp by user connection. + * @param[in] ctx: the created urma context pointer; + * @param[in] tpn: tpn of tp created before; + * @param[in] cfg: tp configurations filled by user; + * @param[in] attr: tp attributes filled by user; + * @param[in] mask: bitmap configurations for tp attributes; + * Return: 0 on success; other values on error + */ +int urma_modify_tp(urma_context_t *ctx, uint32_t tpn, urma_tp_cfg_t *cfg, urma_tp_attr_t *attr, + urma_tp_attr_mask_t mask); + +/** + * get available tp list from control plane. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] tp_cfg: tp configuration to get; + * @param[in && out] [Required] tp_cnt: tp_cnt is the length of tp_list buffer as in parameter; + * tp_cnt is the number of tp as out parameter; + * @param[out] [Required] tp_list: tp list to get, the buffer is allocated by user; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_tp_list(urma_context_t *ctx, urma_get_tp_cfg_t *cfg, uint32_t *tp_cnt, urma_tp_info_t *tp_list); + +/** + * set tp attribution values in control plane. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] tp_handle: tp_handle got by urma_get_tp_list; + * @param[in] [Required] tp_attr_cnt: number of tp attributions; + * @param[in] [Required] tp_attr_bitmap: tp attributions bitmap, current bitmap is as follow: + * 0-retry_times_init: 3 bit 1-at: 5 bit 2-SIP: 128 bit + * 3-DIP: 128 bit 4-SMA: 48 bit 5-DMA: 48 bit + * 6-vlan_id: 12 bit 7-vlan_en: 1 bit 8-dscp: 6 bit + * 9-at_times: 5 bit 10-sl: 4 bit 11-ttl: 8 bit + * @param[in] [Required] tp_attr: tp attribution values to set; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_tp_attr(const urma_context_t *ctx, const uint64_t tp_handle, const uint8_t tp_attr_cnt, + const uint32_t tp_attr_bitmap, const urma_tp_attr_value_t *tp_attr); + +/** + * get tp attribution values in control plane. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] tp_handle: tp_handle got by urma_get_tp_list; + * @param[out] [Required] tp_attr_cnt: number of tp attributions; + * @param[out] [Required] tp_attr_bitmap: tp attributions bitmap, current bitmap is as follow: + * 0-retry_times_init: 3 bit 1-at: 5 bit 2-SIP: 128 bit + * 3-DIP: 128 bit 4-SMA: 48 bit 5-DMA: 48 bit + * 6-vlan_id: 12 bit 7-vlan_en: 1 bit 8-dscp: 6 bit + * 9-at_times: 5 bit 10-sl: 4 bit 11-ttl: 8 bit + * @param[out] [Required] tp_attr: tp attribution values to get; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_tp_attr(const urma_context_t *ctx, const uint64_t tp_handle, uint8_t *tp_attr_cnt, + uint32_t *tp_attr_bitmap, urma_tp_attr_value_t *tp_attr); + +/** + * get eid by ip info + * @param[in] ctx: the created urma context pointer; + * @param[in] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); + * @param[out] eid: device's eid; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_eid_by_ip(const urma_context_t *ctx, const urma_net_addr_t *net_addr, urma_eid_t *eid); + +/** + * get ip info by eid. + * @param[in] ctx: the created urma context pointer; + * @param[in] eid: device's eid; + * @param[out] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_ip_by_eid(const urma_context_t *ctx, const urma_eid_t *eid, urma_net_addr_t *net_addr); + + +/** + * get source mac address. + + * @param[in] ctx: the created urma context pointer; + * @param[out] mac: the mac address of source; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_smac(const urma_context_t *ctx, uint8_t *mac); + +/** + * get dest mac address. + * @param[in] ctx: the created urma context pointer; + * @param[in] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); + * @param[out] mac: the mac address of dest; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_dmac(const urma_context_t *ctx, const urma_net_addr_t *net_addr, uint8_t *mac); + +#ifdef __cplusplus + } +#endif + +#endif diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp new file mode 100644 index 0000000000..580ff3c490 --- /dev/null +++ b/src/brpc/urma/urma_endpoint.cpp @@ -0,0 +1,1162 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "brpc/urma/urma_endpoint.h" + +#if BRPC_WITH_URMA + +#include +#include +#include +#include +#include + +#include + +#include "butil/atomicops.h" +#include "butil/iobuf.h" +#include "butil/logging.h" +#include "butil/macros.h" +#include "butil/sys_byteorder.h" +#include "butil/time.h" +#include "bthread/bthread.h" +#include "bthread/butex.h" + +#include "brpc/input_messenger.h" +#include "brpc/socket.h" +#include "brpc/urma/urma_api.h" +#include "brpc/urma/urma_endpoint.h" +#include "brpc/urma/urma_handshake.h" +#include "brpc/urma/urma_handshake.pb.h" +#include "brpc/urma/urma_helper.h" +#include "brpc/urma_transport.h" + +namespace brpc { +namespace urma { + +// Extern helpers from urma_helper.cpp (not in the public header to keep it +// small): expose the per-buffer pool segment pointer and a user-seg handle +// lookup so the send path can build urma_sge_t.tseg without reaching into +// the helper's file-static state. +extern urma_target_seg_t* GetPoolSegFor(void* buf); + +// Flags used here are declared in urma_endpoint.h (urma_use_polling, +// urma_poller_num, urma_disable_bthread). Declare the rest here. +DECLARE_int32(urma_sq_size); +DECLARE_int32(urma_rq_size); +DECLARE_int32(urma_cqe_poll_once); +DECLARE_bool(urma_recv_zerocopy); +DECLARE_int32(urma_zerocopy_min_size); +DECLARE_int32(urma_prepared_jetty_cnt); + +// ---- Constants shared with the handshake module ---- +static const int WAIT_TIMEOUT_MS = 50; +static const size_t HELLO_ACK_LEN = 4; +static const uint32_t HELLO_ACK_URMA_OK = 0x1; +static const size_t IOBUF_BLOCK_HEADER_LEN = 32; // matches butil IOBuf + +// ---- Globals: prepared jetty pool + poller groups ---- +struct PreparedJetty { + UrmaResource* res; +}; +static butil::Mutex g_prepared_mutex; +static UrmaResource* g_prepared_list = nullptr; // singly-linked +static int g_prepared_cnt = 0; + +std::vector UrmaEndpoint::_poller_groups; + +// ============================================================================ +// UrmaResource lifecycle. +// ============================================================================ + +UrmaResource::~UrmaResource() { + if (remote_jetty) { urma_unimport_jetty(remote_jetty); } + if (remote_seg) { urma_unimport_seg(remote_seg); } + if (jetty) { urma_delete_jetty(jetty); } + if (jfr) { urma_delete_jfr(jfr); } + if (jfce) { urma_delete_jfce(jfce); } + if (jfc) { urma_delete_jfc(jfc); } +} + +// ============================================================================ +// Constructor / destructor / Reset. +// ============================================================================ + +UrmaEndpoint::UrmaEndpoint(Socket* s) + : _socket(s), + _state(UNINIT), + _handshake_version(0), + _resource(nullptr) { + _sq_size = static_cast( + std::max(16, std::min(4096, static_cast(FLAGS_urma_sq_size)))); + _rq_size = static_cast( + std::max(16, std::min(4096, static_cast(FLAGS_urma_rq_size)))); + _read_butex = bthread::butex_create_checked>(); + _read_butex->store(0, butil::memory_order_relaxed); +} + +UrmaEndpoint::~UrmaEndpoint() { + DeallocateResources(); + if (_read_butex) { + bthread::butex_destroy(_read_butex); + _read_butex = nullptr; + } +} + +void UrmaEndpoint::Reset() { + DeallocateResources(); + _state = UNINIT; + _handshake_version = 0; + _remote_recv_block_size = 0; + _local_window_capacity = 0; + _remote_window_capacity = 0; + _remote_rq_window_size.store(0, butil::memory_order_relaxed); + _sq_window_size.store(0, butil::memory_order_relaxed); + _new_rq_wrs.store(0, butil::memory_order_relaxed); + _sq_imm_window_size = 0; + _sq_current = 0; + _sq_unsignaled = 0; + _sq_sent = 0; + _rq_received = 0; + _accumulated_ack = 0; + _unsolicited = 0; + _unsolicited_bytes = 0; + _sbuf.clear(); + _rbuf.clear(); + _rbuf_data.clear(); + _read_butex->store(0, butil::memory_order_relaxed); +} + +// ============================================================================ +// Handshake IO helpers (ReadFromFd / WriteToFd / PushBackToReadBuf). +// Modeled on RdmaEndpoint::ReadFromFdLoop / WriteToFdLoop. +// ============================================================================ + +int UrmaEndpoint::ReadFromFd(void* data, size_t len) { + char* p = static_cast(data); + size_t received = 0; + while (received < len) { + const int expected_val = _read_butex->load(butil::memory_order_acquire); + const timespec duetime = butil::milliseconds_from_now(WAIT_TIMEOUT_MS); + int fd = _socket->fd(); + ssize_t nr = read(fd, p + received, len - received); + if (nr < 0) { + if (errno == EAGAIN || errno == EWOULDBLOCK) { + int rc = bthread::butex_wait(_read_butex, expected_val, &duetime); + if (rc < 0 && errno != EWOULDBLOCK && errno != ETIMEDOUT) { + return -1; + } + continue; + } + return -1; + } + if (nr == 0) { + errno = EEOF; + return -1; + } + received += nr; + } + return 0; +} + +void UrmaEndpoint::PushBackToReadBuf(const void* data, size_t len) { + _socket->_read_buf.append(data, len); +} + +int UrmaEndpoint::WriteToFd(void* data, size_t len) { + char* p = static_cast(data); + size_t written = 0; + while (written < len) { + const timespec duetime = butil::milliseconds_from_now(WAIT_TIMEOUT_MS); + int fd = _socket->fd(); + ssize_t nw = write(fd, p + written, len - written); + if (nw >= 0) { written += nw; continue; } + if (errno != EAGAIN && errno != EWOULDBLOCK) { return -1; } + if (_socket->WaitEpollOut(fd, true, &duetime) != 0 && errno != ETIMEDOUT) { + return -1; + } + } + return 0; +} + +// ============================================================================ +// Hello builders / parsers. +// ============================================================================ + +void UrmaEndpoint::MakeLocalParsedHello(ParsedHello* out) const { + std::memset(out, 0, sizeof(*out)); + out->buffer_size = static_cast(GetUrmaRecvBlockSize()); + out->recv_buffer_cnt = _rq_size - 1; + if (_resource && _resource->jetty) { + out->jetty_id = _resource->jetty->jetty_id.id; + out->uasid = _resource->jetty->jetty_id.uasid; + std::memcpy(out->eid, _resource->jetty->jetty_id.eid.raw, 16); + } + out->tp_type = static_cast(URMA_CTP); + // Pool segment: flatten g_pool_seg's seg fields. + extern urma_target_seg_t* GetPoolSegFor(void*); + urma_target_seg_t* pool = GetPoolSegFor(nullptr); + if (pool) { + std::memcpy(out->seg_eid, pool->seg.ubva.eid.raw, 16); + out->seg_uasid = pool->seg.ubva.uasid; + out->seg_va = pool->seg.ubva.va; + out->seg_len = pool->seg.len; + out->seg_token_id = pool->seg.token_id; + } +} + +void UrmaEndpoint::FillLocalHelloV2(v2_wire::HelloMessage* out) const { + std::memset(out, 0, sizeof(*out)); + out->msg_len = v2_wire::HELLO_PACKET_LEN; // set below if available; else 0 + out->hello_ver = v2_wire::HELLO_V2_VERSION; + out->impl_ver = v2_wire::IMPL_V2_VERSION; + ParsedHello p; + MakeLocalParsedHello(&p); + out->msg_len = v2_wire::HELLO_PACKET_LEN; + out->buffer_size = p.buffer_size; + out->recv_buffer_cnt = p.recv_buffer_cnt; + out->jetty_id = p.jetty_id; + std::memcpy(out->eid, p.eid, 16); + out->uasid = p.uasid; + out->tp_type = p.tp_type; + std::memcpy(out->seg_eid, p.seg_eid, 16); + out->seg_uasid = p.seg_uasid; + out->seg_va = p.seg_va; + out->seg_len = p.seg_len; + out->seg_token_id = p.seg_token_id; +} + +void UrmaEndpoint::FillLocalHelloV3(UrmaHello* out) const { + ParsedHello p; + MakeLocalParsedHello(&p); + out->set_buffer_size(p.buffer_size); + out->set_recv_buffer_cnt(p.recv_buffer_cnt); + out->set_jetty_id(p.jetty_id); + out->set_eid(p.eid, 16); + out->set_uasid(p.uasid); + out->set_tp_type(p.tp_type); + out->set_seg_eid(p.seg_eid, 16); + out->set_seg_uasid(p.seg_uasid); + out->set_seg_va(p.seg_va); + out->set_seg_len(p.seg_len); + out->set_seg_token_id(p.seg_token_id); +} + +int UrmaEndpoint::WriteHelloV3(const UrmaHello& msg) { + butil::IOBuf packet; + packet.append("URM3", 4); + std::string body; + if (!msg.SerializeToString(&body)) { + LOG(ERROR) << "Fail to serialize UrmaHello"; + return -1; + } + uint32_t pb_size_be = butil::HostToNet32(static_cast(body.size())); + packet.append(&pb_size_be, sizeof(pb_size_be)); + packet.append(body); + return WriteToFd(packet); +} + +int UrmaEndpoint::WriteToFd(butil::IOBuf& data) { + // Write out the IOBuf in a single WriteToFd-style loop. + while (!data.empty()) { + const timespec duetime = butil::milliseconds_from_now(WAIT_TIMEOUT_MS); + int fd = _socket->fd(); + ssize_t nw = data.cut_into_file_descriptor(fd); + if (nw >= 0) { continue; } + if (errno != EAGAIN && errno != EWOULDBLOCK) { return -1; } + if (_socket->WaitEpollOut(fd, true, &duetime) != 0 && errno != ETIMEDOUT) { + return -1; + } + } + return 0; +} + +int UrmaEndpoint::ReadAndParseHelloV3(ParsedHello* out, bool* negotiated) { + *negotiated = false; + uint32_t pb_size_be = 0; + if (ReadFromFd(&pb_size_be, sizeof(pb_size_be)) < 0) { return -1; } + uint32_t pb_size = butil::NetToHost32(pb_size_be); + if (pb_size == 0 || pb_size > 4096) { return 0; } + butil::IOPortal body; + if (body.append_from_file_descriptor(_socket->fd(), pb_size) != + static_cast(pb_size)) { + return -1; + } + UrmaHello msg; + butil::IOBufAsZeroCopyInputStream zcis(body); + if (!msg.ParseFromZeroCopyStream(&zcis)) { return 0; } + if (msg.eid().size() != 16 || msg.seg_eid().size() != 16) { return 0; } + out->buffer_size = msg.buffer_size(); + out->recv_buffer_cnt = msg.recv_buffer_cnt(); + out->jetty_id = msg.jetty_id(); + std::memcpy(out->eid, msg.eid().data(), 16); + out->uasid = msg.uasid(); + out->tp_type = static_cast(msg.tp_type()); + std::memcpy(out->seg_eid, msg.seg_eid().data(), 16); + out->seg_uasid = msg.seg_uasid(); + out->seg_va = msg.seg_va(); + out->seg_len = msg.seg_len(); + out->seg_token_id = msg.seg_token_id(); + *negotiated = true; + return 0; +} + +// ============================================================================ +// Allocate / deallocate per-connection resources. +// ============================================================================ + +int UrmaEndpoint::AllocateResources() { + if (_resource) { return 0; } + urma_context_t* ctx = GetUrmaContext(); + if (!ctx) { errno = ENODEV; return -1; } + + _resource = new (std::nothrow) UrmaResource(); + if (!_resource) { return -1; } + + // Try the prepared pool first (sized sq/rq match). + if (_sq_size <= static_cast(FLAGS_urma_sq_size) && + _rq_size <= static_cast(FLAGS_urma_rq_size)) { + BAIDU_SCOPED_LOCK(g_prepared_mutex); + if (g_prepared_list) { + _resource->jfc = g_prepared_list->jfc; + _resource->jfce = g_prepared_list->jfce; + _resource->jfr = g_prepared_list->jfr; + _resource->jetty = g_prepared_list->jetty; + UrmaResource* next = g_prepared_list->next; + delete g_prepared_list; + g_prepared_list = next; + --g_prepared_cnt; + // Resize per-connection buffers. + _sbuf.resize(_sq_size - RESERVED_WR_NUM); + _rbuf.resize(_rq_size); + _rbuf_data.resize(_rq_size, nullptr); + return 0; + } + } + + // Event-mode: create JFCE so JFC can bind to it. + if (!FLAGS_urma_use_polling) { + _resource->jfce = urma_create_jfce(ctx); + // Failure is non-fatal: fall back to busy polling. + } + + urma_jfc_cfg_t jfc_cfg{}; + jfc_cfg.depth = static_cast(_sq_size + _rq_size); + if (_resource->jfce) { jfc_cfg.jfce = _resource->jfce; } + _resource->jfc = urma_create_jfc(ctx, &jfc_cfg); + if (!_resource->jfc) { PLOG(ERROR) << "urma_create_jfc"; return -1; } + + urma_jfr_cfg_t jfr_cfg{}; + jfr_cfg.depth = static_cast(_rq_size); + jfr_cfg.trans_mode = URMA_TM_RM; + jfr_cfg.max_sge = 1; + jfr_cfg.min_rnr_timer = URMA_TYPICAL_MIN_RNR_TIMER; + jfr_cfg.jfc = _resource->jfc; + _resource->jfr = urma_create_jfr(ctx, &jfr_cfg); + if (!_resource->jfr) { PLOG(ERROR) << "urma_create_jfr"; return -1; } + + urma_jetty_cfg_t jetty_cfg{}; + jetty_cfg.flag.bs.share_jfr = 1; + jetty_cfg.jfs_cfg.depth = static_cast(_sq_size); + jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; + jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; + jetty_cfg.jfs_cfg.max_sge = 1; + jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; + jetty_cfg.jfs_cfg.err_timeout = URMA_TYPICAL_ERR_TIMEOUT; + jetty_cfg.jfs_cfg.jfc = _resource->jfc; + jetty_cfg.shared.jfr = _resource->jfr; + jetty_cfg.shared.jfc = _resource->jfc; + _resource->jetty = urma_create_jetty(ctx, &jetty_cfg); + if (!_resource->jetty) { PLOG(ERROR) << "urma_create_jetty"; return -1; } + + _sbuf.resize(_sq_size - RESERVED_WR_NUM); + _rbuf.resize(_rq_size); + _rbuf_data.resize(_rq_size, nullptr); + + // Wrap the JFCE fd in a brpc Socket so PollCq is driven by epoll. + if (!FLAGS_urma_use_polling && _resource->jfce) { + SocketOptions options; + options.user = this; + options.keytable_pool = _socket->keytable_pool(); + options.fd = _resource->jfce->fd; + options.on_edge_triggered_events = PollCq; + if (Socket::Create(options, &_cq_sid) < 0) { + PLOG(ERROR) << "Fail to create CQ socket"; + return -1; + } + } else { + // Polling mode: synthetic carrier socket (no fd). + SocketOptions options; + options.user = this; + options.keytable_pool = _socket->keytable_pool(); + options.on_edge_triggered_events = PollCq; + if (Socket::Create(options, &_cq_sid) < 0) { + PLOG(ERROR) << "Fail to create CQ socket (polling)"; + return -1; + } + PollerAddCqSid(); + } + return 0; +} + +void UrmaEndpoint::DeallocateResources() { + if (!_resource) { return; } + + // Tear down the CQ socket so the EventDispatcher stops calling PollCq. + if (_cq_sid != INVALID_SOCKET_ID) { + SocketUniquePtr s; + if (Socket::Address(_cq_sid, &s) == 0) { + if (s->fd() >= 0) { + s->_io_event.RemoveConsumer(s->_fd); + } + s->_user = nullptr; // Do not release user (this UrmaEndpoint). + s->_fd = -1; // Already removed fd from epoll. + s->SetFailed(); + } + _cq_sid = INVALID_SOCKET_ID; + } + + // Recycle into the prepared pool if sizes match. + bool recycle = (_sq_size <= static_cast(FLAGS_urma_sq_size) && + _rq_size <= static_cast(FLAGS_urma_rq_size) && + g_prepared_cnt < 1024); + if (recycle) { + UrmaResource* holder = new (std::nothrow) UrmaResource(); + if (holder) { + holder->jfc = _resource->jfc; + holder->jfce = _resource->jfce; + holder->jfr = _resource->jfr; + holder->jetty = _resource->jetty; + // Drop the imported peer objects (not pooled). + if (_resource->remote_jetty) { urma_unimport_jetty(_resource->remote_jetty); } + if (_resource->remote_seg) { urma_unimport_seg(_resource->remote_seg); } + _resource->remote_jetty = nullptr; + _resource->remote_seg = nullptr; + _resource->jfc = nullptr; + _resource->jfce = nullptr; + _resource->jfr = nullptr; + _resource->jetty = nullptr; + BAIDU_SCOPED_LOCK(g_prepared_mutex); + holder->next = g_prepared_list; + g_prepared_list = holder; + ++g_prepared_cnt; + delete _resource; + _resource = nullptr; + return; + } + } + delete _resource; + _resource = nullptr; +} + +// ============================================================================ +// ImportPeer: the critical import_seg-before-import_jetty sequence. +// ============================================================================ + +int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { + urma_context_t* ctx = GetUrmaContext(); + if (!ctx) { errno = ENODEV; return -1; } + + // 1. urma_import_seg FIRST so the kernel establishes TP routing for the + // remote EID. Without this the first SEND is rejected by hardware with + // URMA_CR_RNR_RETRY_CNT_EXC_ERR. + urma_seg_t peer_seg{}; + std::memcpy(peer_seg.ubva.eid.raw, peer.seg_eid, 16); + peer_seg.ubva.uasid = peer.seg_uasid; + peer_seg.ubva.va = peer.seg_va; + peer_seg.len = peer.seg_len; + peer_seg.token_id = peer.seg_token_id; + urma_token_t seg_token{}; + urma_import_seg_flag_t seg_flag{}; + seg_flag.bs.cacheable = URMA_NON_CACHEABLE; + seg_flag.bs.access = URMA_ACCESS_READ | URMA_ACCESS_WRITE | URMA_ACCESS_ATOMIC; + seg_flag.bs.mapping = URMA_SEG_NOMAP; + _resource->remote_seg = urma_import_seg(ctx, &peer_seg, &seg_token, 0, seg_flag); + if (!_resource->remote_seg) { + PLOG(WARNING) << "urma_import_seg failed (continuing with import_jetty)"; + } + + // 2. urma_import_jetty. + urma_rjetty_t remote{}; + std::memcpy(remote.jetty_id.eid.raw, peer.eid, 16); + remote.jetty_id.uasid = peer.uasid; + remote.jetty_id.id = peer.jetty_id; + remote.trans_mode = URMA_TM_RM; + remote.type = URMA_JETTY; + if (peer.tp_type > static_cast(URMA_UTP)) { + errno = EPROTO; + return -1; + } + remote.tp_type = static_cast(peer.tp_type); + + urma_token_t token{}; + _resource->remote_jetty = urma_import_jetty(ctx, &remote, &token); + if (!_resource->remote_jetty) { + PLOG(ERROR) << "urma_import_jetty failed"; + return -1; + } + return 0; +} + +// ============================================================================ +// Send / recv data path. +// ============================================================================ + +// Private IOBuf accessor mirroring RdmaIOBuf: reach into IOBuf block refs to +// build a urma_sge_t directly, without memcpy. +class UrmaIOBuf : private butil::IOBuf { + friend class ::brpc::urma::UrmaEndpoint; +public: + using butil::IOBuf::_ref_num; + using butil::IOBuf::_ref_at; + using butil::IOBuf::fetch1; + using butil::IOBuf::get_first_data_meta; + using butil::IOBuf::cutn; + // Build the SGE for the current head block. + // Returns bytes added, or -1 (errno set). + ssize_t cut_into_sglist(urma_sge_t* sglist, size_t* sge_index, + butil::IOBuf* to, size_t max_sge, + urma_target_seg_t* pool_seg, size_t max_len) { + size_t len = 0; + while (*sge_index < max_sge && len < max_len && _ref_num() != 0) { + butil::IOBuf::BlockRef const& r = _ref_at(0); + const void* start = fetch1(); + urma_target_seg_t* tseg = pool_seg; + if (!tseg) { + // User-registered memory: look up the seg handle. + uint64_t meta = get_first_data_meta(); + if (meta != 0) { + tseg = reinterpret_cast( + static_cast(meta)); + } + } + if (!tseg) { + errno = ERDMAMEM; + return -1; + } + size_t this_len = r.length; + if (len + this_len > max_len) { this_len = max_len - len; } + sglist[*sge_index].addr = reinterpret_cast(start); + sglist[*sge_index].len = static_cast(this_len); + sglist[*sge_index].tseg = tseg; + cutn(to, this_len); + len += this_len; + (*sge_index)++; + } + return static_cast(len); + } +}; + +ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { + if (!_resource || !_resource->jetty || !_resource->remote_jetty) { + errno = ENOTCONN; + return -1; + } + urma_target_seg_t* pool_seg = GetPoolSegFor(nullptr); + int max_sge = GetUrmaMaxSge(); + if (max_sge < 1) { max_sge = 1; } + + urma_sge_t* sglist = static_cast( + alloca(sizeof(urma_sge_t) * max_sge)); + if (!sglist) { errno = ENOMEM; return -1; } + + size_t current = 0; + ssize_t total_len = 0; + while (current < ndata) { + uint16_t remote_wnd = _remote_rq_window_size.load(butil::memory_order_relaxed); + uint16_t sq_wnd = _sq_window_size.load(butil::memory_order_relaxed); + if (remote_wnd == 0 || sq_wnd == 0) { + if (total_len > 0) { break; } + errno = EAGAIN; + return -1; + } + butil::IOBuf* to = &_sbuf[_sq_current]; + size_t sge_index = 0; + size_t this_len = 0; + size_t max_len = _remote_recv_block_size > 0 + ? _remote_recv_block_size + : GetUrmaRecvBlockSize(); + while (sge_index < static_cast(max_sge) && + this_len < max_len && current < ndata) { + auto* data = reinterpret_cast(from[current]); + if (data->empty()) { current++; continue; } + ssize_t n = data->cut_into_sglist(sglist, &sge_index, to, + max_sge, pool_seg, + max_len - this_len); + if (n < 0) { return -1; } + this_len += n; + } + if (sge_index == 0) { break; } + + urma_sg_t sg{sglist, static_cast(sge_index)}; + urma_jfs_wr_t wr{}; + std::memset(&wr, 0, sizeof(wr)); + wr.opcode = URMA_OPC_SEND; + wr.flag.bs.complete_enable = 1; + wr.tjetty = _resource->remote_jetty; + wr.send.src = sg; + wr.user_ctx = 1; + urma_jfs_wr_t* bad_wr = nullptr; + int rc = urma_post_jetty_send_wr(_resource->jetty, &wr, &bad_wr); + if (rc != URMA_SUCCESS) { + LOG(WARNING) << "urma_post_jetty_send_wr failed: " << rc; + errno = rc; + return -1; + } + _sq_current = (_sq_current + 1) % (_sq_size - RESERVED_WR_NUM); + _remote_rq_window_size.fetch_sub(1, butil::memory_order_relaxed); + _sq_window_size.fetch_sub(1, butil::memory_order_relaxed); + total_len += static_cast(this_len); + } + return total_len; +} + +bool UrmaEndpoint::IsWritable() const { + return _remote_rq_window_size.load(butil::memory_order_relaxed) > 0 && + _sq_window_size.load(butil::memory_order_relaxed) > 0; +} + +// ============================================================================ +// Recv path. +// ============================================================================ + +int UrmaEndpoint::DoPostRecv(void* block, size_t block_size) { + urma_target_seg_t* tseg = GetPoolSegFor(block); + if (!tseg) { errno = ERDMAMEM; return -1; } + urma_sge_t sge{reinterpret_cast(block), + static_cast(block_size), tseg, nullptr}; + urma_sg_t sg{&sge, 1}; + urma_jfr_wr_t wr{sg, 0, nullptr}; + urma_jfr_wr_t* bad = nullptr; + if (urma_post_jfr_wr(_resource->jfr, &wr, &bad) != URMA_SUCCESS) { + return -1; + } + return 0; +} + +int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { + for (uint32_t i = 0; i < num; ++i) { + size_t block_size = GetUrmaRecvBlockSize(); + if (zerocopy) { + _rbuf[_rq_received].clear(); + butil::IOBufAsZeroCopyOutputStream zcis( + &_rbuf[_rq_received], block_size + IOBUF_BLOCK_HEADER_LEN); + void* data = nullptr; + int size = 0; + if (!zcis.Next(&data, &size) || !data) { + return -1; + } + _rbuf_data[_rq_received] = data; + if (DoPostRecv(data, block_size) < 0) { return -1; } + } else { + if (DoPostRecv(_rbuf_data[_rq_received], block_size) < 0) { + return -1; + } + } + _rq_received = (_rq_received + 1) % _rq_size; + } + return 0; +} + +int UrmaEndpoint::SendImm(uint32_t /*imm*/) { + if (!_resource || !_resource->jetty || !_resource->remote_jetty) { + errno = ENOTCONN; return -1; + } + // Empty-payload SEND to flush peer-side credit. + urma_jfs_wr_t wr{}; + std::memset(&wr, 0, sizeof(wr)); + wr.opcode = URMA_OPC_SEND; + wr.flag.bs.complete_enable = 1; + wr.tjetty = _resource->remote_jetty; + wr.user_ctx = 0; // 0 == pure ack (HandleCompletion reuses budget). + urma_jfs_wr_t* bad = nullptr; + if (urma_post_jetty_send_wr(_resource->jetty, &wr, &bad) != URMA_SUCCESS) { + return -1; + } + if (_sq_imm_window_size > 0) { --_sq_imm_window_size; } + return 0; +} + +int UrmaEndpoint::SendAck(int num) { + if (_new_rq_wrs.fetch_add(num, butil::memory_order_relaxed) > + _remote_window_capacity / 2 && _sq_imm_window_size > 0) { + return SendImm(_new_rq_wrs.exchange(0, butil::memory_order_relaxed)); + } + return 0; +} + +ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { + bool zerocopy = FLAGS_urma_recv_zerocopy; + if (cr.flag.bs.s_r == 0) { + // Send completion: reclaim SQ window and wake the writer. + if (cr.user_ctx == 0) { + // Pure-ack WR: just replenish the imm budget. + _sq_imm_window_size += 1; + return 0; + } + uint16_t wnd = 1; // We signal every WR (complete_enable=1). + for (uint16_t i = 0; i < wnd; ++i) { + _sbuf[_sq_sent].clear(); + _sq_sent = (_sq_sent + 1) % (_sq_size - RESERVED_WR_NUM); + } + butil::subtle::MemoryBarrier(); + _sq_window_size.fetch_add(wnd, butil::memory_order_relaxed); + if (_remote_rq_window_size.load(butil::memory_order_relaxed) >= + _local_window_capacity / 8) { + _socket->WakeAsEpollOut(); + } + return 0; + } + // Recv completion. + if (cr.completion_len == 0) { + // Peer closed. + errno = EEOF; + _socket->SetFailed(EEOF, "Peer closed the URMA connection"); + return -1; + } + if (cr.status != URMA_CR_SUCCESS) { + errno = EIO; + return -1; + } + if (cr.completion_len < static_cast(FLAGS_urma_zerocopy_min_size)) { + zerocopy = false; + } + if (zerocopy) { + _rbuf[_rq_received].cutn(&_socket->_read_buf, cr.completion_len); + } else { + _socket->_read_buf.append(_rbuf_data[_rq_received], cr.completion_len); + } + if (PostRecv(1, zerocopy) < 0) { return -1; } + if (cr.completion_len > 0) { SendAck(1); } + return static_cast(cr.completion_len); +} + +void UrmaEndpoint::PollCq(Socket* m) { + auto* ep = static_cast(m->user()); + if (!ep || !ep->_resource || !ep->_resource->jfc) { return; } + SocketUniquePtr s; + if (Socket::Address(ep->_socket->id(), &s) != 0) { return; } + if (s->Failed()) { return; } + + ssize_t bytes = 0; + bool last_msg = false; + while (true) { + int n = std::min(FLAGS_urma_cqe_poll_once, 32); + urma_cr_t crs[32]; + int cnt = urma_poll_jfc(ep->_resource->jfc, n, crs); + if (cnt < 0) { + s->SetFailed(EIO, "urma_poll_jfc failed: %d", cnt); + return; + } + if (cnt == 0) { break; } + for (int i = 0; i < cnt; ++i) { + if (s->Failed()) { return; } + ssize_t nr = ep->HandleCompletion(crs[i]); + if (nr < 0) { + s->SetFailed(errno, "URMA completion error"); + return; + } + bytes += nr; + } + } + if (bytes > 0) { + int64_t received_us = butil::cpuwide_time_us(); + int64_t base_realtime = butil::gettimeofday_us() - received_us; + auto* messenger = static_cast(s->user()); + if (messenger) { + messenger->ProcessNewMessage(s.get(), bytes, false, received_us, + base_realtime, last_msg); + } + } +} + +// ============================================================================ +// ApplyRemoteHello: size the send/recv windows from the peer's hello. +// ============================================================================ + +void UrmaEndpoint::ApplyRemoteHello(const ParsedHello& remote) { + _remote_recv_block_size = remote.buffer_size; + _local_window_capacity = + std::min(_sq_size, static_cast(remote.recv_buffer_cnt + 1)) - + RESERVED_WR_NUM; + _remote_window_capacity = _rq_size - RESERVED_WR_NUM; + _sq_imm_window_size = RESERVED_WR_NUM; + _remote_rq_window_size.store(_local_window_capacity, + butil::memory_order_relaxed); + _sq_window_size.store(_local_window_capacity, butil::memory_order_relaxed); +} + +// ============================================================================ +// OnNewDataFromTcp: edge-triggered dispatcher. +// ============================================================================ + +void UrmaEndpoint::OnNewDataFromTcp(Socket* m) { + auto* tp = static_cast(m->_transport.get()); + if (!tp) { return; } + // Access _urma_ep directly (OnNewDataFromTcp is a friend of UrmaTransport); + // GetUrmaEp() CHECKs non-null which would crash on TCP-fallback sockets. + UrmaEndpoint* ep = tp->_urma_ep; + if (!ep) { + // No URMA endpoint: pure TCP path. + InputMessenger::OnNewMessages(m); + return; + } + int progress = 0; + while (true) { + if (ep->_state == UNINIT) { + if (!m->CreatedByConnect()) { + // Server side: kick off the handshake bthread. + if (!IsUrmaAvailable()) { + ep->_state = FALLBACK_TCP; + tp->_urma_state = UrmaTransport::URMA_OFF; + InputMessenger::OnNewMessages(m); + return; + } + SocketUniquePtr s; + m->ReAddress(&s); + ep->_state = S_HELLO_WAIT; + bthread_t tid; + bthread_attr_t attr = BTHREAD_ATTR_NORMAL; + bthread_attr_set_name(&attr, "UrmaServerHandshake"); + if (bthread_start_background(&tid, &attr, + ProcessHandshakeAtServer, ep) != 0) { + ep->_state = UNINIT; + LOG(FATAL) << "Fail to start UrmaServerHandshake bthread"; + } else { + s.release(); + } + return; + } + // Client side: handled by ProcessHandshakeAtClient. + return; + } else if (ep->_state < ESTABLISHED) { + // During handshake: wake the handshake bthread parked in ReadFromFd. + ep->_read_butex->fetch_add(1, butil::memory_order_release); + bthread::butex_wake(ep->_read_butex); + return; + } else if (ep->_state == FALLBACK_TCP) { + InputMessenger::OnNewMessages(m); + return; + } else if (ep->_state == ESTABLISHED) { + // Drain stray TCP bytes (protocol error). + return; + } + if (!m->MoreReadEvents(&progress)) { break; } + } +} + +inline void UrmaEndpoint::TryReadOnTcp() { + if (_state == FALLBACK_TCP) { + InputMessenger::OnNewMessages(_socket); + } +} + +// ============================================================================ +// Handshake state machines (client / server). Run in a background bthread. +// ============================================================================ + +void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { + auto* ep = static_cast(arg); + SocketUniquePtr s(ep->_socket); + auto* tp = static_cast(s->_transport.get()); + UrmaConnect::RunGuard guard(static_cast(s->_app_connect.get())); + if (!IsUrmaAvailable()) { + ep->_state = FALLBACK_TCP; + tp->_urma_state = UrmaTransport::URMA_OFF; + return nullptr; + } + ep->_state = C_ALLOC_RES; + if (ep->AllocateResources() < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + // Pre-post recv buffers. + if (ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + ep->_state = C_HELLO_SEND; + std::unique_ptr hs(CreateClientHandshake(ep)); + ep->_handshake_version = hs->ProtocolVersion(); + if (hs->SendLocalHello() < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + ep->_state = C_HELLO_WAIT; + ParsedHello remote; + bool negotiated = false; + if (hs->ReceiveAndParseRemoteHello(&remote, &negotiated) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + if (!negotiated) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + ep->ApplyRemoteHello(remote); + ep->_state = C_IMPORT_PEER; + if (ep->ImportPeer(remote) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + ep->_state = C_ACK_SEND; + uint32_t flags = HELLO_ACK_URMA_OK; + uint32_t flags_be = butil::HostToNet32(flags); + if (ep->WriteToFd(&flags_be, HELLO_ACK_LEN) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + tp->_urma_state = UrmaTransport::URMA_ON; + ep->_state = ESTABLISHED; + return nullptr; +} + +void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { + auto* ep = static_cast(arg); + SocketUniquePtr s(ep->_socket); + auto* tp = static_cast(s->_transport.get()); + UrmaConnect::RunGuard guard(static_cast(s->_app_connect.get())); + ep->_state = S_HELLO_WAIT; + uint8_t magic[v2_wire::MAGIC_STR_LEN]; + if (ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + std::unique_ptr hs(CreateServerHandshakeByMagic(ep, magic)); + if (!hs) { + // Not an URMA peer: push the magic back and fall back to TCP. + ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + InputMessenger::OnNewMessages(s.get()); + return nullptr; + } + ep->_handshake_version = hs->ProtocolVersion(); + ParsedHello remote; + bool negotiated = false; + if (hs->ReceiveAndParseRemoteHello(&remote, &negotiated) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + if (!negotiated) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + ep->_state = S_ALLOC_RES; + if (ep->AllocateResources() < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + if (ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + ep->ApplyRemoteHello(remote); + ep->_state = S_IMPORT_PEER; + if (ep->ImportPeer(remote) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + ep->_state = S_HELLO_SEND; + if (hs->SendLocalHello() < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + ep->_state = S_ACK_WAIT; + uint32_t flags_be = 0; + if (ep->ReadFromFd(&flags_be, HELLO_ACK_LEN) < 0) { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + return nullptr; + } + uint32_t flags = butil::NetToHost32(flags_be); + bool client_ack_ok = (flags & HELLO_ACK_URMA_OK) != 0; + if (client_ack_ok) { + if (tp->_urma_state == UrmaTransport::URMA_OFF) { + // Protocol breakdown: client wants URMA but we already fell back. + s->SetFailed(EPROTO, "URMA ack mismatch"); + ep->_state = FAILED; + return nullptr; + } + tp->_urma_state = UrmaTransport::URMA_ON; + ep->_state = ESTABLISHED; + } else { + tp->_urma_state = UrmaTransport::URMA_OFF; + ep->_state = FALLBACK_TCP; + } + return nullptr; +} + +// ============================================================================ +// UrmaConnect: drives the client handshake bthread. +// ============================================================================ + +void UrmaConnect::StartConnect(const Socket* socket, + void (*done)(int, void*), void* data) { + _done = done; + _data = data; + auto* tp = static_cast(socket->_transport.get()); + if (!tp || !tp->_urma_ep || !IsUrmaAvailable()) { + // Fall back to TCP immediately. + if (tp && tp->_urma_ep) { + tp->_urma_ep->_state = UrmaEndpoint::FALLBACK_TCP; + } + tp->_urma_state = UrmaTransport::URMA_OFF; + Run(); + return; + } + bthread_t tid; + bthread_attr_t attr = BTHREAD_ATTR_NORMAL; + bthread_attr_set_name(&attr, "UrmaClientHandshake"); + if (bthread_start_background(&tid, &attr, + UrmaEndpoint::ProcessHandshakeAtClient, + tp->_urma_ep) != 0) { + tp->_urma_ep->_state = UrmaEndpoint::FALLBACK_TCP; + tp->_urma_state = UrmaTransport::URMA_OFF; + Run(); + } +} + +void UrmaConnect::StopConnect(Socket*) {} + +void UrmaConnect::Run() { + if (_done) { + auto cb = _done; + _done = nullptr; + cb(0, _data); + } +} + +// ============================================================================ +// Debug / polling-mode stubs. +// ============================================================================ + +std::string UrmaEndpoint::GetStateStr() const { + switch (_state) { + case UNINIT: return "UNINIT"; + case C_ALLOC_RES: return "C_ALLOC_RES"; + case C_HELLO_SEND: return "C_HELLO_SEND"; + case C_HELLO_WAIT: return "C_HELLO_WAIT"; + case C_IMPORT_PEER: return "C_IMPORT_PEER"; + case C_ACK_SEND: return "C_ACK_SEND"; + case S_HELLO_WAIT: return "S_HELLO_WAIT"; + case S_ALLOC_RES: return "S_ALLOC_RES"; + case S_IMPORT_PEER: return "S_IMPORT_PEER"; + case S_HELLO_SEND: return "S_HELLO_SEND"; + case S_ACK_WAIT: return "S_ACK_WAIT"; + case ESTABLISHED: return "ESTABLISHED"; + case FALLBACK_TCP: return "FALLBACK_TCP"; + case FAILED: return "FAILED"; + } + return "UNKNOWN"; +} + +void UrmaEndpoint::DebugInfo(std::ostream& os, butil::StringPiece) const { + os << "state=" << GetStateStr() + << " sq_size=" << _sq_size << " rq_size=" << _rq_size + << " remote_recv_block_size=" << _remote_recv_block_size + << " sq_window=" << _sq_window_size.load(butil::memory_order_relaxed) + << " remote_rq_window=" << _remote_rq_window_size.load(butil::memory_order_relaxed) + << " handshake_version=" << _handshake_version; +} + +int UrmaEndpoint::GetAndAckEvents(SocketUniquePtr&) { return 0; } +int UrmaEndpoint::ReqNotifyCq() { return 0; } +void UrmaEndpoint::PollerAddCqSid() {} +void UrmaEndpoint::PollerRemoveCqSid() {} + +int UrmaEndpoint::GlobalInitialize() { + // Pre-allocate the prepared jetty pool. Skipped if URMA init is skipped + // (unit-test mode). + if (g_prepared_cnt > 0) { return 0; } + urma_context_t* ctx = GetUrmaContext(); + if (!ctx) { return 0; } + for (int i = 0; i < FLAGS_urma_prepared_jetty_cnt && i < 1024; ++i) { + auto* r = new (std::nothrow) UrmaResource(); + if (!r) { break; } + urma_jfc_cfg_t jfc_cfg{}; + jfc_cfg.depth = static_cast(FLAGS_urma_sq_size + FLAGS_urma_rq_size); + r->jfc = urma_create_jfc(ctx, &jfc_cfg); + if (!r->jfc) { delete r; break; } + urma_jfr_cfg_t jfr_cfg{}; + jfr_cfg.depth = static_cast(FLAGS_urma_rq_size); + jfr_cfg.trans_mode = URMA_TM_RM; + jfr_cfg.max_sge = 1; + jfr_cfg.min_rnr_timer = URMA_TYPICAL_MIN_RNR_TIMER; + jfr_cfg.jfc = r->jfc; + r->jfr = urma_create_jfr(ctx, &jfr_cfg); + if (!r->jfr) { delete r; break; } + urma_jetty_cfg_t jetty_cfg{}; + jetty_cfg.flag.bs.share_jfr = 1; + jetty_cfg.jfs_cfg.depth = static_cast(FLAGS_urma_sq_size); + jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; + jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; + jetty_cfg.jfs_cfg.max_sge = 1; + jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; + jetty_cfg.jfs_cfg.err_timeout = URMA_TYPICAL_ERR_TIMEOUT; + jetty_cfg.jfs_cfg.jfc = r->jfc; + jetty_cfg.shared.jfr = r->jfr; + jetty_cfg.shared.jfc = r->jfc; + r->jetty = urma_create_jetty(ctx, &jetty_cfg); + if (!r->jetty) { delete r; break; } + r->next = g_prepared_list; + g_prepared_list = r; + ++g_prepared_cnt; + } + LOG(INFO) << "URMA prepared jetty pool: " << g_prepared_cnt; + return 0; +} + +void UrmaEndpoint::GlobalRelease() { + BAIDU_SCOPED_LOCK(g_prepared_mutex); + while (g_prepared_list) { + UrmaResource* next = g_prepared_list->next; + delete g_prepared_list; + g_prepared_list = next; + } + g_prepared_cnt = 0; +} + +int UrmaEndpoint::PollingModeInitialize(bthread_tag_t, std::function, + std::function, std::function) { + return 0; +} +void UrmaEndpoint::PollingModeRelease(bthread_tag_t) {} + +int UrmaEndpoint::BringUpJetty() { + // URMA jetty is created in READY state; no RESET->INIT->RTR->RTS needed. + return 0; +} + +} // namespace urma +} // namespace brpc + +#endif // if BRPC_WITH_URMA diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h new file mode 100644 index 0000000000..dfb7c1f18d --- /dev/null +++ b/src/brpc/urma/urma_endpoint.h @@ -0,0 +1,341 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#ifndef BRPC_URMA_ENDPOINT_H +#define BRPC_URMA_ENDPOINT_H + +#include +#include +#include + +#include "butil/atomicops.h" +#include "butil/iobuf.h" +#include "butil/macros.h" +#include "butil/containers/mpsc_queue.h" +#include "bthread/types.h" + +#include "brpc/socket.h" + +#if BRPC_WITH_URMA + +#include "brpc/urma/urma_api.h" +#include "brpc/urma/urma_types.h" +#include "brpc/urma/urma_handshake.h" +#include "brpc/urma/urma_handshake.pb.h" + +namespace brpc { + +class UrmaTransport; + +namespace urma { + +class UrmaHandshake; +struct ParsedHello; + +DECLARE_bool(urma_use_polling); +DECLARE_int32(urma_poller_num); +DECLARE_bool(urma_disable_bthread); + +// Per-connection application-level connect object. Returned by +// UrmaTransport::Connect(); its StartConnect spawns the client-side handshake +// bthread that drives the URMA negotiation over the already-connected TCP fd. +class UrmaConnect : public AppConnect { +public: + void StartConnect(const Socket* socket, + void (*done)(int err, void* data), void* data) override; + void StopConnect(Socket*) override; + + struct RunGuard { + explicit RunGuard(UrmaConnect* rc) : this_rc(rc) {} + ~RunGuard() { if (this_rc) this_rc->Run(); } + UrmaConnect* this_rc; + }; + +private: + void Run(); + void (*_done)(int, void*){nullptr}; + void* _data{nullptr}; +}; + +// POD holder for the URMA kernel objects backing one connection: +// - the send jetty (JFS), shared-JFR jetty, JFR, JFC, and (event mode) JFCE +// - the imported peer jetty and peer segment +// Mirrors the role of rdma::RdmaResource, but the URMA object graph is a +// little different (no separate QP/CQ split). +struct UrmaResource { + UrmaResource* next{nullptr}; // singly-linked list for the prepared pool + + urma_jfc_t* jfc{nullptr}; + urma_jfce_t* jfce{nullptr}; // event mode only; null in polling mode + urma_jfr_t* jfr{nullptr}; + urma_jetty_t* jetty{nullptr}; + // Imported peer objects (created per-connection, not pooled). + urma_target_jetty_t* remote_jetty{nullptr}; + urma_target_seg_t* remote_seg{nullptr}; + + UrmaResource() = default; + ~UrmaResource(); + DISALLOW_COPY_AND_ASSIGN(UrmaResource); +}; + +// One per Socket. Carries the handshake state machine, the send/recv +// windows, and the registered buffer bookkeeping. Cache-line padded to avoid +// false sharing between connections. +class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { + friend class UrmaConnect; + friend class Socket; + friend class UrmaTransport; + friend class UrmaHandshakeClientV2; + friend class UrmaHandshakeServerV2; + friend class UrmaHandshakeClientV3; + friend class UrmaHandshakeServerV3; + friend int DrainBytes(UrmaEndpoint*, size_t); + friend int ReadBodyAndNegotiate(UrmaEndpoint*, ParsedHello*, bool*); + +public: + explicit UrmaEndpoint(Socket* s); + ~UrmaEndpoint() override; + + // ---- Global initialization / release ---- + // Pre-allocate the prepared Jetty pool. Called once at GlobalUrmaInitializeOrDie. + static int GlobalInitialize(); + static void GlobalRelease(); + + // ---- Per-connection lifecycle ---- + // Reset the endpoint back to UNINIT for reuse. + void Reset(); + + // ---- Data path (called by UrmaTransport) ---- + // Cut data from the IOBuf list and post it via URMA SEND. + // Returns bytes sent, or -1 (errno set; EAGAIN when windows are full). + ssize_t CutFromIOBufList(butil::IOBuf** data, size_t ndata); + + // Whether the endpoint can post more sends (both windows non-empty). + bool IsWritable() const; + + // For debug: dump endpoint state to @os. + void DebugInfo(std::ostream& os, + butil::StringPiece connector = "\n") const; + + // Edge-triggered callback installed on the TCP socket when the transport + // is URMA. Dispatches on _state (see the .cpp for the full state machine): + // UNINIT (server) -> start the server handshake bthread + // < ESTABLISHED -> wake the handshake bthread parked in ReadFromFd + // FALLBACK_TCP -> hand off to InputMessenger::OnNewMessages + // ESTABLISHED -> drain stray TCP bytes + static void OnNewDataFromTcp(Socket* m); + + // CQ completion poller: the edge-triggered callback for the CQ socket + // (whose user is this endpoint). Drains urma_poll_jfc and feeds the + // completions into HandleCompletion, then calls InputMessenger. + static void PollCq(Socket* m); + + // Initialize the per-tag polling infrastructure (polling mode). + static int PollingModeInitialize(bthread_tag_t tag, + std::function callback, + std::function init_fn, + std::function release_fn); + static void PollingModeRelease(bthread_tag_t tag); + + // ---- Handshake IO helpers (also used by urma_handshake.cpp) ---- + // Read at most @len bytes from the TCP fd into @data; waits on _read_butex + // on EAGAIN. Returns 0 on success, -1 on IO error (errno set). + int ReadFromFd(void* data, size_t len); + // Push @len bytes back into _socket->_read_buf so the TCP input messenger + // can re-parse them (used on fallback when the magic is not "URMA"). + void PushBackToReadBuf(const void* data, size_t len); + // Write at most @len bytes from @data to the TCP fd; waits on + // _epollout_butex on EAGAIN. Returns 0 on success, -1 on IO error. + int WriteToFd(void* data, size_t len); + + // ---- Hello builders/parsers (used by urma_handshake.cpp) ---- + // Fill the v2 binary HelloMessage with this endpoint's local params. + void FillLocalHelloV2(v2_wire::HelloMessage* out) const; + // Fill the v3 protobuf UrmaHello with this endpoint's local params. + void FillLocalHelloV3(UrmaHello* out) const; + // Write "URM3" + 4B big-endian pb_size + protobuf bytes. + int WriteHelloV3(const UrmaHello& msg); + // Read pb_size (4B) + protobuf bytes; parse; validate. Sets *negotiated + // to false (returns 0) if the message is invalid. + int ReadAndParseHelloV3(ParsedHello* out, bool* negotiated); + + // Apply the peer's negotiated parameters (window sizes, peer jetty/seg). + void ApplyRemoteHello(const ParsedHello& remote); + +private: + enum State { + UNINIT = 0x0, + C_ALLOC_RES = 0x1, // client: allocate Jetty/JFC/JFR + C_HELLO_SEND = 0x2, + C_HELLO_WAIT = 0x3, + C_IMPORT_PEER = 0x4, // urma_import_seg then urma_import_jetty + C_ACK_SEND = 0x5, + S_HELLO_WAIT = 0x11, + S_ALLOC_RES = 0x12, + S_IMPORT_PEER = 0x13, + S_HELLO_SEND = 0x14, + S_ACK_WAIT = 0x15, + ESTABLISHED = 0x100, + FALLBACK_TCP = 0x200, + FAILED = 0x300 + }; + + // Process handshake at the client / server (run in a background bthread). + static void* ProcessHandshakeAtClient(void* arg); + static void* ProcessHandshakeAtServer(void* arg); + + // Allocate / deallocate the per-connection URMA resources (JFCE/JFC/JFR/ + // Jetty, plus the CQ socket). Returns 0 on success. + int AllocateResources(); + void DeallocateResources(); + + // Import the peer's jetty and buffer-pool segment. CRITICAL: + // urma_import_seg is called BEFORE urma_import_jetty, otherwise the kernel + // does not establish the transport-path routing for the remote EID and + // the first SEND is rejected with URMA_CR_RNR_RETRY_CNT_EXC_ERR. + // Returns 0 on success. + int ImportPeer(const ParsedHello& peer); + + // Post @num recv WRs into the local JFR. If @zerocopy, use a fresh pool + // buffer; otherwise reuse the fixed _rbuf slot. Returns 0 on success. + int PostRecv(uint32_t num, bool zerocopy); + + // Post a single recv WR pointing at @block of @block_size. + int DoPostRecv(void* block, size_t block_size); + + // Send a pure-ACK WR (URMA_OPC_SEND with no payload, to flush peer-side + // flow-control credit). @imm is unused in v1 (kept for SEND_IMM upgrade). + int SendImm(uint32_t imm); + // Piggyback ack: if _new_rq_wrs is above the threshold, flush it via + // SendImm. @num is the number of new recv WRs to add. + int SendAck(int num); + + // Handle one completion record. For SEND completions: reclaim the SQ + // window and wake the writer. For RECV completions: cut the payload into + // _socket->_read_buf, repost the recv WR, and ack. Returns bytes received + // (0 for send completions), or -1 on error (errno set). + ssize_t HandleCompletion(const urma_cr_t& cr); + + // Get-and-ack async events on the JFCE fd (event mode only). + int GetAndAckEvents(SocketUniquePtr& s); + + // Request completion notification (event mode only). + int ReqNotifyCq(); + + // Add/remove the CQ socket id to/from the poller (polling mode only). + void PollerAddCqSid(); + void PollerRemoveCqSid(); + + inline void TryReadOnTcp(); + + // Construct a ParsedHello from local state (used by SendLocalHello). + void MakeLocalParsedHello(ParsedHello* out) const; + + // Bring the jetty from RESET to READY (URMA jetty state machine). + int BringUpJetty(); + + std::string GetStateStr() const; + + // Not owned. + Socket* _socket; + + // Handshake state. + State _state{UNINIT}; + int _handshake_version{0}; // 0 = unnegotiated; 2 = v2; 3 = v3 + + // The URMA resources (jetty / jfc / jfr / jfce / imported peer objects). + UrmaResource* _resource{nullptr}; + + // The SocketId wrapping the JFCE fd (event mode) or a synthetic carrier + // (polling mode). PollCq is the edge-triggered callback on this socket. + SocketId _cq_sid{INVALID_SOCKET_ID}; + + // ---- Send / recv window bookkeeping ---- + uint16_t _sq_size{0}; // local JFS depth + uint16_t _rq_size{0}; // local JFR depth + + // Per-WR send buffers (own the IOBuf until the SEND completes). + std::vector _sbuf; + // Per-WR recv buffers (zero-copy targets). + std::vector _rbuf; + std::vector _rbuf_data; + // Peer's advertised recv buffer size (caps each WR's payload). + uint32_t _remote_recv_block_size{0}; + + // Flow-control windows (atomic; producer decrements, completion handler + // increments). + uint16_t _local_window_capacity{0}; + uint16_t _remote_window_capacity{0}; + butil::atomic _remote_rq_window_size{0}; // WRs we can send + butil::atomic _sq_window_size{0}; // WRs we can post + butil::atomic _new_rq_wrs{0}; // new recv WRs (to ack) + uint16_t _sq_imm_window_size{0}; // budget for pure-ack WRs + + // SQ producer / signaled / consumer indices. + uint16_t _sq_current{0}; + uint16_t _sq_unsignaled{0}; + uint16_t _sq_sent{0}; + // RQ consumer index. + uint16_t _rq_received{0}; + + // ACK piggyback counters. + uint16_t _accumulated_ack{0}; + uint16_t _unsolicited{0}; + uint32_t _unsolicited_bytes{0}; + + // Butex for waking the handshake bthread parked in ReadFromFd. + butil::atomic* _read_butex{nullptr}; + + // Reserved WR slots for pure-ack IMM WRs. + static constexpr uint16_t RESERVED_WR_NUM = 3; + + // Cq socket id operation (polling mode registration queue). + struct CqSidOp { + enum OpType { ADD, REMOVE } type; + SocketId sid; + }; + struct BAIDU_CACHELINE_ALIGNMENT Poller { + bthread_t tid{INVALID_BTHREAD}; + butil::MPSCQueue> op_queue; + std::function callback; + std::function init_fn; + std::function release_fn; + }; + struct BAIDU_CACHELINE_ALIGNMENT PollerGroup { + PollerGroup() : pollers(FLAGS_urma_poller_num), running(false) {} + std::vector pollers; + butil::atomic running; + }; + static std::vector _poller_groups; + + DISALLOW_COPY_AND_ASSIGN(UrmaEndpoint); +}; + +} // namespace urma +} // namespace brpc + +#else // if BRPC_WITH_URMA + +namespace brpc { +namespace urma { +class UrmaEndpoint {}; +} // namespace urma +} // namespace brpc + +#endif // if BRPC_WITH_URMA + +#endif // BRPC_URMA_ENDPOINT_H diff --git a/src/brpc/urma/urma_handshake.cpp b/src/brpc/urma/urma_handshake.cpp new file mode 100644 index 0000000000..61fedc6eb1 --- /dev/null +++ b/src/brpc/urma/urma_handshake.cpp @@ -0,0 +1,293 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "brpc/urma/urma_handshake.h" + +#if BRPC_WITH_URMA + +#include +#include +#include + +#include + +#include "butil/iobuf.h" // IOBuf, IOPortal, IOBufAsZeroCopy* +#include "butil/logging.h" +#include "butil/sys_byteorder.h" + +#include "brpc/socket.h" +#include "brpc/urma/urma_endpoint.h" +#include "brpc/urma/urma_helper.h" +#include "brpc/urma/urma_handshake.pb.h" +#include "brpc/urma_transport.h" + +namespace brpc { +namespace urma { + +DEFINE_int32(urma_client_handshake_version, 2, + "Client handshake version: 2 = binary, 3 = protobuf"); + +// ============================================================================ +// v2 binary HelloMessage. +// On-wire layout (network byte order, tightly packed body of 82 bytes): +// +// offset field size +// 0 msg_len 2B (full packet length incl. magic) +// 2 hello_ver 2B +// 4 impl_ver 2B +// 6 buffer_size 4B +// 10 recv_buffer_cnt 4B +// 14 jetty_id 4B +// 18 eid 16B (raw, no swap) +// 34 uasid 4B +// 38 tp_type 1B +// 39 pad 3B +// 42 seg_eid 16B (raw) +// 58 seg_uasid 4B +// 62 seg_va 8B +// 70 seg_len 8B +// 78 seg_token_id 4B +// total = 82 bytes body. +// +// Full packet = magic "URMA" (4B) + body (82B) = 86 bytes. +// ============================================================================ + +namespace v2_wire { + +constexpr size_t HELLO_BODY_LEN = 82; +constexpr size_t HELLO_PACKET_LEN = MAGIC_STR_LEN + HELLO_BODY_LEN; // 86 + +void HelloMessage::Serialize(void* buf) const { + uint8_t* p = static_cast(buf); + *(uint16_t*)p = butil::HostToNet16(msg_len); p += 2; + *(uint16_t*)p = butil::HostToNet16(hello_ver); p += 2; + *(uint16_t*)p = butil::HostToNet16(impl_ver); p += 2; + *(uint32_t*)p = butil::HostToNet32(buffer_size); p += 4; + *(uint32_t*)p = butil::HostToNet32(recv_buffer_cnt); p += 4; + *(uint32_t*)p = butil::HostToNet32(jetty_id); p += 4; + memcpy(p, eid, 16); p += 16; + *(uint32_t*)p = butil::HostToNet32(uasid); p += 4; + *p = tp_type; p += 1; + memset(p, 0, 3); p += 3; // pad + memcpy(p, seg_eid, 16); p += 16; + *(uint32_t*)p = butil::HostToNet32(seg_uasid); p += 4; + *(uint64_t*)p = butil::HostToNet64(seg_va); p += 8; + *(uint64_t*)p = butil::HostToNet64(seg_len); p += 8; + *(uint32_t*)p = butil::HostToNet32(seg_token_id); p += 4; +} + +void HelloMessage::Deserialize(const void* buf) { + const uint8_t* p = static_cast(buf); + msg_len = butil::NetToHost16(*(uint16_t*)p); p += 2; + hello_ver = butil::NetToHost16(*(uint16_t*)p); p += 2; + impl_ver = butil::NetToHost16(*(uint16_t*)p); p += 2; + buffer_size = butil::NetToHost32(*(uint32_t*)p); p += 4; + recv_buffer_cnt = butil::NetToHost32(*(uint32_t*)p); p += 4; + jetty_id = butil::NetToHost32(*(uint32_t*)p); p += 4; + memcpy(eid, p, 16); p += 16; + uasid = butil::NetToHost32(*(uint32_t*)p); p += 4; + tp_type = *p; p += 1; + p += 3; // pad + memcpy(seg_eid, p, 16); p += 16; + seg_uasid = butil::NetToHost32(*(uint32_t*)p); p += 4; + seg_va = butil::NetToHost64(*(uint64_t*)p); p += 8; + seg_len = butil::NetToHost64(*(uint64_t*)p); p += 8; + seg_token_id = butil::NetToHost32(*(uint32_t*)p); p += 4; +} + +} // namespace v2_wire + +// ============================================================================ +// Shared helpers. +// ============================================================================ + +namespace { + +constexpr uint32_t MIN_BUFFER_SIZE = 1024; +constexpr uint32_t MIN_BUFFER_CNT = 1; +constexpr uint32_t MAX_BUFFER_CNT = 65535; +constexpr uint32_t MAX_V3_PB_SIZE = 4096; + +bool ValidHello(const ParsedHello& h) { + if (h.buffer_size < MIN_BUFFER_SIZE) { return false; } + if (h.recv_buffer_cnt < MIN_BUFFER_CNT || h.recv_buffer_cnt > MAX_BUFFER_CNT) { + return false; + } + if (h.jetty_id == 0) { return false; } + if (h.tp_type > static_cast(URMA_UTP)) { return false; } + if (h.seg_len == 0 || h.seg_va == 0) { return false; } + return true; +} + +} // namespace + +// File-local (not in the anonymous namespace so it can be friend-declared +// from urma_endpoint.h's UrmaEndpoint). Reads the body following the magic +// and translates it into ParsedHello. +int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated) { + *negotiated = false; + uint8_t body[v2_wire::HELLO_BODY_LEN]; + if (ep->ReadFromFd(body, v2_wire::HELLO_BODY_LEN) < 0) { return -1; } + v2_wire::HelloMessage m; + m.Deserialize(body); + if (m.hello_ver != v2_wire::HELLO_V2_VERSION || + m.impl_ver != v2_wire::IMPL_V2_VERSION) { return 0; } + ParsedHello p; + p.buffer_size = m.buffer_size; + p.recv_buffer_cnt = m.recv_buffer_cnt; + p.jetty_id = m.jetty_id; + memcpy(p.eid, m.eid, 16); + p.uasid = m.uasid; + p.tp_type = m.tp_type; + memcpy(p.seg_eid, m.seg_eid, 16); + p.seg_uasid = m.seg_uasid; + p.seg_va = m.seg_va; + p.seg_len = m.seg_len; + p.seg_token_id = m.seg_token_id; + if (!ValidHello(p)) { return 0; } + // Drain trailing bytes if msg_len advertises more than the fixed body. + if (m.msg_len > v2_wire::HELLO_PACKET_LEN) { + if (DrainBytes(ep, m.msg_len - v2_wire::HELLO_PACKET_LEN) < 0) { return -1; } + } + *out = p; + *negotiated = true; + return 0; +} + +int DrainBytes(UrmaEndpoint* ep, size_t n) { + char buf[4096]; + while (n > 0) { + size_t want = std::min(n, sizeof(buf)); + if (ep->ReadFromFd(buf, want) < 0) { return -1; } + n -= want; + } + return 0; +} + +// ============================================================================ +// v2 client / server. +// ============================================================================ + +int UrmaHandshakeClientV2::SendLocalHello() { + v2_wire::HelloMessage m; + _ep->FillLocalHelloV2(&m); + uint8_t packet[v2_wire::HELLO_PACKET_LEN]; + memcpy(packet, "URMA", 4); + m.Serialize(packet + 4); + return _ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); +} + +int UrmaHandshakeClientV2::ReceiveAndParseRemoteHello(ParsedHello* out, + bool* negotiated) { + *negotiated = false; + uint8_t magic[v2_wire::MAGIC_STR_LEN]; + if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } + if (memcmp(magic, "URMA", 4) != 0) { + // Peer is not URMA-capable; push the magic back so the TCP input + // messenger can re-parse it. + _ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); + return 0; + } + return ReadBodyAndNegotiate(_ep, out, negotiated); +} + +int UrmaHandshakeServerV2::ReceiveAndParseRemoteHello(ParsedHello* out, + bool* negotiated) { + return ReadBodyAndNegotiate(_ep, out, negotiated); +} + +int UrmaHandshakeServerV2::SendLocalHello() { + v2_wire::HelloMessage m; + _ep->FillLocalHelloV2(&m); + auto* tp = static_cast(_ep->_socket->_transport.get()); + if (tp->_urma_state == UrmaTransport::URMA_OFF) { + // Tell the client we are not URMA-capable: zero the version fields so + // the client's version check fails and it falls back to TCP. + m.hello_ver = 0; + m.impl_ver = 0; + m.jetty_id = 0; + m.buffer_size = 0; + } + uint8_t packet[v2_wire::HELLO_PACKET_LEN]; + memcpy(packet, "URMA", 4); + m.Serialize(packet + 4); + return _ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); +} + +// ============================================================================ +// v3 protobuf ("URM3"). The protobuf (de)serialization lives on the endpoint +// because it touches UrmaEndpoint private state; the classes here just call +// FillLocalHelloV3 / WriteHelloV3 / ReadAndParseHelloV3. +// ============================================================================ + +int UrmaHandshakeClientV3::SendLocalHello() { + UrmaHello msg; + _ep->FillLocalHelloV3(&msg); + return _ep->WriteHelloV3(msg); +} + +int UrmaHandshakeClientV3::ReceiveAndParseRemoteHello(ParsedHello* out, + bool* negotiated) { + *negotiated = false; + uint8_t magic[v2_wire::MAGIC_STR_LEN]; + if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } + if (memcmp(magic, "URM3", 4) != 0) { + _ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); + return 0; + } + return _ep->ReadAndParseHelloV3(out, negotiated); +} + +int UrmaHandshakeServerV3::ReceiveAndParseRemoteHello(ParsedHello* out, + bool* negotiated) { + return _ep->ReadAndParseHelloV3(out, negotiated); +} + +int UrmaHandshakeServerV3::SendLocalHello() { + UrmaHello msg; + _ep->FillLocalHelloV3(&msg); + // v3 has no zero-out path; the client rejects jetty_id==0 via ValidHello. + return _ep->WriteHelloV3(msg); +} + +// ============================================================================ +// Factories. +// ============================================================================ + +UrmaHandshake* CreateClientHandshake(UrmaEndpoint* ep) { + switch (FLAGS_urma_client_handshake_version) { + case 3: return new UrmaHandshakeClientV3(ep); + case 2: + default: return new UrmaHandshakeClientV2(ep); + } +} + +UrmaHandshake* CreateServerHandshakeByMagic(UrmaEndpoint* ep, + const uint8_t magic[v2_wire::MAGIC_STR_LEN]) { + if (memcmp(magic, "URMA", 4) == 0) { + return new UrmaHandshakeServerV2(ep); + } + if (memcmp(magic, "URM3", 4) == 0) { + return new UrmaHandshakeServerV3(ep); + } + return nullptr; +} + +} // namespace urma +} // namespace brpc + +#endif // if BRPC_WITH_URMA diff --git a/src/brpc/urma/urma_handshake.h b/src/brpc/urma/urma_handshake.h new file mode 100644 index 0000000000..ffc1ff33ec --- /dev/null +++ b/src/brpc/urma/urma_handshake.h @@ -0,0 +1,171 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#ifndef BRPC_URMA_HANDSHAKE_H +#define BRPC_URMA_HANDSHAKE_H + +#include +#include +#include + +#if BRPC_WITH_URMA + +#include "brpc/urma/urma_types.h" + +namespace brpc { +namespace urma { + +class UrmaEndpoint; + +// Wire-format-agnostic view of a peer's hello message. Both v2 (binary) and +// v3 (protobuf) translate the bytes on the wire into this struct. The endpoint +// then uses ApplyRemoteHello to size its send/recv windows and to drive +// urma_import_seg / urma_import_jetty. +struct ParsedHello { + uint32_t buffer_size = 0; // peer recv buffer size in bytes (per WR) + uint32_t recv_buffer_cnt = 0; // peer recv buffer count (RQ depth - 1) + uint32_t jetty_id = 0; // peer jetty id + uint8_t eid[16] = {0}; // peer EID (network order) + uint32_t uasid = 0; // peer uasid + uint8_t tp_type = 0; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP + + // Flattened peer buffer-pool segment. + uint8_t seg_eid[16] = {0}; // EID owning the peer segment + uint32_t seg_uasid = 0; // uasid owning the peer segment + uint64_t seg_va = 0; // segment virtual address + uint64_t seg_len = 0; // segment length in bytes + uint32_t seg_token_id = 0; // segment token id +}; + +// v2 binary wire layout. The full on-wire packet is: +// [ "URMA" 4B ][ HelloMessage body 92B ] => 96 bytes total. +// (msg_len = 96 includes the magic prefix and the body, matching RDMA's +// convention where msg_len covers the whole packet.) +namespace v2_wire { + +constexpr size_t MAGIC_STR_LEN = 4; +constexpr size_t HELLO_MSG_LEN_MIN = 96; +constexpr size_t HELLO_MSG_LEN_MAX = 4096; +constexpr uint16_t HELLO_V2_VERSION = 2; +constexpr uint16_t IMPL_V2_VERSION = 1; + +// The serializable struct. Aligned so it can be reinterpreted as raw bytes. +struct HelloMessage { + uint16_t msg_len; // total packet length (incl. magic) + uint16_t hello_ver; + uint16_t impl_ver; + uint32_t buffer_size; + uint32_t recv_buffer_cnt; + uint32_t jetty_id; + uint8_t eid[16]; + uint32_t uasid; + uint8_t tp_type; + uint8_t pad[3]; // keep the struct 4-byte aligned + uint8_t seg_eid[16]; + uint32_t seg_uasid; + uint64_t seg_va; + uint64_t seg_len; + uint32_t seg_token_id; + + void Serialize(void* buf) const; // host -> network order, write to buf + void Deserialize(const void* buf); // network -> host order, read from buf +}; + +} // namespace v2_wire + +// Abstract handshake strategy. v2 speaks binary; v3 speaks protobuf ("URM3"). +class UrmaHandshake { +public: + virtual ~UrmaHandshake() = default; + virtual int ProtocolVersion() const = 0; + + // Send our local hello over the TCP fd held by the endpoint. + // Returns 0 on success, -1 on failure (errno set). + virtual int SendLocalHello() = 0; + + // Read the peer's hello and parse it into @out. Sets @negotiated to true + // if the peer is URMA-capable and the message validates; false (with + // return 0) to signal a graceful fall-back to TCP. + // Returns -1 on IO error (errno set). + virtual int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) = 0; +}; + +// v2 binary handshake (magic "URMA"). +class UrmaHandshakeClientV2 : public UrmaHandshake { +public: + explicit UrmaHandshakeClientV2(UrmaEndpoint* ep) : _ep(ep) {} + int ProtocolVersion() const override { return 2; } + int SendLocalHello() override; + int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; +private: + UrmaEndpoint* _ep; +}; + +class UrmaHandshakeServerV2 : public UrmaHandshake { +public: + explicit UrmaHandshakeServerV2(UrmaEndpoint* ep) : _ep(ep) {} + int ProtocolVersion() const override { return 2; } + int SendLocalHello() override; + int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; +private: + UrmaEndpoint* _ep; +}; + +// v3 protobuf handshake (magic "URM3"). +class UrmaHandshakeClientV3 : public UrmaHandshake { +public: + explicit UrmaHandshakeClientV3(UrmaEndpoint* ep) : _ep(ep) {} + int ProtocolVersion() const override { return 3; } + int SendLocalHello() override; + int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; +private: + UrmaEndpoint* _ep; +}; + +class UrmaHandshakeServerV3 : public UrmaHandshake { +public: + explicit UrmaHandshakeServerV3(UrmaEndpoint* ep) : _ep(ep) {} + int ProtocolVersion() const override { return 3; } + int SendLocalHello() override; + int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; +private: + UrmaEndpoint* _ep; +}; + +// Client-side factory: picks v2/v3 based on --urma_client_handshake_version. +UrmaHandshake* CreateClientHandshake(UrmaEndpoint* ep); + +// Server-side factory: dispatches on the first 4 bytes read from the TCP fd. +// Returns nullptr if the magic is not "URMA"/"URM3" (caller falls back to TCP). +// @magic is the first MAGIC_STR_LEN bytes already read from the fd. +UrmaHandshake* CreateServerHandshakeByMagic(UrmaEndpoint* ep, + const uint8_t magic[v2_wire::MAGIC_STR_LEN]); + +// Drain @n bytes from the TCP fd (used when msg_len > HELLO_MSG_LEN_MIN). +int DrainBytes(UrmaEndpoint* ep, size_t n); + +// Read the body following the magic and translate to ParsedHello. Friend of +// UrmaEndpoint. Returns -1 on IO error; 0 with *negotiated=false on invalid +// (peer not URMA-capable); 0 with *negotiated=true on success. +int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated); + +} // namespace urma +} // namespace brpc + +#endif // if BRPC_WITH_URMA + +#endif // BRPC_URMA_HANDSHAKE_H diff --git a/src/brpc/urma/urma_handshake.proto b/src/brpc/urma/urma_handshake.proto new file mode 100644 index 0000000000..24f45446a8 --- /dev/null +++ b/src/brpc/urma/urma_handshake.proto @@ -0,0 +1,47 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +syntax = "proto2"; + +package brpc.urma; + +option java_package = "com.brpc.urma"; +option java_outer_classname = "UrmaHandshakeProto"; + +// Wire-level handshake message exchanged between two UrmaTransport peers +// after the TCP connection is established. The first 4 bytes on the wire +// are the magic "URM3" (v3) followed by a 4-byte big-endian length prefix +// and then the protobuf-encoded UrmaHello. +message UrmaHello { + required uint32 buffer_size = 1; // recv buffer size in bytes (per recv WR) + required uint32 recv_buffer_cnt = 2; // number of recv buffers posted + required uint32 jetty_id = 3; // local jetty id + required bytes eid = 4; // 16-byte local EID (network order) + required uint32 uasid = 5; // local uasid + required uint8 tp_type = 6; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP + + // Flattened peer buffer-pool segment (urma_seg_t + token). The receiver + // calls urma_import_seg with these fields BEFORE urma_import_jetty, so + // the kernel establishes the transport path (TP) routing for the remote + // EID. Otherwise the first SEND is rejected by hardware with + // URMA_CR_RNR_RETRY_CNT_EXC_ERR (status=10). + required bytes seg_eid = 7; // 16-byte EID owning the segment + required uint32 seg_uasid = 8; // uasid owning the segment + required uint64 seg_va = 9; // segment virtual address + required uint64 seg_len = 10; // segment length in bytes + required uint32 seg_token_id = 11; // segment token id +} diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp new file mode 100644 index 0000000000..3c50a70916 --- /dev/null +++ b/src/brpc/urma/urma_helper.cpp @@ -0,0 +1,584 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "brpc/urma/urma_helper.h" + +#if BRPC_WITH_URMA + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include "butil/atomicops.h" +#include "butil/containers/flat_map.h" +#include "butil/iobuf.h" +#include "butil/logging.h" +#include "butil/macros.h" +#include "butil/scoped_lock.h" +#include "butil/synchronization/lock.h" + +#include "brpc/urma/urma_api.h" +#include "brpc/urma/urma_types.h" + +DECLARE_int32(task_group_ntags); + +namespace butil { +namespace iobuf { +// declared in iobuf.cpp +extern void* (*blockmem_allocate)(size_t); +extern void (*blockmem_deallocate)(void*); +} +} + +namespace brpc { +namespace urma { + +DEFINE_bool(urma_use_polling, false, + "Use busy polling to poll JFC, instead of event mode"); +DEFINE_int32(urma_poller_num, 1, + "Number of poller bthreads per bthread tag (polling mode only)"); +DEFINE_bool(urma_disable_bthread, false, + "Run the message-processing callback inline (no bthread spawned)"); +DEFINE_bool(urma_trace_verbose, false, + "Print verbose logs for URMA handshake and completions"); + +DEFINE_int32(urma_sq_size, 128, + "Depth of the local send jetty (JFS). [16, 4096]"); +DEFINE_int32(urma_rq_size, 128, + "Depth of the local recv jetty (JFR). [16, 4096]"); +DEFINE_int32(urma_cqe_poll_once, 32, + "Max completion entries polled per urma_poll_jfc call"); +DEFINE_bool(urma_recv_zerocopy, true, + "Use zero-copy for receives larger than --urma_zerocopy_min_size"); +DEFINE_int32(urma_zerocopy_min_size, 512, + "Receives smaller than this many bytes are copied (not zero-copy)"); + +DEFINE_string(urma_device, "", + "The name of the URMA device to use. Empty means the first one."); +DEFINE_int32(urma_max_sge, 0, + "Max SGEs per WR. 0 means the device maximum."); +DEFINE_int32(urma_prepared_jetty_cnt, 1024, + "Number of pre-allocated Jetty+CQ sets for fast connect"); + +DEFINE_int32(urma_buffer_size, 8 * 1024, + "Per-buffer size in the URMA buffer pool (bytes). " + "Must match IOBuf block size to keep zero-copy working."); +DEFINE_int32(urma_buffer_count, 65536, + "Number of buffers in the URMA buffer pool."); +DEFINE_bool(urma_buffer_pool_user_specified, false, + "If true, the pool is not auto-grown; user must call " + "ExtendUrmaBufferPoolByUser."); + +DEFINE_bool(urma_poller_yield, false, + "Yield (bthread_yield) in the busy poll loop to let other " + "bthreads run"); + +DEFINE_bool(urma_event_mode, true, + "Use JFCE event mode (true) or busy polling (false). " + "Only effective when --urma_use_polling is false."); + +// EAGAIN-like errno used by the send path to signal window-full. +constexpr int kErrnoUrmaWindowFull = EAGAIN; + +// Set to true to skip real URMA hardware initialization (unit tests). When +// true, GlobalUrmaInitializeOrDie() returns without touching liburma and the +// endpoint builds its state machine without posting real WRs. +bool g_skip_urma_init = false; +butil::atomic g_urma_available(false); + +// ============================================================================ +// Global URMA state (single device / single context chosen at init time). +// ============================================================================ + +static urma_device_t* g_device = nullptr; +static urma_context_t* g_context = nullptr; +static urma_device_attr_t g_device_attr{}; +static int g_max_sge = 1; +static size_t g_recv_block_size = 8 * 1024; + +// The single registered segment backing the buffer pool. The whole pool is +// one urma_register_seg call, sliced into fixed-size buffers. urma_target_seg_t +// is the per-buffer handle carried by urma_sge_t.tseg on the send/recv path. +static urma_target_seg_t* g_pool_seg = nullptr; +static void* g_pool_base = nullptr; +static size_t g_pool_size = 0; +static size_t g_pool_buffer_size = 0; + +// User-registered segments (RegisterMemoryForUrma). Keyed by buffer address. +struct UserSeg { + urma_target_seg_t* tseg = nullptr; + void* base = nullptr; + size_t len = 0; +}; +static butil::FlatMap* g_user_segs = nullptr; +static butil::Mutex* g_user_segs_lock = nullptr; + +// Original IOBuf allocator (saved so we can restore it on release). +static void* (*g_mem_alloc_orig)(size_t) = nullptr; +static void (*g_mem_dealloc_orig)(void*) = nullptr; + +namespace { + +void ExitWithError(const char* msg) { + LOG(ERROR) << msg; + exit(1); +} + +// Round up to the page size. +size_t PageSize() { + long ps = sysconf(_SC_PAGESIZE); + return ps > 0 ? static_cast(ps) : 4096; +} + +size_t AlignUp(size_t v, size_t align) { + return (v + align - 1) / align * align; +} + +} // namespace + +// ============================================================================ +// Buffer pool: one registered segment, sliced into fixed-size buffers. +// ============================================================================ + +namespace { + +// Free list with 64 shards to reduce contention (modeled on yalantinglibs). +constexpr size_t kShardCount = 64; +struct BufferPool { + butil::Mutex mutexes[kShardCount]; + std::vector free_lists[kShardCount]; + std::vector in_use; // 0/1 per buffer + butil::atomic outstanding{0}; + + size_t buffer_count() const { + return in_use.size(); + } +}; +BufferPool* g_pool = nullptr; + +size_t ShardFor(void* buf) { + auto* base = static_cast(buf); + auto offset = static_cast(base - static_cast(g_pool_base)); + auto idx = offset / g_pool_buffer_size; + return idx % kShardCount; +} + +size_t PreferredShard() { + // Hash the current thread id across shards. pthread_self() returns an + // opaque pthread_t; cast through uintptr_t to get a hashable value. + auto tid = static_cast(reinterpret_cast(pthread_self())); + return tid % kShardCount; +} + +void* PoolAllocate(size_t size) { + if (BAIDU_UNLIKELY(g_skip_urma_init)) { + return g_mem_alloc_orig ? g_mem_alloc_orig(size) : malloc(size); + } + // Only serve the configured buffer size; callers always ask for that. + if (size > g_pool_buffer_size) { + // Larger than a single buffer -- fall back to the system allocator. + return g_mem_alloc_orig ? g_mem_alloc_orig(size) : malloc(size); + } + auto start = PreferredShard(); + for (size_t i = 0; i < kShardCount; ++i) { + auto shard = (start + i) % kShardCount; + BAIDU_SCOPED_LOCK(g_pool->mutexes[shard]); + auto& fl = g_pool->free_lists[shard]; + if (fl.empty()) { continue; } + void* buf = fl.back(); + fl.pop_back(); + auto idx = (static_cast(buf) - + static_cast(g_pool_base)) / g_pool_buffer_size; + if (idx < g_pool->in_use.size()) { g_pool->in_use[idx] = 1; } + g_pool->outstanding.fetch_add(1, butil::memory_order_relaxed); + return buf; + } + LOG(WARNING) << "URMA buffer pool exhausted; falling back to malloc"; + return g_mem_alloc_orig ? g_mem_alloc_orig(size) : malloc(size); +} + +void PoolDeallocate(void* buf) { + if (BAIDU_UNLIKELY(g_skip_urma_init)) { + if (g_mem_dealloc_orig) { g_mem_dealloc_orig(buf); } + else { free(buf); } + return; + } + auto* base = static_cast(g_pool_base); + auto* p = static_cast(buf); + if (!base || p < base || p >= base + g_pool_size || + static_cast(p - base) % g_pool_buffer_size != 0) { + // Not a pool buffer -- hand back to the original allocator. + if (g_mem_dealloc_orig) { g_mem_dealloc_orig(buf); } + else { free(buf); } + return; + } + auto shard = ShardFor(buf); + BAIDU_SCOPED_LOCK(g_pool->mutexes[shard]); + auto idx = static_cast(p - base) / g_pool_buffer_size; + if (idx < g_pool->in_use.size()) { + if (!g_pool->in_use[idx]) { + LOG(WARNING) << "double-free of URMA pool buffer " << buf; + return; + } + g_pool->in_use[idx] = 0; + } + g_pool->free_lists[shard].push_back(buf); + if (g_pool->outstanding.load(butil::memory_order_relaxed) > 0) { + g_pool->outstanding.fetch_sub(1, butil::memory_order_relaxed); + } +} + +// Register the pool: mmap one large region and urma_register_seg it. +bool InitPool() { + if (g_pool_buffer_size == 0 || g_pool == nullptr) { return false; } + size_t count = g_pool->buffer_count(); + if (count == 0) { return false; } + size_t raw = g_pool_buffer_size * count; + size_t page = PageSize(); + g_pool_size = AlignUp(raw, page); + + g_pool_base = mmap(nullptr, g_pool_size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (g_pool_base == MAP_FAILED) { + PLOG(WARNING) << "Fail to mmap URMA buffer pool"; + g_pool_base = nullptr; + return false; + } + + urma_reg_seg_flag_t flag{}; + flag.bs.token_policy = URMA_TOKEN_NONE; + flag.bs.cacheable = URMA_NON_CACHEABLE; + flag.bs.access = URMA_ACCESS_READ | URMA_ACCESS_WRITE | URMA_ACCESS_ATOMIC; + + urma_seg_cfg_t cfg{}; + cfg.va = reinterpret_cast(g_pool_base); + cfg.len = g_pool_size; + cfg.token_id = nullptr; + cfg.token_value = {}; + cfg.flag = flag; + cfg.user_ctx = reinterpret_cast(g_pool_base); + cfg.iova = 0; + + errno = 0; + g_pool_seg = urma_register_seg(g_context, &cfg); + if (!g_pool_seg) { + PLOG(WARNING) << "Fail to urma_register_seg"; + munmap(g_pool_base, g_pool_size); + g_pool_base = nullptr; + return false; + } + g_pool->in_use.assign(count, 0); + for (size_t i = 0; i < count; ++i) { + auto shard = i % kShardCount; + g_pool->free_lists[shard].push_back( + static_cast(g_pool_base) + i * g_pool_buffer_size); + } + LOG(INFO) << "URMA buffer pool ready: " << count << " buffers of " + << g_pool_buffer_size << " bytes, one segment of " << g_pool_size; + return true; +} + +} // namespace + +// Exposed to urma_endpoint.cpp: return the per-buffer target_seg pointer. +// All pool buffers share the same segment, so we return g_pool_seg for any +// pool address; the per-WR length selects the slice. +urma_target_seg_t* GetPoolSegFor(void* buf) { + if (g_skip_urma_init || !g_pool_seg || !g_pool_base) { return nullptr; } + auto* base = static_cast(g_pool_base); + auto* p = static_cast(buf); + if (p >= base && p < base + g_pool_size && + static_cast(p - base) % g_pool_buffer_size == 0) { + return g_pool_seg; + } + return nullptr; +} + +// ============================================================================ +// Global initialization. +// ============================================================================ + +static void GlobalUrmaInitializeOrDieImpl() { + if (BAIDU_UNLIKELY(g_skip_urma_init)) { + g_urma_available.store(true, butil::memory_order_release); + return; + } + + urma_init_attr_t init_attr{}; + int status = urma_init(&init_attr); + if (status != URMA_SUCCESS && status != URMA_EEXIST) { + LOG(ERROR) << "Fail to urma_init: " << status; + exit(1); + } + + int num_devices = 0; + urma_device_t** devices = urma_get_device_list(&num_devices); + if (!devices || num_devices <= 0) { + LOG(ERROR) << "No URMA device found"; + urma_free_device_list(devices); + exit(1); + } + urma_device_t* found = nullptr; + for (int i = 0; i < num_devices; ++i) { + if (FLAGS_urma_device.empty() || + std::string(devices[i]->name) == FLAGS_urma_device) { + found = devices[i]; + break; + } + } + if (!found) { + LOG(ERROR) << "URMA device not found: " << FLAGS_urma_device; + urma_free_device_list(devices); + exit(1); + } + g_device = found; + + uint32_t eid_cnt = 0; + urma_eid_info_t* eids = urma_get_eid_list(g_device, &eid_cnt); + if (!eids || eid_cnt == 0) { + LOG(ERROR) << "Fail to urma_get_eid_list"; + urma_free_eid_list(eids); + urma_free_device_list(devices); + exit(1); + } + g_context = urma_create_context(g_device, eids[0].eid_index); + urma_free_eid_list(eids); + urma_free_device_list(devices); + if (!g_context) { + LOG(ERROR) << "Fail to urma_create_context"; + exit(1); + } + + if (urma_query_device(g_device, &g_device_attr) != URMA_SUCCESS) { + LOG(ERROR) << "Fail to urma_query_device"; + exit(1); + } + g_max_sge = FLAGS_urma_max_sge > 0 ? FLAGS_urma_max_sge + : static_cast(g_device_attr.dev_cap.max_jfs_sge); + if (g_max_sge < 1) { g_max_sge = 1; } + g_recv_block_size = static_cast(FLAGS_urma_buffer_size); + + // User-segment table. + g_user_segs_lock = new (std::nothrow) butil::Mutex; + g_user_segs = new (std::nothrow) butil::FlatMap(); + if (!g_user_segs_lock || !g_user_segs || + g_user_segs->init(65536) < 0) { + LOG(ERROR) << "Fail to init g_user_segs"; + exit(1); + } + + // Buffer pool. + g_pool = new BufferPool(); + g_pool_buffer_size = static_cast(FLAGS_urma_buffer_size); + // Resize the pool's per-shard vectors to hold the configured count. + size_t count = static_cast(FLAGS_urma_buffer_count); + for (size_t s = 0; s < kShardCount; ++s) { + g_pool->free_lists[s].reserve(count / kShardCount + 1); + } + if (!InitPool()) { + LOG(ERROR) << "Fail to init URMA buffer pool"; + exit(1); + } + + // Hijack IOBuf allocation so every IOBuf block is backed by a registered + // segment. This makes the send path trivial: any IOBuf can be posted + // directly as an urma_sge_t pointing at g_pool_seg. + g_mem_alloc_orig = butil::iobuf::blockmem_allocate; + g_mem_dealloc_orig = butil::iobuf::blockmem_deallocate; + butil::iobuf::blockmem_allocate = PoolAllocate; + butil::iobuf::blockmem_deallocate = PoolDeallocate; + butil::SetDefaultBlockSize(g_pool_buffer_size); + + g_urma_available.store(true, butil::memory_order_release); + LOG(INFO) << "URMA initialized: device=" << g_device->name + << " max_sge=" << g_max_sge + << " buffer_size=" << g_pool_buffer_size + << " buffer_count=" << g_pool->buffer_count(); +} + +static butil::atomic g_init_once{0}; +static butil::Mutex g_init_mutex; + +void GlobalUrmaInitializeOrDie() { + int expected = 0; + if (g_init_once.load(butil::memory_order_acquire) == 2) { return; } + if (g_init_once.compare_exchange_strong(expected, 1, + butil::memory_order_acq_rel)) { + BAIDU_SCOPED_LOCK(g_init_mutex); + GlobalUrmaInitializeOrDieImpl(); + g_init_once.store(2, butil::memory_order_release); + } else { + // Wait for the other thread to finish init. + while (g_init_once.load(butil::memory_order_acquire) != 2) { + // spin briefly + } + } +} + +bool IsUrmaAvailable() { + return g_urma_available.load(butil::memory_order_acquire); +} + +void GlobalDisableUrma() { + g_urma_available.store(false, butil::memory_order_release); +} + +bool SupportedByUrma(std::string protocol) { + return protocol == "baidu_std"; +} + +urma_context_t* GetUrmaContext() { return g_context; } +int GetUrmaMaxSge() { return g_max_sge; } +size_t GetUrmaRecvBlockSize() { return g_recv_block_size; } + +// ============================================================================ +// Polling mode (per bthread tag). Currently a no-op stub: URMA polling is +// driven by per-connection JFC polling in urma_endpoint.cpp. This hook exists +// to match the RdmaTransport::ContextInitOrDie signature and to allow future +// per-tag poller groups to be registered. +// ============================================================================ + +struct PollerGroup { + bool running{false}; +}; +static std::vector g_poller_groups; + +bool InitPollingModeWithTag(bthread_tag_t tag, + std::function /*callback*/, + std::function /*init_fn*/, + std::function /*release_fn*/) { + if (BAIDU_UNLIKELY(g_skip_urma_init)) { return true; } + if (g_poller_groups.empty()) { + size_t ntags = static_cast(FLAGS_task_group_ntags); + if (ntags == 0) { ntags = 1; } + g_poller_groups.resize(ntags); + } + if (tag < g_poller_groups.size()) { + g_poller_groups[tag].running = true; + } + return true; +} + +void ReleasePollingModeWithTag(bthread_tag_t tag) { + if (tag < g_poller_groups.size()) { + g_poller_groups[tag].running = false; + } +} + +// ============================================================================ +// User memory registration. +// ============================================================================ + +uint32_t RegisterMemoryForUrma(void* buf, size_t len) { + if (BAIDU_UNLIKELY(g_skip_urma_init) || !g_context) { return 0; } + urma_reg_seg_flag_t flag{}; + flag.bs.token_policy = URMA_TOKEN_NONE; + flag.bs.cacheable = URMA_NON_CACHEABLE; + flag.bs.access = URMA_ACCESS_READ | URMA_ACCESS_WRITE | URMA_ACCESS_ATOMIC; + + urma_seg_cfg_t cfg{}; + cfg.va = reinterpret_cast(buf); + cfg.len = len; + cfg.token_id = nullptr; + cfg.token_value = {}; + cfg.flag = flag; + cfg.user_ctx = reinterpret_cast(buf); + cfg.iova = 0; + + errno = 0; + urma_target_seg_t* tseg = urma_register_seg(g_context, &cfg); + if (!tseg) { + PLOG(WARNING) << "Fail to urma_register_seg for user memory"; + return 0; + } + BAIDU_SCOPED_LOCK(*g_user_segs_lock); + UserSeg us; + us.tseg = tseg; + us.base = buf; + us.len = len; + if (!g_user_segs->insert(buf, us)) { + LOG(WARNING) << "Fail to insert user seg (duplicate?)"; + urma_unregister_seg(tseg); + return 0; + } + return reinterpret_cast(reinterpret_cast(tseg)); +} + +void DeregisterMemoryForUrma(void* buf) { + if (BAIDU_UNLIKELY(g_skip_urma_init) || !g_user_segs) { return; } + BAIDU_SCOPED_LOCK(*g_user_segs_lock); + UserSeg* us = g_user_segs->seek(buf); + if (!us) { return; } + urma_unregister_seg(us->tseg); + g_user_segs->erase(buf); +} + +uint32_t GetSegHandle(void* buf) { + // Pool buffer? + if (g_pool_seg) { + auto* base = static_cast(g_pool_base); + auto* p = static_cast(buf); + if (p >= base && p < base + g_pool_size) { + return reinterpret_cast(reinterpret_cast(g_pool_seg)); + } + } + // User-registered buffer? + if (g_user_segs) { + BAIDU_SCOPED_LOCK(*g_user_segs_lock); + // Find the segment whose [base, base+len) contains buf. + for (auto it = g_user_segs->begin(); it != g_user_segs->end(); ++it) { + auto* b = static_cast(it->second.base); + auto* p = static_cast(buf); + if (p >= b && p < b + it->second.len) { + return reinterpret_cast( + reinterpret_cast(it->second.tseg)); + } + } + } + return 0; +} + +} // namespace urma +} // namespace brpc + +#else // if BRPC_WITH_URMA + +#include + +#include "butil/logging.h" + +namespace brpc { +namespace urma { + +void GlobalUrmaInitializeOrDie() { + LOG(FATAL) << "URMA is not compiled in. Rebuild with -DWITH_URMA=ON."; + exit(1); +} + +} // namespace urma +} // namespace brpc + +#endif // if BRPC_WITH_URMA diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h new file mode 100644 index 0000000000..a942c45c79 --- /dev/null +++ b/src/brpc/urma/urma_helper.h @@ -0,0 +1,101 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#ifndef BRPC_URMA_HELPER_H +#define BRPC_URMA_HELPER_H + +#include +#include +#include +#include + +#include "bthread/types.h" +#include "butil/atomicops.h" + +#if BRPC_WITH_URMA + +#include "brpc/urma/urma_api.h" +#include "brpc/urma/urma_types.h" + +namespace brpc { +namespace urma { + +// Initialize the URMA environment. +// Exit the process if initialization fails. +void GlobalUrmaInitializeOrDie(); + +// Initialize URMA polling mode for a given bthread tag. +// Returns false on failure. +bool InitPollingModeWithTag(bthread_tag_t tag, + std::function callback = nullptr, + std::function init_fn = nullptr, + std::function release_fn = nullptr); + +void ReleasePollingModeWithTag(bthread_tag_t tag); + +// Register the given user buffer for URMA access. +// Returns the (opaque, non-zero) target segment handle stored in the user-mr +// table; 0 on failure. To use the memory in an IOBuf, append it via +// append_user_data_with_meta and pass the returned handle as the data meta. +uint32_t RegisterMemoryForUrma(void* buf, size_t len); + +// Deregister a previously registered user buffer. +void DeregisterMemoryForUrma(void* buf); + +// Return the registered-segment handle for a given address, or 0 if the +// address is not in any region managed by the URMA buffer pool or the user-mr +// table. The handle is carried by urma_sge_t.tseg on the send path. +uint32_t GetSegHandle(void* buf); + +// Get the global URMA context (the urma_context_t created on the selected +// device / EID). Returns NULL if URMA is not initialized. +urma_context_t* GetUrmaContext(); + +// If the URMA environment is available. +bool IsUrmaAvailable(); + +// Disable URMA for the remaining lifetime of the process. +void GlobalDisableUrma(); + +// If the given protocol is supported by UrmaTransport. +// Currently only "baidu_std" is supported. +bool SupportedByUrma(std::string protocol); + +// Return the configured recv buffer size (one URMA recv WR's payload size). +size_t GetUrmaRecvBlockSize(); + +// Return max_sge supported by the device. +int GetUrmaMaxSge(); + +} // namespace urma +} // namespace brpc + +#else // if BRPC_WITH_URMA + +namespace brpc { +namespace urma { + +// Initialize the URMA environment. +// Exit the process if initialization fails. +void GlobalUrmaInitializeOrDie(); + +} // namespace urma +} // namespace brpc + +#endif // if BRPC_WITH_URMA + +#endif // BRPC_URMA_HELPER_H diff --git a/src/brpc/urma/urma_opcode.h b/src/brpc/urma/urma_opcode.h new file mode 100644 index 0000000000..a707951d27 --- /dev/null +++ b/src/brpc/urma/urma_opcode.h @@ -0,0 +1,260 @@ +/* + * SPDX-License-Identifier: MIT + * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. + * Description: URMA opcode header file + * Author: Ouyang Changchun, Yan Fangfang, Qian Guoxin + * Create: 2021-09-26 + * Note: + * History: 2021-09-26 Create File + */ + +#ifndef URMA_OPCODE_H +#define URMA_OPCODE_H + +#include + +/* urma bit field value */ +#define URMA_TOKEN_NONE 0 /* Indicates the verification policy of the key. */ +#define URMA_TOKEN_PLAIN_TEXT 1 +#define URMA_TOKEN_SIGNED 2 +#define URMA_TOKEN_ALL_ENCRYPTED 3 +#define URMA_TOKEN_RESERVED 4 + +#define URMA_TOKEN_ID_INVALID 0 +#define URMA_TOKEN_ID_VALID 1 + +#define URMA_DSVA_DISABLE 0 /* Indicates whether it is a segment of dsva. */ +#define URMA_DSVA_ENABLE 1 + +#define URMA_NON_CACHEABLE 0 /* Indicates whether the segment can be cached by multiple hosts. */ +#define URMA_CACHEABLE 1 + +/* If URMA_ACCESS_LOCAL_ONLY is set, local access will have all the permissions of + * READ, WRITE, and ATOMIC but external access is denied. + * If URMA_ACCESS_LOCAL_ONLY is not set, in addition to having all permissions for local access, + * the configuration of external access permissions is determined by the following three types, and + * it takes effect according to the combination of READ, WRITE, and ATOMIC configured by the user. + */ +#define URMA_ACCESS_LOCAL_ONLY (0x1 << 0) +#define URMA_ACCESS_READ (0x1 << 1) +#define URMA_ACCESS_WRITE (0x1 << 2) +#define URMA_ACCESS_ATOMIC (0x1 << 3) + +#define URMA_LOCAL_MEMORY 0 /* Indicates that the physical memory is remote. */ +#define URMA_REMOTE_MEMORY 1 + +#define URMA_SEG_NOMAP 0 /* Indicates that the current process has mapped this segment */ +#define URMA_SEG_MAPPED 1 + +#define URMA_ADDR_TYPE_MVA 0 +#define URMA_ADDR_TYPE_UBVA 1 + +#define URMA_COMPLETE_ENABLE 1 /* Notify the source after the task is completed. */ +#define URMA_COMPLETE_DISABLE 0 /* Do not notify the source after the task is complete. */ + +#define URMA_COMPLETE_TYPE_JFC 0 /* Complete notification via JFC. */ +#define URMA_COMPLETE_TYPE_CF 1 /* Complete notification via DDR address */ + +#define URMA_DEPENDENCY_NONE 0 /* There is no dependency between commands. */ +#define URMA_DEPENDENCY_FIRST \ + 1 /* Subsequent commands depend on the execution result \ + of the current command. */ +#define URMA_DEPENDENCY_DELAY \ + 2 /* The current command is executed only when the command \ + that the preamble depends on is executed successfully. */ + +#define URMA_NOTIFY_DISABLE 0 /* The destination is not notified when the task is completed. */ +#define URMA_NOTIFY_ENABLE 1 /* Notify the destination when the task is completed. */ + +#define URMA_NOTIFY_TYPE_JFC 0 /* Complete notification via JFC. */ +#define URMA_NOTIFY_TYPE_RVA 1 /* Complete notification via DDR address. */ + +#define URMA_INLINE_DISABLE 0 /* The data is generated by source_address assignment. */ +#define URMA_INLINE_ENABLE 1 /* The data is carried in the command. */ + +#define URMA_SOLICITED_DISABLE 0 /* There is no interruption when notifying through JFC. */ +#define URMA_SOLICITED_ENABLE 1 /* Interrupt occurred while notifying via JFC. */ + +#define URMA_FENCE_DISABLE 0 /* There is no fence. */ +#define URMA_FENCE_ENABLE 1 /* Fence with previous WRs. */ + +#define URMA_REGULAR 1 /* regular, specifies stride format. */ +#define URMA_IRREGULAR 0 /* irregular, specifies S/G format. */ + +#define URMA_NO_TAG_MATCHING 0 +#define URMA_WITH_TAG_MATCHING 1 + +#define URMA_NONPOST_LS 0 +#define URMA_POST_LS 1 + +#define URMA_NO_SHARE_JFR 0 +#define URMA_SHARE_JFR 1 + +#define URMA_TYPICAL_RNR_RETRY 7 /* typical value of rnr retry for jfs cfg */ +#define URMA_TYPICAL_ERR_TIMEOUT 17 /* typical value of err_timeout for jfs cfg */ +#define URMA_TYPICAL_MIN_RNR_TIMER 12 /* typical value of min_rnr_timer for jfr cfg */ +#define URMA_MAX_PRIORITY 15 + +/* operation information */ +typedef enum urma_place_order { + URMA_NO_ORDER = 0, // No order + URMA_RELAX_ORDER, // Relax order + URMA_STRONG_ORDER // Strong order +} urma_place_order_t; + +/* opcode definition */ +typedef enum urma_opcode { + URMA_OPC_WRITE = 0x00, + URMA_OPC_WRITE_IMM = 0x01, + URMA_OPC_WRITE_NOTIFY = 0x02, // not support result will return for URMA_OPC_WRITE_NOTIFY + URMA_OPC_READ = 0x10, + URMA_OPC_CAS = 0x20, + URMA_OPC_SWAP = 0x21, + URMA_OPC_FADD = 0x22, + URMA_OPC_FSUB = 0x23, + URMA_OPC_FAND = 0x24, + URMA_OPC_FOR = 0x25, + URMA_OPC_FXOR = 0x26, + URMA_OPC_SEND = 0x40, // remote JFR/jetty ID + URMA_OPC_SEND_IMM = 0x41, // remote JFR/jetty ID + URMA_OPC_SEND_INVALIDATE = 0x42, // remote JFR/jetty ID and seg token id + URMA_OPC_NOP = 0x51, + URMA_OPC_WRITE_ATOMIC = 0x60, // Non-standard definition of OPCODE + URMA_OPC_LAST +} urma_opcode_t; + +typedef int urma_status_t; +#define URMA_SUCCESS 0 +#define URMA_EAGAIN EAGAIN // Resource temporarily unavailable +#define URMA_ENOMEM ENOMEM // Failed to allocate memory +#define URMA_ENOPERM EPERM // Operation not permitted +#define URMA_ETIMEOUT ETIMEDOUT // Operation time out +#define URMA_EINVAL EINVAL // Invalid argument +#define URMA_EEXIST EEXIST // Exist +#define URMA_EINPROGRESS EINPROGRESS +#define URMA_FAIL 0x1000 /* 0x1000 */ + +/* completion information */ +typedef enum urma_cr_status { // completion record status + URMA_CR_SUCCESS = 0, + URMA_CR_UNSUPPORTED_OPCODE_ERR, /* Opcode in the WR is not supported */ + URMA_CR_LOC_LEN_ERR, /* Local data too long error */ + URMA_CR_LOC_OPERATION_ERR, /* Local operation err */ + URMA_CR_LOC_ACCESS_ERR, /* Access to local memory error */ + URMA_CR_REM_RESP_LEN_ERR, /* Local Operation Error, with sub-status of Remote Response Length Error */ + URMA_CR_REM_UNSUPPORTED_REQ_ERR, + URMA_CR_REM_OPERATION_ERR, /* Error when target jetty can not complete the operation */ + URMA_CR_REM_ACCESS_ABORT_ERR, /* Error when target jetty access memory error or abort the operation */ + URMA_CR_ACK_TIMEOUT_ERR, /* Retransmission exceeds the maximum number of times */ + URMA_CR_RNR_RETRY_CNT_EXC_ERR, /* RNR retries exceeded the maximum number: remote jfr has no buffer */ + URMA_CR_WR_FLUSH_ERR, /* Jetty in the error state, and the hardware has processed the WR. */ + URMA_CR_WR_SUSPEND_DONE, /* Hardware constructs a fake CQE, and user_ctx is invalid. */ + URMA_CR_WR_FLUSH_ERR_DONE, /* Hardware constructs a fake CQE, and user_ctx is invalid. */ + URMA_CR_WR_UNHANDLED, /* Return of flush jetty/jfs, and the hardware has not processed the WR. */ + URMA_CR_LOC_DATA_POISON, /* Local Data Poison */ + URMA_CR_REM_DATA_POISON, /* Remote Data Poison */ +} urma_cr_status_t; + +typedef enum urma_cr_opcode { + URMA_CR_OPC_SEND = 0x00, + URMA_CR_OPC_SEND_WITH_IMM, + URMA_CR_OPC_SEND_WITH_INV, + URMA_CR_OPC_WRITE_WITH_IMM, +} urma_cr_opcode_t; + +/* event information */ +typedef enum urma_async_event_type { + URMA_EVENT_JFC_ERR, + URMA_EVENT_JFS_ERR, + URMA_EVENT_JFR_ERR, + URMA_EVENT_JFR_LIMIT, + URMA_EVENT_JETTY_ERR, + URMA_EVENT_JETTY_LIMIT, + URMA_EVENT_JETTY_GRP_ERR, + URMA_EVENT_PORT_ACTIVE, + URMA_EVENT_PORT_DOWN, + URMA_EVENT_DEV_FATAL, + URMA_EVENT_EID_CHANGE, // eid change, HNM and other management roles will be modified. + URMA_EVENT_ELR_ERR, /* Entity level error */ + URMA_EVENT_ELR_DONE /* Entity flush done */ +} urma_async_event_type_t; + +typedef enum urma_jfc_state { + URMA_JFC_STATE_INVALID = 0, + URMA_JFC_STATE_VALID, + URMA_JFC_STATE_ERROR +} urma_jfc_state_t; + +typedef enum urma_jetty_state { + URMA_JETTY_STATE_RESET = 0, + URMA_JETTY_STATE_READY, + URMA_JETTY_STATE_SUSPENDED, + URMA_JETTY_STATE_ERROR +} urma_jetty_state_t; + +typedef enum urma_jfr_state { + URMA_JFR_STATE_RESET = 0, + URMA_JFR_STATE_READY, + URMA_JFR_STATE_ERROR +} urma_jfr_state_t; + +#define URMA_JFS_DEPTH 0x0001 +#define URMA_JFS_FLAG 0x0002 +#define URMA_JFS_TRANS_MODE 0x0003 +#define URMA_JFS_PRIORITY 0x0004 +#define URMA_JFS_MAX_SGE 0x0005 +#define URMA_JFS_MAX_RSGE 0x0006 +#define URMA_JFS_MAX_INLINE_DATA 0x0007 +#define URMA_JFS_RNR_RETRY 0x0008 +#define URMA_JFS_ERR_TIMEOUT 0x0009 +#define URMA_JFS_BIND_JFC 0x000a +#define URMA_JFS_USER_CTX 0x000b +#define URMA_JFS_SQE_BASE_ADDR 0x000c +#define URMA_JFS_ID 0x000d +#define URMA_JFS_DB_ADDR 0x000e +#define URMA_JFS_DB_STATUS 0x000f +#define URMA_JFS_PI 0x0010 +#define URMA_JFS_PI_TYPE 0x0011 +#define URMA_JFS_CI 0x0012 +#define URMA_JFS_FULL_CTX 0x0013 + +#define URMA_JFR_DEPTH 0x1001 +#define URMA_JFR_FLAG 0x1002 +#define URMA_JFR_TRANS_MODE 0x1003 +#define URMA_JFR_MAX_SGE 0x1004 +#define URMA_JFR_MIN_RNR_TIMER 0x1005 +#define URMA_JFR_BIND_JFC 0x1006 +#define URMA_JFR_TOKEN_VALUE 0x1007 +#define URMA_JFR_USER_CTX 0x1008 +#define URMA_JFR_RQE_BASE_ADDR 0x1009 +#define URMA_JFR_ID 0x100a +#define URMA_JFR_DB_ADDR 0x100b +#define URMA_JFR_DB_STATUS 0x100c +#define URMA_JFR_PI 0x100d +#define URMA_JFR_PI_TYPE 0x100e +#define URMA_JFR_CI 0x100f +#define URMA_JFR_FULL_CTX 0x1010 + +#define URMA_JFC_DEPTH 0x2001 +#define URMA_JFC_CEQN 0x2002 +#define URMA_JFC_FLAG 0x2003 +#define URMA_JFC_BIND_JFCE 0x2004 +#define URMA_JFC_USER_CTX 0x2005 +#define URMA_JFC_CQE_BASE_ADDR 0x2006 +#define URMA_JFC_ID 0x2007 +#define URMA_JFC_DB_ADDR 0x2008 +#define URMA_JFC_DB_STATUS 0x2009 +#define URMA_JFC_PI 0x200a +#define URMA_JFC_PI_TYPE 0x200b +#define URMA_JFC_CI 0x200c +#define URMA_JFC_FULL_CTX 0x200d + +#define URMA_JETTY_ID 0x3001 +#define URMA_JETTY_FLAG 0x3002 +#define URMA_JETTY_BIND_JFR 0x3003 +#define URMA_JETTY_BIND_RX_JFC 0x3004 +#define URMA_JETTY_BIND_JTG 0x3005 +#define URMA_JETTY_USER_CTX 0x3006 +#define URMA_JETTY_FULL_CTX 0x3007 + +#endif // URMA_OPCODE_H diff --git a/src/brpc/urma/urma_types.h b/src/brpc/urma/urma_types.h new file mode 100644 index 0000000000..e62058b28c --- /dev/null +++ b/src/brpc/urma/urma_types.h @@ -0,0 +1,1430 @@ +/* + * SPDX-License-Identifier: MIT + * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. + * Description: URMA type header file + * Author: Ouyang Changchun, Bojie Li, Yan Fangfang, Qian Guoxin + * Create: 2021-07-13 + * Note: + * History: 2021-07-13 Create File + */ + +#ifndef URMA_TYPES_H +#define URMA_TYPES_H + +#include +#include +#include +#include +#include + +#ifndef __cplusplus +#include +#else +#include +#endif + +#include "urma_opcode.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define URMA_GET_VERSION(a, b) (((a) << 16) + ((b) > 65535 ? 65535 : (b))) +#define URMA_API_VERSION ((0 << 16) + 9) // Current Version: 0.9 +#define MAX_PORT_CNT 8 +#define URMA_MAX_JETTY_IN_JETTY_GRP 32U +#define URMA_MAX_NAME 64 +#define URMA_MAX_PATH 4096 +#define URMA_EID_SIZE (16) +#define URMA_MAX_PRIORITY_CNT 16 +#define URMA_IPV4_MAP_IPV6_PREFIX (0x0000ffff) +#define URMA_MAX_EID_CNT 1024 /* refer to UBCORE_MAX_SIP */ +#define URMA_CC_IDX_TABLE_SIZE 81 /* support 9 priorities and 9 algorithms */ + /* same as UBCORE_CC_IDX_TABLE_SIZE */ +#define URMA_OPT_REVERSED_NUM 4 + +#define URMA_EID_STR_LEN (39) +#define EID_FMT "%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x" +#define EID_RAW_ARGS(eid) \ + eid[0], eid[1], eid[2], eid[3], eid[4], eid[5], eid[6], eid[7], eid[8], eid[9], eid[10], eid[11], eid[12], \ + eid[13], eid[14], eid[15] +#define EID_ARGS(eid) EID_RAW_ARGS((eid).raw) +#define URMA_SEG_TOKEN_ID_INVALID 0xffffffff + +/* refer to UBCORE_MAX_DEV_NAME */ +#define URMA_MAX_DEV_NAME 64 +#define URMA_GUID_SIZE (16) + +#define URMA_IP_ADDR_BYTES 16 /* refer to UBCORE_IP_ADDR_BYTES */ +#define URMA_MAC_BYTES 6 /* refer to UBCORE_MAC_BYTES */ + +#define URMA_JFS_SQE_BASE_ADDR_MASK (1ULL << 0) +#define URMA_JFS_ID_MASK (1ULL << 1) +#define URMA_JFS_DB_ADDR_MASK (1ULL << 2) +#define URMA_JFS_DB_STATUS_MASK (1ULL << 3) +#define URMA_JFS_PI_MASK (1ULL << 4) +#define URMA_JFS_PI_TYPE_MASK (1ULL << 5) +#define URMA_JFS_CI_MASK (1ULL << 6) + +#define URMA_JFR_RQE_BASE_ADDR_MASK (1ULL << 0) +#define URMA_JFR_ID_MASK (1ULL << 1) +#define URMA_JFR_DB_ADDR_MASK (1ULL << 2) +#define URMA_JFR_DB_STATUS_MASK (1ULL << 3) +#define URMA_JFR_PI_MASK (1ULL << 4) +#define URMA_JFR_PI_TYPE_MASK (1ULL << 5) +#define URMA_JFR_CI_MASK (1ULL << 6) + +#define URMA_JFC_CQE_BASE_ADDR_MASK (1ULL << 0) +#define URMA_JFC_ID_MASK (1ULL << 1) +#define URMA_JFC_DB_ADDR_MASK (1ULL << 2) +#define URMA_JFC_DB_STATUS_MASK (1ULL << 3) +#define URMA_JFC_PI_MASK (1ULL << 4) +#define URMA_JFC_PI_TYPE_MASK (1ULL << 5) +#define URMA_JFC_CI_MASK (1ULL << 6) + +typedef struct urma_init_attr { + uint64_t token; /* [Optional] security token */ + uint32_t uasid; /* [Optional] uasid to set and reserve. If the parameter is 0, + the system will randomly assign a non-0 value. */ +} urma_init_attr_t; + +/* device information */ +typedef enum urma_mtu { + URMA_MTU_256 = 1, + URMA_MTU_512, + URMA_MTU_1024, + URMA_MTU_2048, + URMA_MTU_4096, + URMA_MTU_8192, +} urma_mtu_t; + +typedef enum urma_port_state { + URMA_PORT_NOP = 0, + URMA_PORT_DOWN, + URMA_PORT_INIT, + URMA_PORT_ARMED, + URMA_PORT_ACTIVE, + URMA_PORT_ACTIVE_DEFER, +} urma_port_state_t; + +typedef enum urma_speed { + URMA_SP_10M = 0, + URMA_SP_100M, + URMA_SP_1G, + URMA_SP_2_5G, + URMA_SP_5G, + URMA_SP_10G, + URMA_SP_14G, + URMA_SP_25G, + URMA_SP_40G, + URMA_SP_50G, + URMA_SP_100G, + URMA_SP_200G, + URMA_SP_400G, + URMA_SP_800G, +} urma_speed_t; + +typedef enum urma_link_width { + URMA_LINK_X1 = 0x1, + URMA_LINK_X2 = 0x1 << 1, + URMA_LINK_X4 = 0x1 << 2, + URMA_LINK_X8 = 0x1 << 3, + URMA_LINK_X16 = 0x1 << 4, + URMA_LINK_X32 = 0x1 << 5, +} urma_link_width_t; + +typedef union urma_eid { + uint8_t raw[URMA_EID_SIZE]; /* Network Order */ + struct { + uint64_t reserved; /* If IPv4 mapped to IPv6, == 0 */ + uint32_t prefix; /* If IPv4 mapped to IPv6, == 0x0000ffff */ + uint32_t addr; /* If IPv4 mapped to IPv6, == IPv4 addr */ + } in4; + struct { + uint64_t subnet_prefix; + uint64_t interface_id; + } in6; +} urma_eid_t; + +void urma_u32_to_eid(uint32_t ipv4, urma_eid_t *eid); +int urma_str_to_eid(const char *buf, urma_eid_t *eid); + +typedef struct urma_ref { +#ifndef __cplusplus + atomic_ulong atomic_cnt; +#else + std::atomic_ulong atomic_cnt; +#endif +} urma_ref_t; + +typedef struct urma_port_attr { + urma_mtu_t max_mtu; /* [Public] MTU_256, MTU_512, MTU_1024 etc. */ + urma_port_state_t state; /* [Public] PORT_DOWN, PORT_INIT, PORT_ACTIVE */ + urma_link_width_t active_width; /* [Public] link width: X1, X2, X4. */ + urma_speed_t active_speed; /* [Public] bandwidth. */ + urma_mtu_t active_mtu; /* [Public] current effective mtu. */ +} urma_port_attr_t; + +union urma_tp_type_en { + struct { + uint32_t rtp : 1; + uint32_t ctp : 1; + uint32_t utp : 1; + uint32_t reserved : 29; + } bs; + uint32_t value; +}; + +struct urma_sl_info { + uint32_t SL; + union urma_tp_type_en tp_type; +}; + +typedef union urma_device_feature { + struct { + uint32_t oor : 1; /* [Public] URMA_OUT_OF_ORDER_RECEIVING. */ + uint32_t jfc_per_wr : 1; /* [Public] URMA_JFC_PER_WR. */ + uint32_t stride_op : 1; /* [Public] URMA_STRIDE_OP. */ + uint32_t load_store_op : 1; /* [Public] URMA_LOAD_STORE_OP. */ + uint32_t non_pin : 1; /* [Public] URMA_NON_PIN. */ + uint32_t pmem : 1; /* [Public] URMA_PERSISTENCE_MEM. */ + uint32_t jfc_inline : 1; /* [Public] URMA_JFC_INLINE. */ + uint32_t spray_en : 1; /* [Public] URMA_SPRAY_ENABLE for UDP port. */ + uint32_t selective_retrans : 1; /* [Public] URMA_SELECTIVE_RETRANS. */ + uint32_t live_migrate : 1; /* [Public] support live migration. */ + uint32_t dca : 1; /* [Public] for user tp */ + uint32_t jetty_grp : 1; /* [Public] support jetty group. */ + uint32_t error_suspend : 1; /* [Public] support suspend jetty or jfs on error. */ + uint32_t outorder_comp : 1; /* [Public] support out-of-order completion. */ + uint32_t mn : 1; /* [Public] for user tp */ + uint32_t clan : 1; /* [Public] for user tp */ + uint32_t muti_seg_per_token_id : 1; + uint32_t ipourma_en : 1; + uint32_t ctp_en : 1; + uint32_t uboe : 1; + uint32_t reserved : 12; + } bs; + uint32_t value; +} urma_device_feature_t; + +typedef union urma_atomic_feature { + struct { + uint32_t cas : 1; + uint32_t swap : 1; + uint32_t fetch_and_add : 1; + uint32_t fetch_and_sub : 1; + uint32_t fetch_and_and : 1; + uint32_t fetch_and_or : 1; + uint32_t fetch_and_xor : 1; + uint32_t reserved : 25; + } bs; + uint32_t value; +} urma_atomic_feature_t; + +typedef union urma_order_type_cap { + struct { + uint32_t ot : 1; + uint32_t oi : 1; + uint32_t ol : 1; + uint32_t no : 1; + uint32_t reserved : 28; + } bs; + uint32_t value; +} urma_order_type_cap_t; + +typedef union urma_tp_type_cap { + struct { + uint32_t rtp : 1; + uint32_t ctp : 1; + uint32_t utp : 1; + uint32_t reserved : 29; + } bs; + uint32_t value; +} urma_tp_type_cap_t; + +typedef union urma_tp_feature { + struct { + uint32_t rm_multi_path : 1; + uint32_t rc_multi_path : 1; + uint32_t reserved : 30; + } bs; + uint32_t value; +} urma_tp_feature_t; + +typedef struct urma_device_cap { + urma_device_feature_t feature; /* [Public] support feature of device, such as OOO, LS etc. */ + uint32_t max_jfc; /* [Public] max number of jfc supported by the device. */ + uint32_t max_jfs; /* [Public] max number of jfs supported by the device. */ + uint32_t max_jfr; /* [Public] max number of jfr supported by the device. */ + uint32_t max_jetty; /* [Public] max number of jetty supported by the device. */ + uint32_t max_jetty_grp; /* [Public] max number of jetty group supported by the device. */ + uint32_t max_jetty_in_jetty_grp; /* [Public] max number of jetty per jetty group supported by the device. */ + uint32_t max_jfc_depth; /* [Public] max depth of jfc supported by the device. */ + uint32_t max_jfs_depth; /* [Public] max depth of jfs supported by the device. */ + uint32_t max_jfr_depth; /* [Public] max depth of jfr supported by the device. */ + uint32_t max_jfs_inline_len; /* [Public] max inline length(byte) supported by the jfs. */ + uint32_t max_jfs_sge; /* [Public] max number of sge supported by the jfs. */ + uint32_t max_jfs_rsge; /* [Public] max number of remote sge supported by the jfs. */ + uint32_t max_jfr_sge; /* [Public] max number of sge supported by the jfr. */ + uint64_t max_msg_size; /* [Public] max message size supported by the device. */ + uint32_t max_read_size; + uint32_t max_write_size; + uint32_t max_cas_size; + uint32_t max_swap_size; + uint32_t max_fetch_and_add_size; + uint32_t max_fetch_and_sub_size; + uint32_t max_fetch_and_and_size; + uint32_t max_fetch_and_or_size; + uint32_t max_fetch_and_xor_size; + urma_atomic_feature_t atomic_feat; /* [Public] support atomic feature of device */ + uint16_t trans_mode; /* [Public] bit OR of supported transport modes */ + uint16_t congestion_ctrl_alg; /* [Public] one or more mode from urma_congestion_ctrl_alg_t */ + uint32_t ceq_cnt; /* [Public] ceq_cnt */ + uint32_t max_tp_in_tpg; /* [Public] max tp in tpg */ + uint32_t max_eid_cnt; /* [Public] max eid count */ + uint64_t page_size_cap; /* [Public] page size capability, must include PAGE_SIZE(4k) */ + uint32_t max_oor_cnt; /* [Public] max OOR window size by packet, only for user tp */ + uint32_t mn; /* [Public] only for user tp */ + uint32_t max_netaddr_cnt; /* [Public] only for user tp */ + urma_order_type_cap_t rm_order_cap; + urma_order_type_cap_t rc_order_cap; + urma_tp_type_cap_t rm_tp_cap; + urma_tp_type_cap_t rc_tp_cap; + urma_tp_type_cap_t um_tp_cap; + urma_tp_feature_t tp_feature; + struct urma_sl_info priority_info[URMA_MAX_PRIORITY_CNT]; +} urma_device_cap_t; + +typedef struct urma_guid { + uint8_t raw[URMA_GUID_SIZE]; +} urma_guid_t; + +typedef struct urma_device_attr { + urma_guid_t guid; /* [Public] */ + urma_device_cap_t dev_cap; /* [Public] capabilities of device. */ + uint8_t port_cnt; /* [Public] port number of device. */ + struct urma_port_attr port_attr[MAX_PORT_CNT]; + uint32_t reserved_jetty_id_min; + uint32_t reserved_jetty_id_max; +} urma_device_attr_t; + +/* security information */ +typedef struct urma_token { + uint32_t token; +} urma_token_t; + +struct urma_sysfs_dev; +struct urma_ref; +struct urma_ops; +struct urma_provider_ops; + +typedef enum urma_transport_type { + URMA_TRANSPORT_INVALID = -1, + URMA_TRANSPORT_UB = 0, + URMA_TRANSPORT_MAX +} urma_transport_type_t; + +typedef enum urma_transport_mode { + URMA_TM_RM = 0x1, /* Reliable message */ + URMA_TM_RC = 0x1 << 1, /* Reliable connection */ + URMA_TM_UM = 0x1 << 2, /* Unreliable message */ +} urma_transport_mode_t; + +typedef enum urma_tp_cc_alg { + URMA_TP_CC_NONE = 0, + URMA_TP_CC_DCQCN, + URMA_TP_CC_DCQCN_AND_NETWORK_CC, + URMA_TP_CC_LDCP, + URMA_TP_CC_LDCP_AND_CAQM, + URMA_TP_CC_LDCP_AND_OPEN_CC, + URMA_TP_CC_HC3, + URMA_TP_CC_DIP, + URMA_TP_CC_ACC, + URMA_TP_CC_NUM, +} urma_tp_cc_alg_t; /* larger means better */ + +typedef enum urma_congestion_ctrl_alg { + URMA_CC_NONE = 0x1 << URMA_TP_CC_NONE, + URMA_CC_DCQCN = 0x1 << URMA_TP_CC_DCQCN, + URMA_CC_DCQCN_AND_NETWORK_CC = 0x1 << URMA_TP_CC_DCQCN_AND_NETWORK_CC, + URMA_CC_LDCP = 0x1 << URMA_TP_CC_LDCP, + URMA_CC_LDCP_AND_CAQM = 0x1 << URMA_TP_CC_LDCP_AND_CAQM, + URMA_CC_LDCP_AND_OPEN_CC = 0x1 << URMA_TP_CC_LDCP_AND_OPEN_CC, + URMA_CC_HC3 = 0x1 << URMA_TP_CC_HC3, + URMA_CC_DIP = 0x1 << URMA_TP_CC_DIP, + URMA_CC_ACC = 0x1 << URMA_TP_CC_ACC +} urma_congestion_ctrl_alg_t; + +typedef struct urma_cc_entry { + urma_tp_cc_alg_t alg; + uint8_t cc_pattern_idx; + uint8_t cc_priority; +} __attribute__((packed)) urma_cc_entry_t; + +typedef struct urma_device { + char name[URMA_MAX_NAME]; /* [Public] urma device's name, the names of devices + in different transport modes are different. */ + char path[URMA_MAX_PATH]; /* [Public] urma device's path in sysfs. */ + urma_transport_type_t type; /* [Public] urma device's transport type. */ + struct urma_provider_ops *ops; /* [Private] urma device driver's ops. */ + struct urma_sysfs_dev *sysfs_dev; /* [Private] internal device corresponding to the urma device */ +} urma_device_t; + +typedef enum urma_context_opt_name { + URMA_OPT_AGGR_MODE, +} urma_opt_name_t; + +typedef enum urma_context_aggr_mode { + URMA_AGGR_MODE_STANDALONE, + URMA_AGGR_MODE_ACTIVE_BACKUP, + URMA_AGGR_MODE_BALANCE, +} urma_context_aggr_mode_t; + +typedef struct urma_context { + struct urma_device *dev; /* [Private] point to the corresponding urma device. */ + struct urma_ops *ops; /* [Private] operation of urma device. */ + int dev_fd; /* [Private] fd of urma device's sysfs file. */ + int async_fd; /* [Private] fd of urma device's async event file. */ + pthread_mutex_t mutex; /* [Private] mutex of urma context. */ + urma_eid_t eid; /* [Public] eid of urma device. */ + uint32_t eid_index; + uint32_t uasid; /* [Public] uasid of current process. */ + struct urma_ref ref; /* [Private] reference count of urma context. */ + urma_context_aggr_mode_t aggr_mode; /* [Public] aggregated mode of urma context. */ +} urma_context_t; + +typedef struct urma_eid_info { + urma_eid_t eid; + uint32_t eid_index; /* 0~UBCORE_MAX_EID_CNT -1 */ +} urma_eid_info_t; + +typedef struct urma_jfce_cfg { + uint32_t depth; + uint64_t user_ctx; +} urma_jfce_cfg_t; + +typedef struct urma_jfce { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + int fd; /* [Private] fd of completed event. */ + struct urma_ref ref; /* [Private] reference count of urma context. */ +} urma_jfce_t; + +typedef union urma_jfc_flag { + struct { + uint32_t lock_free : 1; + uint32_t jfc_inline : 1; + uint32_t non_blocking : 1; + uint32_t has_drv_ext : 1; + uint32_t reserved : 28; + } bs; + uint32_t value; +} urma_jfc_flag_t; + +typedef struct urma_jfc_cfg { + uint32_t depth; /* [Required] the depth of jfc, no greater than urma_device_cap_t->jfc_depth */ + urma_jfc_flag_t flag; /* [Optional] see urma_jfc_flag_t, set flag.value to be 0 by default */ + uint32_t ceqn; /* [Optional] event queue id, less than urma_device_cap_t->ceq_cnt + set to 0 by default */ + urma_jfce_t *jfce; /* [Required] the event of jfc */ + uint64_t user_ctx; /* [Optional] private data of jfc, set to NULL by default */ +} urma_jfc_cfg_t; + +typedef enum urma_jfc_attr_mask { + JFC_MODERATE_COUNT = 0x1, + JFC_MODERATE_PERIOD = 0x1 << 1 +} urma_jfc_attr_mask_t; + +typedef struct urma_jfc_attr { + uint32_t mask; /* mask value, refer to urma_jfc_attr_mask_t */ + uint16_t moderate_count; + uint16_t moderate_period; /* in micro seconds */ +} urma_jfc_attr_t; + +typedef struct urma_jetty_id { + urma_eid_t eid; + uint32_t uasid; /* maybe zero(stand for kernel) or non-zero(stand for app) */ + uint32_t id; +} urma_jetty_id_t; + +typedef struct urma_jetty_id urma_jfs_id_t; +typedef struct urma_jetty_id urma_jfr_id_t; +typedef struct urma_jetty_id urma_jfc_id_t; + +union urma_jfc_opt_mask { + struct { + uint64_t urma_jfc_cqe_base_addr : 1; + uint64_t urma_jfc_db_addr : 1; + uint64_t urma_jfc_id : 1; + uint64_t urma_jfc_pi : 1; + uint64_t urma_jfc_pi_type : 1; + uint64_t urma_jfc_ci : 1; + uint64_t urma_jfc_db_status : 1; + uint64_t reserved : 57; + } bs; + uint64_t value; +}; + +typedef struct urma_jfc_opt { + union urma_jfc_opt_mask jfc_opt_mask; /* bit0:cqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, + bit5:ci, bit6:db_status */ + bool is_actived; + uint64_t urma_jfc_cqe_base_addr; /* [Optional] CQ Queue Address (VA) */ + uint32_t urma_jfc_id; /* [Optional] the id of jfc */ + uint64_t urma_jfc_db_addr; /* [Optional] CQ Queue Doorbell Address (VA) */ + uint8_t urma_jfc_db_status; /* [Optional] JFC Doorbell status, used for live migration (0 invalid, 1 valid) */ + uint16_t urma_jfc_pi; /* [Optional] PI value of the JFC */ + uint16_t urma_jfc_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ + uint16_t urma_jfc_ci; /* [Optional] CI value of the JFC */ + uint64_t reserved[URMA_OPT_REVERSED_NUM]; +} urma_jfc_opt_t; + +typedef struct urma_jfc { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jfc_id_t jfc_id; /* [Public] see urma_jetty_id. */ + urma_jfc_cfg_t jfc_cfg; /* [Public] storage jfc config. */ + uint64_t handle; + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t comp_events_acked; + uint32_t async_events_acked; + urma_jfc_opt_t urma_jfc_opt; +} urma_jfc_t; + +typedef enum urma_order_type { + URMA_DEF_ORDER, + URMA_OT, // target ordering + URMA_OI, // initiator ordering + URMA_OL, // low layer ordering + URMA_NO // unreliable non ordering +} urma_order_type_t; + +typedef union urma_jfs_flag { + struct { + uint32_t lock_free : 1; /* default as 0, lock protected */ + uint32_t error_suspend : 1; /* 0: error continue; 1: error suspend */ + uint32_t outorder_comp : 1; /* 0: not support; 1: support out-of-order completion */ + uint32_t order_type : 8; /* (0x0): default, auto config by driver */ + /* (0x1): OT, target ordering */ + /* (0x2): OI, initiator ordering */ + /* (0x3): OL, low layer ordering */ + /* (0x4): UNO, unreliable non ordering */ + uint32_t multi_path : 1; /* 1: multi-path, 0: single path, for ubagg only. */ + uint32_t ctp_rc_mul_path_mode : 1; /* 1: ctp rc mode multi-path */ + uint32_t non_blocking : 1; + uint32_t has_drv_ext : 1; + uint32_t reserved : 17; + } bs; + uint32_t value; +} urma_jfs_flag_t; + +union urma_jfs_opt_mask { + struct { + uint64_t urma_jfs_cqe_base_addr : 1; + uint64_t urma_jfs_db_addr : 1; + uint64_t urma_jfs_id : 1; + uint64_t urma_jfs_pi : 1; + uint64_t urma_jfs_pi_type : 1; + uint64_t urma_jfs_ci : 1; + uint64_t urma_jfs_db_status : 1; + uint64_t reserved : 57; + } bs; + uint64_t value; +}; + +typedef struct urma_jfs_opt { + union urma_jfs_opt_mask jfs_opt_mask; /* bit0:sqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, + bit5:ci, bit6:db_status */ + bool is_actived; + uint64_t urma_jfs_sqe_base_addr; /* [Optional] SQ Queue Address (VA) */ + uint32_t urma_jfs_id; /* [Optional] the id of jfs */ + uint64_t urma_jfs_db_addr; /* [Optional] SQ Queue Doorbell Address (VA) */ + uint8_t urma_jfs_db_status; /* [Optional] JFS Doorbell status, used for live migration (0 invalid, 1 valid) */ + uint16_t urma_jfs_pi; /* [Optional] PI value of the JFS */ + uint16_t urma_jfs_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ + uint16_t urma_jfs_ci; /* [Optional] CI value of the JFS */ + uint64_t reserved[URMA_OPT_REVERSED_NUM]; +} urma_jfs_opt_t; + +typedef struct urma_jfs_cfg { + uint32_t depth; /* [Required] the depth of jfs, defaut urma_device_cap_t->jfs_depth */ + urma_jfs_flag_t flag; /* [Optional] see urma_jfs_flag_t definition */ + urma_transport_mode_t trans_mode; /* [Required] transport mode, must be supported by the device */ + uint8_t priority; /* [Optional] set the priority of JFS, ranging from [0, 15] + Services with low delay need to set high priority. */ + uint8_t max_sge; /* [Optional] max sge count in one wr, defaut urma_device_cap_t->max_jfs_sge */ + uint8_t max_rsge; /* [Optional] max remote sge count in one wr, defaut urma_device_cap_t->max_jfs_sge */ + uint32_t max_inline_data; /* [Optional] the max inline data size of JFS. if the parameter is 0, + the system will assign device's max inline data length. */ + uint8_t rnr_retry; /* [Optional] number of times that jfs will resend packets before report error, + when the remote side is not ready to receive (RNR), ranging from [0, 7], + the value 0 means never retry and, + the value 7 means retry infinite number of times for RDMA devices */ + uint8_t err_timeout; /* [Optional] the timeout before report error, ranging from [0, 31], + the actual timeout in usec is caculated by: 4.096*(2^err_timeout) */ + urma_jfc_t *jfc; /* [Required] need to specify jfc */ + uint64_t user_ctx; /* [Optional] private data of jfs */ +} urma_jfs_cfg_t; + +typedef struct urma_jfs { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jfs_id_t jfs_id; /* [Public] see urma_jetty_id. */ + urma_jfs_cfg_t jfs_cfg; /* [Public] storage jfs config. */ + uint64_t handle; + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t async_events_acked; + urma_jfs_opt_t urma_jfs_opt; +} urma_jfs_t; + +typedef enum urma_jfs_attr_mask { + JFS_STATE = 0x1 +} urma_jfs_attr_mask_t; + +typedef urma_jetty_state_t urma_jfs_state_t; + +typedef struct urma_jfs_attr { + uint32_t mask; /* mask value refer to urma_jfs_attr_mask_t */ + urma_jfs_state_t state; +} urma_jfs_attr_t; + +typedef union urma_jfr_flag { + struct { + uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE + 1: URMA_TOKEN_PLAIN_TEXT + 2: URMA_TOKEN_SIGNED + 3: URMA_TOKEN_ALL_ENCRYPTED + 4: URMA_TOKEN_RESERVED */ + uint32_t tag_matching : 1; /* 0: URMA_NO_TAG_MATCHING. + 1: URMA_WITH_TAG_MATCHING. */ + uint32_t lock_free : 1; + uint32_t order_type : 8; /* (0x0): default, auto config by driver */ + /* (0x1): OT, target ordering */ + /* (0x2): OI, initiator ordering */ + /* (0x3): OL, low layer ordering */ + /* (0x4): UNO, unreliable non ordering */ + uint32_t has_drv_ext : 1; + uint32_t reserved : 18; + } bs; + uint32_t value; +} urma_jfr_flag_t; + +union urma_jfr_opt_mask { + struct { + uint64_t urma_jfr_cqe_base_addr : 1; + uint64_t urma_jfr_db_addr : 1; + uint64_t urma_jfr_id : 1; + uint64_t urma_jfr_pi : 1; + uint64_t urma_jfr_pi_type : 1; + uint64_t urma_jfr_ci : 1; + uint64_t urma_jfr_db_status : 1; + uint64_t reserved : 57; + } bs; + uint64_t value; +}; + +typedef struct urma_jfr_opt { + union urma_jfr_opt_mask jfr_opt_mask; /* bit0:rqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, + bit5:ci, bit6:db_status */ + bool is_actived; + uint64_t urma_jfr_rqe_base_addr; /* [Optional] RQ Queue Address (VA) */ + uint32_t urma_jfr_id; /* [Optional] the id of jfr */ + uint64_t urma_jfr_db_addr; /* [Optional] RQ Queue Doorbell Address (VA) */ + uint8_t urma_jfr_db_status; /* [Optional] JFR Doorbell status, used for live migration (0 invalid, 1 valid) */ + uint16_t urma_jfr_pi; /* [Optional] PI value of the JFR */ + uint16_t urma_jfr_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ + uint16_t urma_jfr_ci; /* [Optional] CI value of the JFR */ + uint64_t reserved[URMA_OPT_REVERSED_NUM]; +} urma_jfr_opt_t; + +typedef struct urma_jfr_cfg { + uint32_t id; /* [Optional] specify jfr id. If the parameter is 0, + the system will randomly assign a non-0 value. */ + uint32_t depth; /* [Required] total depth, include berth, defaut urma_device_cap_t->jfr_depth. */ + urma_jfr_flag_t flag; /* [Optional] whether is in TAG_matching, whether is in DC/IDC mode. */ + urma_transport_mode_t trans_mode; /* [Required] transport mode, must be supported by the device */ + uint8_t max_sge; /* [Optional] max sge count in one wr, defaut urma_device_cap_t->max_jfr_sge. */ + uint8_t min_rnr_timer; /* [Optional] the minimum RNR NACK timer, ranging from [0, 31], i.e. + the time before jfr sends NACK to the sender for the reason of "ready to receive" */ + urma_jfc_t *jfc; /* [Required] need to specify jfc. */ + urma_token_t token_value; /* [Required] specify token_value for jfr. */ + uint64_t user_ctx; /* [Optional] private data of jfr */ +} urma_jfr_cfg_t; + +typedef enum urma_jfr_attr_mask { + JFR_RX_THRESHOLD = 0x1, + JFR_STATE = 0x1 << 1 +} urma_jfr_attr_mask_t; + +typedef struct urma_jfr_attr { + uint32_t mask; // mask value refer to urma_jfr_attr_mask_t + uint32_t rx_threshold; + urma_jfr_state_t state; +} urma_jfr_attr_t; + +typedef struct urma_jfr { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jfr_id_t jfr_id; /* [Public] see urma_jetty_id. */ + urma_jfr_cfg_t jfr_cfg; /* [Public] storage jfr config. */ + uint64_t handle; + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t async_events_acked; + urma_jfr_opt_t urma_jfr_opt; +} urma_jfr_t; + +typedef union urma_import_jetty_flag { + struct { + uint32_t token_policy : 3; + uint32_t order_type : 8; /* (0x0): default, auto config by driver */ + /* (0x1): OT, target ordering */ + /* (0x2): OI, initiator ordering */ + /* (0x3): OL, low layer ordering */ + /* (0x4): UNO, unreliable non ordering */ + uint32_t share_tp : 1; /* 1: shared tp; 0: non-shared tp. When rc mode is not ta dst ordering, + this flag can only be set to 0. */ + uint32_t has_drv_ext : 1; + uint32_t reserved : 19; + } bs; + uint32_t value; + struct { + uint64_t reserved; + uint64_t stag; + uint64_t dtag; + } user_tag; +} urma_import_jetty_flag_t; + +typedef enum urma_tp_type { + URMA_RTP, + URMA_CTP, + URMA_UTP +} urma_tp_type_t; + +typedef struct urma_rjfr { + urma_jfr_id_t jfr_id; /* see urma_jetty_id */ + urma_transport_mode_t trans_mode; + urma_import_jetty_flag_t flag; + urma_tp_type_t tp_type; +} urma_rjfr_t; + +typedef struct urma_tp { + uint32_t tpn; /* vtpn */ +} urma_tp_t; + +typedef union urma_jetty_flag { + struct { + uint32_t share_jfr : 1; /* 0: URMA_NO_SHARE_JFR. + 1: URMA_SHARE_JFR. */ + uint32_t non_blocking : 1; + uint32_t has_drv_ext : 1; + uint32_t reserved : 29; + } bs; + uint32_t value; +} urma_jetty_flag_t; + +typedef struct urma_jetty_grp urma_jetty_grp_t; + +typedef struct urma_jetty_cfg { + uint32_t id; /* [Optional] user specified jetty id. */ + urma_jetty_flag_t flag; /* [Optional] Connection or connection less */ + + /* send configuration */ + urma_jfs_cfg_t jfs_cfg; /* [Required] see urma_jfs_cfg_t */ + + /* recv configuration */ + union { + struct { + urma_jfr_t *jfr; /* [Optional] shared jfr to receive msg */ + urma_jfc_t *jfc; /* [Optional] To replace the jfc related to the above jfr */ + } shared; /* [Required] */ + urma_jfr_cfg_t *jfr_cfg; /* deprecated */ + }; + urma_jetty_grp_t *jetty_grp; /* [Optional] user specified jetty group. */ + uint64_t user_ctx; /* [Optional] private data of jetty */ +} urma_jetty_cfg_t; + +typedef enum urma_jetty_grp_policy { + URMA_JETTY_GRP_POLICY_RR = 0, + URMA_JETTY_GRP_POLICY_HASH_HINT = 1 +} urma_jetty_grp_policy_t; + +typedef enum urma_target_type { + URMA_JFR = 0, + URMA_JETTY, + URMA_JETTY_GROUP +} urma_target_type_t; + +typedef struct urma_rjetty { + urma_jetty_id_t jetty_id; + urma_transport_mode_t trans_mode; + urma_jetty_grp_policy_t policy; + urma_target_type_t type; + urma_import_jetty_flag_t flag; + urma_tp_type_t tp_type; +} urma_rjetty_t; + +typedef struct urma_target_jetty { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jetty_id_t id; /* [Private] see urma_jetty_id. */ + uint64_t handle; + urma_transport_mode_t trans_mode; + urma_tp_t tp; + urma_target_type_t type; // todo supplementary target type + urma_import_jetty_flag_t flag; + urma_jetty_grp_policy_t policy; + urma_tp_type_t tp_type; +} urma_target_jetty_t; + +typedef enum urma_jetty_attr_mask { + JETTY_RX_THRESHOLD = 0x1, + JETTY_STATE = 0x1 << 1 +} urma_jetty_attr_mask_t; + +typedef struct urma_jetty_attr { + uint32_t mask; // mask value refer to urma_jetty_attr_mask_t + uint32_t rx_threshold; + urma_jetty_state_t state; +} urma_jetty_attr_t; + +typedef struct urma_jetty_opt { + bool is_actived; + urma_jfs_opt_t jfs_opt; + uint64_t reserved[URMA_OPT_REVERSED_NUM]; +} urma_jetty_opt_t; + +typedef struct urma_jetty { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jetty_id_t jetty_id; /* [Public] see urma_jetty_id. */ + urma_target_jetty_t *remote_jetty; /* [Private] Only valid for connection mode Jetty. + After the bind succeeds, the pointer is not null. */ + urma_jetty_cfg_t jetty_cfg; /* [Public] storage jetty config. */ + uint64_t handle; + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t async_events_acked; + urma_jetty_opt_t urma_jetty_opt; +} urma_jetty_t; + +typedef struct urma_notifier { + urma_context_t *urma_ctx; + int fd; + void *incomplete_tjetty_list; +} urma_notifier_t; + +typedef enum urma_notify_type { + URMA_IMPORT_JETTY_NOTIFY = 0, + URMA_BIND_JETTY_NOTIFY +} urma_notify_type_t; + +typedef struct urma_notify { + urma_notify_type_t type; + urma_status_t status; + uint64_t user_ctx; + union { + urma_target_jetty_t *tjetty; /* IMPORT */ + urma_jetty_t *jetty; /* BIND */ + }; +} urma_notify_t; + +typedef union urma_jetty_grp_flag { + struct { + uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE + 1: URMA_TOKEN_PLAIN_TEXT + 2: URMA_TOKEN_SIGNED + 3: URMA_TOKEN_ALL_ENCRYPTED + 4: URMA_TOKEN_RESERVED */ + uint32_t reserved : 29; + } bs; + uint32_t value; +} urma_jetty_grp_flag_t; + +typedef struct urma_jetty_grp_cfg { + char name[URMA_MAX_NAME]; + urma_jetty_grp_flag_t flag; + urma_token_t token_value; /* [Required] specify token_value for Jetty group. */ + uint32_t id; /* [Optional] specify Jetty group id. + If the parameter is 0, UMDK will assign a non_0 value. */ + urma_jetty_grp_policy_t policy; /* Hash or RR(on default) */ + uint64_t user_ctx; /* [Optional] private data of jetty */ +} urma_jetty_grp_cfg_t; + +struct urma_jetty_grp { + urma_context_t *urma_ctx; + urma_jetty_id_t jetty_grp_id; + urma_jetty_grp_cfg_t cfg; + uint32_t jetty_cnt; + urma_jetty_t **jetty_list; + pthread_mutex_t list_mutex; + uint64_t handle; /* use to quickly get uobj of jetty group in kernel module */ + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t async_events_acked; +}; + +/* memory information */ +typedef struct urma_ubva { + urma_eid_t eid; + uint32_t uasid; // 24 bit for UB + uint64_t va; +} __attribute__((packed)) urma_ubva_t; + + +/* segment definition */ +typedef union urma_reg_seg_flag { + struct { + uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE. + 1: URMA_TOKEN_PLAIN_TEXT. + 2: URMA_TOKEN_SIGNED. + 3: URMA_TOKEN_ALL_ENCRYPTED. + 4: URMA_TOKEN_RESERVED. */ + uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. + 1: URMA_CACHEABLE. */ + uint32_t dsva : 1; + uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. + (0x1 << 1): URMA_ACCESS_READ. + (0x1 << 2): URMA_ACCESS_WRITE. + (0x1 << 3): URMA_ACCESS_ATOMIC. */ + uint32_t non_pin : 1; /* 0: segment pages pinned. + 1: segment pages non-pinned. */ + uint32_t user_iova : 1; /* 0: segment without user iova addr. + 1: segment with user iova addr. */ + uint32_t token_id_valid : 1; /* 0: token id in cfg is invalid. + 1: token id in cfg is valid. */ + uint32_t reserved : 18; + } bs; + uint32_t value; +} urma_reg_seg_flag_t; + +typedef union urma_seg_attr { + struct { + uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE. + 1: URMA_TOKEN_PLAIN_TEXT. + 2: URMA_TOKEN_SIGNED. + 3: URMA_TOKEN_ALL_ENCRYPTED. + 4: URMA_TOKEN_RESERVED. */ + uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. + 1: URMA_CACHEABLE. */ + uint32_t dsva : 1; + uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. + (0x1 << 1): URMA_ACCESS_READ. + (0x1 << 2): URMA_ACCESS_WRITE. + (0x1 << 3): URMA_ACCESS_ATOMIC. */ + uint32_t non_pin : 1; /* 0: segment pages pinned. + 1: segment pages non-pinned. */ + uint32_t user_iova : 1; /* 0: segment without user iova addr. + 1: segment with user iova addr. */ + uint32_t user_token_id : 1; /* 0: token_id is allocated and should be freed by urma. + 1: token_id is allocated by user in urma_seg_cfg. */ + uint32_t reserved : 18; + } bs; + uint32_t value; +} urma_seg_attr_t; + +typedef union urma_import_seg_flag { + struct { + uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. + 1: URMA_CACHEABLE. */ + uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. + (0x1 << 1): URMA_ACCESS_READ. + (0x1 << 2): URMA_ACCESS_WRITE. + (0x1 << 3): URMA_ACCESS_ATOMIC. + */ + uint32_t mapping : 1; /* 0: URMA_SEG_NOMAP/ + 1: URMA_SEG_MAPPED. */ + uint32_t reserved : 24; + } bs; + uint32_t value; +} urma_import_seg_flag_t; + +typedef union urma_token_id_flag { + struct { + uint32_t multi_seg : 1; + uint32_t reserved : 31; + } bs; + uint32_t value; +} urma_token_id_flag_t; + +typedef struct urma_token_id { + urma_context_t *urma_ctx; + uint32_t token_id; + uint64_t handle; + urma_ref_t ref; + urma_token_id_flag_t flag; +} urma_token_id_t; + +typedef struct urma_seg_cfg { + uint64_t va; /* specify the address of the segment to be registered */ + uint64_t len; /* specify the length of the segment to be registered */ + urma_token_id_t *token_id; + urma_token_t token_value; /* Security authentication for access */ + urma_reg_seg_flag_t flag; + uint64_t user_ctx; + uint64_t iova; /* user iova, maybe zero-based-address */ +} urma_seg_cfg_t; + +typedef struct urma_seg { + urma_ubva_t ubva; /* [Public] ubva of segment. */ + uint64_t len; /* [Public] length of segment. */ + urma_seg_attr_t attr; /* [Public] include: access flag, token policy, cacheability. */ + uint32_t token_id; /* [Private] match token */ +} urma_seg_t; + +typedef struct urma_target_seg { + urma_seg_t seg; /* [Private] see urma_seg_t. */ + uint64_t user_ctx; /* [Private] private data of segment */ + uint64_t mva; /* [Public] mapping addr when import remote seg. */ + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_token_id_t *token_id; /* When registering seg, it is a valid address; when importing seg, it is NULL */ + uint64_t handle; +} urma_target_seg_t; + +typedef struct urma_user_ctl_in { + uint64_t addr; /* [Required] the address of the input parameter buffer. */ + uint32_t len; /* [Required] the length of the input parameter buffer */ + /* + * Opcode is simultaneously recognized by user and driver. + * User opcode should be distinguished with enum urma_user_ctl_ops_t, which is only used by URMA. + */ + uint32_t opcode; /* [Required] */ +} urma_user_ctl_in_t; + +typedef struct urma_user_ctl_out { + uint64_t addr; /* [Optional] the address of the output parameter buffer. */ + uint32_t len; /* [Optional] the length of the output parameter buffer */ + uint32_t reserved; +} urma_user_ctl_out_t; + +typedef struct urma_user_target_seg { + urma_seg_attr_t attr; + uint32_t token_id; + urma_token_t token_value; +} urma_user_tseg_t; + +typedef struct urma_sge { + uint64_t addr; + uint32_t len; + /* Driver verification + * remote seg: Either tseg or user tseg is not NULL. + * If both of them are not NULL, ignore user_tseg. + * local seg: user_tseg is not supported, tseg must not NULL. + */ + urma_target_seg_t *tseg; + urma_user_tseg_t *user_tseg; /* To support the exemption of import_seg */ +} urma_sge_t; + +typedef struct urma_sg { + urma_sge_t *sge; + uint32_t num_sge; +} urma_sg_t; + +/* wr for batch operations */ +typedef union urma_jfs_wr_flag { + struct { + uint32_t place_order : 2; /* 0: There is no order with other WR + 1: relax order + 2: strong order + 3: reserve */ /* see urma_place_order_t */ + uint32_t comp_order : 1; /* 0: There is no completion order with othwe WR. + 1: Completion order with previous WR. */ + uint32_t fence : 1; /* 0: There is not fence. + 1: Fence with previous read and atomic WR */ + uint32_t solicited_enable : 1; /* 0: There is not solicited. + 1: solicited. It will trigger an event on remote side */ + uint32_t complete_enable : 1; /* 0: Do not notify local process after the task is complete. + 1: Notify local process after the task is completed. */ + uint32_t inline_flag : 1; /* 0: not inline. + 1: inline data. */ + + uint32_t db_bypass : 1; + uint32_t has_drv_ext : 1; + uint32_t reserved : 23; + } bs; + uint32_t value; +} urma_jfs_wr_flag_t; + +typedef union urma_jfr_wr_flag { + struct { + uint32_t complete_type : 1; /* 0: Write completion record to jfc. + 1: Write completion record to complete flag (CF) address */ + uint32_t reserved : 31; + } bs; + uint32_t value; +} urma_jfr_wr_flag_t; + +typedef struct urma_rw_wr { + urma_sg_t src; /* including total data length. src is local va for write, and remote va for read. + only support 1 src sge in read operation. */ + urma_sg_t dst; /* dst is remote va for write, and local va for read. + only support 1 dst sge in write operation. */ + uint8_t target_hint; // required when using jetty group + uint64_t notify_data; // notify data or imm data in host byte order; +} urma_rw_wr_t; + +typedef struct urma_send_wr { + urma_sg_t src; // including total data length + uint8_t target_hint; // required when using jetty group + uint64_t imm_data; // imm_data in host byte order; + urma_target_seg_t *tseg; /* tseg used only when send with invalidate */ +} urma_send_wr_t; + +typedef struct urma_cas_wr { + urma_sge_t *dst; // len is the data length of CAS operation + urma_sge_t *src; // local address for destination original value writeback, len represents the buffer length. + union { // Value compared with destination value + uint64_t cmp_data; // When the len <= 8B, it indicates the CMP value. + uint64_t cmp_addr; // When the len > 8B, it indicates the data address. + }; + union { // If destination value is the same as cmp_data, destination value will be changed to swap_data + uint64_t swap_data; // When the len <= 8B, it indicates the swap value. + uint64_t swap_addr; // When the len > 8B, it indicates the data address. + }; +} urma_cas_wr_t; + +typedef struct urma_faa_wr { + urma_sge_t *dst; // len is the data length of FAA operation + urma_sge_t *src; // local address for destination original value writeback, len represents the buffer length. + union { + uint64_t operand; // When the len <= 8B, it indicates the operand value. + uint64_t operand_addr; // When the len > 8B, it indicates the data address. + }; +} urma_faa_wr_t; + +typedef struct urma_jfs_wr { + urma_opcode_t opcode; + urma_jfs_wr_flag_t flag; + urma_target_jetty_t *tjetty; + uint64_t user_ctx; // completion data + union { + urma_rw_wr_t rw; + urma_send_wr_t send; + urma_cas_wr_t cas; + urma_faa_wr_t faa; + }; + struct urma_jfs_wr *next; +} urma_jfs_wr_t; + +typedef struct urma_jfr_wr { + urma_sg_t src; // includeing buffer length + uint64_t user_ctx; // completion data, eg. wr id + struct urma_jfr_wr *next; +} urma_jfr_wr_t; + +typedef union urma_cr_flag { + struct { + uint8_t s_r : 1; // Indicate CR stands for sending or receiving, 0: send, 1: recv. + uint8_t jetty : 1; // Indicate CR stands for jetty or jfs/jfr, 0: jfs/jfr, 1: jetty. + uint8_t suspend_done : 1; // Real CR associated with the WR, user_ctx is valid + uint8_t flush_err_done : 1; // Real CR associated with the WR, user_ctx is valid + uint8_t reserved : 4; + } bs; + uint8_t value; +} urma_cr_flag_t; + +typedef struct urma_cr_token { + uint32_t token_id; + urma_token_t token_value; +} urma_cr_token_t; + +typedef struct urma_cr { + urma_cr_status_t status; + uint64_t user_ctx; // user_ctx related to a work request + urma_cr_opcode_t opcode; // Only for recv + urma_cr_flag_t flag; // indicate notify data or swap data is valid or not + uint32_t completion_len; // The number of bytes transferred + + uint32_t local_id; // Local jetty ID, or JFS ID, or JFR ID, depends on flag + urma_jetty_id_t remote_id; // Valid only for receiving CR. The remote jetty where the + // received msg comes from Jetty ID or JFS ID, depends on flag. + union { + uint64_t imm_data; // Valid only for receiving CR: send/write/read with imm. + urma_cr_token_t invalid_token; // Valid only for receiving CR: send with invalidate. + }; + uint32_t tpn; // TP number or TPG number + uintptr_t user_data; // e.g. use as pointer to local jetty struct. +} urma_cr_t; + +typedef struct urma_async_event { + /* may be SW queue error, may be HW port error */ + const urma_context_t *urma_ctx; + union { + urma_jfc_t *jfc; + urma_jfs_t *jfs; + urma_jfr_t *jfr; + urma_jetty_t *jetty; + urma_jetty_grp_t *jetty_grp; + uint32_t port_id; + uint32_t eid_idx; + } element; + urma_async_event_type_t event_type; + void *priv; +} urma_async_event_t; + +/* URMA region definition */ +typedef union urma_ur_attr { + struct { + uint32_t reserved : 32; + } bs; + uint32_t value; +} urma_ur_attr_t; + +typedef union urma_import_ur_flag { + struct { + uint32_t mapping : 2; /* 0: URMA_SEG_NOMAP + 1: URMA_SEG_MAPPED_MVA + 2: URMA_SEG_MAPPED_DSVA */ + uint32_t reserved : 30; + } bs; + uint32_t value; +} urma_import_ur_flag_t; + +#define UR_NAME_MAX_LEN 256 +#define JFR_NAME_MAX_LEN 256 +#define URMA_MAX_SEGS_PER_UR_OPT 64 // Max number of SEGS per attach/detach ur + +// In parametre for create UR +typedef struct urma_ur { + char name[UR_NAME_MAX_LEN]; // UR url name + uint64_t size; + urma_ur_attr_t attr; // include: access flag, token policy, cacheability, dsva + uint64_t token; + uint64_t user_ctx; +} urma_ur_t; + +// Out parametre for import UR +typedef struct urma_target_ur { + char name[UR_NAME_MAX_LEN]; // UR url name + uint64_t size; + urma_import_ur_flag_t flag; // include: access flag, token policy, cacheability, dsva + urma_target_seg_t **tseg_list; + uint32_t cnt; +} urma_target_ur_t; + +typedef struct urma_seg_info { + urma_seg_t seg; + uint32_t idx_in_ur; +} urma_seg_info_t; + +// Out parametre for lookup UR +typedef struct urma_ur_info { + char name[UR_NAME_MAX_LEN]; // UR url name + uint64_t size; // limit size, by byte + urma_ur_attr_t attr; // include: access flag, token policy, cacheability, dsva + uint32_t cnt; // + urma_seg_info_t seg_list[0]; // cnt * sizeof(urma_seg_info_t) +} urma_ur_info_t; + +typedef struct urma_jfr_info { + char name[JFR_NAME_MAX_LEN]; // jfr url name + urma_eid_t eid; + uint32_t uasid; + uint32_t id; +} urma_jfr_info_t; + +typedef union urma_tp_cfg_flag { + struct { + uint32_t target : 1; /* 0: initiator, 1: target */ + uint32_t loopback : 1; + uint32_t dca_enable : 1; + /* for the bonding case, the hardware selects the port + * ignoring the port of the tp context and + * selects the port based on the hash value + * along with the information in the bonding group table. + */ + uint32_t bonding : 1; + uint32_t reserved : 28; + } bs; + uint32_t value; +} urma_tp_cfg_flag_t; + +typedef struct urma_tp_cfg { + urma_tp_cfg_flag_t flag; /* flag of initial tp */ + /* transport layer attributes */ + urma_transport_mode_t trans_mode; + uint8_t retry_num; + uint8_t retry_factor; /* for calculate the time slot to retry */ + uint8_t ack_timeout; + uint8_t dscp; + uint32_t oor_cnt; /* OOR window size: by packet */ +} urma_tp_cfg_t; + +typedef union urma_tp_attr_mask { + struct { + uint32_t flag : 1; + uint32_t peer_tpn : 1; + uint32_t state : 1; + uint32_t tx_psn : 1; + uint32_t rx_psn : 1; /* modify both rx psn and tx psn when restore tp */ + uint32_t mtu : 1; + uint32_t cc_pattern_idx : 1; + uint32_t oos_cnt : 1; + uint32_t local_net_addr_idx : 1; + uint32_t peer_net_addr : 1; + uint32_t data_udp_start : 1; + uint32_t ack_udp_start : 1; + uint32_t udp_range : 1; + uint32_t hop_limit : 1; + uint32_t flow_label : 1; + uint32_t port_id : 1; + uint32_t mn : 1; + uint32_t peer_trans_type : 1; + uint32_t reserved : 14; + } bs; + uint32_t value; +} urma_tp_attr_mask_t; + +typedef union urma_tp_mod_flag { + struct { + uint32_t oor_en : 1; /* out of order receive, 0: disable 1: enable */ + uint32_t sr_en : 1; /* selective retransmission, 0: disable 1: enable */ + uint32_t cc_en : 1; /* congestion control algorithm, 0: disable 1: enable */ + uint32_t cc_alg : 4; /* The value is ubcore_tp_cc_alg_t */ + uint32_t spray_en : 1; /* spray with src udp port, 0: disable 1: enable */ + uint32_t clan : 1; /* clan domain, 0: disable 1: enable */ + uint32_t reserved : 23; + } bs; + uint32_t value; +} urma_tp_mod_flag_t; + +typedef enum urma_tp_state { + URMA_TP_STATE_RESET = 0, + URMA_TP_STATE_PASSIVE, + URMA_TP_STATE_ACTIVE, + URMA_TP_STATE_BRAKE, + URMA_TP_STATE_ERROR +} urma_tp_state_t; + +typedef struct urma_net_addr { + sa_family_t sin_family; /* AF_INET/AF_INET6 */ + union { + struct in_addr in4; + struct in6_addr in6; + }; + uint64_t vlan; + uint8_t mac[URMA_MAC_BYTES]; + uint32_t prefix_len; +} urma_net_addr_t; + +typedef struct urma_net_addr_info { + urma_net_addr_t netaddr; + uint32_t index; +} urma_net_addr_info_t; + +typedef struct urma_tp_attr { + urma_tp_mod_flag_t flag; + uint32_t peer_tpn; + urma_tp_state_t state; + uint32_t tx_psn; + uint32_t rx_psn; + urma_mtu_t mtu; + uint8_t cc_pattern_idx; + uint32_t oos_cnt; /* out of standing packet cnt */ + uint32_t local_net_addr_idx; + urma_net_addr_t peer_net_addr; + uint16_t data_udp_start; + uint16_t ack_udp_start; + uint8_t udp_range; + uint8_t hop_limit; + uint32_t flow_label; + uint8_t port_id; + uint8_t mn; /* 0~15, a packet contains only one msg if mn is set as 0 */ + urma_transport_type_t peer_trans_type; +} urma_tp_attr_t; + +typedef union urma_get_tp_cfg_flag { + struct { + uint32_t ctp : 1; + uint32_t rtp : 1; + uint32_t utp : 1; + uint32_t uboe : 1; + uint32_t pre_defined : 1; + uint32_t dynamic_defined : 1; + uint32_t udp : 5; + uint32_t group_id : 15; + uint32_t reserved : 6; + } bs; + uint32_t value; +} urma_get_tp_cfg_flag_t; + +typedef struct urma_get_tp_cfg { + urma_get_tp_cfg_flag_t flag; + urma_transport_mode_t trans_mode; + urma_eid_t local_eid; + urma_eid_t peer_eid; +} urma_get_tp_cfg_t; + +typedef struct urma_tp_info { + uint64_t tp_handle; +} urma_tp_info_t; + +typedef struct urma_active_tp_attr { + uint32_t tx_psn; + uint32_t rx_psn; + uint64_t reserved; +} urma_active_tp_attr_t; + +typedef struct urma_active_tp_cfg { + uint64_t tp_handle; + uint64_t peer_tp_handle; + uint64_t tag; + urma_active_tp_attr_t tp_attr; +} urma_active_tp_cfg_t; + +typedef struct urma_active_tp_cfg urma_import_jetty_ex_cfg_t; +typedef struct urma_active_tp_cfg urma_import_jfr_ex_cfg_t; +typedef struct urma_active_tp_cfg urma_bind_jetty_ex_cfg_t; + +#pragma pack(1) +typedef struct urma_tp_attr_value { + uint8_t retry_times_init : 3; + uint8_t at : 5; + uint8_t sip[URMA_IP_ADDR_BYTES]; + uint8_t dip[URMA_IP_ADDR_BYTES]; + uint8_t sma[URMA_MAC_BYTES]; + uint8_t dma[URMA_MAC_BYTES]; + uint16_t vlan_id : 12; + uint8_t vlan_en : 1; + uint8_t dscp : 6; + uint8_t at_times : 5; + uint8_t sl : 4; + uint8_t ttl; + uint16_t ack_udp_srcport; + uint16_t data_udp_srcport; + uint8_t udp_srcport_range : 4; + uint8_t spray_en : 1; + uint8_t udp_global_en : 1; + uint8_t reserve_0 : 2; + uint16_t sl_bitmap; + uint8_t dscp_config_mode : 1; + uint8_t reserve_1 : 7; + uint8_t reserved[70]; +} urma_tp_attr_value_t; +#pragma pack() + +/* callback information */ +typedef void (*urma_async_event_cb)(urma_async_event_t *event, void *cb_arg); + +/* callback function type for urma_advise_jfr/jetty_async. User must define callback function to handle result. + advise_result is the result of advise jfr or jetty */ +typedef void (*urma_advise_async_cb_func)(urma_status_t advise_result, void *cb_arg); + +typedef enum urma_vlog_level { + URMA_VLOG_LEVEL_EMERG = 0, + URMA_VLOG_LEVEL_ALERT = 1, + URMA_VLOG_LEVEL_CRIT = 2, + URMA_VLOG_LEVEL_ERR = 3, + URMA_VLOG_LEVEL_WARNING = 4, + URMA_VLOG_LEVEL_NOTICE = 5, + URMA_VLOG_LEVEL_INFO = 6, + URMA_VLOG_LEVEL_DEBUG = 7, + URMA_VLOG_LEVEL_MAX = 8, +} urma_vlog_level_t; + +typedef void (*urma_log_cb_t)(int level, char *message); + +/* location log callback function definition */ +typedef void (*urma_loc_log_cb)(int level, const char *file, const char *function, int line, char *message); + +#ifdef __cplusplus +} +#endif + +#endif // URMA_TYPES_H diff --git a/src/brpc/urma_transport.cpp b/src/brpc/urma_transport.cpp new file mode 100644 index 0000000000..51323de213 --- /dev/null +++ b/src/brpc/urma_transport.cpp @@ -0,0 +1,242 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include "brpc/urma_transport.h" + +#if BRPC_WITH_URMA + +#include + +#include "butil/iobuf.h" +#include "butil/logging.h" +#include "bthread/bthread.h" +#include "bthread/types.h" + +#include "brpc/event_dispatcher.h" +#include "brpc/input_messenger.h" +#include "brpc/socket.h" +#include "brpc/tcp_transport.h" +#include "brpc/urma/urma_endpoint.h" +#include "brpc/urma/urma_helper.h" + +namespace brpc { + +// Defined in urma_helper.cpp. +DECLARE_bool(urma_use_polling); +DECLARE_bool(urma_disable_bthread); + +void UrmaTransport::Init(Socket* socket, const SocketOptions& options) { + CHECK(_urma_ep == nullptr); + if (options.socket_mode == SOCKET_MODE_URMA) { + _urma_ep = new (std::nothrow) urma::UrmaEndpoint(socket); + if (!_urma_ep) { + const int saved_errno = errno; + PLOG(ERROR) << "Fail to create UrmaEndpoint"; + socket->SetFailed(saved_errno, "Fail to create UrmaEndpoint: %s", + berror(saved_errno)); + } + _urma_state = URMA_UNKNOWN; + } else { + _urma_state = URMA_OFF; + socket->_socket_mode = SOCKET_MODE_TCP; + } + _socket = socket; + _default_connect = options.app_connect; + _on_edge_trigger = options.on_edge_triggered_events; + if (options.need_on_edge_trigger && _on_edge_trigger == nullptr) { + _on_edge_trigger = urma::UrmaEndpoint::OnNewDataFromTcp; + } + _tcp_transport = std::make_shared(); + _tcp_transport->Init(socket, options); +} + +void UrmaTransport::Release() { + if (_urma_ep) { + delete _urma_ep; + _urma_ep = nullptr; + } +} + +int UrmaTransport::Reset(int32_t /*expected_nref*/) { + if (_urma_ep) { + _urma_ep->Reset(); + } + _urma_state = URMA_UNKNOWN; + return 0; +} + +std::shared_ptr UrmaTransport::Connect() { + if (_default_connect == nullptr) { + return std::make_shared(); + } + return _default_connect; +} + +int UrmaTransport::CutFromIOBuf(butil::IOBuf* buf) { + if (_urma_ep && _urma_state != URMA_OFF) { + butil::IOBuf* data_arr[1] = {buf}; + return _urma_ep->CutFromIOBufList(data_arr, 1); + } else { + return _tcp_transport->CutFromIOBuf(buf); + } +} + +ssize_t UrmaTransport::CutFromIOBufList(butil::IOBuf** buf, size_t ndata) { + if (_urma_ep && _urma_state != URMA_OFF) { + return _urma_ep->CutFromIOBufList(buf, ndata); + } else { + return _tcp_transport->CutFromIOBufList(buf, ndata); + } +} + +int UrmaTransport::WaitEpollOut(butil::atomic* _epollout_butex, + bool pollin, const timespec duetime) { + if (_urma_state == URMA_ON) { + const int expected_val = _epollout_butex->load(butil::memory_order_acquire); + CHECK(_urma_ep != nullptr); + if (!_urma_ep->IsWritable()) { + // Same caveat as RDMA: URMA cannot detect failure by writing, so + // after a failed butex wait we must re-check _socket->Failed(). + int rc = bthread::butex_wait(_epollout_butex, expected_val, &duetime); + if (rc < 0 && errno != EWOULDBLOCK && errno != ETIMEDOUT) { + const int saved_errno = errno; + PLOG(ERROR) << "Fail to wait epollout butex"; + if (_socket->SetFailed(saved_errno, "Fail to wait epollout butex: %s", + berror(saved_errno))) { + return 1; + } + } + if (_socket->Failed()) { + return 1; + } + return 0; + } + return 0; + } else { + return _tcp_transport->WaitEpollOut(_epollout_butex, pollin, duetime); + } +} + +void UrmaTransport::ProcessEvent(bthread_attr_t attr) { + // Identical to TcpTransport/RdmaTransport: dispatch OnEdge(_socket) on a + // bthread, falling back to inline invocation on bthread_start failure. + bthread_t tid; + if (FLAGS_usercode_in_coroutine) { + OnEdge(_socket); + } else if (!EventDispatcherUnsched()) { + auto rc = bthread_start_urgent(&tid, &attr, OnEdge, _socket); + if (rc != 0) { + LOG(FATAL) << "Fail to start ProcessEvent"; + OnEdge(_socket); + } + } else if (bthread_start_background(&tid, &attr, OnEdge, _socket) != 0) { + LOG(FATAL) << "Fail to start ProcessEvent"; + OnEdge(_socket); + } +} + +void UrmaTransport::QueueMessage(InputMessageClosure& input_msg, + int* num_bthread_created, bool last_msg) { + if (last_msg && !urma::FLAGS_urma_use_polling) { + return; + } + InputMessageBase* to_run_msg = input_msg.release(); + if (!to_run_msg) { + return; + } + if (urma::FLAGS_urma_disable_bthread) { + Transport::ProcessInputMessage(to_run_msg); + return; + } + bthread_t th; + bthread_attr_t tmp = + (FLAGS_usercode_in_pthread ? BTHREAD_ATTR_PTHREAD : BTHREAD_ATTR_NORMAL) | + BTHREAD_NOSIGNAL; + tmp.keytable_pool = _socket->keytable_pool(); + tmp.tag = bthread_self_tag(); + bthread_attr_set_name(&tmp, "ProcessInputMessage"); + if (!FLAGS_usercode_in_coroutine && bthread_start_background( + &th, &tmp, Transport::ProcessInputMessage, to_run_msg) == 0) { + ++*num_bthread_created; + } else { + Transport::ProcessInputMessage(to_run_msg); + } +} + +void UrmaTransport::Debug(std::ostream& os) { + if (_urma_state == URMA_ON && _urma_ep) { + _urma_ep->DebugInfo(os); + } +} + +int UrmaTransport::ContextInitOrDie(bool serverOrNot, const void* _options) { + if (serverOrNot) { + if (!OptionsAvailableOverUrma(static_cast(_options))) { + return -1; + } + urma::GlobalUrmaInitializeOrDie(); + if (!urma::InitPollingModeWithTag( + static_cast(_options)->bthread_tag)) { + return -1; + } + } else { + if (!OptionsAvailableForUrma(static_cast(_options))) { + return -1; + } + urma::GlobalUrmaInitializeOrDie(); + if (!urma::InitPollingModeWithTag(bthread_self_tag())) { + return -1; + } + } + return 0; +} + +bool UrmaTransport::OptionsAvailableForUrma(const ChannelOptions* opt) { + if (opt->has_ssl_options()) { + LOG(WARNING) << "Cannot use SSL and URMA at the same time"; + return false; + } + if (!urma::SupportedByUrma(opt->protocol.name())) { + LOG(WARNING) << "Cannot use " << opt->protocol.name() << " over URMA"; + return false; + } + return true; +} + +bool UrmaTransport::OptionsAvailableOverUrma(const ServerOptions* opt) { + if (opt->rtmp_service) { + LOG(WARNING) << "RTMP is not supported by URMA"; + return false; + } + if (opt->has_ssl_options()) { + LOG(WARNING) << "SSL is not supported by URMA"; + return false; + } + if (opt->nshead_service) { + LOG(WARNING) << "NSHEAD is not supported by URMA"; + return false; + } + if (opt->mongo_service_adaptor) { + LOG(WARNING) << "MONGO is not supported by URMA"; + return false; + } + return true; +} + +} // namespace brpc + +#endif // if BRPC_WITH_URMA diff --git a/src/brpc/urma_transport.h b/src/brpc/urma_transport.h new file mode 100644 index 0000000000..fb78841514 --- /dev/null +++ b/src/brpc/urma_transport.h @@ -0,0 +1,84 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#ifndef BRPC_URMA_TRANSPORT_H +#define BRPC_URMA_TRANSPORT_H + +#include "brpc/socket.h" +#include "brpc/channel.h" +#include "brpc/transport.h" + +#if BRPC_WITH_URMA + +#include "brpc/urma/urma_endpoint.h" + +namespace brpc { + +// UrmaTransport is the Transport subclass for URMA (openEuler Unified Remote +// Memory Access). It composes a TcpTransport for fallback (mirroring the +// RdmaTransport / UBShmTransport design) and delegates the URMA data path to +// the per-connection urma::UrmaEndpoint. Negotiation runs over the TCP fd and +// resolves _urma_state to URMA_ON or URMA_OFF. +class UrmaTransport : public Transport { +friend class TransportFactory; +friend class urma::UrmaEndpoint; +friend class urma::UrmaConnect; +friend class urma::UrmaHandshakeServerV2; +friend class urma::UrmaHandshakeClientV2; +friend class urma::UrmaHandshakeServerV3; +friend class urma::UrmaHandshakeClientV3; +public: + void Init(Socket* socket, const SocketOptions& options) override; + void Release() override; + int Reset(int32_t expected_nref) override; + std::shared_ptr Connect() override; + int CutFromIOBuf(butil::IOBuf* buf) override; + ssize_t CutFromIOBufList(butil::IOBuf** buf, size_t ndata) override; + int WaitEpollOut(butil::atomic* _epollout_butex, bool pollin, + const timespec duetime) override; + void ProcessEvent(bthread_attr_t attr) override; + void QueueMessage(InputMessageClosure& inputMsg, int* num_bthread_created, + bool last_msg) override; + void Debug(std::ostream& os) override; + + urma::UrmaEndpoint* GetUrmaEp() { + CHECK(_urma_ep != nullptr); + return _urma_ep; + } + + static int ContextInitOrDie(bool serverOrNot, const void* _options); + +private: + static bool OptionsAvailableForUrma(const ChannelOptions* opt); + static bool OptionsAvailableOverUrma(const ServerOptions* opt); + + // The on/off state of URMA. UNKNOWN until the handshake resolves. + enum UrmaState { + URMA_ON, + URMA_OFF, + URMA_UNKNOWN + }; + + urma::UrmaEndpoint* _urma_ep = nullptr; + UrmaState _urma_state{URMA_UNKNOWN}; + std::shared_ptr _tcp_transport; +}; + +} // namespace brpc + +#endif // if BRPC_WITH_URMA +#endif // BRPC_URMA_TRANSPORT_H diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp new file mode 100644 index 0000000000..8620db6b4b --- /dev/null +++ b/test/brpc_urma_unittest.cpp @@ -0,0 +1,380 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include +#include +#include + +#if BRPC_WITH_URMA +#include "butil/atomicops.h" +#include "butil/sys_byteorder.h" +#include "brpc/urma/urma_api.h" +#include "brpc/urma/urma_handshake.h" +#include "brpc/urma/urma_handshake.pb.h" +#include "brpc/urma/urma_helper.h" +#include "brpc/urma/urma_types.h" + +using namespace brpc; + +namespace brpc { +namespace urma { + +DECLARE_int32(urma_client_handshake_version); +extern bool g_skip_urma_init; +extern butil::atomic g_urma_available; + +} // namespace urma +} // namespace brpc + +// --------------------------------------------------------------------------- +// v2 binary HelloMessage: serialize + deserialize round-trips. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, v2_serialize_deserialize_roundtrip) { + urma::v2_wire::HelloMessage m; + m.msg_len = urma::v2_wire::HELLO_PACKET_LEN; + m.hello_ver = urma::v2_wire::HELLO_V2_VERSION; + m.impl_ver = urma::v2_wire::IMPL_V2_VERSION; + m.buffer_size = 8192; + m.recv_buffer_cnt = 127; + m.jetty_id = 0x12345678; + for (int i = 0; i < 16; ++i) { m.eid[i] = static_cast(i + 1); } + m.uasid = 0xdeadbeef; + m.tp_type = 1; // URMA_CTP + for (int i = 0; i < 16; ++i) { m.seg_eid[i] = static_cast(16 - i); } + m.seg_uasid = 0xcafebabe; + m.seg_va = 0x1122334455667788ULL; + m.seg_len = 1ULL << 20; + m.seg_token_id = 0x42424242; + + uint8_t buf[urma::v2_wire::HELLO_BODY_LEN]; + m.Serialize(buf); + + urma::v2_wire::HelloMessage m2; + m2.Deserialize(buf); + EXPECT_EQ(m.msg_len, m2.msg_len); + EXPECT_EQ(m.hello_ver, m2.hello_ver); + EXPECT_EQ(m.impl_ver, m2.impl_ver); + EXPECT_EQ(m.buffer_size, m2.buffer_size); + EXPECT_EQ(m.recv_buffer_cnt, m2.recv_buffer_cnt); + EXPECT_EQ(m.jetty_id, m2.jetty_id); + EXPECT_EQ(0, memcmp(m.eid, m2.eid, 16)); + EXPECT_EQ(m.uasid, m2.uasid); + EXPECT_EQ(m.tp_type, m2.tp_type); + EXPECT_EQ(0, memcmp(m.seg_eid, m2.seg_eid, 16)); + EXPECT_EQ(m.seg_uasid, m2.seg_uasid); + EXPECT_EQ(m.seg_va, m2.seg_va); + EXPECT_EQ(m.seg_len, m2.seg_len); + EXPECT_EQ(m.seg_token_id, m2.seg_token_id); +} + +// --------------------------------------------------------------------------- +// v2 packet on the wire: "URMA" magic + body. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, v2_packet_magic_is_urma) { + EXPECT_EQ(4u, urma::v2_wire::MAGIC_STR_LEN); + char magic[4] = {'U', 'R', 'M', 'A'}; + EXPECT_EQ(0, memcmp(magic, "URMA", 4)); + EXPECT_EQ(4u + 82u, urma::v2_wire::HELLO_PACKET_LEN); +} + +// --------------------------------------------------------------------------- +// v3 protobuf UrmaHello: serialize + parse round-trips. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, v3_protobuf_roundtrip) { + urma::UrmaHello msg; + msg.set_buffer_size(8192); + msg.set_recv_buffer_cnt(127); + msg.set_jetty_id(0x12345678); + uint8_t eid[16]; + for (int i = 0; i < 16; ++i) { eid[i] = static_cast(i + 1); } + msg.set_eid(eid, 16); + msg.set_uasid(0xdeadbeef); + msg.set_tp_type(1); + uint8_t seg_eid[16]; + for (int i = 0; i < 16; ++i) { seg_eid[i] = static_cast(16 - i); } + msg.set_seg_eid(seg_eid, 16); + msg.set_seg_uasid(0xcafebabe); + msg.set_seg_va(0x1122334455667788ULL); + msg.set_seg_len(1ULL << 20); + msg.set_seg_token_id(0x42424242); + + std::string body; + ASSERT_TRUE(msg.SerializeToString(&body)); + urma::UrmaHello msg2; + ASSERT_TRUE(msg2.ParseFromString(body)); + EXPECT_EQ(msg.buffer_size(), msg2.buffer_size()); + EXPECT_EQ(msg.recv_buffer_cnt(), msg2.recv_buffer_cnt()); + EXPECT_EQ(msg.jetty_id(), msg2.jetty_id()); + EXPECT_EQ(16, msg2.eid().size()); + EXPECT_EQ(0, memcmp(msg.eid().data(), msg2.eid().data(), 16)); + EXPECT_EQ(msg.uasid(), msg2.uasid()); + EXPECT_EQ(msg.tp_type(), msg2.tp_type()); + EXPECT_EQ(16, msg2.seg_eid().size()); + EXPECT_EQ(msg.seg_uasid(), msg2.seg_uasid()); + EXPECT_EQ(msg.seg_va(), msg2.seg_va()); + EXPECT_EQ(msg.seg_len(), msg2.seg_len()); + EXPECT_EQ(msg.seg_token_id(), msg2.seg_token_id()); +} + +// --------------------------------------------------------------------------- +// CreateServerHandshakeByMagic dispatches on the magic bytes. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, server_handshake_factory_dispatches_on_magic) { + // We cannot fully exercise the server handshake without a real socket + + // endpoint, but we can verify the factory returns the right protocol + // version for each magic, and nullptr for an unknown magic. + uint8_t magic_v2[4] = {'U', 'R', 'M', 'A'}; + uint8_t magic_v3[4] = {'U', 'R', 'M', '3'}; + uint8_t magic_bad[4] = {'P', 'R', 'P', 'C'}; + + // v2 magic -> protocol version 2 + urma::UrmaHandshake* hs2 = + urma::CreateServerHandshakeByMagic(nullptr, magic_v2); + // Note: the factory dereferences the endpoint only inside SendLocalHello / + // ReceiveAndParseRemoteHello; passing nullptr is safe for the version query. + // (We delete immediately to avoid touching the endpoint.) + if (hs2) { + EXPECT_EQ(2, hs2->ProtocolVersion()); + delete hs2; + } + // v3 magic -> protocol version 3 + urma::UrmaHandshake* hs3 = + urma::CreateServerHandshakeByMagic(nullptr, magic_v3); + if (hs3) { + EXPECT_EQ(3, hs3->ProtocolVersion()); + delete hs3; + } + // unknown magic -> nullptr (caller falls back to TCP) + urma::UrmaHandshake* hsb = + urma::CreateServerHandshakeByMagic(nullptr, magic_bad); + EXPECT_EQ(nullptr, hsb); +} + +// --------------------------------------------------------------------------- +// CreateClientHandshake picks the version from the gflag. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, client_handshake_factory_respects_flag) { + const int saved = urma::FLAGS_urma_client_handshake_version; + + urma::FLAGS_urma_client_handshake_version = 2; + urma::UrmaHandshake* hs2 = urma::CreateClientHandshake(nullptr); + if (hs2) { + EXPECT_EQ(2, hs2->ProtocolVersion()); + delete hs2; + } + + urma::FLAGS_urma_client_handshake_version = 3; + urma::UrmaHandshake* hs3 = urma::CreateClientHandshake(nullptr); + if (hs3) { + EXPECT_EQ(3, hs3->ProtocolVersion()); + delete hs3; + } + + urma::FLAGS_urma_client_handshake_version = saved; +} + +// --------------------------------------------------------------------------- +// 4-byte ACK: HELLO_ACK_URMA_OK bit. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, ack_bit_is_rdma_ok) { + // The ACK is a 4-byte big-endian flags word; bit 0 means "I want URMA". + // Verify the round-trip: host -> net -> host preserves the bit. + uint32_t flags = 0x1; // HELLO_ACK_URMA_OK + uint32_t flags_be = butil::HostToNet32(flags); + uint32_t flags_back = butil::NetToHost32(flags_be); + EXPECT_EQ(flags, flags_back); + EXPECT_NE(0u, flags_back & 0x1); +} + +// --------------------------------------------------------------------------- +// ParsedHello field layout: covers the flattened segment (seg_* fields). +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, parsed_hello_segment_fields) { + urma::ParsedHello p; + std::memset(&p, 0, sizeof(p)); + p.buffer_size = 8192; + p.recv_buffer_cnt = 127; + p.jetty_id = 42; + p.tp_type = 1; + p.seg_va = 0x1000; + p.seg_len = 0x100000; + p.seg_token_id = 7; + EXPECT_EQ(8192u, p.buffer_size); + EXPECT_EQ(127u, p.recv_buffer_cnt); + EXPECT_EQ(42u, p.jetty_id); + EXPECT_EQ(1u, p.tp_type); + EXPECT_EQ(0x1000u, p.seg_va); + EXPECT_EQ(0x100000u, p.seg_len); + EXPECT_EQ(7u, p.seg_token_id); +} + +// --------------------------------------------------------------------------- +// SupportedByUrma: only baidu_std. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, supported_by_urma_protocol_allowlist) { + EXPECT_TRUE(urma::SupportedByUrma("baidu_std")); + EXPECT_FALSE(urma::SupportedByUrma("http")); + EXPECT_FALSE(urma::SupportedByUrma("hulu_pbrpc")); + EXPECT_FALSE(urma::SupportedByUrma("nshead")); +} + +// --------------------------------------------------------------------------- +// URMA mock smoke test: drives urma_init / device enumeration / context / +// jetty / post / poll. This works against either the real liburma (hardware +// env) or the bundled mock_urma.cpp (CI, no liburma). The mock returns +// device->name == "mock_urma_device" and completes posted WRs immediately. +// --------------------------------------------------------------------------- +class UrmaMockTest : public ::testing::Test { +protected: + void SetUp() override { + // Allow the (possibly mock) urma_init to run for this suite. + urma::g_skip_urma_init = false; + } + void TearDown() override { + // Restore the skip flag for other suites. + urma::g_skip_urma_init = true; + urma::g_urma_available.store(true, butil::memory_order_relaxed); + } +}; + +TEST_F(UrmaMockTest, init_and_enumerate_device) { + urma_init_attr_t init_attr{}; + urma_status_t st = urma_init(&init_attr); + // URMA_SUCCESS on first init; URMA_EEXIST acceptable if already inited. + ASSERT_TRUE(st == URMA_SUCCESS || st == URMA_EEXIST); + + int num_devices = 0; + urma_device_t** devices = urma_get_device_list(&num_devices); + ASSERT_NE(nullptr, devices); + ASSERT_GE(num_devices, 1); + // The mock names its device "mock_urma_device"; the real library exposes + // whatever URMA NIC is present. Either way the name must be non-empty. + EXPECT_GT(strlen(devices[0]->name), 0u); + urma_free_device_list(devices); +} + +TEST_F(UrmaMockTest, create_context_and_query_device) { + int num_devices = 0; + urma_device_t** devices = urma_get_device_list(&num_devices); + ASSERT_NE(nullptr, devices); + ASSERT_GE(num_devices, 1); + + uint32_t eid_cnt = 0; + urma_eid_info_t* eids = urma_get_eid_list(devices[0], &eid_cnt); + ASSERT_NE(nullptr, eids); + ASSERT_GE(eid_cnt, 1u); + urma_free_eid_list(eids); + + urma_context_t* ctx = urma_create_context(devices[0], 0); + ASSERT_NE(nullptr, ctx); + + urma_device_attr_t attr{}; + ASSERT_EQ(URMA_SUCCESS, urma_query_device(devices[0], &attr)); + EXPECT_GE(attr.dev_cap.max_jfc, 1u); + EXPECT_GE(attr.dev_cap.max_jetty, 1u); + + EXPECT_EQ(URMA_SUCCESS, urma_delete_context(ctx)); + urma_free_device_list(devices); +} + +TEST_F(UrmaMockTest, post_and_poll_completion) { + // Create context -> jfc -> jfr -> jetty (share jfr) -> post a send WR + // -> poll_jfc should return the user_ctx as a send completion. + int num_devices = 0; + urma_device_t** devices = urma_get_device_list(&num_devices); + ASSERT_NE(nullptr, devices); + ASSERT_GE(num_devices, 1); + uint32_t eid_cnt = 0; + urma_eid_info_t* eids = urma_get_eid_list(devices[0], &eid_cnt); + urma_free_eid_list(eids); + urma_context_t* ctx = urma_create_context(devices[0], 0); + ASSERT_NE(nullptr, ctx); + + urma_jfc_cfg_t jfc_cfg{}; + jfc_cfg.depth = 16; + urma_jfc_t* jfc = urma_create_jfc(ctx, &jfc_cfg); + ASSERT_NE(nullptr, jfc); + + urma_jfr_cfg_t jfr_cfg{}; + jfr_cfg.depth = 16; + jfr_cfg.trans_mode = URMA_TM_RM; + jfr_cfg.max_sge = 1; + jfr_cfg.min_rnr_timer = URMA_TYPICAL_MIN_RNR_TIMER; + jfr_cfg.jfc = jfc; + urma_jfr_t* jfr = urma_create_jfr(ctx, &jfr_cfg); + ASSERT_NE(nullptr, jfr); + + urma_jetty_cfg_t jetty_cfg{}; + jetty_cfg.flag.bs.share_jfr = 1; + jetty_cfg.jfs_cfg.depth = 16; + jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; + jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; + jetty_cfg.jfs_cfg.max_sge = 1; + jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; + jetty_cfg.jfs_cfg.err_timeout = URMA_TYPICAL_ERR_TIMEOUT; + jetty_cfg.jfs_cfg.jfc = jfc; + jetty_cfg.shared.jfr = jfr; + jetty_cfg.shared.jfc = jfc; + urma_jetty_t* jetty = urma_create_jetty(ctx, &jetty_cfg); + ASSERT_NE(nullptr, jetty); + + // Post a single send WR with user_ctx = 0xABCD. + urma_jfs_wr_t wr{}; + memset(&wr, 0, sizeof(wr)); + wr.opcode = URMA_OPC_SEND; + wr.flag.bs.complete_enable = 1; + wr.user_ctx = 0xABCD; + wr.next = nullptr; + urma_jfs_wr_t* bad = nullptr; + ASSERT_EQ(URMA_SUCCESS, urma_post_jetty_send_wr(jetty, &wr, &bad)); + + // Poll: the mock should hand back the completion immediately. + urma_cr_t crs[4]; + int n = urma_poll_jfc(jfc, 4, crs); + EXPECT_EQ(1, n); + if (n == 1) { + EXPECT_EQ(URMA_CR_SUCCESS, crs[0].status); + EXPECT_EQ(0xABCDULL, crs[0].user_ctx); + } + + // A second poll with nothing posted should return 0. + EXPECT_EQ(0, urma_poll_jfc(jfc, 4, crs)); + + urma_delete_jetty(jetty); + urma_delete_jfr(jfr); + urma_delete_jfc(jfc); + urma_delete_context(ctx); + urma_free_device_list(devices); +} + +#else // if BRPC_WITH_URMA + +// When URMA is not compiled in, the test file is a no-op so the build stays +// clean. The brpc_urma_unittest target still links (against brpc-shared which +// provides the empty stubs). + +#endif // if BRPC_WITH_URMA + +int main(int argc, char** argv) { + testing::InitGoogleTest(&argc, argv); + gflags::ParseCommandLineFlags(&argc, &argv, true); +#if BRPC_WITH_URMA + urma::g_skip_urma_init = true; + urma::g_urma_available.store(true, butil::memory_order_relaxed); +#endif + return RUN_ALL_TESTS(); +} From 4bb562ff9bd64437e02512d82bb1ac7794be70ba Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 22 Jul 2026 14:55:06 +0800 Subject: [PATCH 08/45] Remove vendored URMA SDK headers and simplify to v2-only binary handshake 1. SDK headers: delete vendored urma_api.h/urma_types.h/urma_opcode.h. Use system-installed URMA SDK via #include "urma_api.h" (same pattern as RDMA's #include ). CMake uses find_path(URMA_INCLUDE_PATH NAMES urma_api.h) + include_directories when not using the mock. 2. Handshake: remove v3 protobuf (urma_handshake.proto + UrmaHello message + v3 handshake classes). Keep only v2 binary handshake (HelloMessage Serialize/Deserialize via HostToNet/NetToHost + ReadFromFd/WriteToFd), matching RDMA's default v2 approach. Remove urma_client_handshake_version gflag. Handshake is now plain free functions, not a class hierarchy. 3. Remove stale friend declarations for deleted handshake classes. --- CMakeLists.txt | 22 +- docs/cn/urma.md | 3 +- docs/cn/urma_proposal.md | 16 +- docs/en/urma.md | 3 +- src/brpc/urma/mock_urma.cpp | 2 +- src/brpc/urma/urma_api.h | 1147 ---------------------- src/brpc/urma/urma_endpoint.cpp | 94 +- src/brpc/urma/urma_endpoint.h | 21 +- src/brpc/urma/urma_handshake.cpp | 146 +-- src/brpc/urma/urma_handshake.h | 111 +-- src/brpc/urma/urma_handshake.proto | 47 - src/brpc/urma/urma_helper.cpp | 4 +- src/brpc/urma/urma_helper.h | 4 +- src/brpc/urma/urma_opcode.h | 260 ----- src/brpc/urma/urma_types.h | 1430 ---------------------------- src/brpc/urma_transport.h | 4 - test/brpc_urma_unittest.cpp | 131 +-- 17 files changed, 133 insertions(+), 3312 deletions(-) delete mode 100644 src/brpc/urma/urma_api.h delete mode 100644 src/brpc/urma/urma_handshake.proto delete mode 100644 src/brpc/urma/urma_opcode.h delete mode 100644 src/brpc/urma/urma_types.h diff --git a/CMakeLists.txt b/CMakeLists.txt index b7be38deab..23f8bd4a7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -278,16 +278,18 @@ endif() if(WITH_URMA) message("brpc compile with urma") - # Try to find the real liburma. If it is not installed, fall back to the - # bundled mock (src/brpc/urma/mock_urma.cpp) so CI can build and test - # UrmaTransport on hosts without URMA hardware. The mock provides - # link-time stubs of every urma_* symbol the transport calls. + # Find the URMA SDK headers (urma/urma_api.h) and library. + # If liburma is not installed, fall back to the bundled mock + # (src/brpc/urma/mock_urma.cpp) so CI can build and test UrmaTransport + # on hosts without URMA hardware. The mock provides link-time stubs of + # every urma_* symbol the transport calls. + find_path(URMA_INCLUDE_PATH NAMES urma_api.h) find_library(URMA_LIB NAMES urma) - if(URMA_LIB) - message(STATUS "Found liburma: ${URMA_LIB}") + if(URMA_INCLUDE_PATH AND URMA_LIB) + message(STATUS "Found URMA SDK: ${URMA_INCLUDE_PATH}, ${URMA_LIB}") set(URMA_USE_MOCK 0) else() - message(WARNING "liburma not found; building UrmaTransport with the bundled mock (no real URMA hardware).") + message(WARNING "URMA SDK not found; building UrmaTransport with the bundled mock (no real URMA hardware).") set(URMA_USE_MOCK 1) endif() endif() @@ -316,6 +318,9 @@ include_directories( ${PROTOBUF_INCLUDE_DIRS} ${LEVELDB_INCLUDE_PATH} ) +if(WITH_URMA AND NOT URMA_USE_MOCK) + include_directories(${URMA_INCLUDE_PATH}) +endif() set(DYNAMIC_LIB ${GFLAGS_LIBRARY} @@ -585,8 +590,7 @@ set(PROTO_FILES idl_options.proto brpc/policy/mongo.proto brpc/trackme.proto brpc/streaming_rpc_meta.proto - brpc/proto_base.proto - brpc/urma/urma_handshake.proto) + brpc/proto_base.proto) file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/output/include/brpc) set(PROTOC_FLAGS ${PROTOC_FLAGS} -I${PROTOBUF_INCLUDE_DIR}) compile_proto(PROTO_HDRS PROTO_SRCS ${PROJECT_BINARY_DIR} diff --git a/docs/cn/urma.md b/docs/cn/urma.md index 6dbd64e634..965160fb3e 100644 --- a/docs/cn/urma.md +++ b/docs/cn/urma.md @@ -88,7 +88,7 @@ urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.{h,cpp}) 1. TCP 连接建立。 2. `UrmaConnect::StartConnect` 起客户端握手 bthread。 3. 双方在 TCP fd 上交换 `UrmaHello` 消息(v2 二进制 magic `URMA`, - v3 protobuf magic `URM3`),携带本地 EID、jetty id、recv buffer 数量、 + ,携带本地 EID、jetty id、recv buffer 数量、 以及扁平化的 buffer 池 segment。 4. 双方先调用 `urma_import_seg` **再**调用 `urma_import_jetty`,为远端 EID 建立传输路径(TP)路由。跳过 `import_seg` 会导致首个 SEND 被硬件以 @@ -123,7 +123,6 @@ block 都由注册 segment 支撑,发送路径可直接从 IOBuf block refs | `--urma_prepared_jetty_cnt` | 1024 | 预连接 Jetty+CQ 数量 | | `--urma_buffer_size` | 8192 | 池中每个 buffer 大小(字节) | | `--urma_buffer_count` | 65536 | 池中 buffer 数量 | -| `--urma_client_handshake_version` | 2 | 客户端握手版本(2=二进制,3=protobuf) | ## 与 UBRing 协同 diff --git a/docs/cn/urma_proposal.md b/docs/cn/urma_proposal.md index 459222a47e..f6b6197d99 100644 --- a/docs/cn/urma_proposal.md +++ b/docs/cn/urma_proposal.md @@ -87,7 +87,7 @@ UrmaTransport 与 `RdmaTransport`、`UBShmTransport` 并列为第四种 `Transpo | `brpc::UrmaTransport` | `src/brpc/urma_transport.{h,cpp}` | `Transport` 子类;持有 `UrmaEndpoint*` + fallback `TcpTransport`;三态 `URMA_ON/OFF/UNKNOWN`;`ContextInitOrDie` 校验协议/SSL | `rdma_transport.{h,cpp}` / `ubshm_transport.{h,cpp}` | | `urma::UrmaEndpoint` | `src/brpc/urma/urma_endpoint.{h,cpp}` | 每连接状态机;`SocketUser` 子类;`BAIDU_CACHELINE_ALIGNMENT`;Jetty/Segment 生命周期;CQ 轮询;收发数据路径 | `rdma/rdma_endpoint.{h,cpp}` | | `urma::UrmaConnect : public AppConnect` | 同上 | 客户端握手驱动;`StartConnect` 起后台 bthread 跑 `ProcessHandshakeAtClient` | `RdmaConnect` / `UBConnect` | -| `urma::UrmaHandshake` | `src/brpc/urma/urma_handshake.{h,cpp}` | 握手策略基类 + v2/v3 子类;`ParsedHello` 中间结构;magic 分发 | `rdma/rdma_handshake.{h,cpp}` | +| `urma::UrmaHandshake` | `src/brpc/urma/urma_handshake.{h,cpp}` | v2 二进制握手(`HelloMessage` Serialize/Deserialize + `ReadFromFd`/`WriteToFd`);`ParsedHello` 中间结构;magic `"URMA"` 分发 | `rdma/rdma_handshake.{h,cpp}` | | `urma::UrmaResource` | 同 endpoint | POD:`urma_jetty*`、`urma_cq*`、comp channel;预连接池 | `RdmaResource` | | `urma::BlockPool`(复用) | `src/brpc/rdma/block_pool.{h,cpp}` | 内存注册池;UrmaTransport 复用 RDMA 已有的 `block_pool`(URMA 底层同为 verbs 风格注册) | 现有 | | `urma::UrmaHelper` | `src/brpc/urma/urma_helper.{h,cpp}` | 全局初始化;`liburma` dlopen;设备/Jetty 管理 | `rdma/rdma_helper.{h,cpp}` | @@ -245,7 +245,7 @@ endif() stateDiagram-v2 [*] --> C_ALLOC_JETTY C_ALLOC_JETTY --> C_HELLO_SEND: AllocateResources()
(从预连接池取 Jetty+CQ,或新建) - C_HELLO_SEND --> C_HELLO_WAIT: handshake->SendLocalHello()
(发 "URMA"/"URM3" magic + 本地参数) + C_HELLO_SEND --> C_HELLO_WAIT: SendLocalHello()
(发 "URMA" magic + 本地参数) C_HELLO_WAIT --> C_ACK_SEND: negotiated=true
ApplyRemoteHello + BringUpJetty C_HELLO_WAIT --> C_ACK_SEND: negotiated=false → URMA_OFF C_ACK_SEND --> ESTABLISHED: URMA_ON
(WriteToFd flags_be bit0=URMA_OK) @@ -331,7 +331,6 @@ server.Start(port, &sopt); | `--urma_poller_yield` | false | `urma_endpoint.cpp` | 轮询循环 `bthread_yield` | | `--urma_disable_bthread` | false | `urma_endpoint.cpp` | 内联处理消息(不走 bthread) | | `--urma_trace_verbose` | false | `urma_endpoint.cpp` | 握手详细日志 | -| `--urma_client_handshake_version` | 2 | `urma_handshake.cpp` | 握手版本(2=binary,3=protobuf) | | `--urma_memory_pool_initial_size_mb` | 1024 | `block_pool.cpp` | 内存池初始大小(复用) | | `--urma_memory_pool_max_regions` | 3 | `block_pool.cpp` | 内存池区域上限(硬上限16) | @@ -359,13 +358,9 @@ src/brpc/ │ ├── urma_endpoint.cpp │ ├── urma_helper.h # 全局初始化, liburma dlopen, 设备管理 │ ├── urma_helper.cpp -│ ├── urma_handshake.h # 握手策略基类 + v2/v3 子类 +│ ├── urma_handshake.h # v2 二进制握手(HelloMessage + ParsedHello) │ ├── urma_handshake.cpp -│ ├── urma_handshake.proto # v3 protobuf 握手(参考 rdma_handshake.proto) -│ ├── mock_urma.cpp # URMA 链接时 mock(无 liburma 时编译,供 CI 测试) -│ ├── urma_api.h # URMA SDK API 声明(vendored from umdk) -│ ├── urma_types.h # URMA SDK 类型定义(vendored from umdk) -│ └── urma_opcode.h # URMA SDK opcode/常量(vendored from umdk) +│ └── mock_urma.cpp # URMA 链接时 mock(无 liburma 时编译,供 CI 测试) docs/ ├── cn/urma.md └── en/urma.md @@ -405,8 +400,7 @@ test/ 6. 单测 `brpc_urma_unittest.cpp`(参考 `brpc_rdma_unittest.cpp` 与新写的 `brpc_ubring_unittest.cpp`)。 ### Phase 2:性能与协同 -1. 握手 v3(protobuf `UrmaHello`),前向兼容。 -2. Polling 模式 + `PollerGroup` per-tag。 +1. Polling 模式 + `PollerGroup` per-tag。 3. Unsignaled/solicited 完成抑制(降低 CPU)。 4. 与 UBSHMTransport 的大小包协同文档与示例(方案 A)。 diff --git a/docs/en/urma.md b/docs/en/urma.md index 69fc6ac55f..7dbd8ab934 100644 --- a/docs/en/urma.md +++ b/docs/en/urma.md @@ -91,7 +91,7 @@ Like RDMA / UBRing, the control plane is TCP and the data plane is URMA: 1. TCP connect completes. 2. `UrmaConnect::StartConnect` spawns the client handshake bthread. 3. Both sides exchange a `UrmaHello` message (magic `URMA` for v2 binary, - `URM3` for v3 protobuf) over the TCP fd. The message carries the local + `URMA` magic) over the TCP fd. The message carries the local EID, jetty id, recv buffer count, and the flattened buffer-pool segment. 4. Each side calls `urma_import_seg` **before** `urma_import_jetty` to establish transport-path (TP) routing for the remote EID. Skipping the @@ -130,7 +130,6 @@ All flags use the `urma_` prefix (mirroring RDMA's `rdma_` prefix): | `--urma_prepared_jetty_cnt` | 1024 | Pre-allocated Jetty+CQ sets | | `--urma_buffer_size` | 8192 | Per-buffer size in the pool (bytes) | | `--urma_buffer_count` | 65536 | Number of buffers in the pool | -| `--urma_client_handshake_version` | 2 | Client wire version (2=binary, 3=protobuf) | ## Coexistence with UBRing diff --git a/src/brpc/urma/mock_urma.cpp b/src/brpc/urma/mock_urma.cpp index f7bc8dda2d..5e4c4a2338 100644 --- a/src/brpc/urma/mock_urma.cpp +++ b/src/brpc/urma/mock_urma.cpp @@ -36,7 +36,7 @@ #if BRPC_WITH_URMA -#include "brpc/urma/urma_api.h" +#include "urma_api.h" #include #include diff --git a/src/brpc/urma/urma_api.h b/src/brpc/urma/urma_api.h deleted file mode 100644 index 3f9a84425e..0000000000 --- a/src/brpc/urma/urma_api.h +++ /dev/null @@ -1,1147 +0,0 @@ -/* - * SPDX-License-Identifier: MIT - * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. - * Description: URMA API - * Author: Ouyang changchun, Bojie Li, Yan Fangfang, Qian Guoxin - * Create: 2021-07-13 - * Note: - * History: 2021-07-13 Create File - */ -#ifndef URMA_API_H -#define URMA_API_H - -#include -#include - -#include "urma_types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Init urma environment. - * @param[in] [Required] conf: urma init attr, a random uasid will be assigned when conf is null. - * Return: 0 on success, other value on error - */ -urma_status_t urma_init(urma_init_attr_t *conf); - -/** - * Un-init urma environment, it will free uasid. - * Return: 0 on success, other value on error - */ -urma_status_t urma_uninit(void); - -/* Device Manage API */ - /** - * Get device list. - * @param[out] num_devices: number of urma device; - * Return: pointer array of urma_device; NULL means no device returned; - * Note: urma_free_device_list() needs to be called to free memory; - */ -urma_device_t **urma_get_device_list(int *num_devices); - -/** -* free device list. -* @param[in] [Required] device_list: pointer array of urma_device,return value of urma_get_device_list. - Can be called after using urma_device list; -* Return: void; -*/ -void urma_free_device_list(urma_device_t **device_list); - -/** -* Get eid list. -* @param[in] [Required] dev: device pointer -* @param[out] cnt: Return the number of valid eids; -* Return: If it succeeds, it will return the eid_info array pointer, and the number of elements -* is cnt; if it fails, it will return NULL; it will be released by the user calling -*/ -urma_eid_info_t *urma_get_eid_list(urma_device_t *dev, uint32_t *cnt); - -/** -* free eid list. -* @param[in] [Required] eid_list: The eid array pointer to be released -* Return: void; -*/ -void urma_free_eid_list(urma_eid_info_t *eid_list); - -/** - * Get device by device name. - * @param[in] [Required] dev_name: device's name; - * Return: urma_device; NULL means no device returned; - */ -urma_device_t *urma_get_device_by_name(char *dev_name); - - /** - * Get device by device eid. - * @param[in] [Required] eid: device's eid; - * @param[in] [Required] type: device's transport type; - * Return: urma_device; NULL means no device returned; - */ -urma_device_t *urma_get_device_by_eid(urma_eid_t eid, urma_transport_type_t type); - -/** - * Query the attributes and capabilities of urma devices. - * @param[in] [Required] dev: urma_device; - * @param[out] dev_attr: Return device attributes, user needs to allocate and free the memory; - * Return: 0 on success, other value on error - */ -urma_status_t urma_query_device(urma_device_t *dev, urma_device_attr_t *dev_attr); - -/** - * Create an urma context on the urma device. - * @param[in] [Required] dev: urma device, by get_device apis. - * @param[in] [Required] eid_index: device's eid index. - * Return urma context pointer on success, NULL on error. - */ -urma_context_t *urma_create_context(urma_device_t *dev, uint32_t eid_index); - -/** - * Delete the created urma context. - * @param[in] [Required] ctx: handle of the created context. - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_context(urma_context_t *ctx); - -/** - * Set option of urma context. - * @param[in] [Required] ctx: handle of the created context. - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_context_opt(urma_context_t *ctx, urma_opt_name_t opt_name, const void *opt_value, - size_t opt_len); - -/** - * Create a jetty for completion (jfc). - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] jfc_cfg: configuration including: depth, flag, jfce, user context; - * Return: the handle of created jfc, not NULL on success; NULL on error - */ -urma_jfc_t *urma_create_jfc(urma_context_t *ctx, urma_jfc_cfg_t *jfc_cfg); - -/** - * Modify JFC attributes. - * @param[in] [Required] jfc: specify JFC; - * @param[in] [Required] attr: attributes to be modified; - * Return: 0 on success, other value on error - */ -urma_status_t urma_modify_jfc(urma_jfc_t *jfc, urma_jfc_attr_t *attr); - -/** - * Delete the created jfc. - * @param[in] [Required] jfc: handle of the created jfc; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jfc(urma_jfc_t *jfc); - -/** - * Alloc a jfc. - * @param[in] [Required] urma_ctx: the urma context created before; - * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; - * @param[out] [Required] jfc: handle of the allocated jfc; - * Return: 0 on success, other value on error - */ -urma_status_t urma_alloc_jfc(urma_context_t *urma_ctx, urma_jfc_cfg_t *cfg, urma_jfc_t **jfc); - -/** - * Set the opt of jfc. - * @param[in] [Required] jfc: the jfc allocated before; - * @param[in] [Required] opt: the opt to change cfg of jfc; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[in] [Required] buf: the buffer containing the value to set; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_jfc_opt(urma_jfc_t *jfc, uint64_t opt, void *buf, uint32_t len); - -/** - * Active the allocated jfc. - * @param[in] [Required] jfc: the jfc allocated before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_active_jfc(urma_jfc_t *jfc); - -/** - * Get the opt of jfc. - * @param[in] [Required] jfc: the jfc allocated before; - * @param[in] [Required] opt: the opt to change cfg of jfc; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[out] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_jfc_opt(urma_jfc_t *jfc, uint64_t opt, void *buf, uint32_t len); - -/** - * Deactive the created jfc. - * @param[in] [Required] jfc: the jfc actived before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_deactive_jfc(urma_jfc_t *jfc); - -/** - * Free the created jfc. - * @param[in] [Required] jfc: the jfc allocated before; - * After free, the jfc pointer is no longer allowed to be accessed. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_jfc(urma_jfc_t *jfc); - -/** - * Delete the created jfc in a batch. - * @param[in] [Required] jfc_arr: the array of the jfc pointer; - * @param[in] [Required] jfc_num: array length; - * @param[out] [Required] bad_jfc: the address of the first failed jfc pointer; - * Return: 0 on success, EINVAL on invalid parameter, other value on other batch - * delete errors. - * If delete error happens(except invalid parameter), stop at the first failed - * jfc and return, these jfc before the failed jfc will be deleted normally. - */ -urma_status_t urma_delete_jfc_batch(urma_jfc_t **jfc_arr, int jfc_num, urma_jfc_t **bad_jfc); - -/** - * Create a jetty for send (jfs). - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] jfs_cfg: address to pu the jfs config; - * Return: the handle of created jfs, not NULL on success, NULL on error - */ -urma_jfs_t *urma_create_jfs(urma_context_t *ctx, urma_jfs_cfg_t *jfs_cfg); - -/** - * Modify a jetty for send (jfs). - * @param[in] [Required] jfs: the jfs created before; - * @param[in] [Required] attr: attributes to be modified; - * Return: 0 on success, other value on error - */ -urma_status_t urma_modify_jfs(urma_jfs_t *jfs, urma_jfs_attr_t *attr); - -/** - * Query a jetty for send (jfs). - * @param[in] [Required] jfs: the jfs created before; - * @param[out] [Required] cfg: config of jfs; - * @param[out] [Required] attr: attributes of jfs; - * Return: 0 on success, other value on error - */ -urma_status_t urma_query_jfs(urma_jfs_t *jfs, urma_jfs_cfg_t *cfg, urma_jfs_attr_t *attr); - -/** - * Delete the created jfs. - * @param[in] [Required] jfs: the jfs created before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jfs(urma_jfs_t *jfs); - -/** - * Delete the created jfs in a batch. - * @param[in] [Required] jfs_arr: the array of the jfs pointer; - * @param[in] [Required] jfs_num: array length; - * @param[out] [Required] bad_jfs: the address of the first failed jfs pointer; - * Return: 0 on success, EINVAL on invalid parameter, other value on other batch - * delete errors. - * If delete error happens(except invalid parameter), stop at the first failed - * jfs and return, these jfs before the failed jfs will be deleted normally. - */ -urma_status_t urma_delete_jfs_batch(urma_jfs_t **jfs_arr, int jfs_num, urma_jfs_t **bad_jfs); - -/** - * Poll the CRs for all the WRs that posted to JFS, but are not completed. - * Call the API after modify JFS to error, or polled a suspened done CR. - * CRs with status of URMA_CR_WR_FLUSH_ERR will be returned on success. - * @param[in] [Required] jfs: the jfs created before; - * @param[in] [Required] cr_cnt: Number of CR expected to be received.; - * @param[out] [Required] cr: Address for storing CR; - * Return: the number of CR returned, 0 means no CR returned, -1 on error - */ -int urma_flush_jfs(urma_jfs_t *jfs, int cr_cnt, urma_cr_t *cr); - -/** - * Alloc a jfs. - * @param[in] [Required] urma_ctx: the urma context created before; - * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; - * @param[out] [Required] jfs: handle of the allocated jfs; - * Return: 0 on success, other value on error - */ -urma_status_t urma_alloc_jfs(urma_context_t *urma_ctx, urma_jfs_cfg_t *cfg, urma_jfs_t **jfs); - -/** - * Set the opt of jfs. - * @param[in] [Required] jfs: the jfs allocated before; - * @param[in] [Required] opt: the opt to change cfg of jfs; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[in] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_jfs_opt(urma_jfs_t *jfs, uint64_t opt, void *buf, uint32_t len); - -/** - * Active the created jfs. - * @param[in] [Required] jfs: the jfs allocated before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_active_jfs(urma_jfs_t *jfs); - -/** - * Get the opt of jfs. - * @param[in] [Required] jfs: the jfs allocated before; - * @param[in] [Required] opt: the opt to change cfg of jfs; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[out] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_jfs_opt(urma_jfs_t *jfs, uint64_t opt, void *buf, uint32_t len); - -/** - * Deactive the created jfs. - * @param[in] [Required] jfs: the jfs actived before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_deactive_jfs(urma_jfs_t *jfs); - -/** - * Free the created jfs. - * @param[in] [Required] jfs: the jfs allocated before; - * After free, the jfs pointer is no longer allowed to be accessed. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_jfs(urma_jfs_t *jfs); - - /** - * Create a jetty for receive (jfr). - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] jfr_cfg: address to put the jfr config; - * Return: the handle of created jfr, not NULL on success, NULL on error - */ -urma_jfr_t *urma_create_jfr(urma_context_t *ctx, urma_jfr_cfg_t *jfr_cfg); - -/** - * Modify JFR attributes. - * @param[in] [Required] jfr: specify JFR; - * @param[in] [Required] attr: attributes to be modified; - * Return: 0 on success, other value on error - */ -urma_status_t urma_modify_jfr(urma_jfr_t *jfr, urma_jfr_attr_t *attr); - -/** - * Query a jetty for recv(jfr). - * @param[in] [Required] jfr: the jfr created before; - * @param[out] [Required] cfg: config of jfr; - * @param[out] [Required] attr: attributes of jfr; - * Return: 0 on success, other value on error - */ -urma_status_t urma_query_jfr(urma_jfr_t *jfr, urma_jfr_cfg_t *cfg, urma_jfr_attr_t *attr); - -/** - * Delete the created jfr. - * @param[in] [Required] jfr: the jfr created before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jfr(urma_jfr_t *jfr); - -/** - * Delete the created jfr in a batch. - * @param[in] [Required] jfr_arr: the array of the jfr pointer; - * @param[in] [Required] jfr_num: array length; - * @param[out] [Required] bad_jfr: the address of the first failed jfr pointer; - * Return: 0 on success, EINVAL on invalid parameter, other value on other batch - * delete errors. - * If delete error happens(except invalid parameter), stop at the first failed - * jfr and return, these jfr before the failed jfr will be deleted normally. - */ -urma_status_t urma_delete_jfr_batch(urma_jfr_t **jfr_arr, int jfr_num, urma_jfr_t **bad_jfr); - -/** - * Import a remote jfr to local node. - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] rjfr: the information of remote jfr to import into user node, trans_mode required, - * trans_mode same to create_jfr trans_mode; - * @param[in] [Required] token_value: token to put into output jetty/protection table; - * Return: the address of target jfr, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jfr(urma_context_t *ctx, urma_rjfr_t *rjfr, urma_token_t *token_value); - -/** - * Import a remote jfr to local node by control plane. - * Note: trans_mode from rjfr should be the same as the trans_mode of get_tp_list, - * users should obey this rule in case of unexpected errors. - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] rjfr: the information of remote jfr to import into user node, trans_mode required, - * trans_mode same to create_jfr trans_mode; - * @param[in] [Required] token_value: token to put into output jetty/protection table; - * @param[in] [Required] cfg: tp active configuration to exchange with target; - * Return: the address of target jfr, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jfr_ex(urma_context_t *ctx, urma_rjfr_t *rjfr, urma_token_t *token_value, - urma_import_jfr_ex_cfg_t *cfg); - -/** - * Unimport the imported remote jfr. - * @param[in] [Required] target_jfr: the target jfr to unimport; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unimport_jfr(urma_target_jetty_t *target_jfr); - -/** - * Advise jfr: construct the transport channel for jfs and remote jfr. - * @param[in] [Required] jfs: jfs to use to construct the transport channel; - * @param[in] [Required] tjfr: target jfr information including full qualified jfr id; - * Return: 0 on success, URMA_EEXIST if the jfr has been advised, other value on error - */ -urma_status_t urma_advise_jfr(urma_jfs_t *jfs, urma_target_jetty_t *tjfr); - -/** - * Async API for urma_advise_jfr - * Advise jfr: construct the transport channel for jfs and remote jfr. - * @param[in] [Required] jfs: jfs to use to construct the transport channel; - * @param[in] [Required] tjfr: target jfr information including full qulified jfr id; - * @param[in] [Required] cb_func: user defined callback function. - * @param[in] [Required] cb_arg: user defined arguments for the callback function. - * Return: 0 on success, URMA_EEXIST if the jfr has been advised, other value on error. - * Note: User must define callback function to handle result, - * as the async respone will call the cb_func and pass the result to it. - */ -urma_status_t urma_advise_jfr_async(urma_jfs_t *jfs, urma_target_jetty_t *tjfr, urma_advise_async_cb_func cb_fun, - void *cb_arg); - -/** - * Unadvise jfr: disconnect the transport channel for jfs and remote jfr. Optional API for optimization - * @param[in] [Required] jfs: jfs to use to construct the transport channel; - * @param[in] [Required] tjfr: target jfr information including full qualified jfr id; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unadvise_jfr(urma_jfs_t *jfs, urma_target_jetty_t *tjfr); - -/** - * Alloc a jfr. - * @param[in] [Required] urma_ctx: the urma context created before; - * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; - * @param[out] [Required] jfr: handle of the allocated jfr; - * Return: 0 on success, other value on error - */ -urma_status_t urma_alloc_jfr(urma_context_t *urma_ctx, urma_jfr_cfg_t *cfg, urma_jfr_t **jfr); - -/** - * Set the opt of jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * @param[in] [Required] opt: the opt to change cfg of jfr; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[in] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_jfr_opt(urma_jfr_t *jfr, uint64_t opt, void *buf, uint32_t len); - -/** - * Active the allocated jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * Return: 0 on success, other value on error - */ -urma_status_t urma_active_jfr(urma_jfr_t *jfr); - -/** - * Get the opt of jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * @param[in] [Required] opt: the opt to change cfg of jfr; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[out] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_jfr_opt(urma_jfr_t *jfr, uint64_t opt, void *buf, uint32_t len); - -/** - * Deactive the actived jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * Return: 0 on success, other value on error - */ -urma_status_t urma_deactive_jfr(urma_jfr_t *jfr); - -/** - * Free the allocated jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * After free, the jfr pointer is no longer allowed to be accessed. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_jfr(urma_jfr_t *jfr); - -/** - ******************** Beginning of URMA JETTY APIs *************************** - */ - -/** - * Create jetty, which is a pair of jfs and jfr - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] jetty_cfg: pointer of the jetty config; - * Return: the handle of created jetty, not NULL on success, NULL on error - */ -urma_jetty_t *urma_create_jetty(urma_context_t *ctx, urma_jetty_cfg_t *jetty_cfg); - -/** - * Modify jetty attributes. - * @param[in] [Required] jetty: specify jetty; - * @param[in] [Required] attr: attributes to be modified; - * Return: 0 on success, other value on error - */ -urma_status_t urma_modify_jetty(urma_jetty_t *jetty, urma_jetty_attr_t *attr); - -/** - * Query jetty attributes. - * @param[in] [Required] jetty: specify jetty; - * @param[out] [Required] cfg: cconfig to query; - * @param[out] [Required] attr: attributes to query; - * Return: 0 on success, other value on error - */ -urma_status_t urma_query_jetty(urma_jetty_t *jetty, urma_jetty_cfg_t *cfg, urma_jetty_attr_t *attr); - -/** - * Delete the created jetty. - * @param[in] [Required] jetty: the jetty created before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jetty(urma_jetty_t *jetty); - -/** - * Delete the created jetty in a batch. - * @param[in] [Required] jetty_arr: the array of the jetty pointer; - * @param[in] [Required] jetty_num: array length; - * @param[out] [Required] bad_jetty: the address of the first failed jetty pointer; - * Return: 0 on success, EINVAL on invalid parameter, other value on other batch - * delete errors. - * If delete error happens(except invalid parameter), stop at the first failed - * jetty and return, these jetty before the failed jetty will be deleted normally. - */ -urma_status_t urma_delete_jetty_batch(urma_jetty_t **jetty_arr, int jetty_num, urma_jetty_t **bad_jetty); - -/** - * Import a remote jetty. - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, - * trans_mode same to create_jetty trans_mode; - * @param[in] [Required] token_value: token to put into output jetty protection table; - * Return: the address of target jetty, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jetty(urma_context_t *ctx, urma_rjetty_t *rjetty, urma_token_t *token_value); - -/** - * Import a remote jetty by control plane. - * Note: trans_mode from rjetty should be the same as the trans_mode of get_tp_list, - * users should obey this rule in case of unexpected errors. - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, - * trans_mode same to create_jetty trans_mode; - * @param[in] [Required] token_value: token to put into output jetty protection table; - * @param[in] [Required] cfg: tp active configuration to exchange with target; - * Return: the address of target jetty, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jetty_ex(urma_context_t *ctx, urma_rjetty_t *rjetty, urma_token_t *token_value, - urma_import_jetty_ex_cfg_t *cfg); - -/** - * Unimport the imported remote jetty. - * @param[in] [Required] tjetty: the target jetty to unimport; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unimport_jetty(urma_target_jetty_t *tjetty); - -/** - * Advise jetty: construct the transport channel between local jetty and remote jetty. - * @param[in] [Required] jetty: local jetty to construct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * Return: 0 on success, URMA_EEXIST if the jetty has been advised, other value on error - * Note: A local jetty can be advised with several remote jetties. A connectionless jetty is free to call the adivse API - */ -/* todo: available after implementing URMA_TM_RM(IB_RC) */ -urma_status_t urma_advise_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); - -/** - * Unadvise jetty: deconstruct the transport channel between local jetty and remote jetty. - * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * Return: 0 on success, other value on error - */ -/* todo: available after implementing URMA_TM_RM(IB_RC) */ -urma_status_t urma_unadvise_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); - -/** - * Bind jetty: construct the transport channel between local jetty and remote jetty. - * @param[in] [Required] jetty: local jetty to construct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error - * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. - */ -urma_status_t urma_bind_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); - -/** - * Bind jetty: construct the transport channel between local jetty and remote jetty by control plane. - * Note: trans_mode from tjetty should be the same as the trans_mode of get_tp_list, - * users should obey this rule in case of unexpected errors. - * @param[in] [Required] jetty: local jetty to construct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error; - * @param[in] [Required] cfg: tp active configuration to exchange with target; - * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. - */ -urma_status_t urma_bind_jetty_ex(urma_jetty_t *jetty, urma_target_jetty_t *tjetty, urma_bind_jetty_ex_cfg_t *cfg); - -/** - * Unbind jetty: deconstruct the transport channel between local jetty and remote jetty. - * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unbind_jetty(urma_jetty_t *jetty); - -/** - * Poll the CRs for all the WRs that posted to Jetty, but are not completed. - * Call the API after modify Jetty to error, or polled a suspened done CR. - * CRs with status of URMA_CR_WR_FLUSH_ERR will be returned on success. - * @param[in] [Required] jetty: the jetty created before; - * @param[in] [Required] cr_cnt: Number of CR expected to be received.; - * @param[out] [Required] cr: Address for storing CR; - * Return: the number of CR returned, 0 means no CR returned, -1 on error - */ -int urma_flush_jetty(urma_jetty_t *jetty, int cr_cnt, urma_cr_t *cr); - -/** - * Import a remote jetty asynchronously. - * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; - * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, - * trans_mode same to create_jetty trans_mode; - * @param[in] [Required] token_value: token to put into output jetty protection table; - * @param[in] [Required] user_ctx: user_ctx create by user; - * @param[in] [Required] timeout: task timeout set by user (milliseconds); - * Return: the address of target jetty, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jetty_async(urma_notifier_t *notifier, const urma_rjetty_t *rjetty, - const urma_token_t *token_value, uint64_t user_ctx, int timeout); - -/** - * Unimport the imported remote jetty asynchronously. - * @param[in] [Required] tjetty: the target jetty to unimport; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unimport_jetty_async(urma_target_jetty_t *tjetty); - -/** - * Bind jetty asynchronously: construct the transport channel between local jetty and remote jetty. - * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; - * @param[in] [Required] jetty: local jetty to construct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * @param[in] [Required] user_ctx: user_ctx create by user; - * @param[in] [Required] timeout: task timeout set by user (milliseconds); - * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error - * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. - */ -urma_status_t urma_bind_jetty_async(urma_notifier_t *notifier, urma_jetty_t *jetty, urma_target_jetty_t *tjetty, - uint64_t user_ctx, int timeout); - -/** - * Unbind jetty: deconstruct the transport channel between local jetty and remote jetty asynchronously. - * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unbind_jetty_async(urma_jetty_t *jetty); - -/** - * Create a data structure for sensing asynchronous link establishment results. - * @param[in] [Required] ctx: the urma context created before; - * Return: the address of urma notifier, not NULL on success, NULL on error - */ -urma_notifier_t *urma_create_notifier(urma_context_t *ctx); - -/** - * Delete the created notifier. - * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_notifier(urma_notifier_t *notifier); - -/** - * Alloc a jetty. - * @param[in] [Required] urma_ctx: the urma context created before; - * @param[in] [Required] jetty_cfg: configuration including: depth, flag, jfce, user context; - * @param[out] [Required] jetty: handle of the allocated jetty; - * Return: 0 on success, other value on error - */ -urma_status_t urma_alloc_jetty(urma_context_t *urma_ctx, urma_jetty_cfg_t *cfg, urma_jetty_t **jetty); - -/** - * Set the opt of jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * @param[in] [Required] opt: the opt to change cfg of jetty; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[in] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_jetty_opt(urma_jetty_t *jetty, uint64_t opt, void *buf, uint32_t len); - -/** - * Active the allocated jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * Return: 0 on success, other value on error - */ -urma_status_t urma_active_jetty(urma_jetty_t *jetty); - -/** - * Get the opt of jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * @param[in] [Required] opt: the opt to change cfg of jetty; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[out] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_jetty_opt(urma_jetty_t *jetty, uint64_t opt, void *buf, uint32_t len); - -/** - * Deactive the actived jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * Return: 0 on success, other value on error - */ -urma_status_t urma_deactive_jetty(urma_jetty_t *jetty); - -/** - * Free the allocated jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * After free, the jfc pointer is no longer allowed to be accessed. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_jetty(urma_jetty_t *jetty); - -/** - * Wait for asynchronous event notification to obtain the connection establishment result. - * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; - * @param[in] [Required] cnt: expected number of target jetty to return; - * @param[in] [Required] timeout: max time to wait (milliseconds), - timeout = 0: return immediately even if no events are ready, - timeout = -1: an infinite timeout; - * @param[out] [Required] notify: created by user to store target jetty results; - * Return: the number of target jetty returned, 0 means no target jetty returned, -1 on error - */ -int urma_wait_notify(urma_notifier_t *notifier, uint32_t cnt, urma_notify_t *notify, int timeout); - -/** - * This interface is no longer functional and will be removed later. - * Keep parameter checks to ensure the function works as before. - */ -urma_status_t urma_ack_notify(urma_context_t *ctx, uint32_t cnt, urma_notify_t *notify); - -/** - ******************** Beginning of URMA JETTY GROUP APIs *************************** - */ - -/** - * Create jetty group - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] cfg: pointer of the jetty group config; - * Return: the handle of created jetty group, not NULL on success, NULL on error - */ -urma_jetty_grp_t *urma_create_jetty_grp(urma_context_t *ctx, urma_jetty_grp_cfg_t *cfg); - -/** - * Destroy jetty group - * @param[in] [Required] jetty_grp: the Jetty group created before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jetty_grp(urma_jetty_grp_t *jetty_grp); - -/** - * Create a jfce - * @param[in] [Required] ctx: the urma context created before; - * Return: the address of created jfce, not NULL on success, NULL on error - */ -urma_jfce_t *urma_create_jfce(urma_context_t *ctx); - -/** - * Delete a jfce - * @param[in] [Required] jfce: the jfce to be deleted; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jfce(urma_jfce_t *jfce); - -/** - * Get asyn event. - * @param[in] [Required] ctx: handle of the created urma context; - * @param[out] [Required] event: the address to put event - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_async_event(urma_context_t *ctx, urma_async_event_t *event); - -/** - * Ack asyn event. - * @param[in] [Required] event: the address to ack event; - * Return: void - */ -void urma_ack_async_event(urma_async_event_t *event); - -/** - * Request to assign a token id. token id is used to register the segment with the protection table. - * @param[in] [Required] ctx: specifies the urma context. - * Return: pointer to key id on success, NULL on error. - */ -urma_token_id_t *urma_alloc_token_id(urma_context_t *ctx); - -/** - * Request to assign a token id. token id is used to register multiple segments with the protection table. - * Can use table mode or entry mode based on flag. - * @param[in] [Required] ctx: specifies the urma context. - * @param[in] [Required] flag: decides the mode of token id. use table mode if enable multi_seg in flag. - * Return: pointer to key id on success, NULL on error. - * Note: if use table mode, the VA address page alignment is required when register the segments. - */ -urma_token_id_t *urma_alloc_token_id_ex(urma_context_t *ctx, urma_token_id_flag_t flag); - -/** - * Request to release token id. - * @param[in] [Required] token_id: Specifies the token id to be released. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_token_id(urma_token_id_t *token_id); - -/** - * Register a memory segment on specified va address for local or remote access. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] seg_cfg: Specify cfg of seg to be registered, including address, len, token, and so on; - * Return: pointer to target segment on success, NULL on error - * And the immedidate data wrote from clients is polled from this common jfc. - */ -urma_target_seg_t *urma_register_seg(urma_context_t *ctx, urma_seg_cfg_t *seg_cfg); - -/** - * Unregister a local memory segment on specified va address. - * @param[in] [Required] target_seg: target segment to be unregistered; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unregister_seg(urma_target_seg_t *target_seg); - -/** - * Import a memory segment on specified ubva address. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] seg: handle of memory segment to import; - * @param[in] [Required] token_value: token of remote side to put into output protection table; - * @param[in] [Optional] addr: the virtual address to which the segment will be mapped; - * @param[in] [Required] flag: flag to indicate the import attribute of memory segment; - * Return: pointer to target segment on success, NULL on error - */ -urma_target_seg_t *urma_import_seg(urma_context_t *ctx, urma_seg_t *seg, urma_token_t *token_value, uint64_t addr, - urma_import_seg_flag_t flag); - -/** - * Unimport a memory segment on specified ubva address. - * @param[in] [Required] tseg: the address of the target segment to unimport; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unimport_seg(urma_target_seg_t *tseg); - -/** - * post a request to read, write, atomic or send data. - * @param[in] jfs: the jfs created before, which is used to put command; - * @param[in] wr: the posting request all information, including src addr, dst addr, len, jfc, flag, ordering etc. - * @param[in] bad_wr: the first of failure request. - * Return: 0 on success, other value on error - */ -urma_status_t urma_post_jfs_wr(urma_jfs_t *jfs, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr); - -/** - * post a request to recv data. - * @param[in] jfr: the jfr created before, which is used to put command; - * @param[in] wr: the posting request all information, including sge, flag. - * @param[in] bad_wr: the first of failure request. - * Return: 0 on success, other value on error - */ -urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr); - -/** - * post a request to read, write, atomic or send data. - * @param[in] jetty: the jetty created before, which is used to put command; - * @param[in] wr: the posting request all information, including src addr, dst addr, len, jfc, flag, ordering etc. - * @param[in] bad_wr: the first of failure request. - * Return: 0 on success, other value on error - */ -urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr); - -/** - * post a request to recv data. - * @param[in] jetty: the jetty created before, which is used to put command; - * @param[in] wr: the posting request all information, including sge, flag. - * @param[in] bad_wr: the first of failure request. - * Return: 0 on success, other value on error - */ -urma_status_t urma_post_jetty_recv_wr(urma_jetty_t *jetty, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr); - -/** - * Write data to remote node. - * @param[in] jfs: the jfs created before, which is used to put command; - * @param[in] target_jfr: destination jetty receiver; - * @param[in] dst_tseg: the dst target seg imported before; - * @param[in] src_tseg: the src target seg registered before; - * @param[in] dst: destination address(mapping va on user node or rva in ubva on home node) to be written into - * @param[in] src: source address(local process address space) to fetch data - * @param[in] len: the data len to be written - * @param[in] flag: flag to control jfs work request attritube - * @param[in] user_ctx: the user context, such as request id(rid) etc. - * Return: 0 on success, other value on error - */ -urma_status_t urma_write(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *dst_tseg, - urma_target_seg_t *src_tseg, uint64_t dst, uint64_t src, uint32_t len, urma_jfs_wr_flag_t flag, - uint64_t user_ctx); - -/** - * Read data from remote node. - * @param[in] jfs: the jfs created before, which is used to put command; - * @param[in] target_jfr: destination jetty receiver; - * @param[in] dst_tseg: the seg registered before; - * @param[in] src_tseg: the target seg imported before; - * @param[in] dst: destination address(local process address space) to be written into - * @param[in] src: source address(mapping va or rva in ubva) to fetch data - * @param[in] len: the data len to be written - * @param[in] flag: the flag to control jfs work request attritube - * @param[in] user_ctx: the user context, such as request id(rid) etc. - * Return: 0 on success, other value on error - */ -urma_status_t urma_read(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *dst_tseg, - urma_target_seg_t *src_tseg, uint64_t dst, uint64_t src, uint32_t len, urma_jfs_wr_flag_t flag, - uint64_t user_ctx); - -/** - * Send data to remote node. - * @param[in] jfs: the jfs created before, which is used to put command; - * @param[in] target_jfr: destination jetty receiver(with full qualifed jfr id); - * @param[in] src_tseg: the seg registered before, can be NULL only when flag.bs.inline_flag == URMA_INLINE_ENABLE - * @param[in] src: source address for sending; - * @param[in] len: data length; - * @param[in] flag: flag to control jfs work request attritube - * @param[in] user_ctx: the user context, such as request id(rid) etc; - * Return: 0 on success, other value on error. - */ -urma_status_t urma_send(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *src_tseg, uint64_t src, - uint32_t len, urma_jfs_wr_flag_t flag, uint64_t user_ctx); - -/** - * Assign local buffer to receive data from remote node. - * @param[in] jfr: jetty receiver; - * @param[in] recv_tseg: the locally registered segment before for receiving; - * @param[in] buf: buffer address for receiving; - * @param[in] len: buffer length; - * @param[in] user_ctx: the user context, such as request id(rid) etc; - * Return: 0 on success, other value on error. - */ -urma_status_t urma_recv(urma_jfr_t *jfr, urma_target_seg_t *recv_tseg, uint64_t buf, uint32_t len, uint64_t user_ctx); - -/** - * Poll jfc to get completion record. - * @param[in] jfc: jetty completion queue to poll - * @param[in] cr_cnt: the expected number of completion record to get - * @param[out] cr: the completion record array to fill at least cr_cnt completion records - * Return: the number of completion record returned, 0 means no completion record returned, less than 0 on error - * Note that: at most 16 completion records can be polled for RDMA device - */ -int urma_poll_jfc(urma_jfc_t *jfc, int cr_cnt, urma_cr_t *cr); - -/** - * Arm jfc with interrupt mode. - * @param[in] jfc: jetty completion queue to arm to interrupt mode - * @param[in] solicited_only: indicate it will trigger event only for packets with solicited flag. - * Return: 0 on success, other value on error - */ -urma_status_t urma_rearm_jfc(urma_jfc_t *jfc, bool solicited_only); - -/** - * Wait jfce for event of any completion message is generated. - * @param[in] jfce: jetty event channel to wait on - * @param[in] jfc_cnt: expected jfc count to return - * @param[in] time_out: max time to wait (milliseconds), - * timeout = 0: return immediately even if no events are ready, - * timeout = -1: an infinite timeout - * @param[out] jfc: address to put the jfc handle - * Return: the number of jfc returned, 0 means no jfc returned, -1 on error - * Note: User should check error when wait_jfc returns 0, errno ERESTARTSYS(512) - * means wait operation was interrupted by a signal and this error should - * be ignored, users should continue to wait jfc. - */ -int urma_wait_jfc(urma_jfce_t *jfce, uint32_t jfc_cnt, int time_out, urma_jfc_t *jfc[]); - -/** - * Confirm that a JFC generated event has been processed. - * @param[in] jfc: jfc pointer array to be acknowledged - * @param[in] nevents: event count array to be acknowledged - * @param[in] jfc_cnt: number of elements in the array - * Return: void - */ -void urma_ack_jfc(urma_jfc_t *jfc[], uint32_t nevents[], uint32_t jfc_cnt); - -/** - * Get or allocate a uasid. - * @param[out] uasid: the address to put uasid - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_uasid(uint32_t *uasid); - -/** - * User defined control of the context. - * @param[in] ctx: the created urma context pointer; - * @param[in] in: user ioctl cmd; - * @param[out] out: result of execution; - * Return: 0 on success, other value on error - * Note: This API only supports UB hardware currently. - */ -urma_status_t urma_user_ctl(urma_context_t *ctx, urma_user_ctl_in_t *in, urma_user_ctl_out_t *out); - -/** - * User register own log function, default rsyslog. - * @param[in] func: log callback func; - * Return: 0 on success, other value on error - */ -urma_status_t urma_register_log_func(urma_log_cb_t func); - -/** - * User register location log function with file, function and line info. - * @param[in] func: location log callback function; - * Return: 0 on success, other value on error - * Note: If both urma_register_log_func and urma_register_loc_log_func are called, - * the last registered function will be used. - */ -urma_status_t urma_register_loc_log_func(urma_loc_log_cb func); - -/** - * User unregister own log function, use rsyslog. - * Return: 0 on success, other value on error - */ -urma_status_t urma_unregister_log_func(void); - -/** - * get log level. - * Return: urma_vlog_level_t - */ -urma_vlog_level_t urma_log_get_level(void); - -/** - * set log level. - * @param[in] level: log level to set; - */ -void urma_log_set_level(urma_vlog_level_t level); - -/** - * get log thread tag. - * Return: const char * - */ -const char *urma_log_get_thread_tag(void); - -/** - * set log thread tag. - * @param[in] tag: log tag per thread; - */ -void urma_log_set_thread_tag(const char *tag); - -/** - * User tp only. - * Get tpn of tp created when creating jetty. - * @param[in] jetty: the created jetty pointer; - * Return: >= 0 on success, return as tpn; < 0 on error - */ -int urma_get_tpn(urma_jetty_t *jetty); - -/** - * Get net address info list, user tp only. - * @param[in] ctx: the created urma context pointer; - * @param[out] cnt: numer of net address info; - * Return: pointer of net address list; NULL on error - */ -urma_net_addr_info_t *urma_get_net_addr_list(urma_context_t *ctx, uint32_t *cnt); - -/** - * Free net address info list. - * @param[in] net_addr_list: pointer of net address list - */ -void urma_free_net_addr_list(urma_net_addr_info_t *net_addr_list); - -/** - * Modify tp by user connection. - * @param[in] ctx: the created urma context pointer; - * @param[in] tpn: tpn of tp created before; - * @param[in] cfg: tp configurations filled by user; - * @param[in] attr: tp attributes filled by user; - * @param[in] mask: bitmap configurations for tp attributes; - * Return: 0 on success; other values on error - */ -int urma_modify_tp(urma_context_t *ctx, uint32_t tpn, urma_tp_cfg_t *cfg, urma_tp_attr_t *attr, - urma_tp_attr_mask_t mask); - -/** - * get available tp list from control plane. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] tp_cfg: tp configuration to get; - * @param[in && out] [Required] tp_cnt: tp_cnt is the length of tp_list buffer as in parameter; - * tp_cnt is the number of tp as out parameter; - * @param[out] [Required] tp_list: tp list to get, the buffer is allocated by user; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_tp_list(urma_context_t *ctx, urma_get_tp_cfg_t *cfg, uint32_t *tp_cnt, urma_tp_info_t *tp_list); - -/** - * set tp attribution values in control plane. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] tp_handle: tp_handle got by urma_get_tp_list; - * @param[in] [Required] tp_attr_cnt: number of tp attributions; - * @param[in] [Required] tp_attr_bitmap: tp attributions bitmap, current bitmap is as follow: - * 0-retry_times_init: 3 bit 1-at: 5 bit 2-SIP: 128 bit - * 3-DIP: 128 bit 4-SMA: 48 bit 5-DMA: 48 bit - * 6-vlan_id: 12 bit 7-vlan_en: 1 bit 8-dscp: 6 bit - * 9-at_times: 5 bit 10-sl: 4 bit 11-ttl: 8 bit - * @param[in] [Required] tp_attr: tp attribution values to set; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_tp_attr(const urma_context_t *ctx, const uint64_t tp_handle, const uint8_t tp_attr_cnt, - const uint32_t tp_attr_bitmap, const urma_tp_attr_value_t *tp_attr); - -/** - * get tp attribution values in control plane. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] tp_handle: tp_handle got by urma_get_tp_list; - * @param[out] [Required] tp_attr_cnt: number of tp attributions; - * @param[out] [Required] tp_attr_bitmap: tp attributions bitmap, current bitmap is as follow: - * 0-retry_times_init: 3 bit 1-at: 5 bit 2-SIP: 128 bit - * 3-DIP: 128 bit 4-SMA: 48 bit 5-DMA: 48 bit - * 6-vlan_id: 12 bit 7-vlan_en: 1 bit 8-dscp: 6 bit - * 9-at_times: 5 bit 10-sl: 4 bit 11-ttl: 8 bit - * @param[out] [Required] tp_attr: tp attribution values to get; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_tp_attr(const urma_context_t *ctx, const uint64_t tp_handle, uint8_t *tp_attr_cnt, - uint32_t *tp_attr_bitmap, urma_tp_attr_value_t *tp_attr); - -/** - * get eid by ip info - * @param[in] ctx: the created urma context pointer; - * @param[in] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); - * @param[out] eid: device's eid; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_eid_by_ip(const urma_context_t *ctx, const urma_net_addr_t *net_addr, urma_eid_t *eid); - -/** - * get ip info by eid. - * @param[in] ctx: the created urma context pointer; - * @param[in] eid: device's eid; - * @param[out] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_ip_by_eid(const urma_context_t *ctx, const urma_eid_t *eid, urma_net_addr_t *net_addr); - - -/** - * get source mac address. - - * @param[in] ctx: the created urma context pointer; - * @param[out] mac: the mac address of source; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_smac(const urma_context_t *ctx, uint8_t *mac); - -/** - * get dest mac address. - * @param[in] ctx: the created urma context pointer; - * @param[in] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); - * @param[out] mac: the mac address of dest; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_dmac(const urma_context_t *ctx, const urma_net_addr_t *net_addr, uint8_t *mac); - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 580ff3c490..989e8c308d 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -38,10 +38,9 @@ #include "brpc/input_messenger.h" #include "brpc/socket.h" -#include "brpc/urma/urma_api.h" +#include "urma_api.h" #include "brpc/urma/urma_endpoint.h" #include "brpc/urma/urma_handshake.h" -#include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma/urma_helper.h" #include "brpc/urma_transport.h" @@ -240,81 +239,6 @@ void UrmaEndpoint::FillLocalHelloV2(v2_wire::HelloMessage* out) const { out->seg_token_id = p.seg_token_id; } -void UrmaEndpoint::FillLocalHelloV3(UrmaHello* out) const { - ParsedHello p; - MakeLocalParsedHello(&p); - out->set_buffer_size(p.buffer_size); - out->set_recv_buffer_cnt(p.recv_buffer_cnt); - out->set_jetty_id(p.jetty_id); - out->set_eid(p.eid, 16); - out->set_uasid(p.uasid); - out->set_tp_type(p.tp_type); - out->set_seg_eid(p.seg_eid, 16); - out->set_seg_uasid(p.seg_uasid); - out->set_seg_va(p.seg_va); - out->set_seg_len(p.seg_len); - out->set_seg_token_id(p.seg_token_id); -} - -int UrmaEndpoint::WriteHelloV3(const UrmaHello& msg) { - butil::IOBuf packet; - packet.append("URM3", 4); - std::string body; - if (!msg.SerializeToString(&body)) { - LOG(ERROR) << "Fail to serialize UrmaHello"; - return -1; - } - uint32_t pb_size_be = butil::HostToNet32(static_cast(body.size())); - packet.append(&pb_size_be, sizeof(pb_size_be)); - packet.append(body); - return WriteToFd(packet); -} - -int UrmaEndpoint::WriteToFd(butil::IOBuf& data) { - // Write out the IOBuf in a single WriteToFd-style loop. - while (!data.empty()) { - const timespec duetime = butil::milliseconds_from_now(WAIT_TIMEOUT_MS); - int fd = _socket->fd(); - ssize_t nw = data.cut_into_file_descriptor(fd); - if (nw >= 0) { continue; } - if (errno != EAGAIN && errno != EWOULDBLOCK) { return -1; } - if (_socket->WaitEpollOut(fd, true, &duetime) != 0 && errno != ETIMEDOUT) { - return -1; - } - } - return 0; -} - -int UrmaEndpoint::ReadAndParseHelloV3(ParsedHello* out, bool* negotiated) { - *negotiated = false; - uint32_t pb_size_be = 0; - if (ReadFromFd(&pb_size_be, sizeof(pb_size_be)) < 0) { return -1; } - uint32_t pb_size = butil::NetToHost32(pb_size_be); - if (pb_size == 0 || pb_size > 4096) { return 0; } - butil::IOPortal body; - if (body.append_from_file_descriptor(_socket->fd(), pb_size) != - static_cast(pb_size)) { - return -1; - } - UrmaHello msg; - butil::IOBufAsZeroCopyInputStream zcis(body); - if (!msg.ParseFromZeroCopyStream(&zcis)) { return 0; } - if (msg.eid().size() != 16 || msg.seg_eid().size() != 16) { return 0; } - out->buffer_size = msg.buffer_size(); - out->recv_buffer_cnt = msg.recv_buffer_cnt(); - out->jetty_id = msg.jetty_id(); - std::memcpy(out->eid, msg.eid().data(), 16); - out->uasid = msg.uasid(); - out->tp_type = static_cast(msg.tp_type()); - std::memcpy(out->seg_eid, msg.seg_eid().data(), 16); - out->seg_uasid = msg.seg_uasid(); - out->seg_va = msg.seg_va(); - out->seg_len = msg.seg_len(); - out->seg_token_id = msg.seg_token_id(); - *negotiated = true; - return 0; -} - // ============================================================================ // Allocate / deallocate per-connection resources. // ============================================================================ @@ -892,9 +816,7 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { return nullptr; } ep->_state = C_HELLO_SEND; - std::unique_ptr hs(CreateClientHandshake(ep)); - ep->_handshake_version = hs->ProtocolVersion(); - if (hs->SendLocalHello() < 0) { + if (SendLocalHello(ep) < 0) { tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; return nullptr; @@ -902,7 +824,7 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->_state = C_HELLO_WAIT; ParsedHello remote; bool negotiated = false; - if (hs->ReceiveAndParseRemoteHello(&remote, &negotiated) < 0) { + if (ReceiveAndParseRemoteHello(ep, &remote, &negotiated) < 0) { tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; return nullptr; @@ -944,19 +866,17 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->_state = FALLBACK_TCP; return nullptr; } - std::unique_ptr hs(CreateServerHandshakeByMagic(ep, magic)); - if (!hs) { - // Not an URMA peer: push the magic back and fall back to TCP. + // Check if the magic is "URMA"; if not, fall back to TCP. + if (memcmp(magic, "URMA", 4) != 0) { ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; InputMessenger::OnNewMessages(s.get()); return nullptr; } - ep->_handshake_version = hs->ProtocolVersion(); ParsedHello remote; bool negotiated = false; - if (hs->ReceiveAndParseRemoteHello(&remote, &negotiated) < 0) { + if (ReceiveAndParseRemoteHelloServer(ep, &remote, &negotiated) < 0) { tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; return nullptr; @@ -985,7 +905,7 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { return nullptr; } ep->_state = S_HELLO_SEND; - if (hs->SendLocalHello() < 0) { + if (SendLocalHello(ep) < 0) { tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; return nullptr; diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index dfb7c1f18d..5d69372ed8 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -32,10 +32,9 @@ #if BRPC_WITH_URMA -#include "brpc/urma/urma_api.h" -#include "brpc/urma/urma_types.h" +#include "urma_api.h" +#include "urma_types.h" #include "brpc/urma/urma_handshake.h" -#include "brpc/urma/urma_handshake.pb.h" namespace brpc { @@ -99,12 +98,11 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { friend class UrmaConnect; friend class Socket; friend class UrmaTransport; - friend class UrmaHandshakeClientV2; - friend class UrmaHandshakeServerV2; - friend class UrmaHandshakeClientV3; - friend class UrmaHandshakeServerV3; friend int DrainBytes(UrmaEndpoint*, size_t); friend int ReadBodyAndNegotiate(UrmaEndpoint*, ParsedHello*, bool*); + friend int SendLocalHello(UrmaEndpoint*); + friend int ReceiveAndParseRemoteHello(UrmaEndpoint*, ParsedHello*, bool*); + friend int ReceiveAndParseRemoteHelloServer(UrmaEndpoint*, ParsedHello*, bool*); public: explicit UrmaEndpoint(Socket* s); @@ -165,13 +163,6 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // ---- Hello builders/parsers (used by urma_handshake.cpp) ---- // Fill the v2 binary HelloMessage with this endpoint's local params. void FillLocalHelloV2(v2_wire::HelloMessage* out) const; - // Fill the v3 protobuf UrmaHello with this endpoint's local params. - void FillLocalHelloV3(UrmaHello* out) const; - // Write "URM3" + 4B big-endian pb_size + protobuf bytes. - int WriteHelloV3(const UrmaHello& msg); - // Read pb_size (4B) + protobuf bytes; parse; validate. Sets *negotiated - // to false (returns 0) if the message is invalid. - int ReadAndParseHelloV3(ParsedHello* out, bool* negotiated); // Apply the peer's negotiated parameters (window sizes, peer jetty/seg). void ApplyRemoteHello(const ParsedHello& remote); @@ -255,7 +246,7 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // Handshake state. State _state{UNINIT}; - int _handshake_version{0}; // 0 = unnegotiated; 2 = v2; 3 = v3 + int _handshake_version{0}; // reserved (always v2 binary) // The URMA resources (jetty / jfc / jfr / jfce / imported peer objects). UrmaResource* _resource{nullptr}; diff --git a/src/brpc/urma/urma_handshake.cpp b/src/brpc/urma/urma_handshake.cpp index 61fedc6eb1..1e2f2c2a1e 100644 --- a/src/brpc/urma/urma_handshake.cpp +++ b/src/brpc/urma/urma_handshake.cpp @@ -21,28 +21,18 @@ #include #include -#include -#include - -#include "butil/iobuf.h" // IOBuf, IOPortal, IOBufAsZeroCopy* #include "butil/logging.h" #include "butil/sys_byteorder.h" -#include "brpc/socket.h" #include "brpc/urma/urma_endpoint.h" -#include "brpc/urma/urma_helper.h" -#include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma_transport.h" namespace brpc { namespace urma { -DEFINE_int32(urma_client_handshake_version, 2, - "Client handshake version: 2 = binary, 3 = protobuf"); - // ============================================================================ -// v2 binary HelloMessage. +// v2 binary HelloMessage Serialize / Deserialize. // On-wire layout (network byte order, tightly packed body of 82 bytes): // // offset field size @@ -68,9 +58,6 @@ DEFINE_int32(urma_client_handshake_version, 2, namespace v2_wire { -constexpr size_t HELLO_BODY_LEN = 82; -constexpr size_t HELLO_PACKET_LEN = MAGIC_STR_LEN + HELLO_BODY_LEN; // 86 - void HelloMessage::Serialize(void* buf) const { uint8_t* p = static_cast(buf); *(uint16_t*)p = butil::HostToNet16(msg_len); p += 2; @@ -81,7 +68,7 @@ void HelloMessage::Serialize(void* buf) const { *(uint32_t*)p = butil::HostToNet32(jetty_id); p += 4; memcpy(p, eid, 16); p += 16; *(uint32_t*)p = butil::HostToNet32(uasid); p += 4; - *p = tp_type; p += 1; + *p = tp_type; p += 1; memset(p, 0, 3); p += 3; // pad memcpy(p, seg_eid, 16); p += 16; *(uint32_t*)p = butil::HostToNet32(seg_uasid); p += 4; @@ -120,7 +107,6 @@ namespace { constexpr uint32_t MIN_BUFFER_SIZE = 1024; constexpr uint32_t MIN_BUFFER_CNT = 1; constexpr uint32_t MAX_BUFFER_CNT = 65535; -constexpr uint32_t MAX_V3_PB_SIZE = 4096; bool ValidHello(const ParsedHello& h) { if (h.buffer_size < MIN_BUFFER_SIZE) { return false; } @@ -135,9 +121,16 @@ bool ValidHello(const ParsedHello& h) { } // namespace -// File-local (not in the anonymous namespace so it can be friend-declared -// from urma_endpoint.h's UrmaEndpoint). Reads the body following the magic -// and translates it into ParsedHello. +int DrainBytes(UrmaEndpoint* ep, size_t n) { + char buf[4096]; + while (n > 0) { + size_t want = std::min(n, sizeof(buf)); + if (ep->ReadFromFd(buf, want) < 0) { return -1; } + n -= want; + } + return 0; +} + int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated) { *negotiated = false; uint8_t body[v2_wire::HELLO_BODY_LEN]; @@ -168,55 +161,16 @@ int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated) { return 0; } -int DrainBytes(UrmaEndpoint* ep, size_t n) { - char buf[4096]; - while (n > 0) { - size_t want = std::min(n, sizeof(buf)); - if (ep->ReadFromFd(buf, want) < 0) { return -1; } - n -= want; - } - return 0; -} - // ============================================================================ -// v2 client / server. +// Send / receive. // ============================================================================ -int UrmaHandshakeClientV2::SendLocalHello() { - v2_wire::HelloMessage m; - _ep->FillLocalHelloV2(&m); - uint8_t packet[v2_wire::HELLO_PACKET_LEN]; - memcpy(packet, "URMA", 4); - m.Serialize(packet + 4); - return _ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); -} - -int UrmaHandshakeClientV2::ReceiveAndParseRemoteHello(ParsedHello* out, - bool* negotiated) { - *negotiated = false; - uint8_t magic[v2_wire::MAGIC_STR_LEN]; - if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } - if (memcmp(magic, "URMA", 4) != 0) { - // Peer is not URMA-capable; push the magic back so the TCP input - // messenger can re-parse it. - _ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); - return 0; - } - return ReadBodyAndNegotiate(_ep, out, negotiated); -} - -int UrmaHandshakeServerV2::ReceiveAndParseRemoteHello(ParsedHello* out, - bool* negotiated) { - return ReadBodyAndNegotiate(_ep, out, negotiated); -} - -int UrmaHandshakeServerV2::SendLocalHello() { +int SendLocalHello(UrmaEndpoint* ep) { v2_wire::HelloMessage m; - _ep->FillLocalHelloV2(&m); - auto* tp = static_cast(_ep->_socket->_transport.get()); + ep->FillLocalHelloV2(&m); + // If we are falling back, zero the version fields so the peer rejects it. + auto* tp = static_cast(ep->_socket->_transport.get()); if (tp->_urma_state == UrmaTransport::URMA_OFF) { - // Tell the client we are not URMA-capable: zero the version fields so - // the client's version check fails and it falls back to TCP. m.hello_ver = 0; m.impl_ver = 0; m.jetty_id = 0; @@ -225,66 +179,28 @@ int UrmaHandshakeServerV2::SendLocalHello() { uint8_t packet[v2_wire::HELLO_PACKET_LEN]; memcpy(packet, "URMA", 4); m.Serialize(packet + 4); - return _ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); -} - -// ============================================================================ -// v3 protobuf ("URM3"). The protobuf (de)serialization lives on the endpoint -// because it touches UrmaEndpoint private state; the classes here just call -// FillLocalHelloV3 / WriteHelloV3 / ReadAndParseHelloV3. -// ============================================================================ - -int UrmaHandshakeClientV3::SendLocalHello() { - UrmaHello msg; - _ep->FillLocalHelloV3(&msg); - return _ep->WriteHelloV3(msg); + return ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); } -int UrmaHandshakeClientV3::ReceiveAndParseRemoteHello(ParsedHello* out, - bool* negotiated) { +int ReceiveAndParseRemoteHello(UrmaEndpoint* ep, ParsedHello* out, + bool* negotiated) { + // Client side: read the 4B magic first. *negotiated = false; uint8_t magic[v2_wire::MAGIC_STR_LEN]; - if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } - if (memcmp(magic, "URM3", 4) != 0) { - _ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); + if (ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } + if (memcmp(magic, "URMA", 4) != 0) { + // Peer is not URMA-capable; push the magic back so the TCP input + // messenger can re-parse it. + ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); return 0; } - return _ep->ReadAndParseHelloV3(out, negotiated); -} - -int UrmaHandshakeServerV3::ReceiveAndParseRemoteHello(ParsedHello* out, - bool* negotiated) { - return _ep->ReadAndParseHelloV3(out, negotiated); -} - -int UrmaHandshakeServerV3::SendLocalHello() { - UrmaHello msg; - _ep->FillLocalHelloV3(&msg); - // v3 has no zero-out path; the client rejects jetty_id==0 via ValidHello. - return _ep->WriteHelloV3(msg); + return ReadBodyAndNegotiate(ep, out, negotiated); } -// ============================================================================ -// Factories. -// ============================================================================ - -UrmaHandshake* CreateClientHandshake(UrmaEndpoint* ep) { - switch (FLAGS_urma_client_handshake_version) { - case 3: return new UrmaHandshakeClientV3(ep); - case 2: - default: return new UrmaHandshakeClientV2(ep); - } -} - -UrmaHandshake* CreateServerHandshakeByMagic(UrmaEndpoint* ep, - const uint8_t magic[v2_wire::MAGIC_STR_LEN]) { - if (memcmp(magic, "URMA", 4) == 0) { - return new UrmaHandshakeServerV2(ep); - } - if (memcmp(magic, "URM3", 4) == 0) { - return new UrmaHandshakeServerV3(ep); - } - return nullptr; +int ReceiveAndParseRemoteHelloServer(UrmaEndpoint* ep, ParsedHello* out, + bool* negotiated) { + // Server side: the magic was already consumed and verified by the caller. + return ReadBodyAndNegotiate(ep, out, negotiated); } } // namespace urma diff --git a/src/brpc/urma/urma_handshake.h b/src/brpc/urma/urma_handshake.h index ffc1ff33ec..240b7afa02 100644 --- a/src/brpc/urma/urma_handshake.h +++ b/src/brpc/urma/urma_handshake.h @@ -22,18 +22,15 @@ #include #include -#if BRPC_WITH_URMA - -#include "brpc/urma/urma_types.h" +#include "urma_types.h" namespace brpc { namespace urma { class UrmaEndpoint; -// Wire-format-agnostic view of a peer's hello message. Both v2 (binary) and -// v3 (protobuf) translate the bytes on the wire into this struct. The endpoint -// then uses ApplyRemoteHello to size its send/recv windows and to drive +// Wire-format-agnostic view of a peer's hello message. The endpoint +// uses ApplyRemoteHello to size its send/recv windows and to drive // urma_import_seg / urma_import_jetty. struct ParsedHello { uint32_t buffer_size = 0; // peer recv buffer size in bytes (per WR) @@ -47,23 +44,22 @@ struct ParsedHello { uint8_t seg_eid[16] = {0}; // EID owning the peer segment uint32_t seg_uasid = 0; // uasid owning the peer segment uint64_t seg_va = 0; // segment virtual address - uint64_t seg_len = 0; // segment length in bytes + uint64_t seg_len = 0; // segment length in bytes uint32_t seg_token_id = 0; // segment token id }; -// v2 binary wire layout. The full on-wire packet is: -// [ "URMA" 4B ][ HelloMessage body 92B ] => 96 bytes total. -// (msg_len = 96 includes the magic prefix and the body, matching RDMA's -// convention where msg_len covers the whole packet.) +// Binary wire format. The full on-wire packet is: +// [ "URMA" 4B ][ HelloMessage body 82B ] => 86 bytes total. namespace v2_wire { constexpr size_t MAGIC_STR_LEN = 4; -constexpr size_t HELLO_MSG_LEN_MIN = 96; +constexpr size_t HELLO_BODY_LEN = 82; +constexpr size_t HELLO_PACKET_LEN = MAGIC_STR_LEN + HELLO_BODY_LEN; // 86 constexpr size_t HELLO_MSG_LEN_MAX = 4096; constexpr uint16_t HELLO_V2_VERSION = 2; constexpr uint16_t IMPL_V2_VERSION = 1; -// The serializable struct. Aligned so it can be reinterpreted as raw bytes. +// The serializable struct. Serialized to network byte order. struct HelloMessage { uint16_t msg_len; // total packet length (incl. magic) uint16_t hello_ver; @@ -87,85 +83,32 @@ struct HelloMessage { } // namespace v2_wire -// Abstract handshake strategy. v2 speaks binary; v3 speaks protobuf ("URM3"). -class UrmaHandshake { -public: - virtual ~UrmaHandshake() = default; - virtual int ProtocolVersion() const = 0; - - // Send our local hello over the TCP fd held by the endpoint. - // Returns 0 on success, -1 on failure (errno set). - virtual int SendLocalHello() = 0; - - // Read the peer's hello and parse it into @out. Sets @negotiated to true - // if the peer is URMA-capable and the message validates; false (with - // return 0) to signal a graceful fall-back to TCP. - // Returns -1 on IO error (errno set). - virtual int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) = 0; -}; - -// v2 binary handshake (magic "URMA"). -class UrmaHandshakeClientV2 : public UrmaHandshake { -public: - explicit UrmaHandshakeClientV2(UrmaEndpoint* ep) : _ep(ep) {} - int ProtocolVersion() const override { return 2; } - int SendLocalHello() override; - int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; -private: - UrmaEndpoint* _ep; -}; +// Send the local hello over the TCP fd held by the endpoint. +// Returns 0 on success, -1 on failure (errno set). +int SendLocalHello(UrmaEndpoint* ep); -class UrmaHandshakeServerV2 : public UrmaHandshake { -public: - explicit UrmaHandshakeServerV2(UrmaEndpoint* ep) : _ep(ep) {} - int ProtocolVersion() const override { return 2; } - int SendLocalHello() override; - int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; -private: - UrmaEndpoint* _ep; -}; +// Client-side: read the 4B magic first, verify it's "URMA", then read the +// body. If the magic is not "URMA", push the bytes back and set +// *negotiated=false (fall back to TCP). +// Returns -1 on IO error (errno set). +int ReceiveAndParseRemoteHello(UrmaEndpoint* ep, ParsedHello* out, + bool* negotiated); -// v3 protobuf handshake (magic "URM3"). -class UrmaHandshakeClientV3 : public UrmaHandshake { -public: - explicit UrmaHandshakeClientV3(UrmaEndpoint* ep) : _ep(ep) {} - int ProtocolVersion() const override { return 3; } - int SendLocalHello() override; - int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; -private: - UrmaEndpoint* _ep; -}; +// Server-side: the magic was already consumed by the caller. Read the body +// and parse. Sets *negotiated=false (return 0) if the message is invalid. +// Returns -1 on IO error. +int ReceiveAndParseRemoteHelloServer(UrmaEndpoint* ep, ParsedHello* out, + bool* negotiated); -class UrmaHandshakeServerV3 : public UrmaHandshake { -public: - explicit UrmaHandshakeServerV3(UrmaEndpoint* ep) : _ep(ep) {} - int ProtocolVersion() const override { return 3; } - int SendLocalHello() override; - int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; -private: - UrmaEndpoint* _ep; -}; - -// Client-side factory: picks v2/v3 based on --urma_client_handshake_version. -UrmaHandshake* CreateClientHandshake(UrmaEndpoint* ep); - -// Server-side factory: dispatches on the first 4 bytes read from the TCP fd. -// Returns nullptr if the magic is not "URMA"/"URM3" (caller falls back to TCP). -// @magic is the first MAGIC_STR_LEN bytes already read from the fd. -UrmaHandshake* CreateServerHandshakeByMagic(UrmaEndpoint* ep, - const uint8_t magic[v2_wire::MAGIC_STR_LEN]); - -// Drain @n bytes from the TCP fd (used when msg_len > HELLO_MSG_LEN_MIN). +// Drain @n bytes from the TCP fd. int DrainBytes(UrmaEndpoint* ep, size_t n); -// Read the body following the magic and translate to ParsedHello. Friend of -// UrmaEndpoint. Returns -1 on IO error; 0 with *negotiated=false on invalid -// (peer not URMA-capable); 0 with *negotiated=true on success. +// Read the body following the magic and translate to ParsedHello. +// Friend of UrmaEndpoint. Returns -1 on IO error; 0 with *negotiated=false +// on invalid (peer not URMA-capable); 0 with *negotiated=true on success. int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated); } // namespace urma } // namespace brpc -#endif // if BRPC_WITH_URMA - #endif // BRPC_URMA_HANDSHAKE_H diff --git a/src/brpc/urma/urma_handshake.proto b/src/brpc/urma/urma_handshake.proto deleted file mode 100644 index 24f45446a8..0000000000 --- a/src/brpc/urma/urma_handshake.proto +++ /dev/null @@ -1,47 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. The ASF licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -syntax = "proto2"; - -package brpc.urma; - -option java_package = "com.brpc.urma"; -option java_outer_classname = "UrmaHandshakeProto"; - -// Wire-level handshake message exchanged between two UrmaTransport peers -// after the TCP connection is established. The first 4 bytes on the wire -// are the magic "URM3" (v3) followed by a 4-byte big-endian length prefix -// and then the protobuf-encoded UrmaHello. -message UrmaHello { - required uint32 buffer_size = 1; // recv buffer size in bytes (per recv WR) - required uint32 recv_buffer_cnt = 2; // number of recv buffers posted - required uint32 jetty_id = 3; // local jetty id - required bytes eid = 4; // 16-byte local EID (network order) - required uint32 uasid = 5; // local uasid - required uint8 tp_type = 6; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP - - // Flattened peer buffer-pool segment (urma_seg_t + token). The receiver - // calls urma_import_seg with these fields BEFORE urma_import_jetty, so - // the kernel establishes the transport path (TP) routing for the remote - // EID. Otherwise the first SEND is rejected by hardware with - // URMA_CR_RNR_RETRY_CNT_EXC_ERR (status=10). - required bytes seg_eid = 7; // 16-byte EID owning the segment - required uint32 seg_uasid = 8; // uasid owning the segment - required uint64 seg_va = 9; // segment virtual address - required uint64 seg_len = 10; // segment length in bytes - required uint32 seg_token_id = 11; // segment token id -} diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 3c50a70916..1e6dcc2654 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -40,8 +40,8 @@ #include "butil/scoped_lock.h" #include "butil/synchronization/lock.h" -#include "brpc/urma/urma_api.h" -#include "brpc/urma/urma_types.h" +#include "urma_api.h" +#include "urma_types.h" DECLARE_int32(task_group_ntags); diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index a942c45c79..0452f0a7cd 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -28,8 +28,8 @@ #if BRPC_WITH_URMA -#include "brpc/urma/urma_api.h" -#include "brpc/urma/urma_types.h" +#include "urma_api.h" +#include "urma_types.h" namespace brpc { namespace urma { diff --git a/src/brpc/urma/urma_opcode.h b/src/brpc/urma/urma_opcode.h deleted file mode 100644 index a707951d27..0000000000 --- a/src/brpc/urma/urma_opcode.h +++ /dev/null @@ -1,260 +0,0 @@ -/* - * SPDX-License-Identifier: MIT - * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. - * Description: URMA opcode header file - * Author: Ouyang Changchun, Yan Fangfang, Qian Guoxin - * Create: 2021-09-26 - * Note: - * History: 2021-09-26 Create File - */ - -#ifndef URMA_OPCODE_H -#define URMA_OPCODE_H - -#include - -/* urma bit field value */ -#define URMA_TOKEN_NONE 0 /* Indicates the verification policy of the key. */ -#define URMA_TOKEN_PLAIN_TEXT 1 -#define URMA_TOKEN_SIGNED 2 -#define URMA_TOKEN_ALL_ENCRYPTED 3 -#define URMA_TOKEN_RESERVED 4 - -#define URMA_TOKEN_ID_INVALID 0 -#define URMA_TOKEN_ID_VALID 1 - -#define URMA_DSVA_DISABLE 0 /* Indicates whether it is a segment of dsva. */ -#define URMA_DSVA_ENABLE 1 - -#define URMA_NON_CACHEABLE 0 /* Indicates whether the segment can be cached by multiple hosts. */ -#define URMA_CACHEABLE 1 - -/* If URMA_ACCESS_LOCAL_ONLY is set, local access will have all the permissions of - * READ, WRITE, and ATOMIC but external access is denied. - * If URMA_ACCESS_LOCAL_ONLY is not set, in addition to having all permissions for local access, - * the configuration of external access permissions is determined by the following three types, and - * it takes effect according to the combination of READ, WRITE, and ATOMIC configured by the user. - */ -#define URMA_ACCESS_LOCAL_ONLY (0x1 << 0) -#define URMA_ACCESS_READ (0x1 << 1) -#define URMA_ACCESS_WRITE (0x1 << 2) -#define URMA_ACCESS_ATOMIC (0x1 << 3) - -#define URMA_LOCAL_MEMORY 0 /* Indicates that the physical memory is remote. */ -#define URMA_REMOTE_MEMORY 1 - -#define URMA_SEG_NOMAP 0 /* Indicates that the current process has mapped this segment */ -#define URMA_SEG_MAPPED 1 - -#define URMA_ADDR_TYPE_MVA 0 -#define URMA_ADDR_TYPE_UBVA 1 - -#define URMA_COMPLETE_ENABLE 1 /* Notify the source after the task is completed. */ -#define URMA_COMPLETE_DISABLE 0 /* Do not notify the source after the task is complete. */ - -#define URMA_COMPLETE_TYPE_JFC 0 /* Complete notification via JFC. */ -#define URMA_COMPLETE_TYPE_CF 1 /* Complete notification via DDR address */ - -#define URMA_DEPENDENCY_NONE 0 /* There is no dependency between commands. */ -#define URMA_DEPENDENCY_FIRST \ - 1 /* Subsequent commands depend on the execution result \ - of the current command. */ -#define URMA_DEPENDENCY_DELAY \ - 2 /* The current command is executed only when the command \ - that the preamble depends on is executed successfully. */ - -#define URMA_NOTIFY_DISABLE 0 /* The destination is not notified when the task is completed. */ -#define URMA_NOTIFY_ENABLE 1 /* Notify the destination when the task is completed. */ - -#define URMA_NOTIFY_TYPE_JFC 0 /* Complete notification via JFC. */ -#define URMA_NOTIFY_TYPE_RVA 1 /* Complete notification via DDR address. */ - -#define URMA_INLINE_DISABLE 0 /* The data is generated by source_address assignment. */ -#define URMA_INLINE_ENABLE 1 /* The data is carried in the command. */ - -#define URMA_SOLICITED_DISABLE 0 /* There is no interruption when notifying through JFC. */ -#define URMA_SOLICITED_ENABLE 1 /* Interrupt occurred while notifying via JFC. */ - -#define URMA_FENCE_DISABLE 0 /* There is no fence. */ -#define URMA_FENCE_ENABLE 1 /* Fence with previous WRs. */ - -#define URMA_REGULAR 1 /* regular, specifies stride format. */ -#define URMA_IRREGULAR 0 /* irregular, specifies S/G format. */ - -#define URMA_NO_TAG_MATCHING 0 -#define URMA_WITH_TAG_MATCHING 1 - -#define URMA_NONPOST_LS 0 -#define URMA_POST_LS 1 - -#define URMA_NO_SHARE_JFR 0 -#define URMA_SHARE_JFR 1 - -#define URMA_TYPICAL_RNR_RETRY 7 /* typical value of rnr retry for jfs cfg */ -#define URMA_TYPICAL_ERR_TIMEOUT 17 /* typical value of err_timeout for jfs cfg */ -#define URMA_TYPICAL_MIN_RNR_TIMER 12 /* typical value of min_rnr_timer for jfr cfg */ -#define URMA_MAX_PRIORITY 15 - -/* operation information */ -typedef enum urma_place_order { - URMA_NO_ORDER = 0, // No order - URMA_RELAX_ORDER, // Relax order - URMA_STRONG_ORDER // Strong order -} urma_place_order_t; - -/* opcode definition */ -typedef enum urma_opcode { - URMA_OPC_WRITE = 0x00, - URMA_OPC_WRITE_IMM = 0x01, - URMA_OPC_WRITE_NOTIFY = 0x02, // not support result will return for URMA_OPC_WRITE_NOTIFY - URMA_OPC_READ = 0x10, - URMA_OPC_CAS = 0x20, - URMA_OPC_SWAP = 0x21, - URMA_OPC_FADD = 0x22, - URMA_OPC_FSUB = 0x23, - URMA_OPC_FAND = 0x24, - URMA_OPC_FOR = 0x25, - URMA_OPC_FXOR = 0x26, - URMA_OPC_SEND = 0x40, // remote JFR/jetty ID - URMA_OPC_SEND_IMM = 0x41, // remote JFR/jetty ID - URMA_OPC_SEND_INVALIDATE = 0x42, // remote JFR/jetty ID and seg token id - URMA_OPC_NOP = 0x51, - URMA_OPC_WRITE_ATOMIC = 0x60, // Non-standard definition of OPCODE - URMA_OPC_LAST -} urma_opcode_t; - -typedef int urma_status_t; -#define URMA_SUCCESS 0 -#define URMA_EAGAIN EAGAIN // Resource temporarily unavailable -#define URMA_ENOMEM ENOMEM // Failed to allocate memory -#define URMA_ENOPERM EPERM // Operation not permitted -#define URMA_ETIMEOUT ETIMEDOUT // Operation time out -#define URMA_EINVAL EINVAL // Invalid argument -#define URMA_EEXIST EEXIST // Exist -#define URMA_EINPROGRESS EINPROGRESS -#define URMA_FAIL 0x1000 /* 0x1000 */ - -/* completion information */ -typedef enum urma_cr_status { // completion record status - URMA_CR_SUCCESS = 0, - URMA_CR_UNSUPPORTED_OPCODE_ERR, /* Opcode in the WR is not supported */ - URMA_CR_LOC_LEN_ERR, /* Local data too long error */ - URMA_CR_LOC_OPERATION_ERR, /* Local operation err */ - URMA_CR_LOC_ACCESS_ERR, /* Access to local memory error */ - URMA_CR_REM_RESP_LEN_ERR, /* Local Operation Error, with sub-status of Remote Response Length Error */ - URMA_CR_REM_UNSUPPORTED_REQ_ERR, - URMA_CR_REM_OPERATION_ERR, /* Error when target jetty can not complete the operation */ - URMA_CR_REM_ACCESS_ABORT_ERR, /* Error when target jetty access memory error or abort the operation */ - URMA_CR_ACK_TIMEOUT_ERR, /* Retransmission exceeds the maximum number of times */ - URMA_CR_RNR_RETRY_CNT_EXC_ERR, /* RNR retries exceeded the maximum number: remote jfr has no buffer */ - URMA_CR_WR_FLUSH_ERR, /* Jetty in the error state, and the hardware has processed the WR. */ - URMA_CR_WR_SUSPEND_DONE, /* Hardware constructs a fake CQE, and user_ctx is invalid. */ - URMA_CR_WR_FLUSH_ERR_DONE, /* Hardware constructs a fake CQE, and user_ctx is invalid. */ - URMA_CR_WR_UNHANDLED, /* Return of flush jetty/jfs, and the hardware has not processed the WR. */ - URMA_CR_LOC_DATA_POISON, /* Local Data Poison */ - URMA_CR_REM_DATA_POISON, /* Remote Data Poison */ -} urma_cr_status_t; - -typedef enum urma_cr_opcode { - URMA_CR_OPC_SEND = 0x00, - URMA_CR_OPC_SEND_WITH_IMM, - URMA_CR_OPC_SEND_WITH_INV, - URMA_CR_OPC_WRITE_WITH_IMM, -} urma_cr_opcode_t; - -/* event information */ -typedef enum urma_async_event_type { - URMA_EVENT_JFC_ERR, - URMA_EVENT_JFS_ERR, - URMA_EVENT_JFR_ERR, - URMA_EVENT_JFR_LIMIT, - URMA_EVENT_JETTY_ERR, - URMA_EVENT_JETTY_LIMIT, - URMA_EVENT_JETTY_GRP_ERR, - URMA_EVENT_PORT_ACTIVE, - URMA_EVENT_PORT_DOWN, - URMA_EVENT_DEV_FATAL, - URMA_EVENT_EID_CHANGE, // eid change, HNM and other management roles will be modified. - URMA_EVENT_ELR_ERR, /* Entity level error */ - URMA_EVENT_ELR_DONE /* Entity flush done */ -} urma_async_event_type_t; - -typedef enum urma_jfc_state { - URMA_JFC_STATE_INVALID = 0, - URMA_JFC_STATE_VALID, - URMA_JFC_STATE_ERROR -} urma_jfc_state_t; - -typedef enum urma_jetty_state { - URMA_JETTY_STATE_RESET = 0, - URMA_JETTY_STATE_READY, - URMA_JETTY_STATE_SUSPENDED, - URMA_JETTY_STATE_ERROR -} urma_jetty_state_t; - -typedef enum urma_jfr_state { - URMA_JFR_STATE_RESET = 0, - URMA_JFR_STATE_READY, - URMA_JFR_STATE_ERROR -} urma_jfr_state_t; - -#define URMA_JFS_DEPTH 0x0001 -#define URMA_JFS_FLAG 0x0002 -#define URMA_JFS_TRANS_MODE 0x0003 -#define URMA_JFS_PRIORITY 0x0004 -#define URMA_JFS_MAX_SGE 0x0005 -#define URMA_JFS_MAX_RSGE 0x0006 -#define URMA_JFS_MAX_INLINE_DATA 0x0007 -#define URMA_JFS_RNR_RETRY 0x0008 -#define URMA_JFS_ERR_TIMEOUT 0x0009 -#define URMA_JFS_BIND_JFC 0x000a -#define URMA_JFS_USER_CTX 0x000b -#define URMA_JFS_SQE_BASE_ADDR 0x000c -#define URMA_JFS_ID 0x000d -#define URMA_JFS_DB_ADDR 0x000e -#define URMA_JFS_DB_STATUS 0x000f -#define URMA_JFS_PI 0x0010 -#define URMA_JFS_PI_TYPE 0x0011 -#define URMA_JFS_CI 0x0012 -#define URMA_JFS_FULL_CTX 0x0013 - -#define URMA_JFR_DEPTH 0x1001 -#define URMA_JFR_FLAG 0x1002 -#define URMA_JFR_TRANS_MODE 0x1003 -#define URMA_JFR_MAX_SGE 0x1004 -#define URMA_JFR_MIN_RNR_TIMER 0x1005 -#define URMA_JFR_BIND_JFC 0x1006 -#define URMA_JFR_TOKEN_VALUE 0x1007 -#define URMA_JFR_USER_CTX 0x1008 -#define URMA_JFR_RQE_BASE_ADDR 0x1009 -#define URMA_JFR_ID 0x100a -#define URMA_JFR_DB_ADDR 0x100b -#define URMA_JFR_DB_STATUS 0x100c -#define URMA_JFR_PI 0x100d -#define URMA_JFR_PI_TYPE 0x100e -#define URMA_JFR_CI 0x100f -#define URMA_JFR_FULL_CTX 0x1010 - -#define URMA_JFC_DEPTH 0x2001 -#define URMA_JFC_CEQN 0x2002 -#define URMA_JFC_FLAG 0x2003 -#define URMA_JFC_BIND_JFCE 0x2004 -#define URMA_JFC_USER_CTX 0x2005 -#define URMA_JFC_CQE_BASE_ADDR 0x2006 -#define URMA_JFC_ID 0x2007 -#define URMA_JFC_DB_ADDR 0x2008 -#define URMA_JFC_DB_STATUS 0x2009 -#define URMA_JFC_PI 0x200a -#define URMA_JFC_PI_TYPE 0x200b -#define URMA_JFC_CI 0x200c -#define URMA_JFC_FULL_CTX 0x200d - -#define URMA_JETTY_ID 0x3001 -#define URMA_JETTY_FLAG 0x3002 -#define URMA_JETTY_BIND_JFR 0x3003 -#define URMA_JETTY_BIND_RX_JFC 0x3004 -#define URMA_JETTY_BIND_JTG 0x3005 -#define URMA_JETTY_USER_CTX 0x3006 -#define URMA_JETTY_FULL_CTX 0x3007 - -#endif // URMA_OPCODE_H diff --git a/src/brpc/urma/urma_types.h b/src/brpc/urma/urma_types.h deleted file mode 100644 index e62058b28c..0000000000 --- a/src/brpc/urma/urma_types.h +++ /dev/null @@ -1,1430 +0,0 @@ -/* - * SPDX-License-Identifier: MIT - * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. - * Description: URMA type header file - * Author: Ouyang Changchun, Bojie Li, Yan Fangfang, Qian Guoxin - * Create: 2021-07-13 - * Note: - * History: 2021-07-13 Create File - */ - -#ifndef URMA_TYPES_H -#define URMA_TYPES_H - -#include -#include -#include -#include -#include - -#ifndef __cplusplus -#include -#else -#include -#endif - -#include "urma_opcode.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define URMA_GET_VERSION(a, b) (((a) << 16) + ((b) > 65535 ? 65535 : (b))) -#define URMA_API_VERSION ((0 << 16) + 9) // Current Version: 0.9 -#define MAX_PORT_CNT 8 -#define URMA_MAX_JETTY_IN_JETTY_GRP 32U -#define URMA_MAX_NAME 64 -#define URMA_MAX_PATH 4096 -#define URMA_EID_SIZE (16) -#define URMA_MAX_PRIORITY_CNT 16 -#define URMA_IPV4_MAP_IPV6_PREFIX (0x0000ffff) -#define URMA_MAX_EID_CNT 1024 /* refer to UBCORE_MAX_SIP */ -#define URMA_CC_IDX_TABLE_SIZE 81 /* support 9 priorities and 9 algorithms */ - /* same as UBCORE_CC_IDX_TABLE_SIZE */ -#define URMA_OPT_REVERSED_NUM 4 - -#define URMA_EID_STR_LEN (39) -#define EID_FMT "%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x" -#define EID_RAW_ARGS(eid) \ - eid[0], eid[1], eid[2], eid[3], eid[4], eid[5], eid[6], eid[7], eid[8], eid[9], eid[10], eid[11], eid[12], \ - eid[13], eid[14], eid[15] -#define EID_ARGS(eid) EID_RAW_ARGS((eid).raw) -#define URMA_SEG_TOKEN_ID_INVALID 0xffffffff - -/* refer to UBCORE_MAX_DEV_NAME */ -#define URMA_MAX_DEV_NAME 64 -#define URMA_GUID_SIZE (16) - -#define URMA_IP_ADDR_BYTES 16 /* refer to UBCORE_IP_ADDR_BYTES */ -#define URMA_MAC_BYTES 6 /* refer to UBCORE_MAC_BYTES */ - -#define URMA_JFS_SQE_BASE_ADDR_MASK (1ULL << 0) -#define URMA_JFS_ID_MASK (1ULL << 1) -#define URMA_JFS_DB_ADDR_MASK (1ULL << 2) -#define URMA_JFS_DB_STATUS_MASK (1ULL << 3) -#define URMA_JFS_PI_MASK (1ULL << 4) -#define URMA_JFS_PI_TYPE_MASK (1ULL << 5) -#define URMA_JFS_CI_MASK (1ULL << 6) - -#define URMA_JFR_RQE_BASE_ADDR_MASK (1ULL << 0) -#define URMA_JFR_ID_MASK (1ULL << 1) -#define URMA_JFR_DB_ADDR_MASK (1ULL << 2) -#define URMA_JFR_DB_STATUS_MASK (1ULL << 3) -#define URMA_JFR_PI_MASK (1ULL << 4) -#define URMA_JFR_PI_TYPE_MASK (1ULL << 5) -#define URMA_JFR_CI_MASK (1ULL << 6) - -#define URMA_JFC_CQE_BASE_ADDR_MASK (1ULL << 0) -#define URMA_JFC_ID_MASK (1ULL << 1) -#define URMA_JFC_DB_ADDR_MASK (1ULL << 2) -#define URMA_JFC_DB_STATUS_MASK (1ULL << 3) -#define URMA_JFC_PI_MASK (1ULL << 4) -#define URMA_JFC_PI_TYPE_MASK (1ULL << 5) -#define URMA_JFC_CI_MASK (1ULL << 6) - -typedef struct urma_init_attr { - uint64_t token; /* [Optional] security token */ - uint32_t uasid; /* [Optional] uasid to set and reserve. If the parameter is 0, - the system will randomly assign a non-0 value. */ -} urma_init_attr_t; - -/* device information */ -typedef enum urma_mtu { - URMA_MTU_256 = 1, - URMA_MTU_512, - URMA_MTU_1024, - URMA_MTU_2048, - URMA_MTU_4096, - URMA_MTU_8192, -} urma_mtu_t; - -typedef enum urma_port_state { - URMA_PORT_NOP = 0, - URMA_PORT_DOWN, - URMA_PORT_INIT, - URMA_PORT_ARMED, - URMA_PORT_ACTIVE, - URMA_PORT_ACTIVE_DEFER, -} urma_port_state_t; - -typedef enum urma_speed { - URMA_SP_10M = 0, - URMA_SP_100M, - URMA_SP_1G, - URMA_SP_2_5G, - URMA_SP_5G, - URMA_SP_10G, - URMA_SP_14G, - URMA_SP_25G, - URMA_SP_40G, - URMA_SP_50G, - URMA_SP_100G, - URMA_SP_200G, - URMA_SP_400G, - URMA_SP_800G, -} urma_speed_t; - -typedef enum urma_link_width { - URMA_LINK_X1 = 0x1, - URMA_LINK_X2 = 0x1 << 1, - URMA_LINK_X4 = 0x1 << 2, - URMA_LINK_X8 = 0x1 << 3, - URMA_LINK_X16 = 0x1 << 4, - URMA_LINK_X32 = 0x1 << 5, -} urma_link_width_t; - -typedef union urma_eid { - uint8_t raw[URMA_EID_SIZE]; /* Network Order */ - struct { - uint64_t reserved; /* If IPv4 mapped to IPv6, == 0 */ - uint32_t prefix; /* If IPv4 mapped to IPv6, == 0x0000ffff */ - uint32_t addr; /* If IPv4 mapped to IPv6, == IPv4 addr */ - } in4; - struct { - uint64_t subnet_prefix; - uint64_t interface_id; - } in6; -} urma_eid_t; - -void urma_u32_to_eid(uint32_t ipv4, urma_eid_t *eid); -int urma_str_to_eid(const char *buf, urma_eid_t *eid); - -typedef struct urma_ref { -#ifndef __cplusplus - atomic_ulong atomic_cnt; -#else - std::atomic_ulong atomic_cnt; -#endif -} urma_ref_t; - -typedef struct urma_port_attr { - urma_mtu_t max_mtu; /* [Public] MTU_256, MTU_512, MTU_1024 etc. */ - urma_port_state_t state; /* [Public] PORT_DOWN, PORT_INIT, PORT_ACTIVE */ - urma_link_width_t active_width; /* [Public] link width: X1, X2, X4. */ - urma_speed_t active_speed; /* [Public] bandwidth. */ - urma_mtu_t active_mtu; /* [Public] current effective mtu. */ -} urma_port_attr_t; - -union urma_tp_type_en { - struct { - uint32_t rtp : 1; - uint32_t ctp : 1; - uint32_t utp : 1; - uint32_t reserved : 29; - } bs; - uint32_t value; -}; - -struct urma_sl_info { - uint32_t SL; - union urma_tp_type_en tp_type; -}; - -typedef union urma_device_feature { - struct { - uint32_t oor : 1; /* [Public] URMA_OUT_OF_ORDER_RECEIVING. */ - uint32_t jfc_per_wr : 1; /* [Public] URMA_JFC_PER_WR. */ - uint32_t stride_op : 1; /* [Public] URMA_STRIDE_OP. */ - uint32_t load_store_op : 1; /* [Public] URMA_LOAD_STORE_OP. */ - uint32_t non_pin : 1; /* [Public] URMA_NON_PIN. */ - uint32_t pmem : 1; /* [Public] URMA_PERSISTENCE_MEM. */ - uint32_t jfc_inline : 1; /* [Public] URMA_JFC_INLINE. */ - uint32_t spray_en : 1; /* [Public] URMA_SPRAY_ENABLE for UDP port. */ - uint32_t selective_retrans : 1; /* [Public] URMA_SELECTIVE_RETRANS. */ - uint32_t live_migrate : 1; /* [Public] support live migration. */ - uint32_t dca : 1; /* [Public] for user tp */ - uint32_t jetty_grp : 1; /* [Public] support jetty group. */ - uint32_t error_suspend : 1; /* [Public] support suspend jetty or jfs on error. */ - uint32_t outorder_comp : 1; /* [Public] support out-of-order completion. */ - uint32_t mn : 1; /* [Public] for user tp */ - uint32_t clan : 1; /* [Public] for user tp */ - uint32_t muti_seg_per_token_id : 1; - uint32_t ipourma_en : 1; - uint32_t ctp_en : 1; - uint32_t uboe : 1; - uint32_t reserved : 12; - } bs; - uint32_t value; -} urma_device_feature_t; - -typedef union urma_atomic_feature { - struct { - uint32_t cas : 1; - uint32_t swap : 1; - uint32_t fetch_and_add : 1; - uint32_t fetch_and_sub : 1; - uint32_t fetch_and_and : 1; - uint32_t fetch_and_or : 1; - uint32_t fetch_and_xor : 1; - uint32_t reserved : 25; - } bs; - uint32_t value; -} urma_atomic_feature_t; - -typedef union urma_order_type_cap { - struct { - uint32_t ot : 1; - uint32_t oi : 1; - uint32_t ol : 1; - uint32_t no : 1; - uint32_t reserved : 28; - } bs; - uint32_t value; -} urma_order_type_cap_t; - -typedef union urma_tp_type_cap { - struct { - uint32_t rtp : 1; - uint32_t ctp : 1; - uint32_t utp : 1; - uint32_t reserved : 29; - } bs; - uint32_t value; -} urma_tp_type_cap_t; - -typedef union urma_tp_feature { - struct { - uint32_t rm_multi_path : 1; - uint32_t rc_multi_path : 1; - uint32_t reserved : 30; - } bs; - uint32_t value; -} urma_tp_feature_t; - -typedef struct urma_device_cap { - urma_device_feature_t feature; /* [Public] support feature of device, such as OOO, LS etc. */ - uint32_t max_jfc; /* [Public] max number of jfc supported by the device. */ - uint32_t max_jfs; /* [Public] max number of jfs supported by the device. */ - uint32_t max_jfr; /* [Public] max number of jfr supported by the device. */ - uint32_t max_jetty; /* [Public] max number of jetty supported by the device. */ - uint32_t max_jetty_grp; /* [Public] max number of jetty group supported by the device. */ - uint32_t max_jetty_in_jetty_grp; /* [Public] max number of jetty per jetty group supported by the device. */ - uint32_t max_jfc_depth; /* [Public] max depth of jfc supported by the device. */ - uint32_t max_jfs_depth; /* [Public] max depth of jfs supported by the device. */ - uint32_t max_jfr_depth; /* [Public] max depth of jfr supported by the device. */ - uint32_t max_jfs_inline_len; /* [Public] max inline length(byte) supported by the jfs. */ - uint32_t max_jfs_sge; /* [Public] max number of sge supported by the jfs. */ - uint32_t max_jfs_rsge; /* [Public] max number of remote sge supported by the jfs. */ - uint32_t max_jfr_sge; /* [Public] max number of sge supported by the jfr. */ - uint64_t max_msg_size; /* [Public] max message size supported by the device. */ - uint32_t max_read_size; - uint32_t max_write_size; - uint32_t max_cas_size; - uint32_t max_swap_size; - uint32_t max_fetch_and_add_size; - uint32_t max_fetch_and_sub_size; - uint32_t max_fetch_and_and_size; - uint32_t max_fetch_and_or_size; - uint32_t max_fetch_and_xor_size; - urma_atomic_feature_t atomic_feat; /* [Public] support atomic feature of device */ - uint16_t trans_mode; /* [Public] bit OR of supported transport modes */ - uint16_t congestion_ctrl_alg; /* [Public] one or more mode from urma_congestion_ctrl_alg_t */ - uint32_t ceq_cnt; /* [Public] ceq_cnt */ - uint32_t max_tp_in_tpg; /* [Public] max tp in tpg */ - uint32_t max_eid_cnt; /* [Public] max eid count */ - uint64_t page_size_cap; /* [Public] page size capability, must include PAGE_SIZE(4k) */ - uint32_t max_oor_cnt; /* [Public] max OOR window size by packet, only for user tp */ - uint32_t mn; /* [Public] only for user tp */ - uint32_t max_netaddr_cnt; /* [Public] only for user tp */ - urma_order_type_cap_t rm_order_cap; - urma_order_type_cap_t rc_order_cap; - urma_tp_type_cap_t rm_tp_cap; - urma_tp_type_cap_t rc_tp_cap; - urma_tp_type_cap_t um_tp_cap; - urma_tp_feature_t tp_feature; - struct urma_sl_info priority_info[URMA_MAX_PRIORITY_CNT]; -} urma_device_cap_t; - -typedef struct urma_guid { - uint8_t raw[URMA_GUID_SIZE]; -} urma_guid_t; - -typedef struct urma_device_attr { - urma_guid_t guid; /* [Public] */ - urma_device_cap_t dev_cap; /* [Public] capabilities of device. */ - uint8_t port_cnt; /* [Public] port number of device. */ - struct urma_port_attr port_attr[MAX_PORT_CNT]; - uint32_t reserved_jetty_id_min; - uint32_t reserved_jetty_id_max; -} urma_device_attr_t; - -/* security information */ -typedef struct urma_token { - uint32_t token; -} urma_token_t; - -struct urma_sysfs_dev; -struct urma_ref; -struct urma_ops; -struct urma_provider_ops; - -typedef enum urma_transport_type { - URMA_TRANSPORT_INVALID = -1, - URMA_TRANSPORT_UB = 0, - URMA_TRANSPORT_MAX -} urma_transport_type_t; - -typedef enum urma_transport_mode { - URMA_TM_RM = 0x1, /* Reliable message */ - URMA_TM_RC = 0x1 << 1, /* Reliable connection */ - URMA_TM_UM = 0x1 << 2, /* Unreliable message */ -} urma_transport_mode_t; - -typedef enum urma_tp_cc_alg { - URMA_TP_CC_NONE = 0, - URMA_TP_CC_DCQCN, - URMA_TP_CC_DCQCN_AND_NETWORK_CC, - URMA_TP_CC_LDCP, - URMA_TP_CC_LDCP_AND_CAQM, - URMA_TP_CC_LDCP_AND_OPEN_CC, - URMA_TP_CC_HC3, - URMA_TP_CC_DIP, - URMA_TP_CC_ACC, - URMA_TP_CC_NUM, -} urma_tp_cc_alg_t; /* larger means better */ - -typedef enum urma_congestion_ctrl_alg { - URMA_CC_NONE = 0x1 << URMA_TP_CC_NONE, - URMA_CC_DCQCN = 0x1 << URMA_TP_CC_DCQCN, - URMA_CC_DCQCN_AND_NETWORK_CC = 0x1 << URMA_TP_CC_DCQCN_AND_NETWORK_CC, - URMA_CC_LDCP = 0x1 << URMA_TP_CC_LDCP, - URMA_CC_LDCP_AND_CAQM = 0x1 << URMA_TP_CC_LDCP_AND_CAQM, - URMA_CC_LDCP_AND_OPEN_CC = 0x1 << URMA_TP_CC_LDCP_AND_OPEN_CC, - URMA_CC_HC3 = 0x1 << URMA_TP_CC_HC3, - URMA_CC_DIP = 0x1 << URMA_TP_CC_DIP, - URMA_CC_ACC = 0x1 << URMA_TP_CC_ACC -} urma_congestion_ctrl_alg_t; - -typedef struct urma_cc_entry { - urma_tp_cc_alg_t alg; - uint8_t cc_pattern_idx; - uint8_t cc_priority; -} __attribute__((packed)) urma_cc_entry_t; - -typedef struct urma_device { - char name[URMA_MAX_NAME]; /* [Public] urma device's name, the names of devices - in different transport modes are different. */ - char path[URMA_MAX_PATH]; /* [Public] urma device's path in sysfs. */ - urma_transport_type_t type; /* [Public] urma device's transport type. */ - struct urma_provider_ops *ops; /* [Private] urma device driver's ops. */ - struct urma_sysfs_dev *sysfs_dev; /* [Private] internal device corresponding to the urma device */ -} urma_device_t; - -typedef enum urma_context_opt_name { - URMA_OPT_AGGR_MODE, -} urma_opt_name_t; - -typedef enum urma_context_aggr_mode { - URMA_AGGR_MODE_STANDALONE, - URMA_AGGR_MODE_ACTIVE_BACKUP, - URMA_AGGR_MODE_BALANCE, -} urma_context_aggr_mode_t; - -typedef struct urma_context { - struct urma_device *dev; /* [Private] point to the corresponding urma device. */ - struct urma_ops *ops; /* [Private] operation of urma device. */ - int dev_fd; /* [Private] fd of urma device's sysfs file. */ - int async_fd; /* [Private] fd of urma device's async event file. */ - pthread_mutex_t mutex; /* [Private] mutex of urma context. */ - urma_eid_t eid; /* [Public] eid of urma device. */ - uint32_t eid_index; - uint32_t uasid; /* [Public] uasid of current process. */ - struct urma_ref ref; /* [Private] reference count of urma context. */ - urma_context_aggr_mode_t aggr_mode; /* [Public] aggregated mode of urma context. */ -} urma_context_t; - -typedef struct urma_eid_info { - urma_eid_t eid; - uint32_t eid_index; /* 0~UBCORE_MAX_EID_CNT -1 */ -} urma_eid_info_t; - -typedef struct urma_jfce_cfg { - uint32_t depth; - uint64_t user_ctx; -} urma_jfce_cfg_t; - -typedef struct urma_jfce { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - int fd; /* [Private] fd of completed event. */ - struct urma_ref ref; /* [Private] reference count of urma context. */ -} urma_jfce_t; - -typedef union urma_jfc_flag { - struct { - uint32_t lock_free : 1; - uint32_t jfc_inline : 1; - uint32_t non_blocking : 1; - uint32_t has_drv_ext : 1; - uint32_t reserved : 28; - } bs; - uint32_t value; -} urma_jfc_flag_t; - -typedef struct urma_jfc_cfg { - uint32_t depth; /* [Required] the depth of jfc, no greater than urma_device_cap_t->jfc_depth */ - urma_jfc_flag_t flag; /* [Optional] see urma_jfc_flag_t, set flag.value to be 0 by default */ - uint32_t ceqn; /* [Optional] event queue id, less than urma_device_cap_t->ceq_cnt - set to 0 by default */ - urma_jfce_t *jfce; /* [Required] the event of jfc */ - uint64_t user_ctx; /* [Optional] private data of jfc, set to NULL by default */ -} urma_jfc_cfg_t; - -typedef enum urma_jfc_attr_mask { - JFC_MODERATE_COUNT = 0x1, - JFC_MODERATE_PERIOD = 0x1 << 1 -} urma_jfc_attr_mask_t; - -typedef struct urma_jfc_attr { - uint32_t mask; /* mask value, refer to urma_jfc_attr_mask_t */ - uint16_t moderate_count; - uint16_t moderate_period; /* in micro seconds */ -} urma_jfc_attr_t; - -typedef struct urma_jetty_id { - urma_eid_t eid; - uint32_t uasid; /* maybe zero(stand for kernel) or non-zero(stand for app) */ - uint32_t id; -} urma_jetty_id_t; - -typedef struct urma_jetty_id urma_jfs_id_t; -typedef struct urma_jetty_id urma_jfr_id_t; -typedef struct urma_jetty_id urma_jfc_id_t; - -union urma_jfc_opt_mask { - struct { - uint64_t urma_jfc_cqe_base_addr : 1; - uint64_t urma_jfc_db_addr : 1; - uint64_t urma_jfc_id : 1; - uint64_t urma_jfc_pi : 1; - uint64_t urma_jfc_pi_type : 1; - uint64_t urma_jfc_ci : 1; - uint64_t urma_jfc_db_status : 1; - uint64_t reserved : 57; - } bs; - uint64_t value; -}; - -typedef struct urma_jfc_opt { - union urma_jfc_opt_mask jfc_opt_mask; /* bit0:cqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, - bit5:ci, bit6:db_status */ - bool is_actived; - uint64_t urma_jfc_cqe_base_addr; /* [Optional] CQ Queue Address (VA) */ - uint32_t urma_jfc_id; /* [Optional] the id of jfc */ - uint64_t urma_jfc_db_addr; /* [Optional] CQ Queue Doorbell Address (VA) */ - uint8_t urma_jfc_db_status; /* [Optional] JFC Doorbell status, used for live migration (0 invalid, 1 valid) */ - uint16_t urma_jfc_pi; /* [Optional] PI value of the JFC */ - uint16_t urma_jfc_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ - uint16_t urma_jfc_ci; /* [Optional] CI value of the JFC */ - uint64_t reserved[URMA_OPT_REVERSED_NUM]; -} urma_jfc_opt_t; - -typedef struct urma_jfc { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jfc_id_t jfc_id; /* [Public] see urma_jetty_id. */ - urma_jfc_cfg_t jfc_cfg; /* [Public] storage jfc config. */ - uint64_t handle; - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t comp_events_acked; - uint32_t async_events_acked; - urma_jfc_opt_t urma_jfc_opt; -} urma_jfc_t; - -typedef enum urma_order_type { - URMA_DEF_ORDER, - URMA_OT, // target ordering - URMA_OI, // initiator ordering - URMA_OL, // low layer ordering - URMA_NO // unreliable non ordering -} urma_order_type_t; - -typedef union urma_jfs_flag { - struct { - uint32_t lock_free : 1; /* default as 0, lock protected */ - uint32_t error_suspend : 1; /* 0: error continue; 1: error suspend */ - uint32_t outorder_comp : 1; /* 0: not support; 1: support out-of-order completion */ - uint32_t order_type : 8; /* (0x0): default, auto config by driver */ - /* (0x1): OT, target ordering */ - /* (0x2): OI, initiator ordering */ - /* (0x3): OL, low layer ordering */ - /* (0x4): UNO, unreliable non ordering */ - uint32_t multi_path : 1; /* 1: multi-path, 0: single path, for ubagg only. */ - uint32_t ctp_rc_mul_path_mode : 1; /* 1: ctp rc mode multi-path */ - uint32_t non_blocking : 1; - uint32_t has_drv_ext : 1; - uint32_t reserved : 17; - } bs; - uint32_t value; -} urma_jfs_flag_t; - -union urma_jfs_opt_mask { - struct { - uint64_t urma_jfs_cqe_base_addr : 1; - uint64_t urma_jfs_db_addr : 1; - uint64_t urma_jfs_id : 1; - uint64_t urma_jfs_pi : 1; - uint64_t urma_jfs_pi_type : 1; - uint64_t urma_jfs_ci : 1; - uint64_t urma_jfs_db_status : 1; - uint64_t reserved : 57; - } bs; - uint64_t value; -}; - -typedef struct urma_jfs_opt { - union urma_jfs_opt_mask jfs_opt_mask; /* bit0:sqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, - bit5:ci, bit6:db_status */ - bool is_actived; - uint64_t urma_jfs_sqe_base_addr; /* [Optional] SQ Queue Address (VA) */ - uint32_t urma_jfs_id; /* [Optional] the id of jfs */ - uint64_t urma_jfs_db_addr; /* [Optional] SQ Queue Doorbell Address (VA) */ - uint8_t urma_jfs_db_status; /* [Optional] JFS Doorbell status, used for live migration (0 invalid, 1 valid) */ - uint16_t urma_jfs_pi; /* [Optional] PI value of the JFS */ - uint16_t urma_jfs_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ - uint16_t urma_jfs_ci; /* [Optional] CI value of the JFS */ - uint64_t reserved[URMA_OPT_REVERSED_NUM]; -} urma_jfs_opt_t; - -typedef struct urma_jfs_cfg { - uint32_t depth; /* [Required] the depth of jfs, defaut urma_device_cap_t->jfs_depth */ - urma_jfs_flag_t flag; /* [Optional] see urma_jfs_flag_t definition */ - urma_transport_mode_t trans_mode; /* [Required] transport mode, must be supported by the device */ - uint8_t priority; /* [Optional] set the priority of JFS, ranging from [0, 15] - Services with low delay need to set high priority. */ - uint8_t max_sge; /* [Optional] max sge count in one wr, defaut urma_device_cap_t->max_jfs_sge */ - uint8_t max_rsge; /* [Optional] max remote sge count in one wr, defaut urma_device_cap_t->max_jfs_sge */ - uint32_t max_inline_data; /* [Optional] the max inline data size of JFS. if the parameter is 0, - the system will assign device's max inline data length. */ - uint8_t rnr_retry; /* [Optional] number of times that jfs will resend packets before report error, - when the remote side is not ready to receive (RNR), ranging from [0, 7], - the value 0 means never retry and, - the value 7 means retry infinite number of times for RDMA devices */ - uint8_t err_timeout; /* [Optional] the timeout before report error, ranging from [0, 31], - the actual timeout in usec is caculated by: 4.096*(2^err_timeout) */ - urma_jfc_t *jfc; /* [Required] need to specify jfc */ - uint64_t user_ctx; /* [Optional] private data of jfs */ -} urma_jfs_cfg_t; - -typedef struct urma_jfs { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jfs_id_t jfs_id; /* [Public] see urma_jetty_id. */ - urma_jfs_cfg_t jfs_cfg; /* [Public] storage jfs config. */ - uint64_t handle; - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t async_events_acked; - urma_jfs_opt_t urma_jfs_opt; -} urma_jfs_t; - -typedef enum urma_jfs_attr_mask { - JFS_STATE = 0x1 -} urma_jfs_attr_mask_t; - -typedef urma_jetty_state_t urma_jfs_state_t; - -typedef struct urma_jfs_attr { - uint32_t mask; /* mask value refer to urma_jfs_attr_mask_t */ - urma_jfs_state_t state; -} urma_jfs_attr_t; - -typedef union urma_jfr_flag { - struct { - uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE - 1: URMA_TOKEN_PLAIN_TEXT - 2: URMA_TOKEN_SIGNED - 3: URMA_TOKEN_ALL_ENCRYPTED - 4: URMA_TOKEN_RESERVED */ - uint32_t tag_matching : 1; /* 0: URMA_NO_TAG_MATCHING. - 1: URMA_WITH_TAG_MATCHING. */ - uint32_t lock_free : 1; - uint32_t order_type : 8; /* (0x0): default, auto config by driver */ - /* (0x1): OT, target ordering */ - /* (0x2): OI, initiator ordering */ - /* (0x3): OL, low layer ordering */ - /* (0x4): UNO, unreliable non ordering */ - uint32_t has_drv_ext : 1; - uint32_t reserved : 18; - } bs; - uint32_t value; -} urma_jfr_flag_t; - -union urma_jfr_opt_mask { - struct { - uint64_t urma_jfr_cqe_base_addr : 1; - uint64_t urma_jfr_db_addr : 1; - uint64_t urma_jfr_id : 1; - uint64_t urma_jfr_pi : 1; - uint64_t urma_jfr_pi_type : 1; - uint64_t urma_jfr_ci : 1; - uint64_t urma_jfr_db_status : 1; - uint64_t reserved : 57; - } bs; - uint64_t value; -}; - -typedef struct urma_jfr_opt { - union urma_jfr_opt_mask jfr_opt_mask; /* bit0:rqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, - bit5:ci, bit6:db_status */ - bool is_actived; - uint64_t urma_jfr_rqe_base_addr; /* [Optional] RQ Queue Address (VA) */ - uint32_t urma_jfr_id; /* [Optional] the id of jfr */ - uint64_t urma_jfr_db_addr; /* [Optional] RQ Queue Doorbell Address (VA) */ - uint8_t urma_jfr_db_status; /* [Optional] JFR Doorbell status, used for live migration (0 invalid, 1 valid) */ - uint16_t urma_jfr_pi; /* [Optional] PI value of the JFR */ - uint16_t urma_jfr_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ - uint16_t urma_jfr_ci; /* [Optional] CI value of the JFR */ - uint64_t reserved[URMA_OPT_REVERSED_NUM]; -} urma_jfr_opt_t; - -typedef struct urma_jfr_cfg { - uint32_t id; /* [Optional] specify jfr id. If the parameter is 0, - the system will randomly assign a non-0 value. */ - uint32_t depth; /* [Required] total depth, include berth, defaut urma_device_cap_t->jfr_depth. */ - urma_jfr_flag_t flag; /* [Optional] whether is in TAG_matching, whether is in DC/IDC mode. */ - urma_transport_mode_t trans_mode; /* [Required] transport mode, must be supported by the device */ - uint8_t max_sge; /* [Optional] max sge count in one wr, defaut urma_device_cap_t->max_jfr_sge. */ - uint8_t min_rnr_timer; /* [Optional] the minimum RNR NACK timer, ranging from [0, 31], i.e. - the time before jfr sends NACK to the sender for the reason of "ready to receive" */ - urma_jfc_t *jfc; /* [Required] need to specify jfc. */ - urma_token_t token_value; /* [Required] specify token_value for jfr. */ - uint64_t user_ctx; /* [Optional] private data of jfr */ -} urma_jfr_cfg_t; - -typedef enum urma_jfr_attr_mask { - JFR_RX_THRESHOLD = 0x1, - JFR_STATE = 0x1 << 1 -} urma_jfr_attr_mask_t; - -typedef struct urma_jfr_attr { - uint32_t mask; // mask value refer to urma_jfr_attr_mask_t - uint32_t rx_threshold; - urma_jfr_state_t state; -} urma_jfr_attr_t; - -typedef struct urma_jfr { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jfr_id_t jfr_id; /* [Public] see urma_jetty_id. */ - urma_jfr_cfg_t jfr_cfg; /* [Public] storage jfr config. */ - uint64_t handle; - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t async_events_acked; - urma_jfr_opt_t urma_jfr_opt; -} urma_jfr_t; - -typedef union urma_import_jetty_flag { - struct { - uint32_t token_policy : 3; - uint32_t order_type : 8; /* (0x0): default, auto config by driver */ - /* (0x1): OT, target ordering */ - /* (0x2): OI, initiator ordering */ - /* (0x3): OL, low layer ordering */ - /* (0x4): UNO, unreliable non ordering */ - uint32_t share_tp : 1; /* 1: shared tp; 0: non-shared tp. When rc mode is not ta dst ordering, - this flag can only be set to 0. */ - uint32_t has_drv_ext : 1; - uint32_t reserved : 19; - } bs; - uint32_t value; - struct { - uint64_t reserved; - uint64_t stag; - uint64_t dtag; - } user_tag; -} urma_import_jetty_flag_t; - -typedef enum urma_tp_type { - URMA_RTP, - URMA_CTP, - URMA_UTP -} urma_tp_type_t; - -typedef struct urma_rjfr { - urma_jfr_id_t jfr_id; /* see urma_jetty_id */ - urma_transport_mode_t trans_mode; - urma_import_jetty_flag_t flag; - urma_tp_type_t tp_type; -} urma_rjfr_t; - -typedef struct urma_tp { - uint32_t tpn; /* vtpn */ -} urma_tp_t; - -typedef union urma_jetty_flag { - struct { - uint32_t share_jfr : 1; /* 0: URMA_NO_SHARE_JFR. - 1: URMA_SHARE_JFR. */ - uint32_t non_blocking : 1; - uint32_t has_drv_ext : 1; - uint32_t reserved : 29; - } bs; - uint32_t value; -} urma_jetty_flag_t; - -typedef struct urma_jetty_grp urma_jetty_grp_t; - -typedef struct urma_jetty_cfg { - uint32_t id; /* [Optional] user specified jetty id. */ - urma_jetty_flag_t flag; /* [Optional] Connection or connection less */ - - /* send configuration */ - urma_jfs_cfg_t jfs_cfg; /* [Required] see urma_jfs_cfg_t */ - - /* recv configuration */ - union { - struct { - urma_jfr_t *jfr; /* [Optional] shared jfr to receive msg */ - urma_jfc_t *jfc; /* [Optional] To replace the jfc related to the above jfr */ - } shared; /* [Required] */ - urma_jfr_cfg_t *jfr_cfg; /* deprecated */ - }; - urma_jetty_grp_t *jetty_grp; /* [Optional] user specified jetty group. */ - uint64_t user_ctx; /* [Optional] private data of jetty */ -} urma_jetty_cfg_t; - -typedef enum urma_jetty_grp_policy { - URMA_JETTY_GRP_POLICY_RR = 0, - URMA_JETTY_GRP_POLICY_HASH_HINT = 1 -} urma_jetty_grp_policy_t; - -typedef enum urma_target_type { - URMA_JFR = 0, - URMA_JETTY, - URMA_JETTY_GROUP -} urma_target_type_t; - -typedef struct urma_rjetty { - urma_jetty_id_t jetty_id; - urma_transport_mode_t trans_mode; - urma_jetty_grp_policy_t policy; - urma_target_type_t type; - urma_import_jetty_flag_t flag; - urma_tp_type_t tp_type; -} urma_rjetty_t; - -typedef struct urma_target_jetty { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jetty_id_t id; /* [Private] see urma_jetty_id. */ - uint64_t handle; - urma_transport_mode_t trans_mode; - urma_tp_t tp; - urma_target_type_t type; // todo supplementary target type - urma_import_jetty_flag_t flag; - urma_jetty_grp_policy_t policy; - urma_tp_type_t tp_type; -} urma_target_jetty_t; - -typedef enum urma_jetty_attr_mask { - JETTY_RX_THRESHOLD = 0x1, - JETTY_STATE = 0x1 << 1 -} urma_jetty_attr_mask_t; - -typedef struct urma_jetty_attr { - uint32_t mask; // mask value refer to urma_jetty_attr_mask_t - uint32_t rx_threshold; - urma_jetty_state_t state; -} urma_jetty_attr_t; - -typedef struct urma_jetty_opt { - bool is_actived; - urma_jfs_opt_t jfs_opt; - uint64_t reserved[URMA_OPT_REVERSED_NUM]; -} urma_jetty_opt_t; - -typedef struct urma_jetty { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jetty_id_t jetty_id; /* [Public] see urma_jetty_id. */ - urma_target_jetty_t *remote_jetty; /* [Private] Only valid for connection mode Jetty. - After the bind succeeds, the pointer is not null. */ - urma_jetty_cfg_t jetty_cfg; /* [Public] storage jetty config. */ - uint64_t handle; - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t async_events_acked; - urma_jetty_opt_t urma_jetty_opt; -} urma_jetty_t; - -typedef struct urma_notifier { - urma_context_t *urma_ctx; - int fd; - void *incomplete_tjetty_list; -} urma_notifier_t; - -typedef enum urma_notify_type { - URMA_IMPORT_JETTY_NOTIFY = 0, - URMA_BIND_JETTY_NOTIFY -} urma_notify_type_t; - -typedef struct urma_notify { - urma_notify_type_t type; - urma_status_t status; - uint64_t user_ctx; - union { - urma_target_jetty_t *tjetty; /* IMPORT */ - urma_jetty_t *jetty; /* BIND */ - }; -} urma_notify_t; - -typedef union urma_jetty_grp_flag { - struct { - uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE - 1: URMA_TOKEN_PLAIN_TEXT - 2: URMA_TOKEN_SIGNED - 3: URMA_TOKEN_ALL_ENCRYPTED - 4: URMA_TOKEN_RESERVED */ - uint32_t reserved : 29; - } bs; - uint32_t value; -} urma_jetty_grp_flag_t; - -typedef struct urma_jetty_grp_cfg { - char name[URMA_MAX_NAME]; - urma_jetty_grp_flag_t flag; - urma_token_t token_value; /* [Required] specify token_value for Jetty group. */ - uint32_t id; /* [Optional] specify Jetty group id. - If the parameter is 0, UMDK will assign a non_0 value. */ - urma_jetty_grp_policy_t policy; /* Hash or RR(on default) */ - uint64_t user_ctx; /* [Optional] private data of jetty */ -} urma_jetty_grp_cfg_t; - -struct urma_jetty_grp { - urma_context_t *urma_ctx; - urma_jetty_id_t jetty_grp_id; - urma_jetty_grp_cfg_t cfg; - uint32_t jetty_cnt; - urma_jetty_t **jetty_list; - pthread_mutex_t list_mutex; - uint64_t handle; /* use to quickly get uobj of jetty group in kernel module */ - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t async_events_acked; -}; - -/* memory information */ -typedef struct urma_ubva { - urma_eid_t eid; - uint32_t uasid; // 24 bit for UB - uint64_t va; -} __attribute__((packed)) urma_ubva_t; - - -/* segment definition */ -typedef union urma_reg_seg_flag { - struct { - uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE. - 1: URMA_TOKEN_PLAIN_TEXT. - 2: URMA_TOKEN_SIGNED. - 3: URMA_TOKEN_ALL_ENCRYPTED. - 4: URMA_TOKEN_RESERVED. */ - uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. - 1: URMA_CACHEABLE. */ - uint32_t dsva : 1; - uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. - (0x1 << 1): URMA_ACCESS_READ. - (0x1 << 2): URMA_ACCESS_WRITE. - (0x1 << 3): URMA_ACCESS_ATOMIC. */ - uint32_t non_pin : 1; /* 0: segment pages pinned. - 1: segment pages non-pinned. */ - uint32_t user_iova : 1; /* 0: segment without user iova addr. - 1: segment with user iova addr. */ - uint32_t token_id_valid : 1; /* 0: token id in cfg is invalid. - 1: token id in cfg is valid. */ - uint32_t reserved : 18; - } bs; - uint32_t value; -} urma_reg_seg_flag_t; - -typedef union urma_seg_attr { - struct { - uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE. - 1: URMA_TOKEN_PLAIN_TEXT. - 2: URMA_TOKEN_SIGNED. - 3: URMA_TOKEN_ALL_ENCRYPTED. - 4: URMA_TOKEN_RESERVED. */ - uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. - 1: URMA_CACHEABLE. */ - uint32_t dsva : 1; - uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. - (0x1 << 1): URMA_ACCESS_READ. - (0x1 << 2): URMA_ACCESS_WRITE. - (0x1 << 3): URMA_ACCESS_ATOMIC. */ - uint32_t non_pin : 1; /* 0: segment pages pinned. - 1: segment pages non-pinned. */ - uint32_t user_iova : 1; /* 0: segment without user iova addr. - 1: segment with user iova addr. */ - uint32_t user_token_id : 1; /* 0: token_id is allocated and should be freed by urma. - 1: token_id is allocated by user in urma_seg_cfg. */ - uint32_t reserved : 18; - } bs; - uint32_t value; -} urma_seg_attr_t; - -typedef union urma_import_seg_flag { - struct { - uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. - 1: URMA_CACHEABLE. */ - uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. - (0x1 << 1): URMA_ACCESS_READ. - (0x1 << 2): URMA_ACCESS_WRITE. - (0x1 << 3): URMA_ACCESS_ATOMIC. - */ - uint32_t mapping : 1; /* 0: URMA_SEG_NOMAP/ - 1: URMA_SEG_MAPPED. */ - uint32_t reserved : 24; - } bs; - uint32_t value; -} urma_import_seg_flag_t; - -typedef union urma_token_id_flag { - struct { - uint32_t multi_seg : 1; - uint32_t reserved : 31; - } bs; - uint32_t value; -} urma_token_id_flag_t; - -typedef struct urma_token_id { - urma_context_t *urma_ctx; - uint32_t token_id; - uint64_t handle; - urma_ref_t ref; - urma_token_id_flag_t flag; -} urma_token_id_t; - -typedef struct urma_seg_cfg { - uint64_t va; /* specify the address of the segment to be registered */ - uint64_t len; /* specify the length of the segment to be registered */ - urma_token_id_t *token_id; - urma_token_t token_value; /* Security authentication for access */ - urma_reg_seg_flag_t flag; - uint64_t user_ctx; - uint64_t iova; /* user iova, maybe zero-based-address */ -} urma_seg_cfg_t; - -typedef struct urma_seg { - urma_ubva_t ubva; /* [Public] ubva of segment. */ - uint64_t len; /* [Public] length of segment. */ - urma_seg_attr_t attr; /* [Public] include: access flag, token policy, cacheability. */ - uint32_t token_id; /* [Private] match token */ -} urma_seg_t; - -typedef struct urma_target_seg { - urma_seg_t seg; /* [Private] see urma_seg_t. */ - uint64_t user_ctx; /* [Private] private data of segment */ - uint64_t mva; /* [Public] mapping addr when import remote seg. */ - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_token_id_t *token_id; /* When registering seg, it is a valid address; when importing seg, it is NULL */ - uint64_t handle; -} urma_target_seg_t; - -typedef struct urma_user_ctl_in { - uint64_t addr; /* [Required] the address of the input parameter buffer. */ - uint32_t len; /* [Required] the length of the input parameter buffer */ - /* - * Opcode is simultaneously recognized by user and driver. - * User opcode should be distinguished with enum urma_user_ctl_ops_t, which is only used by URMA. - */ - uint32_t opcode; /* [Required] */ -} urma_user_ctl_in_t; - -typedef struct urma_user_ctl_out { - uint64_t addr; /* [Optional] the address of the output parameter buffer. */ - uint32_t len; /* [Optional] the length of the output parameter buffer */ - uint32_t reserved; -} urma_user_ctl_out_t; - -typedef struct urma_user_target_seg { - urma_seg_attr_t attr; - uint32_t token_id; - urma_token_t token_value; -} urma_user_tseg_t; - -typedef struct urma_sge { - uint64_t addr; - uint32_t len; - /* Driver verification - * remote seg: Either tseg or user tseg is not NULL. - * If both of them are not NULL, ignore user_tseg. - * local seg: user_tseg is not supported, tseg must not NULL. - */ - urma_target_seg_t *tseg; - urma_user_tseg_t *user_tseg; /* To support the exemption of import_seg */ -} urma_sge_t; - -typedef struct urma_sg { - urma_sge_t *sge; - uint32_t num_sge; -} urma_sg_t; - -/* wr for batch operations */ -typedef union urma_jfs_wr_flag { - struct { - uint32_t place_order : 2; /* 0: There is no order with other WR - 1: relax order - 2: strong order - 3: reserve */ /* see urma_place_order_t */ - uint32_t comp_order : 1; /* 0: There is no completion order with othwe WR. - 1: Completion order with previous WR. */ - uint32_t fence : 1; /* 0: There is not fence. - 1: Fence with previous read and atomic WR */ - uint32_t solicited_enable : 1; /* 0: There is not solicited. - 1: solicited. It will trigger an event on remote side */ - uint32_t complete_enable : 1; /* 0: Do not notify local process after the task is complete. - 1: Notify local process after the task is completed. */ - uint32_t inline_flag : 1; /* 0: not inline. - 1: inline data. */ - - uint32_t db_bypass : 1; - uint32_t has_drv_ext : 1; - uint32_t reserved : 23; - } bs; - uint32_t value; -} urma_jfs_wr_flag_t; - -typedef union urma_jfr_wr_flag { - struct { - uint32_t complete_type : 1; /* 0: Write completion record to jfc. - 1: Write completion record to complete flag (CF) address */ - uint32_t reserved : 31; - } bs; - uint32_t value; -} urma_jfr_wr_flag_t; - -typedef struct urma_rw_wr { - urma_sg_t src; /* including total data length. src is local va for write, and remote va for read. - only support 1 src sge in read operation. */ - urma_sg_t dst; /* dst is remote va for write, and local va for read. - only support 1 dst sge in write operation. */ - uint8_t target_hint; // required when using jetty group - uint64_t notify_data; // notify data or imm data in host byte order; -} urma_rw_wr_t; - -typedef struct urma_send_wr { - urma_sg_t src; // including total data length - uint8_t target_hint; // required when using jetty group - uint64_t imm_data; // imm_data in host byte order; - urma_target_seg_t *tseg; /* tseg used only when send with invalidate */ -} urma_send_wr_t; - -typedef struct urma_cas_wr { - urma_sge_t *dst; // len is the data length of CAS operation - urma_sge_t *src; // local address for destination original value writeback, len represents the buffer length. - union { // Value compared with destination value - uint64_t cmp_data; // When the len <= 8B, it indicates the CMP value. - uint64_t cmp_addr; // When the len > 8B, it indicates the data address. - }; - union { // If destination value is the same as cmp_data, destination value will be changed to swap_data - uint64_t swap_data; // When the len <= 8B, it indicates the swap value. - uint64_t swap_addr; // When the len > 8B, it indicates the data address. - }; -} urma_cas_wr_t; - -typedef struct urma_faa_wr { - urma_sge_t *dst; // len is the data length of FAA operation - urma_sge_t *src; // local address for destination original value writeback, len represents the buffer length. - union { - uint64_t operand; // When the len <= 8B, it indicates the operand value. - uint64_t operand_addr; // When the len > 8B, it indicates the data address. - }; -} urma_faa_wr_t; - -typedef struct urma_jfs_wr { - urma_opcode_t opcode; - urma_jfs_wr_flag_t flag; - urma_target_jetty_t *tjetty; - uint64_t user_ctx; // completion data - union { - urma_rw_wr_t rw; - urma_send_wr_t send; - urma_cas_wr_t cas; - urma_faa_wr_t faa; - }; - struct urma_jfs_wr *next; -} urma_jfs_wr_t; - -typedef struct urma_jfr_wr { - urma_sg_t src; // includeing buffer length - uint64_t user_ctx; // completion data, eg. wr id - struct urma_jfr_wr *next; -} urma_jfr_wr_t; - -typedef union urma_cr_flag { - struct { - uint8_t s_r : 1; // Indicate CR stands for sending or receiving, 0: send, 1: recv. - uint8_t jetty : 1; // Indicate CR stands for jetty or jfs/jfr, 0: jfs/jfr, 1: jetty. - uint8_t suspend_done : 1; // Real CR associated with the WR, user_ctx is valid - uint8_t flush_err_done : 1; // Real CR associated with the WR, user_ctx is valid - uint8_t reserved : 4; - } bs; - uint8_t value; -} urma_cr_flag_t; - -typedef struct urma_cr_token { - uint32_t token_id; - urma_token_t token_value; -} urma_cr_token_t; - -typedef struct urma_cr { - urma_cr_status_t status; - uint64_t user_ctx; // user_ctx related to a work request - urma_cr_opcode_t opcode; // Only for recv - urma_cr_flag_t flag; // indicate notify data or swap data is valid or not - uint32_t completion_len; // The number of bytes transferred - - uint32_t local_id; // Local jetty ID, or JFS ID, or JFR ID, depends on flag - urma_jetty_id_t remote_id; // Valid only for receiving CR. The remote jetty where the - // received msg comes from Jetty ID or JFS ID, depends on flag. - union { - uint64_t imm_data; // Valid only for receiving CR: send/write/read with imm. - urma_cr_token_t invalid_token; // Valid only for receiving CR: send with invalidate. - }; - uint32_t tpn; // TP number or TPG number - uintptr_t user_data; // e.g. use as pointer to local jetty struct. -} urma_cr_t; - -typedef struct urma_async_event { - /* may be SW queue error, may be HW port error */ - const urma_context_t *urma_ctx; - union { - urma_jfc_t *jfc; - urma_jfs_t *jfs; - urma_jfr_t *jfr; - urma_jetty_t *jetty; - urma_jetty_grp_t *jetty_grp; - uint32_t port_id; - uint32_t eid_idx; - } element; - urma_async_event_type_t event_type; - void *priv; -} urma_async_event_t; - -/* URMA region definition */ -typedef union urma_ur_attr { - struct { - uint32_t reserved : 32; - } bs; - uint32_t value; -} urma_ur_attr_t; - -typedef union urma_import_ur_flag { - struct { - uint32_t mapping : 2; /* 0: URMA_SEG_NOMAP - 1: URMA_SEG_MAPPED_MVA - 2: URMA_SEG_MAPPED_DSVA */ - uint32_t reserved : 30; - } bs; - uint32_t value; -} urma_import_ur_flag_t; - -#define UR_NAME_MAX_LEN 256 -#define JFR_NAME_MAX_LEN 256 -#define URMA_MAX_SEGS_PER_UR_OPT 64 // Max number of SEGS per attach/detach ur - -// In parametre for create UR -typedef struct urma_ur { - char name[UR_NAME_MAX_LEN]; // UR url name - uint64_t size; - urma_ur_attr_t attr; // include: access flag, token policy, cacheability, dsva - uint64_t token; - uint64_t user_ctx; -} urma_ur_t; - -// Out parametre for import UR -typedef struct urma_target_ur { - char name[UR_NAME_MAX_LEN]; // UR url name - uint64_t size; - urma_import_ur_flag_t flag; // include: access flag, token policy, cacheability, dsva - urma_target_seg_t **tseg_list; - uint32_t cnt; -} urma_target_ur_t; - -typedef struct urma_seg_info { - urma_seg_t seg; - uint32_t idx_in_ur; -} urma_seg_info_t; - -// Out parametre for lookup UR -typedef struct urma_ur_info { - char name[UR_NAME_MAX_LEN]; // UR url name - uint64_t size; // limit size, by byte - urma_ur_attr_t attr; // include: access flag, token policy, cacheability, dsva - uint32_t cnt; // - urma_seg_info_t seg_list[0]; // cnt * sizeof(urma_seg_info_t) -} urma_ur_info_t; - -typedef struct urma_jfr_info { - char name[JFR_NAME_MAX_LEN]; // jfr url name - urma_eid_t eid; - uint32_t uasid; - uint32_t id; -} urma_jfr_info_t; - -typedef union urma_tp_cfg_flag { - struct { - uint32_t target : 1; /* 0: initiator, 1: target */ - uint32_t loopback : 1; - uint32_t dca_enable : 1; - /* for the bonding case, the hardware selects the port - * ignoring the port of the tp context and - * selects the port based on the hash value - * along with the information in the bonding group table. - */ - uint32_t bonding : 1; - uint32_t reserved : 28; - } bs; - uint32_t value; -} urma_tp_cfg_flag_t; - -typedef struct urma_tp_cfg { - urma_tp_cfg_flag_t flag; /* flag of initial tp */ - /* transport layer attributes */ - urma_transport_mode_t trans_mode; - uint8_t retry_num; - uint8_t retry_factor; /* for calculate the time slot to retry */ - uint8_t ack_timeout; - uint8_t dscp; - uint32_t oor_cnt; /* OOR window size: by packet */ -} urma_tp_cfg_t; - -typedef union urma_tp_attr_mask { - struct { - uint32_t flag : 1; - uint32_t peer_tpn : 1; - uint32_t state : 1; - uint32_t tx_psn : 1; - uint32_t rx_psn : 1; /* modify both rx psn and tx psn when restore tp */ - uint32_t mtu : 1; - uint32_t cc_pattern_idx : 1; - uint32_t oos_cnt : 1; - uint32_t local_net_addr_idx : 1; - uint32_t peer_net_addr : 1; - uint32_t data_udp_start : 1; - uint32_t ack_udp_start : 1; - uint32_t udp_range : 1; - uint32_t hop_limit : 1; - uint32_t flow_label : 1; - uint32_t port_id : 1; - uint32_t mn : 1; - uint32_t peer_trans_type : 1; - uint32_t reserved : 14; - } bs; - uint32_t value; -} urma_tp_attr_mask_t; - -typedef union urma_tp_mod_flag { - struct { - uint32_t oor_en : 1; /* out of order receive, 0: disable 1: enable */ - uint32_t sr_en : 1; /* selective retransmission, 0: disable 1: enable */ - uint32_t cc_en : 1; /* congestion control algorithm, 0: disable 1: enable */ - uint32_t cc_alg : 4; /* The value is ubcore_tp_cc_alg_t */ - uint32_t spray_en : 1; /* spray with src udp port, 0: disable 1: enable */ - uint32_t clan : 1; /* clan domain, 0: disable 1: enable */ - uint32_t reserved : 23; - } bs; - uint32_t value; -} urma_tp_mod_flag_t; - -typedef enum urma_tp_state { - URMA_TP_STATE_RESET = 0, - URMA_TP_STATE_PASSIVE, - URMA_TP_STATE_ACTIVE, - URMA_TP_STATE_BRAKE, - URMA_TP_STATE_ERROR -} urma_tp_state_t; - -typedef struct urma_net_addr { - sa_family_t sin_family; /* AF_INET/AF_INET6 */ - union { - struct in_addr in4; - struct in6_addr in6; - }; - uint64_t vlan; - uint8_t mac[URMA_MAC_BYTES]; - uint32_t prefix_len; -} urma_net_addr_t; - -typedef struct urma_net_addr_info { - urma_net_addr_t netaddr; - uint32_t index; -} urma_net_addr_info_t; - -typedef struct urma_tp_attr { - urma_tp_mod_flag_t flag; - uint32_t peer_tpn; - urma_tp_state_t state; - uint32_t tx_psn; - uint32_t rx_psn; - urma_mtu_t mtu; - uint8_t cc_pattern_idx; - uint32_t oos_cnt; /* out of standing packet cnt */ - uint32_t local_net_addr_idx; - urma_net_addr_t peer_net_addr; - uint16_t data_udp_start; - uint16_t ack_udp_start; - uint8_t udp_range; - uint8_t hop_limit; - uint32_t flow_label; - uint8_t port_id; - uint8_t mn; /* 0~15, a packet contains only one msg if mn is set as 0 */ - urma_transport_type_t peer_trans_type; -} urma_tp_attr_t; - -typedef union urma_get_tp_cfg_flag { - struct { - uint32_t ctp : 1; - uint32_t rtp : 1; - uint32_t utp : 1; - uint32_t uboe : 1; - uint32_t pre_defined : 1; - uint32_t dynamic_defined : 1; - uint32_t udp : 5; - uint32_t group_id : 15; - uint32_t reserved : 6; - } bs; - uint32_t value; -} urma_get_tp_cfg_flag_t; - -typedef struct urma_get_tp_cfg { - urma_get_tp_cfg_flag_t flag; - urma_transport_mode_t trans_mode; - urma_eid_t local_eid; - urma_eid_t peer_eid; -} urma_get_tp_cfg_t; - -typedef struct urma_tp_info { - uint64_t tp_handle; -} urma_tp_info_t; - -typedef struct urma_active_tp_attr { - uint32_t tx_psn; - uint32_t rx_psn; - uint64_t reserved; -} urma_active_tp_attr_t; - -typedef struct urma_active_tp_cfg { - uint64_t tp_handle; - uint64_t peer_tp_handle; - uint64_t tag; - urma_active_tp_attr_t tp_attr; -} urma_active_tp_cfg_t; - -typedef struct urma_active_tp_cfg urma_import_jetty_ex_cfg_t; -typedef struct urma_active_tp_cfg urma_import_jfr_ex_cfg_t; -typedef struct urma_active_tp_cfg urma_bind_jetty_ex_cfg_t; - -#pragma pack(1) -typedef struct urma_tp_attr_value { - uint8_t retry_times_init : 3; - uint8_t at : 5; - uint8_t sip[URMA_IP_ADDR_BYTES]; - uint8_t dip[URMA_IP_ADDR_BYTES]; - uint8_t sma[URMA_MAC_BYTES]; - uint8_t dma[URMA_MAC_BYTES]; - uint16_t vlan_id : 12; - uint8_t vlan_en : 1; - uint8_t dscp : 6; - uint8_t at_times : 5; - uint8_t sl : 4; - uint8_t ttl; - uint16_t ack_udp_srcport; - uint16_t data_udp_srcport; - uint8_t udp_srcport_range : 4; - uint8_t spray_en : 1; - uint8_t udp_global_en : 1; - uint8_t reserve_0 : 2; - uint16_t sl_bitmap; - uint8_t dscp_config_mode : 1; - uint8_t reserve_1 : 7; - uint8_t reserved[70]; -} urma_tp_attr_value_t; -#pragma pack() - -/* callback information */ -typedef void (*urma_async_event_cb)(urma_async_event_t *event, void *cb_arg); - -/* callback function type for urma_advise_jfr/jetty_async. User must define callback function to handle result. - advise_result is the result of advise jfr or jetty */ -typedef void (*urma_advise_async_cb_func)(urma_status_t advise_result, void *cb_arg); - -typedef enum urma_vlog_level { - URMA_VLOG_LEVEL_EMERG = 0, - URMA_VLOG_LEVEL_ALERT = 1, - URMA_VLOG_LEVEL_CRIT = 2, - URMA_VLOG_LEVEL_ERR = 3, - URMA_VLOG_LEVEL_WARNING = 4, - URMA_VLOG_LEVEL_NOTICE = 5, - URMA_VLOG_LEVEL_INFO = 6, - URMA_VLOG_LEVEL_DEBUG = 7, - URMA_VLOG_LEVEL_MAX = 8, -} urma_vlog_level_t; - -typedef void (*urma_log_cb_t)(int level, char *message); - -/* location log callback function definition */ -typedef void (*urma_loc_log_cb)(int level, const char *file, const char *function, int line, char *message); - -#ifdef __cplusplus -} -#endif - -#endif // URMA_TYPES_H diff --git a/src/brpc/urma_transport.h b/src/brpc/urma_transport.h index fb78841514..81b295d4aa 100644 --- a/src/brpc/urma_transport.h +++ b/src/brpc/urma_transport.h @@ -37,10 +37,6 @@ class UrmaTransport : public Transport { friend class TransportFactory; friend class urma::UrmaEndpoint; friend class urma::UrmaConnect; -friend class urma::UrmaHandshakeServerV2; -friend class urma::UrmaHandshakeClientV2; -friend class urma::UrmaHandshakeServerV3; -friend class urma::UrmaHandshakeClientV3; public: void Init(Socket* socket, const SocketOptions& options) override; void Release() override; diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index 8620db6b4b..977502097f 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -22,18 +22,16 @@ #if BRPC_WITH_URMA #include "butil/atomicops.h" #include "butil/sys_byteorder.h" -#include "brpc/urma/urma_api.h" +#include "urma_api.h" #include "brpc/urma/urma_handshake.h" -#include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma/urma_helper.h" -#include "brpc/urma/urma_types.h" +#include "urma_types.h" using namespace brpc; namespace brpc { namespace urma { -DECLARE_int32(urma_client_handshake_version); extern bool g_skip_urma_init; extern butil::atomic g_urma_available; @@ -92,99 +90,44 @@ TEST(UrmaHandshakeTest, v2_packet_magic_is_urma) { } // --------------------------------------------------------------------------- -// v3 protobuf UrmaHello: serialize + parse round-trips. -// --------------------------------------------------------------------------- -TEST(UrmaHandshakeTest, v3_protobuf_roundtrip) { - urma::UrmaHello msg; - msg.set_buffer_size(8192); - msg.set_recv_buffer_cnt(127); - msg.set_jetty_id(0x12345678); - uint8_t eid[16]; - for (int i = 0; i < 16; ++i) { eid[i] = static_cast(i + 1); } - msg.set_eid(eid, 16); - msg.set_uasid(0xdeadbeef); - msg.set_tp_type(1); - uint8_t seg_eid[16]; - for (int i = 0; i < 16; ++i) { seg_eid[i] = static_cast(16 - i); } - msg.set_seg_eid(seg_eid, 16); - msg.set_seg_uasid(0xcafebabe); - msg.set_seg_va(0x1122334455667788ULL); - msg.set_seg_len(1ULL << 20); - msg.set_seg_token_id(0x42424242); - - std::string body; - ASSERT_TRUE(msg.SerializeToString(&body)); - urma::UrmaHello msg2; - ASSERT_TRUE(msg2.ParseFromString(body)); - EXPECT_EQ(msg.buffer_size(), msg2.buffer_size()); - EXPECT_EQ(msg.recv_buffer_cnt(), msg2.recv_buffer_cnt()); - EXPECT_EQ(msg.jetty_id(), msg2.jetty_id()); - EXPECT_EQ(16, msg2.eid().size()); - EXPECT_EQ(0, memcmp(msg.eid().data(), msg2.eid().data(), 16)); - EXPECT_EQ(msg.uasid(), msg2.uasid()); - EXPECT_EQ(msg.tp_type(), msg2.tp_type()); - EXPECT_EQ(16, msg2.seg_eid().size()); - EXPECT_EQ(msg.seg_uasid(), msg2.seg_uasid()); - EXPECT_EQ(msg.seg_va(), msg2.seg_va()); - EXPECT_EQ(msg.seg_len(), msg2.seg_len()); - EXPECT_EQ(msg.seg_token_id(), msg2.seg_token_id()); -} - -// --------------------------------------------------------------------------- -// CreateServerHandshakeByMagic dispatches on the magic bytes. -// --------------------------------------------------------------------------- -TEST(UrmaHandshakeTest, server_handshake_factory_dispatches_on_magic) { - // We cannot fully exercise the server handshake without a real socket + - // endpoint, but we can verify the factory returns the right protocol - // version for each magic, and nullptr for an unknown magic. - uint8_t magic_v2[4] = {'U', 'R', 'M', 'A'}; - uint8_t magic_v3[4] = {'U', 'R', 'M', '3'}; - uint8_t magic_bad[4] = {'P', 'R', 'P', 'C'}; - - // v2 magic -> protocol version 2 - urma::UrmaHandshake* hs2 = - urma::CreateServerHandshakeByMagic(nullptr, magic_v2); - // Note: the factory dereferences the endpoint only inside SendLocalHello / - // ReceiveAndParseRemoteHello; passing nullptr is safe for the version query. - // (We delete immediately to avoid touching the endpoint.) - if (hs2) { - EXPECT_EQ(2, hs2->ProtocolVersion()); - delete hs2; - } - // v3 magic -> protocol version 3 - urma::UrmaHandshake* hs3 = - urma::CreateServerHandshakeByMagic(nullptr, magic_v3); - if (hs3) { - EXPECT_EQ(3, hs3->ProtocolVersion()); - delete hs3; - } - // unknown magic -> nullptr (caller falls back to TCP) - urma::UrmaHandshake* hsb = - urma::CreateServerHandshakeByMagic(nullptr, magic_bad); - EXPECT_EQ(nullptr, hsb); -} - -// --------------------------------------------------------------------------- -// CreateClientHandshake picks the version from the gflag. +// v2 binary HelloMessage: serialize + deserialize round-trips. // --------------------------------------------------------------------------- -TEST(UrmaHandshakeTest, client_handshake_factory_respects_flag) { - const int saved = urma::FLAGS_urma_client_handshake_version; - - urma::FLAGS_urma_client_handshake_version = 2; - urma::UrmaHandshake* hs2 = urma::CreateClientHandshake(nullptr); - if (hs2) { - EXPECT_EQ(2, hs2->ProtocolVersion()); - delete hs2; - } +TEST(UrmaHandshakeTest, v2_serialize_deserialize_roundtrip) { + urma::v2_wire::HelloMessage m; + m.msg_len = urma::v2_wire::HELLO_PACKET_LEN; + m.hello_ver = urma::v2_wire::HELLO_V2_VERSION; + m.impl_ver = urma::v2_wire::IMPL_V2_VERSION; + m.buffer_size = 8192; + m.recv_buffer_cnt = 127; + m.jetty_id = 0x12345678; + for (int i = 0; i < 16; ++i) { m.eid[i] = static_cast(i + 1); } + m.uasid = 0xdeadbeef; + m.tp_type = 1; // URMA_CTP + for (int i = 0; i < 16; ++i) { m.seg_eid[i] = static_cast(16 - i); } + m.seg_uasid = 0xcafebabe; + m.seg_va = 0x1122334455667788ULL; + m.seg_len = 1ULL << 20; + m.seg_token_id = 0x42424242; - urma::FLAGS_urma_client_handshake_version = 3; - urma::UrmaHandshake* hs3 = urma::CreateClientHandshake(nullptr); - if (hs3) { - EXPECT_EQ(3, hs3->ProtocolVersion()); - delete hs3; - } + uint8_t buf[urma::v2_wire::HELLO_BODY_LEN]; + m.Serialize(buf); - urma::FLAGS_urma_client_handshake_version = saved; + urma::v2_wire::HelloMessage m2; + m2.Deserialize(buf); + EXPECT_EQ(m.msg_len, m2.msg_len); + EXPECT_EQ(m.hello_ver, m2.hello_ver); + EXPECT_EQ(m.impl_ver, m2.impl_ver); + EXPECT_EQ(m.buffer_size, m2.buffer_size); + EXPECT_EQ(m.recv_buffer_cnt, m2.recv_buffer_cnt); + EXPECT_EQ(m.jetty_id, m2.jetty_id); + EXPECT_EQ(0, memcmp(m.eid, m2.eid, 16)); + EXPECT_EQ(m.uasid, m2.uasid); + EXPECT_EQ(m.tp_type, m2.tp_type); + EXPECT_EQ(0, memcmp(m.seg_eid, m2.seg_eid, 16)); + EXPECT_EQ(m.seg_uasid, m2.seg_uasid); + EXPECT_EQ(m.seg_va, m2.seg_va); + EXPECT_EQ(m.seg_len, m2.seg_len); + EXPECT_EQ(m.seg_token_id, m2.seg_token_id); } // --------------------------------------------------------------------------- From eaae5f75aa866f6dd97cee0ed08052f30a985f0e Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 22 Jul 2026 15:18:00 +0800 Subject: [PATCH 09/45] Restore v3 protobuf handshake (v2+v3 dual, aligned with RDMA) Bring back the v3 protobuf handshake alongside v2 binary, matching RDMA's dual-version approach. The v3 path uses a plain protobuf message (UrmaHello, cc_generic_services=false) serialized over TCP via ReadFromFd/WriteToFd -- not an RPC service. - Restore urma_handshake.proto (UrmaHello message) - Restore UrmaHandshakeClient/ServerV2/V3 classes + factory functions - Restore FillLocalHelloV3/WriteHelloV3/ReadAndParseHelloV3 in endpoint - Restore urma_client_handshake_version gflag - Restore v3 protobuf round-trip test - Keep system include pattern (#include "urma_api.h", not vendored) - Restore v3 references in docs/proposal --- CMakeLists.txt | 3 +- docs/cn/urma.md | 3 +- docs/cn/urma_proposal.md | 13 ++- docs/en/urma.md | 3 +- src/brpc/urma/urma_endpoint.cpp | 92 ++++++++++++++++-- src/brpc/urma/urma_endpoint.h | 17 +++- src/brpc/urma/urma_handshake.cpp | 146 +++++++++++++++++++++++------ src/brpc/urma/urma_handshake.h | 109 ++++++++++++++++----- src/brpc/urma/urma_handshake.proto | 47 ++++++++++ src/brpc/urma_transport.h | 4 + test/brpc_urma_unittest.cpp | 127 ++++++++++++++++++------- 11 files changed, 455 insertions(+), 109 deletions(-) create mode 100644 src/brpc/urma/urma_handshake.proto diff --git a/CMakeLists.txt b/CMakeLists.txt index 23f8bd4a7c..5e7510e593 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -590,7 +590,8 @@ set(PROTO_FILES idl_options.proto brpc/policy/mongo.proto brpc/trackme.proto brpc/streaming_rpc_meta.proto - brpc/proto_base.proto) + brpc/proto_base.proto + brpc/urma/urma_handshake.proto) file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/output/include/brpc) set(PROTOC_FLAGS ${PROTOC_FLAGS} -I${PROTOBUF_INCLUDE_DIR}) compile_proto(PROTO_HDRS PROTO_SRCS ${PROJECT_BINARY_DIR} diff --git a/docs/cn/urma.md b/docs/cn/urma.md index 965160fb3e..6dbd64e634 100644 --- a/docs/cn/urma.md +++ b/docs/cn/urma.md @@ -88,7 +88,7 @@ urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.{h,cpp}) 1. TCP 连接建立。 2. `UrmaConnect::StartConnect` 起客户端握手 bthread。 3. 双方在 TCP fd 上交换 `UrmaHello` 消息(v2 二进制 magic `URMA`, - ,携带本地 EID、jetty id、recv buffer 数量、 + v3 protobuf magic `URM3`),携带本地 EID、jetty id、recv buffer 数量、 以及扁平化的 buffer 池 segment。 4. 双方先调用 `urma_import_seg` **再**调用 `urma_import_jetty`,为远端 EID 建立传输路径(TP)路由。跳过 `import_seg` 会导致首个 SEND 被硬件以 @@ -123,6 +123,7 @@ block 都由注册 segment 支撑,发送路径可直接从 IOBuf block refs | `--urma_prepared_jetty_cnt` | 1024 | 预连接 Jetty+CQ 数量 | | `--urma_buffer_size` | 8192 | 池中每个 buffer 大小(字节) | | `--urma_buffer_count` | 65536 | 池中 buffer 数量 | +| `--urma_client_handshake_version` | 2 | 客户端握手版本(2=二进制,3=protobuf) | ## 与 UBRing 协同 diff --git a/docs/cn/urma_proposal.md b/docs/cn/urma_proposal.md index f6b6197d99..9b83cac4d5 100644 --- a/docs/cn/urma_proposal.md +++ b/docs/cn/urma_proposal.md @@ -87,7 +87,7 @@ UrmaTransport 与 `RdmaTransport`、`UBShmTransport` 并列为第四种 `Transpo | `brpc::UrmaTransport` | `src/brpc/urma_transport.{h,cpp}` | `Transport` 子类;持有 `UrmaEndpoint*` + fallback `TcpTransport`;三态 `URMA_ON/OFF/UNKNOWN`;`ContextInitOrDie` 校验协议/SSL | `rdma_transport.{h,cpp}` / `ubshm_transport.{h,cpp}` | | `urma::UrmaEndpoint` | `src/brpc/urma/urma_endpoint.{h,cpp}` | 每连接状态机;`SocketUser` 子类;`BAIDU_CACHELINE_ALIGNMENT`;Jetty/Segment 生命周期;CQ 轮询;收发数据路径 | `rdma/rdma_endpoint.{h,cpp}` | | `urma::UrmaConnect : public AppConnect` | 同上 | 客户端握手驱动;`StartConnect` 起后台 bthread 跑 `ProcessHandshakeAtClient` | `RdmaConnect` / `UBConnect` | -| `urma::UrmaHandshake` | `src/brpc/urma/urma_handshake.{h,cpp}` | v2 二进制握手(`HelloMessage` Serialize/Deserialize + `ReadFromFd`/`WriteToFd`);`ParsedHello` 中间结构;magic `"URMA"` 分发 | `rdma/rdma_handshake.{h,cpp}` | +| `urma::UrmaHandshake` | `src/brpc/urma/urma_handshake.{h,cpp}` | 握手策略基类 + v2/v3 子类;`ParsedHello` 中间结构;magic 分发 | `rdma/rdma_handshake.{h,cpp}` | | `urma::UrmaResource` | 同 endpoint | POD:`urma_jetty*`、`urma_cq*`、comp channel;预连接池 | `RdmaResource` | | `urma::BlockPool`(复用) | `src/brpc/rdma/block_pool.{h,cpp}` | 内存注册池;UrmaTransport 复用 RDMA 已有的 `block_pool`(URMA 底层同为 verbs 风格注册) | 现有 | | `urma::UrmaHelper` | `src/brpc/urma/urma_helper.{h,cpp}` | 全局初始化;`liburma` dlopen;设备/Jetty 管理 | `rdma/rdma_helper.{h,cpp}` | @@ -245,7 +245,7 @@ endif() stateDiagram-v2 [*] --> C_ALLOC_JETTY C_ALLOC_JETTY --> C_HELLO_SEND: AllocateResources()
(从预连接池取 Jetty+CQ,或新建) - C_HELLO_SEND --> C_HELLO_WAIT: SendLocalHello()
(发 "URMA" magic + 本地参数) + C_HELLO_SEND --> C_HELLO_WAIT: handshake->SendLocalHello()
(发 "URMA"/"URM3" magic + 本地参数) C_HELLO_WAIT --> C_ACK_SEND: negotiated=true
ApplyRemoteHello + BringUpJetty C_HELLO_WAIT --> C_ACK_SEND: negotiated=false → URMA_OFF C_ACK_SEND --> ESTABLISHED: URMA_ON
(WriteToFd flags_be bit0=URMA_OK) @@ -331,6 +331,7 @@ server.Start(port, &sopt); | `--urma_poller_yield` | false | `urma_endpoint.cpp` | 轮询循环 `bthread_yield` | | `--urma_disable_bthread` | false | `urma_endpoint.cpp` | 内联处理消息(不走 bthread) | | `--urma_trace_verbose` | false | `urma_endpoint.cpp` | 握手详细日志 | +| `--urma_client_handshake_version` | 2 | `urma_handshake.cpp` | 握手版本(2=binary,3=protobuf) | | `--urma_memory_pool_initial_size_mb` | 1024 | `block_pool.cpp` | 内存池初始大小(复用) | | `--urma_memory_pool_max_regions` | 3 | `block_pool.cpp` | 内存池区域上限(硬上限16) | @@ -358,9 +359,12 @@ src/brpc/ │ ├── urma_endpoint.cpp │ ├── urma_helper.h # 全局初始化, liburma dlopen, 设备管理 │ ├── urma_helper.cpp -│ ├── urma_handshake.h # v2 二进制握手(HelloMessage + ParsedHello) +│ ├── urma_handshake.h # 握手策略基类 + v2/v3 子类 │ ├── urma_handshake.cpp +│ ├── urma_handshake.proto # v3 protobuf 握手(参考 rdma_handshake.proto) │ └── mock_urma.cpp # URMA 链接时 mock(无 liburma 时编译,供 CI 测试) +# URMA SDK 头文件(urma_api.h/urma_types.h/urma_opcode.h)通过系统安装提供, +# CMake find_path(URMA_INCLUDE_PATH NAMES urma_api.h) 查找,不 vendored 到代码目录 docs/ ├── cn/urma.md └── en/urma.md @@ -400,7 +404,8 @@ test/ 6. 单测 `brpc_urma_unittest.cpp`(参考 `brpc_rdma_unittest.cpp` 与新写的 `brpc_ubring_unittest.cpp`)。 ### Phase 2:性能与协同 -1. Polling 模式 + `PollerGroup` per-tag。 +1. 握手 v3(protobuf `UrmaHello`),前向兼容。 +2. Polling 模式 + `PollerGroup` per-tag。 3. Unsignaled/solicited 完成抑制(降低 CPU)。 4. 与 UBSHMTransport 的大小包协同文档与示例(方案 A)。 diff --git a/docs/en/urma.md b/docs/en/urma.md index 7dbd8ab934..69fc6ac55f 100644 --- a/docs/en/urma.md +++ b/docs/en/urma.md @@ -91,7 +91,7 @@ Like RDMA / UBRing, the control plane is TCP and the data plane is URMA: 1. TCP connect completes. 2. `UrmaConnect::StartConnect` spawns the client handshake bthread. 3. Both sides exchange a `UrmaHello` message (magic `URMA` for v2 binary, - `URMA` magic) over the TCP fd. The message carries the local + `URM3` for v3 protobuf) over the TCP fd. The message carries the local EID, jetty id, recv buffer count, and the flattened buffer-pool segment. 4. Each side calls `urma_import_seg` **before** `urma_import_jetty` to establish transport-path (TP) routing for the remote EID. Skipping the @@ -130,6 +130,7 @@ All flags use the `urma_` prefix (mirroring RDMA's `rdma_` prefix): | `--urma_prepared_jetty_cnt` | 1024 | Pre-allocated Jetty+CQ sets | | `--urma_buffer_size` | 8192 | Per-buffer size in the pool (bytes) | | `--urma_buffer_count` | 65536 | Number of buffers in the pool | +| `--urma_client_handshake_version` | 2 | Client wire version (2=binary, 3=protobuf) | ## Coexistence with UBRing diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 989e8c308d..7f701f2f2c 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -41,6 +41,7 @@ #include "urma_api.h" #include "brpc/urma/urma_endpoint.h" #include "brpc/urma/urma_handshake.h" +#include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma/urma_helper.h" #include "brpc/urma_transport.h" @@ -239,6 +240,81 @@ void UrmaEndpoint::FillLocalHelloV2(v2_wire::HelloMessage* out) const { out->seg_token_id = p.seg_token_id; } +void UrmaEndpoint::FillLocalHelloV3(UrmaHello* out) const { + ParsedHello p; + MakeLocalParsedHello(&p); + out->set_buffer_size(p.buffer_size); + out->set_recv_buffer_cnt(p.recv_buffer_cnt); + out->set_jetty_id(p.jetty_id); + out->set_eid(p.eid, 16); + out->set_uasid(p.uasid); + out->set_tp_type(p.tp_type); + out->set_seg_eid(p.seg_eid, 16); + out->set_seg_uasid(p.seg_uasid); + out->set_seg_va(p.seg_va); + out->set_seg_len(p.seg_len); + out->set_seg_token_id(p.seg_token_id); +} + +int UrmaEndpoint::WriteHelloV3(const UrmaHello& msg) { + butil::IOBuf packet; + packet.append("URM3", 4); + std::string body; + if (!msg.SerializeToString(&body)) { + LOG(ERROR) << "Fail to serialize UrmaHello"; + return -1; + } + uint32_t pb_size_be = butil::HostToNet32(static_cast(body.size())); + packet.append(&pb_size_be, sizeof(pb_size_be)); + packet.append(body); + return WriteToFd(packet); +} + +int UrmaEndpoint::WriteToFd(butil::IOBuf& data) { + // Write out the IOBuf in a single WriteToFd-style loop. + while (!data.empty()) { + const timespec duetime = butil::milliseconds_from_now(WAIT_TIMEOUT_MS); + int fd = _socket->fd(); + ssize_t nw = data.cut_into_file_descriptor(fd); + if (nw >= 0) { continue; } + if (errno != EAGAIN && errno != EWOULDBLOCK) { return -1; } + if (_socket->WaitEpollOut(fd, true, &duetime) != 0 && errno != ETIMEDOUT) { + return -1; + } + } + return 0; +} + +int UrmaEndpoint::ReadAndParseHelloV3(ParsedHello* out, bool* negotiated) { + *negotiated = false; + uint32_t pb_size_be = 0; + if (ReadFromFd(&pb_size_be, sizeof(pb_size_be)) < 0) { return -1; } + uint32_t pb_size = butil::NetToHost32(pb_size_be); + if (pb_size == 0 || pb_size > 4096) { return 0; } + butil::IOPortal body; + if (body.append_from_file_descriptor(_socket->fd(), pb_size) != + static_cast(pb_size)) { + return -1; + } + UrmaHello msg; + butil::IOBufAsZeroCopyInputStream zcis(body); + if (!msg.ParseFromZeroCopyStream(&zcis)) { return 0; } + if (msg.eid().size() != 16 || msg.seg_eid().size() != 16) { return 0; } + out->buffer_size = msg.buffer_size(); + out->recv_buffer_cnt = msg.recv_buffer_cnt(); + out->jetty_id = msg.jetty_id(); + std::memcpy(out->eid, msg.eid().data(), 16); + out->uasid = msg.uasid(); + out->tp_type = static_cast(msg.tp_type()); + std::memcpy(out->seg_eid, msg.seg_eid().data(), 16); + out->seg_uasid = msg.seg_uasid(); + out->seg_va = msg.seg_va(); + out->seg_len = msg.seg_len(); + out->seg_token_id = msg.seg_token_id(); + *negotiated = true; + return 0; +} + // ============================================================================ // Allocate / deallocate per-connection resources. // ============================================================================ @@ -816,7 +892,9 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { return nullptr; } ep->_state = C_HELLO_SEND; - if (SendLocalHello(ep) < 0) { + std::unique_ptr hs(CreateClientHandshake(ep)); + ep->_handshake_version = hs->ProtocolVersion(); + if (hs->SendLocalHello() < 0) { tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; return nullptr; @@ -824,7 +902,7 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->_state = C_HELLO_WAIT; ParsedHello remote; bool negotiated = false; - if (ReceiveAndParseRemoteHello(ep, &remote, &negotiated) < 0) { + if (hs->ReceiveAndParseRemoteHello(&remote, &negotiated) < 0) { tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; return nullptr; @@ -866,17 +944,19 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->_state = FALLBACK_TCP; return nullptr; } - // Check if the magic is "URMA"; if not, fall back to TCP. - if (memcmp(magic, "URMA", 4) != 0) { + std::unique_ptr hs(CreateServerHandshakeByMagic(ep, magic)); + if (!hs) { + // Not an URMA peer: push the magic back and fall back to TCP. ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; InputMessenger::OnNewMessages(s.get()); return nullptr; } + ep->_handshake_version = hs->ProtocolVersion(); ParsedHello remote; bool negotiated = false; - if (ReceiveAndParseRemoteHelloServer(ep, &remote, &negotiated) < 0) { + if (hs->ReceiveAndParseRemoteHello(&remote, &negotiated) < 0) { tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; return nullptr; @@ -905,7 +985,7 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { return nullptr; } ep->_state = S_HELLO_SEND; - if (SendLocalHello(ep) < 0) { + if (hs->SendLocalHello() < 0) { tp->_urma_state = UrmaTransport::URMA_OFF; ep->_state = FALLBACK_TCP; return nullptr; diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index 5d69372ed8..26280f6976 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -35,6 +35,7 @@ #include "urma_api.h" #include "urma_types.h" #include "brpc/urma/urma_handshake.h" +#include "brpc/urma/urma_handshake.pb.h" namespace brpc { @@ -98,11 +99,12 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { friend class UrmaConnect; friend class Socket; friend class UrmaTransport; + friend class UrmaHandshakeClientV2; + friend class UrmaHandshakeServerV2; + friend class UrmaHandshakeClientV3; + friend class UrmaHandshakeServerV3; friend int DrainBytes(UrmaEndpoint*, size_t); friend int ReadBodyAndNegotiate(UrmaEndpoint*, ParsedHello*, bool*); - friend int SendLocalHello(UrmaEndpoint*); - friend int ReceiveAndParseRemoteHello(UrmaEndpoint*, ParsedHello*, bool*); - friend int ReceiveAndParseRemoteHelloServer(UrmaEndpoint*, ParsedHello*, bool*); public: explicit UrmaEndpoint(Socket* s); @@ -163,6 +165,13 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // ---- Hello builders/parsers (used by urma_handshake.cpp) ---- // Fill the v2 binary HelloMessage with this endpoint's local params. void FillLocalHelloV2(v2_wire::HelloMessage* out) const; + // Fill the v3 protobuf UrmaHello with this endpoint's local params. + void FillLocalHelloV3(UrmaHello* out) const; + // Write "URM3" + 4B big-endian pb_size + protobuf bytes. + int WriteHelloV3(const UrmaHello& msg); + // Read pb_size (4B) + protobuf bytes; parse; validate. Sets *negotiated + // to false (returns 0) if the message is invalid. + int ReadAndParseHelloV3(ParsedHello* out, bool* negotiated); // Apply the peer's negotiated parameters (window sizes, peer jetty/seg). void ApplyRemoteHello(const ParsedHello& remote); @@ -246,7 +255,7 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // Handshake state. State _state{UNINIT}; - int _handshake_version{0}; // reserved (always v2 binary) + int _handshake_version{0}; // 0 = unnegotiated; 2 = v2; 3 = v3 // The URMA resources (jetty / jfc / jfr / jfce / imported peer objects). UrmaResource* _resource{nullptr}; diff --git a/src/brpc/urma/urma_handshake.cpp b/src/brpc/urma/urma_handshake.cpp index 1e2f2c2a1e..61fedc6eb1 100644 --- a/src/brpc/urma/urma_handshake.cpp +++ b/src/brpc/urma/urma_handshake.cpp @@ -21,18 +21,28 @@ #include #include +#include +#include + +#include "butil/iobuf.h" // IOBuf, IOPortal, IOBufAsZeroCopy* #include "butil/logging.h" #include "butil/sys_byteorder.h" +#include "brpc/socket.h" #include "brpc/urma/urma_endpoint.h" +#include "brpc/urma/urma_helper.h" +#include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma_transport.h" namespace brpc { namespace urma { +DEFINE_int32(urma_client_handshake_version, 2, + "Client handshake version: 2 = binary, 3 = protobuf"); + // ============================================================================ -// v2 binary HelloMessage Serialize / Deserialize. +// v2 binary HelloMessage. // On-wire layout (network byte order, tightly packed body of 82 bytes): // // offset field size @@ -58,6 +68,9 @@ namespace urma { namespace v2_wire { +constexpr size_t HELLO_BODY_LEN = 82; +constexpr size_t HELLO_PACKET_LEN = MAGIC_STR_LEN + HELLO_BODY_LEN; // 86 + void HelloMessage::Serialize(void* buf) const { uint8_t* p = static_cast(buf); *(uint16_t*)p = butil::HostToNet16(msg_len); p += 2; @@ -68,7 +81,7 @@ void HelloMessage::Serialize(void* buf) const { *(uint32_t*)p = butil::HostToNet32(jetty_id); p += 4; memcpy(p, eid, 16); p += 16; *(uint32_t*)p = butil::HostToNet32(uasid); p += 4; - *p = tp_type; p += 1; + *p = tp_type; p += 1; memset(p, 0, 3); p += 3; // pad memcpy(p, seg_eid, 16); p += 16; *(uint32_t*)p = butil::HostToNet32(seg_uasid); p += 4; @@ -107,6 +120,7 @@ namespace { constexpr uint32_t MIN_BUFFER_SIZE = 1024; constexpr uint32_t MIN_BUFFER_CNT = 1; constexpr uint32_t MAX_BUFFER_CNT = 65535; +constexpr uint32_t MAX_V3_PB_SIZE = 4096; bool ValidHello(const ParsedHello& h) { if (h.buffer_size < MIN_BUFFER_SIZE) { return false; } @@ -121,16 +135,9 @@ bool ValidHello(const ParsedHello& h) { } // namespace -int DrainBytes(UrmaEndpoint* ep, size_t n) { - char buf[4096]; - while (n > 0) { - size_t want = std::min(n, sizeof(buf)); - if (ep->ReadFromFd(buf, want) < 0) { return -1; } - n -= want; - } - return 0; -} - +// File-local (not in the anonymous namespace so it can be friend-declared +// from urma_endpoint.h's UrmaEndpoint). Reads the body following the magic +// and translates it into ParsedHello. int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated) { *negotiated = false; uint8_t body[v2_wire::HELLO_BODY_LEN]; @@ -161,16 +168,55 @@ int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated) { return 0; } +int DrainBytes(UrmaEndpoint* ep, size_t n) { + char buf[4096]; + while (n > 0) { + size_t want = std::min(n, sizeof(buf)); + if (ep->ReadFromFd(buf, want) < 0) { return -1; } + n -= want; + } + return 0; +} + // ============================================================================ -// Send / receive. +// v2 client / server. // ============================================================================ -int SendLocalHello(UrmaEndpoint* ep) { +int UrmaHandshakeClientV2::SendLocalHello() { + v2_wire::HelloMessage m; + _ep->FillLocalHelloV2(&m); + uint8_t packet[v2_wire::HELLO_PACKET_LEN]; + memcpy(packet, "URMA", 4); + m.Serialize(packet + 4); + return _ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); +} + +int UrmaHandshakeClientV2::ReceiveAndParseRemoteHello(ParsedHello* out, + bool* negotiated) { + *negotiated = false; + uint8_t magic[v2_wire::MAGIC_STR_LEN]; + if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } + if (memcmp(magic, "URMA", 4) != 0) { + // Peer is not URMA-capable; push the magic back so the TCP input + // messenger can re-parse it. + _ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); + return 0; + } + return ReadBodyAndNegotiate(_ep, out, negotiated); +} + +int UrmaHandshakeServerV2::ReceiveAndParseRemoteHello(ParsedHello* out, + bool* negotiated) { + return ReadBodyAndNegotiate(_ep, out, negotiated); +} + +int UrmaHandshakeServerV2::SendLocalHello() { v2_wire::HelloMessage m; - ep->FillLocalHelloV2(&m); - // If we are falling back, zero the version fields so the peer rejects it. - auto* tp = static_cast(ep->_socket->_transport.get()); + _ep->FillLocalHelloV2(&m); + auto* tp = static_cast(_ep->_socket->_transport.get()); if (tp->_urma_state == UrmaTransport::URMA_OFF) { + // Tell the client we are not URMA-capable: zero the version fields so + // the client's version check fails and it falls back to TCP. m.hello_ver = 0; m.impl_ver = 0; m.jetty_id = 0; @@ -179,28 +225,66 @@ int SendLocalHello(UrmaEndpoint* ep) { uint8_t packet[v2_wire::HELLO_PACKET_LEN]; memcpy(packet, "URMA", 4); m.Serialize(packet + 4); - return ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); + return _ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); +} + +// ============================================================================ +// v3 protobuf ("URM3"). The protobuf (de)serialization lives on the endpoint +// because it touches UrmaEndpoint private state; the classes here just call +// FillLocalHelloV3 / WriteHelloV3 / ReadAndParseHelloV3. +// ============================================================================ + +int UrmaHandshakeClientV3::SendLocalHello() { + UrmaHello msg; + _ep->FillLocalHelloV3(&msg); + return _ep->WriteHelloV3(msg); } -int ReceiveAndParseRemoteHello(UrmaEndpoint* ep, ParsedHello* out, - bool* negotiated) { - // Client side: read the 4B magic first. +int UrmaHandshakeClientV3::ReceiveAndParseRemoteHello(ParsedHello* out, + bool* negotiated) { *negotiated = false; uint8_t magic[v2_wire::MAGIC_STR_LEN]; - if (ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } - if (memcmp(magic, "URMA", 4) != 0) { - // Peer is not URMA-capable; push the magic back so the TCP input - // messenger can re-parse it. - ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); + if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } + if (memcmp(magic, "URM3", 4) != 0) { + _ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); return 0; } - return ReadBodyAndNegotiate(ep, out, negotiated); + return _ep->ReadAndParseHelloV3(out, negotiated); +} + +int UrmaHandshakeServerV3::ReceiveAndParseRemoteHello(ParsedHello* out, + bool* negotiated) { + return _ep->ReadAndParseHelloV3(out, negotiated); +} + +int UrmaHandshakeServerV3::SendLocalHello() { + UrmaHello msg; + _ep->FillLocalHelloV3(&msg); + // v3 has no zero-out path; the client rejects jetty_id==0 via ValidHello. + return _ep->WriteHelloV3(msg); } -int ReceiveAndParseRemoteHelloServer(UrmaEndpoint* ep, ParsedHello* out, - bool* negotiated) { - // Server side: the magic was already consumed and verified by the caller. - return ReadBodyAndNegotiate(ep, out, negotiated); +// ============================================================================ +// Factories. +// ============================================================================ + +UrmaHandshake* CreateClientHandshake(UrmaEndpoint* ep) { + switch (FLAGS_urma_client_handshake_version) { + case 3: return new UrmaHandshakeClientV3(ep); + case 2: + default: return new UrmaHandshakeClientV2(ep); + } +} + +UrmaHandshake* CreateServerHandshakeByMagic(UrmaEndpoint* ep, + const uint8_t magic[v2_wire::MAGIC_STR_LEN]) { + if (memcmp(magic, "URMA", 4) == 0) { + return new UrmaHandshakeServerV2(ep); + } + if (memcmp(magic, "URM3", 4) == 0) { + return new UrmaHandshakeServerV3(ep); + } + return nullptr; } } // namespace urma diff --git a/src/brpc/urma/urma_handshake.h b/src/brpc/urma/urma_handshake.h index 240b7afa02..e444d62551 100644 --- a/src/brpc/urma/urma_handshake.h +++ b/src/brpc/urma/urma_handshake.h @@ -22,6 +22,8 @@ #include #include +#if BRPC_WITH_URMA + #include "urma_types.h" namespace brpc { @@ -29,8 +31,9 @@ namespace urma { class UrmaEndpoint; -// Wire-format-agnostic view of a peer's hello message. The endpoint -// uses ApplyRemoteHello to size its send/recv windows and to drive +// Wire-format-agnostic view of a peer's hello message. Both v2 (binary) and +// v3 (protobuf) translate the bytes on the wire into this struct. The endpoint +// then uses ApplyRemoteHello to size its send/recv windows and to drive // urma_import_seg / urma_import_jetty. struct ParsedHello { uint32_t buffer_size = 0; // peer recv buffer size in bytes (per WR) @@ -44,22 +47,23 @@ struct ParsedHello { uint8_t seg_eid[16] = {0}; // EID owning the peer segment uint32_t seg_uasid = 0; // uasid owning the peer segment uint64_t seg_va = 0; // segment virtual address - uint64_t seg_len = 0; // segment length in bytes + uint64_t seg_len = 0; // segment length in bytes uint32_t seg_token_id = 0; // segment token id }; -// Binary wire format. The full on-wire packet is: -// [ "URMA" 4B ][ HelloMessage body 82B ] => 86 bytes total. +// v2 binary wire layout. The full on-wire packet is: +// [ "URMA" 4B ][ HelloMessage body 92B ] => 96 bytes total. +// (msg_len = 96 includes the magic prefix and the body, matching RDMA's +// convention where msg_len covers the whole packet.) namespace v2_wire { constexpr size_t MAGIC_STR_LEN = 4; -constexpr size_t HELLO_BODY_LEN = 82; -constexpr size_t HELLO_PACKET_LEN = MAGIC_STR_LEN + HELLO_BODY_LEN; // 86 +constexpr size_t HELLO_MSG_LEN_MIN = 96; constexpr size_t HELLO_MSG_LEN_MAX = 4096; constexpr uint16_t HELLO_V2_VERSION = 2; constexpr uint16_t IMPL_V2_VERSION = 1; -// The serializable struct. Serialized to network byte order. +// The serializable struct. Aligned so it can be reinterpreted as raw bytes. struct HelloMessage { uint16_t msg_len; // total packet length (incl. magic) uint16_t hello_ver; @@ -83,32 +87,85 @@ struct HelloMessage { } // namespace v2_wire -// Send the local hello over the TCP fd held by the endpoint. -// Returns 0 on success, -1 on failure (errno set). -int SendLocalHello(UrmaEndpoint* ep); +// Abstract handshake strategy. v2 speaks binary; v3 speaks protobuf ("URM3"). +class UrmaHandshake { +public: + virtual ~UrmaHandshake() = default; + virtual int ProtocolVersion() const = 0; + + // Send our local hello over the TCP fd held by the endpoint. + // Returns 0 on success, -1 on failure (errno set). + virtual int SendLocalHello() = 0; + + // Read the peer's hello and parse it into @out. Sets @negotiated to true + // if the peer is URMA-capable and the message validates; false (with + // return 0) to signal a graceful fall-back to TCP. + // Returns -1 on IO error (errno set). + virtual int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) = 0; +}; + +// v2 binary handshake (magic "URMA"). +class UrmaHandshakeClientV2 : public UrmaHandshake { +public: + explicit UrmaHandshakeClientV2(UrmaEndpoint* ep) : _ep(ep) {} + int ProtocolVersion() const override { return 2; } + int SendLocalHello() override; + int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; +private: + UrmaEndpoint* _ep; +}; -// Client-side: read the 4B magic first, verify it's "URMA", then read the -// body. If the magic is not "URMA", push the bytes back and set -// *negotiated=false (fall back to TCP). -// Returns -1 on IO error (errno set). -int ReceiveAndParseRemoteHello(UrmaEndpoint* ep, ParsedHello* out, - bool* negotiated); +class UrmaHandshakeServerV2 : public UrmaHandshake { +public: + explicit UrmaHandshakeServerV2(UrmaEndpoint* ep) : _ep(ep) {} + int ProtocolVersion() const override { return 2; } + int SendLocalHello() override; + int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; +private: + UrmaEndpoint* _ep; +}; -// Server-side: the magic was already consumed by the caller. Read the body -// and parse. Sets *negotiated=false (return 0) if the message is invalid. -// Returns -1 on IO error. -int ReceiveAndParseRemoteHelloServer(UrmaEndpoint* ep, ParsedHello* out, - bool* negotiated); +// v3 protobuf handshake (magic "URM3"). +class UrmaHandshakeClientV3 : public UrmaHandshake { +public: + explicit UrmaHandshakeClientV3(UrmaEndpoint* ep) : _ep(ep) {} + int ProtocolVersion() const override { return 3; } + int SendLocalHello() override; + int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; +private: + UrmaEndpoint* _ep; +}; -// Drain @n bytes from the TCP fd. +class UrmaHandshakeServerV3 : public UrmaHandshake { +public: + explicit UrmaHandshakeServerV3(UrmaEndpoint* ep) : _ep(ep) {} + int ProtocolVersion() const override { return 3; } + int SendLocalHello() override; + int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; +private: + UrmaEndpoint* _ep; +}; + +// Client-side factory: picks v2/v3 based on --urma_client_handshake_version. +UrmaHandshake* CreateClientHandshake(UrmaEndpoint* ep); + +// Server-side factory: dispatches on the first 4 bytes read from the TCP fd. +// Returns nullptr if the magic is not "URMA"/"URM3" (caller falls back to TCP). +// @magic is the first MAGIC_STR_LEN bytes already read from the fd. +UrmaHandshake* CreateServerHandshakeByMagic(UrmaEndpoint* ep, + const uint8_t magic[v2_wire::MAGIC_STR_LEN]); + +// Drain @n bytes from the TCP fd (used when msg_len > HELLO_MSG_LEN_MIN). int DrainBytes(UrmaEndpoint* ep, size_t n); -// Read the body following the magic and translate to ParsedHello. -// Friend of UrmaEndpoint. Returns -1 on IO error; 0 with *negotiated=false -// on invalid (peer not URMA-capable); 0 with *negotiated=true on success. +// Read the body following the magic and translate to ParsedHello. Friend of +// UrmaEndpoint. Returns -1 on IO error; 0 with *negotiated=false on invalid +// (peer not URMA-capable); 0 with *negotiated=true on success. int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated); } // namespace urma } // namespace brpc +#endif // if BRPC_WITH_URMA + #endif // BRPC_URMA_HANDSHAKE_H diff --git a/src/brpc/urma/urma_handshake.proto b/src/brpc/urma/urma_handshake.proto new file mode 100644 index 0000000000..24f45446a8 --- /dev/null +++ b/src/brpc/urma/urma_handshake.proto @@ -0,0 +1,47 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +syntax = "proto2"; + +package brpc.urma; + +option java_package = "com.brpc.urma"; +option java_outer_classname = "UrmaHandshakeProto"; + +// Wire-level handshake message exchanged between two UrmaTransport peers +// after the TCP connection is established. The first 4 bytes on the wire +// are the magic "URM3" (v3) followed by a 4-byte big-endian length prefix +// and then the protobuf-encoded UrmaHello. +message UrmaHello { + required uint32 buffer_size = 1; // recv buffer size in bytes (per recv WR) + required uint32 recv_buffer_cnt = 2; // number of recv buffers posted + required uint32 jetty_id = 3; // local jetty id + required bytes eid = 4; // 16-byte local EID (network order) + required uint32 uasid = 5; // local uasid + required uint8 tp_type = 6; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP + + // Flattened peer buffer-pool segment (urma_seg_t + token). The receiver + // calls urma_import_seg with these fields BEFORE urma_import_jetty, so + // the kernel establishes the transport path (TP) routing for the remote + // EID. Otherwise the first SEND is rejected by hardware with + // URMA_CR_RNR_RETRY_CNT_EXC_ERR (status=10). + required bytes seg_eid = 7; // 16-byte EID owning the segment + required uint32 seg_uasid = 8; // uasid owning the segment + required uint64 seg_va = 9; // segment virtual address + required uint64 seg_len = 10; // segment length in bytes + required uint32 seg_token_id = 11; // segment token id +} diff --git a/src/brpc/urma_transport.h b/src/brpc/urma_transport.h index 81b295d4aa..fb78841514 100644 --- a/src/brpc/urma_transport.h +++ b/src/brpc/urma_transport.h @@ -37,6 +37,10 @@ class UrmaTransport : public Transport { friend class TransportFactory; friend class urma::UrmaEndpoint; friend class urma::UrmaConnect; +friend class urma::UrmaHandshakeServerV2; +friend class urma::UrmaHandshakeClientV2; +friend class urma::UrmaHandshakeServerV3; +friend class urma::UrmaHandshakeClientV3; public: void Init(Socket* socket, const SocketOptions& options) override; void Release() override; diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index 977502097f..c7d61cb5e8 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -24,6 +24,7 @@ #include "butil/sys_byteorder.h" #include "urma_api.h" #include "brpc/urma/urma_handshake.h" +#include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma/urma_helper.h" #include "urma_types.h" @@ -32,6 +33,7 @@ using namespace brpc; namespace brpc { namespace urma { +DECLARE_int32(urma_client_handshake_version); extern bool g_skip_urma_init; extern butil::atomic g_urma_available; @@ -90,44 +92,99 @@ TEST(UrmaHandshakeTest, v2_packet_magic_is_urma) { } // --------------------------------------------------------------------------- -// v2 binary HelloMessage: serialize + deserialize round-trips. +// v3 protobuf UrmaHello: serialize + parse round-trips. // --------------------------------------------------------------------------- -TEST(UrmaHandshakeTest, v2_serialize_deserialize_roundtrip) { - urma::v2_wire::HelloMessage m; - m.msg_len = urma::v2_wire::HELLO_PACKET_LEN; - m.hello_ver = urma::v2_wire::HELLO_V2_VERSION; - m.impl_ver = urma::v2_wire::IMPL_V2_VERSION; - m.buffer_size = 8192; - m.recv_buffer_cnt = 127; - m.jetty_id = 0x12345678; - for (int i = 0; i < 16; ++i) { m.eid[i] = static_cast(i + 1); } - m.uasid = 0xdeadbeef; - m.tp_type = 1; // URMA_CTP - for (int i = 0; i < 16; ++i) { m.seg_eid[i] = static_cast(16 - i); } - m.seg_uasid = 0xcafebabe; - m.seg_va = 0x1122334455667788ULL; - m.seg_len = 1ULL << 20; - m.seg_token_id = 0x42424242; +TEST(UrmaHandshakeTest, v3_protobuf_roundtrip) { + urma::UrmaHello msg; + msg.set_buffer_size(8192); + msg.set_recv_buffer_cnt(127); + msg.set_jetty_id(0x12345678); + uint8_t eid[16]; + for (int i = 0; i < 16; ++i) { eid[i] = static_cast(i + 1); } + msg.set_eid(eid, 16); + msg.set_uasid(0xdeadbeef); + msg.set_tp_type(1); + uint8_t seg_eid[16]; + for (int i = 0; i < 16; ++i) { seg_eid[i] = static_cast(16 - i); } + msg.set_seg_eid(seg_eid, 16); + msg.set_seg_uasid(0xcafebabe); + msg.set_seg_va(0x1122334455667788ULL); + msg.set_seg_len(1ULL << 20); + msg.set_seg_token_id(0x42424242); + + std::string body; + ASSERT_TRUE(msg.SerializeToString(&body)); + urma::UrmaHello msg2; + ASSERT_TRUE(msg2.ParseFromString(body)); + EXPECT_EQ(msg.buffer_size(), msg2.buffer_size()); + EXPECT_EQ(msg.recv_buffer_cnt(), msg2.recv_buffer_cnt()); + EXPECT_EQ(msg.jetty_id(), msg2.jetty_id()); + EXPECT_EQ(16, msg2.eid().size()); + EXPECT_EQ(0, memcmp(msg.eid().data(), msg2.eid().data(), 16)); + EXPECT_EQ(msg.uasid(), msg2.uasid()); + EXPECT_EQ(msg.tp_type(), msg2.tp_type()); + EXPECT_EQ(16, msg2.seg_eid().size()); + EXPECT_EQ(msg.seg_uasid(), msg2.seg_uasid()); + EXPECT_EQ(msg.seg_va(), msg2.seg_va()); + EXPECT_EQ(msg.seg_len(), msg2.seg_len()); + EXPECT_EQ(msg.seg_token_id(), msg2.seg_token_id()); +} - uint8_t buf[urma::v2_wire::HELLO_BODY_LEN]; - m.Serialize(buf); +// --------------------------------------------------------------------------- +// CreateServerHandshakeByMagic dispatches on the magic bytes. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, server_handshake_factory_dispatches_on_magic) { + // We cannot fully exercise the server handshake without a real socket + + // endpoint, but we can verify the factory returns the right protocol + // version for each magic, and nullptr for an unknown magic. + uint8_t magic_v2[4] = {'U', 'R', 'M', 'A'}; + uint8_t magic_v3[4] = {'U', 'R', 'M', '3'}; + uint8_t magic_bad[4] = {'P', 'R', 'P', 'C'}; + + // v2 magic -> protocol version 2 + urma::UrmaHandshake* hs2 = + urma::CreateServerHandshakeByMagic(nullptr, magic_v2); + // Note: the factory dereferences the endpoint only inside SendLocalHello / + // ReceiveAndParseRemoteHello; passing nullptr is safe for the version query. + // (We delete immediately to avoid touching the endpoint.) + if (hs2) { + EXPECT_EQ(2, hs2->ProtocolVersion()); + delete hs2; + } + // v3 magic -> protocol version 3 + urma::UrmaHandshake* hs3 = + urma::CreateServerHandshakeByMagic(nullptr, magic_v3); + if (hs3) { + EXPECT_EQ(3, hs3->ProtocolVersion()); + delete hs3; + } + // unknown magic -> nullptr (caller falls back to TCP) + urma::UrmaHandshake* hsb = + urma::CreateServerHandshakeByMagic(nullptr, magic_bad); + EXPECT_EQ(nullptr, hsb); +} - urma::v2_wire::HelloMessage m2; - m2.Deserialize(buf); - EXPECT_EQ(m.msg_len, m2.msg_len); - EXPECT_EQ(m.hello_ver, m2.hello_ver); - EXPECT_EQ(m.impl_ver, m2.impl_ver); - EXPECT_EQ(m.buffer_size, m2.buffer_size); - EXPECT_EQ(m.recv_buffer_cnt, m2.recv_buffer_cnt); - EXPECT_EQ(m.jetty_id, m2.jetty_id); - EXPECT_EQ(0, memcmp(m.eid, m2.eid, 16)); - EXPECT_EQ(m.uasid, m2.uasid); - EXPECT_EQ(m.tp_type, m2.tp_type); - EXPECT_EQ(0, memcmp(m.seg_eid, m2.seg_eid, 16)); - EXPECT_EQ(m.seg_uasid, m2.seg_uasid); - EXPECT_EQ(m.seg_va, m2.seg_va); - EXPECT_EQ(m.seg_len, m2.seg_len); - EXPECT_EQ(m.seg_token_id, m2.seg_token_id); +// --------------------------------------------------------------------------- +// CreateClientHandshake picks the version from the gflag. +// --------------------------------------------------------------------------- +TEST(UrmaHandshakeTest, client_handshake_factory_respects_flag) { + const int saved = urma::FLAGS_urma_client_handshake_version; + + urma::FLAGS_urma_client_handshake_version = 2; + urma::UrmaHandshake* hs2 = urma::CreateClientHandshake(nullptr); + if (hs2) { + EXPECT_EQ(2, hs2->ProtocolVersion()); + delete hs2; + } + + urma::FLAGS_urma_client_handshake_version = 3; + urma::UrmaHandshake* hs3 = urma::CreateClientHandshake(nullptr); + if (hs3) { + EXPECT_EQ(3, hs3->ProtocolVersion()); + delete hs3; + } + + urma::FLAGS_urma_client_handshake_version = saved; } // --------------------------------------------------------------------------- From d93b8e03d90c32a63e9760a55eed479239ea2da1 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Tue, 28 Jul 2026 16:04:58 +0800 Subject: [PATCH 10/45] Fix proto compile error: uint8 is not a valid protobuf type protobuf proto2 only supports uint32/uint64 (not uint8/uint16). Change tp_type field from uint8 to uint32. The C++ code already casts to/from uint8_t where needed. --- src/brpc/urma/urma_handshake.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/brpc/urma/urma_handshake.proto b/src/brpc/urma/urma_handshake.proto index 24f45446a8..cdaf1c8c2a 100644 --- a/src/brpc/urma/urma_handshake.proto +++ b/src/brpc/urma/urma_handshake.proto @@ -32,7 +32,7 @@ message UrmaHello { required uint32 jetty_id = 3; // local jetty id required bytes eid = 4; // 16-byte local EID (network order) required uint32 uasid = 5; // local uasid - required uint8 tp_type = 6; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP + required uint32 tp_type = 6; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP // Flattened peer buffer-pool segment (urma_seg_t + token). The receiver // calls urma_import_seg with these fields BEFORE urma_import_jetty, so From 629f37a3ff7a36479e9af94d39dc00b10a8b9afd Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Tue, 28 Jul 2026 16:22:04 +0800 Subject: [PATCH 11/45] Add bundled SDK headers under src/brpc/urma/sdk/ for mock-mode compilation When URMA SDK is not installed (URMA_USE_MOCK=1, CI default), the transport source files and mock_urma.cpp still need the URMA type definitions (urma_jfc_t, urma_jetty_t, etc.) to compile. Restore the 3 SDK headers (urma_api.h, urma_types.h, urma_opcode.h) under src/brpc/urma/sdk/ and add that directory to the include path ONLY in mock mode. When the real SDK is installed, the system include path is used instead (matching RDMA's pattern). --- CMakeLists.txt | 6 + src/brpc/urma/sdk/urma_api.h | 1147 +++++++++++++++++++++++++ src/brpc/urma/sdk/urma_opcode.h | 260 ++++++ src/brpc/urma/sdk/urma_types.h | 1430 +++++++++++++++++++++++++++++++ 4 files changed, 2843 insertions(+) create mode 100644 src/brpc/urma/sdk/urma_api.h create mode 100644 src/brpc/urma/sdk/urma_opcode.h create mode 100644 src/brpc/urma/sdk/urma_types.h diff --git a/CMakeLists.txt b/CMakeLists.txt index ef8ec95bce..4ac8b6ad9c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -354,6 +354,12 @@ list(APPEND BRPC_COMMON_INCLUDE_DIRS if(WITH_URMA AND NOT URMA_USE_MOCK) list(APPEND BRPC_COMMON_INCLUDE_DIRS ${URMA_INCLUDE_PATH}) endif() +if(WITH_URMA AND URMA_USE_MOCK) + # No system URMA SDK installed: use the bundled SDK headers under + # src/brpc/urma/sdk/ so the transport + mock can compile. + list(APPEND BRPC_COMMON_INCLUDE_DIRS + ${PROJECT_SOURCE_DIR}/src/brpc/urma/sdk) +endif() set(DYNAMIC_LIB ${GFLAGS_LIBRARY} diff --git a/src/brpc/urma/sdk/urma_api.h b/src/brpc/urma/sdk/urma_api.h new file mode 100644 index 0000000000..3f9a84425e --- /dev/null +++ b/src/brpc/urma/sdk/urma_api.h @@ -0,0 +1,1147 @@ +/* + * SPDX-License-Identifier: MIT + * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. + * Description: URMA API + * Author: Ouyang changchun, Bojie Li, Yan Fangfang, Qian Guoxin + * Create: 2021-07-13 + * Note: + * History: 2021-07-13 Create File + */ +#ifndef URMA_API_H +#define URMA_API_H + +#include +#include + +#include "urma_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Init urma environment. + * @param[in] [Required] conf: urma init attr, a random uasid will be assigned when conf is null. + * Return: 0 on success, other value on error + */ +urma_status_t urma_init(urma_init_attr_t *conf); + +/** + * Un-init urma environment, it will free uasid. + * Return: 0 on success, other value on error + */ +urma_status_t urma_uninit(void); + +/* Device Manage API */ + /** + * Get device list. + * @param[out] num_devices: number of urma device; + * Return: pointer array of urma_device; NULL means no device returned; + * Note: urma_free_device_list() needs to be called to free memory; + */ +urma_device_t **urma_get_device_list(int *num_devices); + +/** +* free device list. +* @param[in] [Required] device_list: pointer array of urma_device,return value of urma_get_device_list. + Can be called after using urma_device list; +* Return: void; +*/ +void urma_free_device_list(urma_device_t **device_list); + +/** +* Get eid list. +* @param[in] [Required] dev: device pointer +* @param[out] cnt: Return the number of valid eids; +* Return: If it succeeds, it will return the eid_info array pointer, and the number of elements +* is cnt; if it fails, it will return NULL; it will be released by the user calling +*/ +urma_eid_info_t *urma_get_eid_list(urma_device_t *dev, uint32_t *cnt); + +/** +* free eid list. +* @param[in] [Required] eid_list: The eid array pointer to be released +* Return: void; +*/ +void urma_free_eid_list(urma_eid_info_t *eid_list); + +/** + * Get device by device name. + * @param[in] [Required] dev_name: device's name; + * Return: urma_device; NULL means no device returned; + */ +urma_device_t *urma_get_device_by_name(char *dev_name); + + /** + * Get device by device eid. + * @param[in] [Required] eid: device's eid; + * @param[in] [Required] type: device's transport type; + * Return: urma_device; NULL means no device returned; + */ +urma_device_t *urma_get_device_by_eid(urma_eid_t eid, urma_transport_type_t type); + +/** + * Query the attributes and capabilities of urma devices. + * @param[in] [Required] dev: urma_device; + * @param[out] dev_attr: Return device attributes, user needs to allocate and free the memory; + * Return: 0 on success, other value on error + */ +urma_status_t urma_query_device(urma_device_t *dev, urma_device_attr_t *dev_attr); + +/** + * Create an urma context on the urma device. + * @param[in] [Required] dev: urma device, by get_device apis. + * @param[in] [Required] eid_index: device's eid index. + * Return urma context pointer on success, NULL on error. + */ +urma_context_t *urma_create_context(urma_device_t *dev, uint32_t eid_index); + +/** + * Delete the created urma context. + * @param[in] [Required] ctx: handle of the created context. + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_context(urma_context_t *ctx); + +/** + * Set option of urma context. + * @param[in] [Required] ctx: handle of the created context. + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_context_opt(urma_context_t *ctx, urma_opt_name_t opt_name, const void *opt_value, + size_t opt_len); + +/** + * Create a jetty for completion (jfc). + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] jfc_cfg: configuration including: depth, flag, jfce, user context; + * Return: the handle of created jfc, not NULL on success; NULL on error + */ +urma_jfc_t *urma_create_jfc(urma_context_t *ctx, urma_jfc_cfg_t *jfc_cfg); + +/** + * Modify JFC attributes. + * @param[in] [Required] jfc: specify JFC; + * @param[in] [Required] attr: attributes to be modified; + * Return: 0 on success, other value on error + */ +urma_status_t urma_modify_jfc(urma_jfc_t *jfc, urma_jfc_attr_t *attr); + +/** + * Delete the created jfc. + * @param[in] [Required] jfc: handle of the created jfc; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jfc(urma_jfc_t *jfc); + +/** + * Alloc a jfc. + * @param[in] [Required] urma_ctx: the urma context created before; + * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; + * @param[out] [Required] jfc: handle of the allocated jfc; + * Return: 0 on success, other value on error + */ +urma_status_t urma_alloc_jfc(urma_context_t *urma_ctx, urma_jfc_cfg_t *cfg, urma_jfc_t **jfc); + +/** + * Set the opt of jfc. + * @param[in] [Required] jfc: the jfc allocated before; + * @param[in] [Required] opt: the opt to change cfg of jfc; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[in] [Required] buf: the buffer containing the value to set; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_jfc_opt(urma_jfc_t *jfc, uint64_t opt, void *buf, uint32_t len); + +/** + * Active the allocated jfc. + * @param[in] [Required] jfc: the jfc allocated before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_active_jfc(urma_jfc_t *jfc); + +/** + * Get the opt of jfc. + * @param[in] [Required] jfc: the jfc allocated before; + * @param[in] [Required] opt: the opt to change cfg of jfc; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[out] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_jfc_opt(urma_jfc_t *jfc, uint64_t opt, void *buf, uint32_t len); + +/** + * Deactive the created jfc. + * @param[in] [Required] jfc: the jfc actived before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_deactive_jfc(urma_jfc_t *jfc); + +/** + * Free the created jfc. + * @param[in] [Required] jfc: the jfc allocated before; + * After free, the jfc pointer is no longer allowed to be accessed. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_jfc(urma_jfc_t *jfc); + +/** + * Delete the created jfc in a batch. + * @param[in] [Required] jfc_arr: the array of the jfc pointer; + * @param[in] [Required] jfc_num: array length; + * @param[out] [Required] bad_jfc: the address of the first failed jfc pointer; + * Return: 0 on success, EINVAL on invalid parameter, other value on other batch + * delete errors. + * If delete error happens(except invalid parameter), stop at the first failed + * jfc and return, these jfc before the failed jfc will be deleted normally. + */ +urma_status_t urma_delete_jfc_batch(urma_jfc_t **jfc_arr, int jfc_num, urma_jfc_t **bad_jfc); + +/** + * Create a jetty for send (jfs). + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] jfs_cfg: address to pu the jfs config; + * Return: the handle of created jfs, not NULL on success, NULL on error + */ +urma_jfs_t *urma_create_jfs(urma_context_t *ctx, urma_jfs_cfg_t *jfs_cfg); + +/** + * Modify a jetty for send (jfs). + * @param[in] [Required] jfs: the jfs created before; + * @param[in] [Required] attr: attributes to be modified; + * Return: 0 on success, other value on error + */ +urma_status_t urma_modify_jfs(urma_jfs_t *jfs, urma_jfs_attr_t *attr); + +/** + * Query a jetty for send (jfs). + * @param[in] [Required] jfs: the jfs created before; + * @param[out] [Required] cfg: config of jfs; + * @param[out] [Required] attr: attributes of jfs; + * Return: 0 on success, other value on error + */ +urma_status_t urma_query_jfs(urma_jfs_t *jfs, urma_jfs_cfg_t *cfg, urma_jfs_attr_t *attr); + +/** + * Delete the created jfs. + * @param[in] [Required] jfs: the jfs created before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jfs(urma_jfs_t *jfs); + +/** + * Delete the created jfs in a batch. + * @param[in] [Required] jfs_arr: the array of the jfs pointer; + * @param[in] [Required] jfs_num: array length; + * @param[out] [Required] bad_jfs: the address of the first failed jfs pointer; + * Return: 0 on success, EINVAL on invalid parameter, other value on other batch + * delete errors. + * If delete error happens(except invalid parameter), stop at the first failed + * jfs and return, these jfs before the failed jfs will be deleted normally. + */ +urma_status_t urma_delete_jfs_batch(urma_jfs_t **jfs_arr, int jfs_num, urma_jfs_t **bad_jfs); + +/** + * Poll the CRs for all the WRs that posted to JFS, but are not completed. + * Call the API after modify JFS to error, or polled a suspened done CR. + * CRs with status of URMA_CR_WR_FLUSH_ERR will be returned on success. + * @param[in] [Required] jfs: the jfs created before; + * @param[in] [Required] cr_cnt: Number of CR expected to be received.; + * @param[out] [Required] cr: Address for storing CR; + * Return: the number of CR returned, 0 means no CR returned, -1 on error + */ +int urma_flush_jfs(urma_jfs_t *jfs, int cr_cnt, urma_cr_t *cr); + +/** + * Alloc a jfs. + * @param[in] [Required] urma_ctx: the urma context created before; + * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; + * @param[out] [Required] jfs: handle of the allocated jfs; + * Return: 0 on success, other value on error + */ +urma_status_t urma_alloc_jfs(urma_context_t *urma_ctx, urma_jfs_cfg_t *cfg, urma_jfs_t **jfs); + +/** + * Set the opt of jfs. + * @param[in] [Required] jfs: the jfs allocated before; + * @param[in] [Required] opt: the opt to change cfg of jfs; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[in] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_jfs_opt(urma_jfs_t *jfs, uint64_t opt, void *buf, uint32_t len); + +/** + * Active the created jfs. + * @param[in] [Required] jfs: the jfs allocated before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_active_jfs(urma_jfs_t *jfs); + +/** + * Get the opt of jfs. + * @param[in] [Required] jfs: the jfs allocated before; + * @param[in] [Required] opt: the opt to change cfg of jfs; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[out] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_jfs_opt(urma_jfs_t *jfs, uint64_t opt, void *buf, uint32_t len); + +/** + * Deactive the created jfs. + * @param[in] [Required] jfs: the jfs actived before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_deactive_jfs(urma_jfs_t *jfs); + +/** + * Free the created jfs. + * @param[in] [Required] jfs: the jfs allocated before; + * After free, the jfs pointer is no longer allowed to be accessed. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_jfs(urma_jfs_t *jfs); + + /** + * Create a jetty for receive (jfr). + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] jfr_cfg: address to put the jfr config; + * Return: the handle of created jfr, not NULL on success, NULL on error + */ +urma_jfr_t *urma_create_jfr(urma_context_t *ctx, urma_jfr_cfg_t *jfr_cfg); + +/** + * Modify JFR attributes. + * @param[in] [Required] jfr: specify JFR; + * @param[in] [Required] attr: attributes to be modified; + * Return: 0 on success, other value on error + */ +urma_status_t urma_modify_jfr(urma_jfr_t *jfr, urma_jfr_attr_t *attr); + +/** + * Query a jetty for recv(jfr). + * @param[in] [Required] jfr: the jfr created before; + * @param[out] [Required] cfg: config of jfr; + * @param[out] [Required] attr: attributes of jfr; + * Return: 0 on success, other value on error + */ +urma_status_t urma_query_jfr(urma_jfr_t *jfr, urma_jfr_cfg_t *cfg, urma_jfr_attr_t *attr); + +/** + * Delete the created jfr. + * @param[in] [Required] jfr: the jfr created before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jfr(urma_jfr_t *jfr); + +/** + * Delete the created jfr in a batch. + * @param[in] [Required] jfr_arr: the array of the jfr pointer; + * @param[in] [Required] jfr_num: array length; + * @param[out] [Required] bad_jfr: the address of the first failed jfr pointer; + * Return: 0 on success, EINVAL on invalid parameter, other value on other batch + * delete errors. + * If delete error happens(except invalid parameter), stop at the first failed + * jfr and return, these jfr before the failed jfr will be deleted normally. + */ +urma_status_t urma_delete_jfr_batch(urma_jfr_t **jfr_arr, int jfr_num, urma_jfr_t **bad_jfr); + +/** + * Import a remote jfr to local node. + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] rjfr: the information of remote jfr to import into user node, trans_mode required, + * trans_mode same to create_jfr trans_mode; + * @param[in] [Required] token_value: token to put into output jetty/protection table; + * Return: the address of target jfr, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jfr(urma_context_t *ctx, urma_rjfr_t *rjfr, urma_token_t *token_value); + +/** + * Import a remote jfr to local node by control plane. + * Note: trans_mode from rjfr should be the same as the trans_mode of get_tp_list, + * users should obey this rule in case of unexpected errors. + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] rjfr: the information of remote jfr to import into user node, trans_mode required, + * trans_mode same to create_jfr trans_mode; + * @param[in] [Required] token_value: token to put into output jetty/protection table; + * @param[in] [Required] cfg: tp active configuration to exchange with target; + * Return: the address of target jfr, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jfr_ex(urma_context_t *ctx, urma_rjfr_t *rjfr, urma_token_t *token_value, + urma_import_jfr_ex_cfg_t *cfg); + +/** + * Unimport the imported remote jfr. + * @param[in] [Required] target_jfr: the target jfr to unimport; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unimport_jfr(urma_target_jetty_t *target_jfr); + +/** + * Advise jfr: construct the transport channel for jfs and remote jfr. + * @param[in] [Required] jfs: jfs to use to construct the transport channel; + * @param[in] [Required] tjfr: target jfr information including full qualified jfr id; + * Return: 0 on success, URMA_EEXIST if the jfr has been advised, other value on error + */ +urma_status_t urma_advise_jfr(urma_jfs_t *jfs, urma_target_jetty_t *tjfr); + +/** + * Async API for urma_advise_jfr + * Advise jfr: construct the transport channel for jfs and remote jfr. + * @param[in] [Required] jfs: jfs to use to construct the transport channel; + * @param[in] [Required] tjfr: target jfr information including full qulified jfr id; + * @param[in] [Required] cb_func: user defined callback function. + * @param[in] [Required] cb_arg: user defined arguments for the callback function. + * Return: 0 on success, URMA_EEXIST if the jfr has been advised, other value on error. + * Note: User must define callback function to handle result, + * as the async respone will call the cb_func and pass the result to it. + */ +urma_status_t urma_advise_jfr_async(urma_jfs_t *jfs, urma_target_jetty_t *tjfr, urma_advise_async_cb_func cb_fun, + void *cb_arg); + +/** + * Unadvise jfr: disconnect the transport channel for jfs and remote jfr. Optional API for optimization + * @param[in] [Required] jfs: jfs to use to construct the transport channel; + * @param[in] [Required] tjfr: target jfr information including full qualified jfr id; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unadvise_jfr(urma_jfs_t *jfs, urma_target_jetty_t *tjfr); + +/** + * Alloc a jfr. + * @param[in] [Required] urma_ctx: the urma context created before; + * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; + * @param[out] [Required] jfr: handle of the allocated jfr; + * Return: 0 on success, other value on error + */ +urma_status_t urma_alloc_jfr(urma_context_t *urma_ctx, urma_jfr_cfg_t *cfg, urma_jfr_t **jfr); + +/** + * Set the opt of jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * @param[in] [Required] opt: the opt to change cfg of jfr; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[in] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_jfr_opt(urma_jfr_t *jfr, uint64_t opt, void *buf, uint32_t len); + +/** + * Active the allocated jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * Return: 0 on success, other value on error + */ +urma_status_t urma_active_jfr(urma_jfr_t *jfr); + +/** + * Get the opt of jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * @param[in] [Required] opt: the opt to change cfg of jfr; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[out] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_jfr_opt(urma_jfr_t *jfr, uint64_t opt, void *buf, uint32_t len); + +/** + * Deactive the actived jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * Return: 0 on success, other value on error + */ +urma_status_t urma_deactive_jfr(urma_jfr_t *jfr); + +/** + * Free the allocated jfr. + * @param[in] [Required] jfr: handle of the allocated jfr; + * After free, the jfr pointer is no longer allowed to be accessed. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_jfr(urma_jfr_t *jfr); + +/** + ******************** Beginning of URMA JETTY APIs *************************** + */ + +/** + * Create jetty, which is a pair of jfs and jfr + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] jetty_cfg: pointer of the jetty config; + * Return: the handle of created jetty, not NULL on success, NULL on error + */ +urma_jetty_t *urma_create_jetty(urma_context_t *ctx, urma_jetty_cfg_t *jetty_cfg); + +/** + * Modify jetty attributes. + * @param[in] [Required] jetty: specify jetty; + * @param[in] [Required] attr: attributes to be modified; + * Return: 0 on success, other value on error + */ +urma_status_t urma_modify_jetty(urma_jetty_t *jetty, urma_jetty_attr_t *attr); + +/** + * Query jetty attributes. + * @param[in] [Required] jetty: specify jetty; + * @param[out] [Required] cfg: cconfig to query; + * @param[out] [Required] attr: attributes to query; + * Return: 0 on success, other value on error + */ +urma_status_t urma_query_jetty(urma_jetty_t *jetty, urma_jetty_cfg_t *cfg, urma_jetty_attr_t *attr); + +/** + * Delete the created jetty. + * @param[in] [Required] jetty: the jetty created before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jetty(urma_jetty_t *jetty); + +/** + * Delete the created jetty in a batch. + * @param[in] [Required] jetty_arr: the array of the jetty pointer; + * @param[in] [Required] jetty_num: array length; + * @param[out] [Required] bad_jetty: the address of the first failed jetty pointer; + * Return: 0 on success, EINVAL on invalid parameter, other value on other batch + * delete errors. + * If delete error happens(except invalid parameter), stop at the first failed + * jetty and return, these jetty before the failed jetty will be deleted normally. + */ +urma_status_t urma_delete_jetty_batch(urma_jetty_t **jetty_arr, int jetty_num, urma_jetty_t **bad_jetty); + +/** + * Import a remote jetty. + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, + * trans_mode same to create_jetty trans_mode; + * @param[in] [Required] token_value: token to put into output jetty protection table; + * Return: the address of target jetty, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jetty(urma_context_t *ctx, urma_rjetty_t *rjetty, urma_token_t *token_value); + +/** + * Import a remote jetty by control plane. + * Note: trans_mode from rjetty should be the same as the trans_mode of get_tp_list, + * users should obey this rule in case of unexpected errors. + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, + * trans_mode same to create_jetty trans_mode; + * @param[in] [Required] token_value: token to put into output jetty protection table; + * @param[in] [Required] cfg: tp active configuration to exchange with target; + * Return: the address of target jetty, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jetty_ex(urma_context_t *ctx, urma_rjetty_t *rjetty, urma_token_t *token_value, + urma_import_jetty_ex_cfg_t *cfg); + +/** + * Unimport the imported remote jetty. + * @param[in] [Required] tjetty: the target jetty to unimport; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unimport_jetty(urma_target_jetty_t *tjetty); + +/** + * Advise jetty: construct the transport channel between local jetty and remote jetty. + * @param[in] [Required] jetty: local jetty to construct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * Return: 0 on success, URMA_EEXIST if the jetty has been advised, other value on error + * Note: A local jetty can be advised with several remote jetties. A connectionless jetty is free to call the adivse API + */ +/* todo: available after implementing URMA_TM_RM(IB_RC) */ +urma_status_t urma_advise_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); + +/** + * Unadvise jetty: deconstruct the transport channel between local jetty and remote jetty. + * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * Return: 0 on success, other value on error + */ +/* todo: available after implementing URMA_TM_RM(IB_RC) */ +urma_status_t urma_unadvise_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); + +/** + * Bind jetty: construct the transport channel between local jetty and remote jetty. + * @param[in] [Required] jetty: local jetty to construct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error + * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. + */ +urma_status_t urma_bind_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); + +/** + * Bind jetty: construct the transport channel between local jetty and remote jetty by control plane. + * Note: trans_mode from tjetty should be the same as the trans_mode of get_tp_list, + * users should obey this rule in case of unexpected errors. + * @param[in] [Required] jetty: local jetty to construct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error; + * @param[in] [Required] cfg: tp active configuration to exchange with target; + * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. + */ +urma_status_t urma_bind_jetty_ex(urma_jetty_t *jetty, urma_target_jetty_t *tjetty, urma_bind_jetty_ex_cfg_t *cfg); + +/** + * Unbind jetty: deconstruct the transport channel between local jetty and remote jetty. + * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unbind_jetty(urma_jetty_t *jetty); + +/** + * Poll the CRs for all the WRs that posted to Jetty, but are not completed. + * Call the API after modify Jetty to error, or polled a suspened done CR. + * CRs with status of URMA_CR_WR_FLUSH_ERR will be returned on success. + * @param[in] [Required] jetty: the jetty created before; + * @param[in] [Required] cr_cnt: Number of CR expected to be received.; + * @param[out] [Required] cr: Address for storing CR; + * Return: the number of CR returned, 0 means no CR returned, -1 on error + */ +int urma_flush_jetty(urma_jetty_t *jetty, int cr_cnt, urma_cr_t *cr); + +/** + * Import a remote jetty asynchronously. + * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; + * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, + * trans_mode same to create_jetty trans_mode; + * @param[in] [Required] token_value: token to put into output jetty protection table; + * @param[in] [Required] user_ctx: user_ctx create by user; + * @param[in] [Required] timeout: task timeout set by user (milliseconds); + * Return: the address of target jetty, not NULL on success, NULL on error + */ +urma_target_jetty_t *urma_import_jetty_async(urma_notifier_t *notifier, const urma_rjetty_t *rjetty, + const urma_token_t *token_value, uint64_t user_ctx, int timeout); + +/** + * Unimport the imported remote jetty asynchronously. + * @param[in] [Required] tjetty: the target jetty to unimport; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unimport_jetty_async(urma_target_jetty_t *tjetty); + +/** + * Bind jetty asynchronously: construct the transport channel between local jetty and remote jetty. + * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; + * @param[in] [Required] jetty: local jetty to construct the transport channel; + * @param[in] [Required] tjetty: target jetty imported before; + * @param[in] [Required] user_ctx: user_ctx create by user; + * @param[in] [Required] timeout: task timeout set by user (milliseconds); + * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error + * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. + */ +urma_status_t urma_bind_jetty_async(urma_notifier_t *notifier, urma_jetty_t *jetty, urma_target_jetty_t *tjetty, + uint64_t user_ctx, int timeout); + +/** + * Unbind jetty: deconstruct the transport channel between local jetty and remote jetty asynchronously. + * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unbind_jetty_async(urma_jetty_t *jetty); + +/** + * Create a data structure for sensing asynchronous link establishment results. + * @param[in] [Required] ctx: the urma context created before; + * Return: the address of urma notifier, not NULL on success, NULL on error + */ +urma_notifier_t *urma_create_notifier(urma_context_t *ctx); + +/** + * Delete the created notifier. + * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_notifier(urma_notifier_t *notifier); + +/** + * Alloc a jetty. + * @param[in] [Required] urma_ctx: the urma context created before; + * @param[in] [Required] jetty_cfg: configuration including: depth, flag, jfce, user context; + * @param[out] [Required] jetty: handle of the allocated jetty; + * Return: 0 on success, other value on error + */ +urma_status_t urma_alloc_jetty(urma_context_t *urma_ctx, urma_jetty_cfg_t *cfg, urma_jetty_t **jetty); + +/** + * Set the opt of jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * @param[in] [Required] opt: the opt to change cfg of jetty; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[in] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_jetty_opt(urma_jetty_t *jetty, uint64_t opt, void *buf, uint32_t len); + +/** + * Active the allocated jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * Return: 0 on success, other value on error + */ +urma_status_t urma_active_jetty(urma_jetty_t *jetty); + +/** + * Get the opt of jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * @param[in] [Required] opt: the opt to change cfg of jetty; + * @param[in] [Required] len: the len of the opt value(byte); + * @param[out] [Required] buf: the buffer to store the value; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_jetty_opt(urma_jetty_t *jetty, uint64_t opt, void *buf, uint32_t len); + +/** + * Deactive the actived jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * Return: 0 on success, other value on error + */ +urma_status_t urma_deactive_jetty(urma_jetty_t *jetty); + +/** + * Free the allocated jetty. + * @param[in] [Required] jetty: handle of the allocated jetty; + * After free, the jfc pointer is no longer allowed to be accessed. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_jetty(urma_jetty_t *jetty); + +/** + * Wait for asynchronous event notification to obtain the connection establishment result. + * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; + * @param[in] [Required] cnt: expected number of target jetty to return; + * @param[in] [Required] timeout: max time to wait (milliseconds), + timeout = 0: return immediately even if no events are ready, + timeout = -1: an infinite timeout; + * @param[out] [Required] notify: created by user to store target jetty results; + * Return: the number of target jetty returned, 0 means no target jetty returned, -1 on error + */ +int urma_wait_notify(urma_notifier_t *notifier, uint32_t cnt, urma_notify_t *notify, int timeout); + +/** + * This interface is no longer functional and will be removed later. + * Keep parameter checks to ensure the function works as before. + */ +urma_status_t urma_ack_notify(urma_context_t *ctx, uint32_t cnt, urma_notify_t *notify); + +/** + ******************** Beginning of URMA JETTY GROUP APIs *************************** + */ + +/** + * Create jetty group + * @param[in] [Required] ctx: the urma context created before; + * @param[in] [Required] cfg: pointer of the jetty group config; + * Return: the handle of created jetty group, not NULL on success, NULL on error + */ +urma_jetty_grp_t *urma_create_jetty_grp(urma_context_t *ctx, urma_jetty_grp_cfg_t *cfg); + +/** + * Destroy jetty group + * @param[in] [Required] jetty_grp: the Jetty group created before; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jetty_grp(urma_jetty_grp_t *jetty_grp); + +/** + * Create a jfce + * @param[in] [Required] ctx: the urma context created before; + * Return: the address of created jfce, not NULL on success, NULL on error + */ +urma_jfce_t *urma_create_jfce(urma_context_t *ctx); + +/** + * Delete a jfce + * @param[in] [Required] jfce: the jfce to be deleted; + * Return: 0 on success, other value on error + */ +urma_status_t urma_delete_jfce(urma_jfce_t *jfce); + +/** + * Get asyn event. + * @param[in] [Required] ctx: handle of the created urma context; + * @param[out] [Required] event: the address to put event + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_async_event(urma_context_t *ctx, urma_async_event_t *event); + +/** + * Ack asyn event. + * @param[in] [Required] event: the address to ack event; + * Return: void + */ +void urma_ack_async_event(urma_async_event_t *event); + +/** + * Request to assign a token id. token id is used to register the segment with the protection table. + * @param[in] [Required] ctx: specifies the urma context. + * Return: pointer to key id on success, NULL on error. + */ +urma_token_id_t *urma_alloc_token_id(urma_context_t *ctx); + +/** + * Request to assign a token id. token id is used to register multiple segments with the protection table. + * Can use table mode or entry mode based on flag. + * @param[in] [Required] ctx: specifies the urma context. + * @param[in] [Required] flag: decides the mode of token id. use table mode if enable multi_seg in flag. + * Return: pointer to key id on success, NULL on error. + * Note: if use table mode, the VA address page alignment is required when register the segments. + */ +urma_token_id_t *urma_alloc_token_id_ex(urma_context_t *ctx, urma_token_id_flag_t flag); + +/** + * Request to release token id. + * @param[in] [Required] token_id: Specifies the token id to be released. + * Return: 0 on success, other value on error + */ +urma_status_t urma_free_token_id(urma_token_id_t *token_id); + +/** + * Register a memory segment on specified va address for local or remote access. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] seg_cfg: Specify cfg of seg to be registered, including address, len, token, and so on; + * Return: pointer to target segment on success, NULL on error + * And the immedidate data wrote from clients is polled from this common jfc. + */ +urma_target_seg_t *urma_register_seg(urma_context_t *ctx, urma_seg_cfg_t *seg_cfg); + +/** + * Unregister a local memory segment on specified va address. + * @param[in] [Required] target_seg: target segment to be unregistered; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unregister_seg(urma_target_seg_t *target_seg); + +/** + * Import a memory segment on specified ubva address. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] seg: handle of memory segment to import; + * @param[in] [Required] token_value: token of remote side to put into output protection table; + * @param[in] [Optional] addr: the virtual address to which the segment will be mapped; + * @param[in] [Required] flag: flag to indicate the import attribute of memory segment; + * Return: pointer to target segment on success, NULL on error + */ +urma_target_seg_t *urma_import_seg(urma_context_t *ctx, urma_seg_t *seg, urma_token_t *token_value, uint64_t addr, + urma_import_seg_flag_t flag); + +/** + * Unimport a memory segment on specified ubva address. + * @param[in] [Required] tseg: the address of the target segment to unimport; + * Return: 0 on success, other value on error + */ +urma_status_t urma_unimport_seg(urma_target_seg_t *tseg); + +/** + * post a request to read, write, atomic or send data. + * @param[in] jfs: the jfs created before, which is used to put command; + * @param[in] wr: the posting request all information, including src addr, dst addr, len, jfc, flag, ordering etc. + * @param[in] bad_wr: the first of failure request. + * Return: 0 on success, other value on error + */ +urma_status_t urma_post_jfs_wr(urma_jfs_t *jfs, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr); + +/** + * post a request to recv data. + * @param[in] jfr: the jfr created before, which is used to put command; + * @param[in] wr: the posting request all information, including sge, flag. + * @param[in] bad_wr: the first of failure request. + * Return: 0 on success, other value on error + */ +urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr); + +/** + * post a request to read, write, atomic or send data. + * @param[in] jetty: the jetty created before, which is used to put command; + * @param[in] wr: the posting request all information, including src addr, dst addr, len, jfc, flag, ordering etc. + * @param[in] bad_wr: the first of failure request. + * Return: 0 on success, other value on error + */ +urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr); + +/** + * post a request to recv data. + * @param[in] jetty: the jetty created before, which is used to put command; + * @param[in] wr: the posting request all information, including sge, flag. + * @param[in] bad_wr: the first of failure request. + * Return: 0 on success, other value on error + */ +urma_status_t urma_post_jetty_recv_wr(urma_jetty_t *jetty, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr); + +/** + * Write data to remote node. + * @param[in] jfs: the jfs created before, which is used to put command; + * @param[in] target_jfr: destination jetty receiver; + * @param[in] dst_tseg: the dst target seg imported before; + * @param[in] src_tseg: the src target seg registered before; + * @param[in] dst: destination address(mapping va on user node or rva in ubva on home node) to be written into + * @param[in] src: source address(local process address space) to fetch data + * @param[in] len: the data len to be written + * @param[in] flag: flag to control jfs work request attritube + * @param[in] user_ctx: the user context, such as request id(rid) etc. + * Return: 0 on success, other value on error + */ +urma_status_t urma_write(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *dst_tseg, + urma_target_seg_t *src_tseg, uint64_t dst, uint64_t src, uint32_t len, urma_jfs_wr_flag_t flag, + uint64_t user_ctx); + +/** + * Read data from remote node. + * @param[in] jfs: the jfs created before, which is used to put command; + * @param[in] target_jfr: destination jetty receiver; + * @param[in] dst_tseg: the seg registered before; + * @param[in] src_tseg: the target seg imported before; + * @param[in] dst: destination address(local process address space) to be written into + * @param[in] src: source address(mapping va or rva in ubva) to fetch data + * @param[in] len: the data len to be written + * @param[in] flag: the flag to control jfs work request attritube + * @param[in] user_ctx: the user context, such as request id(rid) etc. + * Return: 0 on success, other value on error + */ +urma_status_t urma_read(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *dst_tseg, + urma_target_seg_t *src_tseg, uint64_t dst, uint64_t src, uint32_t len, urma_jfs_wr_flag_t flag, + uint64_t user_ctx); + +/** + * Send data to remote node. + * @param[in] jfs: the jfs created before, which is used to put command; + * @param[in] target_jfr: destination jetty receiver(with full qualifed jfr id); + * @param[in] src_tseg: the seg registered before, can be NULL only when flag.bs.inline_flag == URMA_INLINE_ENABLE + * @param[in] src: source address for sending; + * @param[in] len: data length; + * @param[in] flag: flag to control jfs work request attritube + * @param[in] user_ctx: the user context, such as request id(rid) etc; + * Return: 0 on success, other value on error. + */ +urma_status_t urma_send(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *src_tseg, uint64_t src, + uint32_t len, urma_jfs_wr_flag_t flag, uint64_t user_ctx); + +/** + * Assign local buffer to receive data from remote node. + * @param[in] jfr: jetty receiver; + * @param[in] recv_tseg: the locally registered segment before for receiving; + * @param[in] buf: buffer address for receiving; + * @param[in] len: buffer length; + * @param[in] user_ctx: the user context, such as request id(rid) etc; + * Return: 0 on success, other value on error. + */ +urma_status_t urma_recv(urma_jfr_t *jfr, urma_target_seg_t *recv_tseg, uint64_t buf, uint32_t len, uint64_t user_ctx); + +/** + * Poll jfc to get completion record. + * @param[in] jfc: jetty completion queue to poll + * @param[in] cr_cnt: the expected number of completion record to get + * @param[out] cr: the completion record array to fill at least cr_cnt completion records + * Return: the number of completion record returned, 0 means no completion record returned, less than 0 on error + * Note that: at most 16 completion records can be polled for RDMA device + */ +int urma_poll_jfc(urma_jfc_t *jfc, int cr_cnt, urma_cr_t *cr); + +/** + * Arm jfc with interrupt mode. + * @param[in] jfc: jetty completion queue to arm to interrupt mode + * @param[in] solicited_only: indicate it will trigger event only for packets with solicited flag. + * Return: 0 on success, other value on error + */ +urma_status_t urma_rearm_jfc(urma_jfc_t *jfc, bool solicited_only); + +/** + * Wait jfce for event of any completion message is generated. + * @param[in] jfce: jetty event channel to wait on + * @param[in] jfc_cnt: expected jfc count to return + * @param[in] time_out: max time to wait (milliseconds), + * timeout = 0: return immediately even if no events are ready, + * timeout = -1: an infinite timeout + * @param[out] jfc: address to put the jfc handle + * Return: the number of jfc returned, 0 means no jfc returned, -1 on error + * Note: User should check error when wait_jfc returns 0, errno ERESTARTSYS(512) + * means wait operation was interrupted by a signal and this error should + * be ignored, users should continue to wait jfc. + */ +int urma_wait_jfc(urma_jfce_t *jfce, uint32_t jfc_cnt, int time_out, urma_jfc_t *jfc[]); + +/** + * Confirm that a JFC generated event has been processed. + * @param[in] jfc: jfc pointer array to be acknowledged + * @param[in] nevents: event count array to be acknowledged + * @param[in] jfc_cnt: number of elements in the array + * Return: void + */ +void urma_ack_jfc(urma_jfc_t *jfc[], uint32_t nevents[], uint32_t jfc_cnt); + +/** + * Get or allocate a uasid. + * @param[out] uasid: the address to put uasid + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_uasid(uint32_t *uasid); + +/** + * User defined control of the context. + * @param[in] ctx: the created urma context pointer; + * @param[in] in: user ioctl cmd; + * @param[out] out: result of execution; + * Return: 0 on success, other value on error + * Note: This API only supports UB hardware currently. + */ +urma_status_t urma_user_ctl(urma_context_t *ctx, urma_user_ctl_in_t *in, urma_user_ctl_out_t *out); + +/** + * User register own log function, default rsyslog. + * @param[in] func: log callback func; + * Return: 0 on success, other value on error + */ +urma_status_t urma_register_log_func(urma_log_cb_t func); + +/** + * User register location log function with file, function and line info. + * @param[in] func: location log callback function; + * Return: 0 on success, other value on error + * Note: If both urma_register_log_func and urma_register_loc_log_func are called, + * the last registered function will be used. + */ +urma_status_t urma_register_loc_log_func(urma_loc_log_cb func); + +/** + * User unregister own log function, use rsyslog. + * Return: 0 on success, other value on error + */ +urma_status_t urma_unregister_log_func(void); + +/** + * get log level. + * Return: urma_vlog_level_t + */ +urma_vlog_level_t urma_log_get_level(void); + +/** + * set log level. + * @param[in] level: log level to set; + */ +void urma_log_set_level(urma_vlog_level_t level); + +/** + * get log thread tag. + * Return: const char * + */ +const char *urma_log_get_thread_tag(void); + +/** + * set log thread tag. + * @param[in] tag: log tag per thread; + */ +void urma_log_set_thread_tag(const char *tag); + +/** + * User tp only. + * Get tpn of tp created when creating jetty. + * @param[in] jetty: the created jetty pointer; + * Return: >= 0 on success, return as tpn; < 0 on error + */ +int urma_get_tpn(urma_jetty_t *jetty); + +/** + * Get net address info list, user tp only. + * @param[in] ctx: the created urma context pointer; + * @param[out] cnt: numer of net address info; + * Return: pointer of net address list; NULL on error + */ +urma_net_addr_info_t *urma_get_net_addr_list(urma_context_t *ctx, uint32_t *cnt); + +/** + * Free net address info list. + * @param[in] net_addr_list: pointer of net address list + */ +void urma_free_net_addr_list(urma_net_addr_info_t *net_addr_list); + +/** + * Modify tp by user connection. + * @param[in] ctx: the created urma context pointer; + * @param[in] tpn: tpn of tp created before; + * @param[in] cfg: tp configurations filled by user; + * @param[in] attr: tp attributes filled by user; + * @param[in] mask: bitmap configurations for tp attributes; + * Return: 0 on success; other values on error + */ +int urma_modify_tp(urma_context_t *ctx, uint32_t tpn, urma_tp_cfg_t *cfg, urma_tp_attr_t *attr, + urma_tp_attr_mask_t mask); + +/** + * get available tp list from control plane. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] tp_cfg: tp configuration to get; + * @param[in && out] [Required] tp_cnt: tp_cnt is the length of tp_list buffer as in parameter; + * tp_cnt is the number of tp as out parameter; + * @param[out] [Required] tp_list: tp list to get, the buffer is allocated by user; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_tp_list(urma_context_t *ctx, urma_get_tp_cfg_t *cfg, uint32_t *tp_cnt, urma_tp_info_t *tp_list); + +/** + * set tp attribution values in control plane. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] tp_handle: tp_handle got by urma_get_tp_list; + * @param[in] [Required] tp_attr_cnt: number of tp attributions; + * @param[in] [Required] tp_attr_bitmap: tp attributions bitmap, current bitmap is as follow: + * 0-retry_times_init: 3 bit 1-at: 5 bit 2-SIP: 128 bit + * 3-DIP: 128 bit 4-SMA: 48 bit 5-DMA: 48 bit + * 6-vlan_id: 12 bit 7-vlan_en: 1 bit 8-dscp: 6 bit + * 9-at_times: 5 bit 10-sl: 4 bit 11-ttl: 8 bit + * @param[in] [Required] tp_attr: tp attribution values to set; + * Return: 0 on success, other value on error + */ +urma_status_t urma_set_tp_attr(const urma_context_t *ctx, const uint64_t tp_handle, const uint8_t tp_attr_cnt, + const uint32_t tp_attr_bitmap, const urma_tp_attr_value_t *tp_attr); + +/** + * get tp attribution values in control plane. + * @param[in] [Required] ctx: the created urma context pointer; + * @param[in] [Required] tp_handle: tp_handle got by urma_get_tp_list; + * @param[out] [Required] tp_attr_cnt: number of tp attributions; + * @param[out] [Required] tp_attr_bitmap: tp attributions bitmap, current bitmap is as follow: + * 0-retry_times_init: 3 bit 1-at: 5 bit 2-SIP: 128 bit + * 3-DIP: 128 bit 4-SMA: 48 bit 5-DMA: 48 bit + * 6-vlan_id: 12 bit 7-vlan_en: 1 bit 8-dscp: 6 bit + * 9-at_times: 5 bit 10-sl: 4 bit 11-ttl: 8 bit + * @param[out] [Required] tp_attr: tp attribution values to get; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_tp_attr(const urma_context_t *ctx, const uint64_t tp_handle, uint8_t *tp_attr_cnt, + uint32_t *tp_attr_bitmap, urma_tp_attr_value_t *tp_attr); + +/** + * get eid by ip info + * @param[in] ctx: the created urma context pointer; + * @param[in] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); + * @param[out] eid: device's eid; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_eid_by_ip(const urma_context_t *ctx, const urma_net_addr_t *net_addr, urma_eid_t *eid); + +/** + * get ip info by eid. + * @param[in] ctx: the created urma context pointer; + * @param[in] eid: device's eid; + * @param[out] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_ip_by_eid(const urma_context_t *ctx, const urma_eid_t *eid, urma_net_addr_t *net_addr); + + +/** + * get source mac address. + + * @param[in] ctx: the created urma context pointer; + * @param[out] mac: the mac address of source; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_smac(const urma_context_t *ctx, uint8_t *mac); + +/** + * get dest mac address. + * @param[in] ctx: the created urma context pointer; + * @param[in] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); + * @param[out] mac: the mac address of dest; + * Return: 0 on success, other value on error + */ +urma_status_t urma_get_dmac(const urma_context_t *ctx, const urma_net_addr_t *net_addr, uint8_t *mac); + +#ifdef __cplusplus + } +#endif + +#endif diff --git a/src/brpc/urma/sdk/urma_opcode.h b/src/brpc/urma/sdk/urma_opcode.h new file mode 100644 index 0000000000..a707951d27 --- /dev/null +++ b/src/brpc/urma/sdk/urma_opcode.h @@ -0,0 +1,260 @@ +/* + * SPDX-License-Identifier: MIT + * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. + * Description: URMA opcode header file + * Author: Ouyang Changchun, Yan Fangfang, Qian Guoxin + * Create: 2021-09-26 + * Note: + * History: 2021-09-26 Create File + */ + +#ifndef URMA_OPCODE_H +#define URMA_OPCODE_H + +#include + +/* urma bit field value */ +#define URMA_TOKEN_NONE 0 /* Indicates the verification policy of the key. */ +#define URMA_TOKEN_PLAIN_TEXT 1 +#define URMA_TOKEN_SIGNED 2 +#define URMA_TOKEN_ALL_ENCRYPTED 3 +#define URMA_TOKEN_RESERVED 4 + +#define URMA_TOKEN_ID_INVALID 0 +#define URMA_TOKEN_ID_VALID 1 + +#define URMA_DSVA_DISABLE 0 /* Indicates whether it is a segment of dsva. */ +#define URMA_DSVA_ENABLE 1 + +#define URMA_NON_CACHEABLE 0 /* Indicates whether the segment can be cached by multiple hosts. */ +#define URMA_CACHEABLE 1 + +/* If URMA_ACCESS_LOCAL_ONLY is set, local access will have all the permissions of + * READ, WRITE, and ATOMIC but external access is denied. + * If URMA_ACCESS_LOCAL_ONLY is not set, in addition to having all permissions for local access, + * the configuration of external access permissions is determined by the following three types, and + * it takes effect according to the combination of READ, WRITE, and ATOMIC configured by the user. + */ +#define URMA_ACCESS_LOCAL_ONLY (0x1 << 0) +#define URMA_ACCESS_READ (0x1 << 1) +#define URMA_ACCESS_WRITE (0x1 << 2) +#define URMA_ACCESS_ATOMIC (0x1 << 3) + +#define URMA_LOCAL_MEMORY 0 /* Indicates that the physical memory is remote. */ +#define URMA_REMOTE_MEMORY 1 + +#define URMA_SEG_NOMAP 0 /* Indicates that the current process has mapped this segment */ +#define URMA_SEG_MAPPED 1 + +#define URMA_ADDR_TYPE_MVA 0 +#define URMA_ADDR_TYPE_UBVA 1 + +#define URMA_COMPLETE_ENABLE 1 /* Notify the source after the task is completed. */ +#define URMA_COMPLETE_DISABLE 0 /* Do not notify the source after the task is complete. */ + +#define URMA_COMPLETE_TYPE_JFC 0 /* Complete notification via JFC. */ +#define URMA_COMPLETE_TYPE_CF 1 /* Complete notification via DDR address */ + +#define URMA_DEPENDENCY_NONE 0 /* There is no dependency between commands. */ +#define URMA_DEPENDENCY_FIRST \ + 1 /* Subsequent commands depend on the execution result \ + of the current command. */ +#define URMA_DEPENDENCY_DELAY \ + 2 /* The current command is executed only when the command \ + that the preamble depends on is executed successfully. */ + +#define URMA_NOTIFY_DISABLE 0 /* The destination is not notified when the task is completed. */ +#define URMA_NOTIFY_ENABLE 1 /* Notify the destination when the task is completed. */ + +#define URMA_NOTIFY_TYPE_JFC 0 /* Complete notification via JFC. */ +#define URMA_NOTIFY_TYPE_RVA 1 /* Complete notification via DDR address. */ + +#define URMA_INLINE_DISABLE 0 /* The data is generated by source_address assignment. */ +#define URMA_INLINE_ENABLE 1 /* The data is carried in the command. */ + +#define URMA_SOLICITED_DISABLE 0 /* There is no interruption when notifying through JFC. */ +#define URMA_SOLICITED_ENABLE 1 /* Interrupt occurred while notifying via JFC. */ + +#define URMA_FENCE_DISABLE 0 /* There is no fence. */ +#define URMA_FENCE_ENABLE 1 /* Fence with previous WRs. */ + +#define URMA_REGULAR 1 /* regular, specifies stride format. */ +#define URMA_IRREGULAR 0 /* irregular, specifies S/G format. */ + +#define URMA_NO_TAG_MATCHING 0 +#define URMA_WITH_TAG_MATCHING 1 + +#define URMA_NONPOST_LS 0 +#define URMA_POST_LS 1 + +#define URMA_NO_SHARE_JFR 0 +#define URMA_SHARE_JFR 1 + +#define URMA_TYPICAL_RNR_RETRY 7 /* typical value of rnr retry for jfs cfg */ +#define URMA_TYPICAL_ERR_TIMEOUT 17 /* typical value of err_timeout for jfs cfg */ +#define URMA_TYPICAL_MIN_RNR_TIMER 12 /* typical value of min_rnr_timer for jfr cfg */ +#define URMA_MAX_PRIORITY 15 + +/* operation information */ +typedef enum urma_place_order { + URMA_NO_ORDER = 0, // No order + URMA_RELAX_ORDER, // Relax order + URMA_STRONG_ORDER // Strong order +} urma_place_order_t; + +/* opcode definition */ +typedef enum urma_opcode { + URMA_OPC_WRITE = 0x00, + URMA_OPC_WRITE_IMM = 0x01, + URMA_OPC_WRITE_NOTIFY = 0x02, // not support result will return for URMA_OPC_WRITE_NOTIFY + URMA_OPC_READ = 0x10, + URMA_OPC_CAS = 0x20, + URMA_OPC_SWAP = 0x21, + URMA_OPC_FADD = 0x22, + URMA_OPC_FSUB = 0x23, + URMA_OPC_FAND = 0x24, + URMA_OPC_FOR = 0x25, + URMA_OPC_FXOR = 0x26, + URMA_OPC_SEND = 0x40, // remote JFR/jetty ID + URMA_OPC_SEND_IMM = 0x41, // remote JFR/jetty ID + URMA_OPC_SEND_INVALIDATE = 0x42, // remote JFR/jetty ID and seg token id + URMA_OPC_NOP = 0x51, + URMA_OPC_WRITE_ATOMIC = 0x60, // Non-standard definition of OPCODE + URMA_OPC_LAST +} urma_opcode_t; + +typedef int urma_status_t; +#define URMA_SUCCESS 0 +#define URMA_EAGAIN EAGAIN // Resource temporarily unavailable +#define URMA_ENOMEM ENOMEM // Failed to allocate memory +#define URMA_ENOPERM EPERM // Operation not permitted +#define URMA_ETIMEOUT ETIMEDOUT // Operation time out +#define URMA_EINVAL EINVAL // Invalid argument +#define URMA_EEXIST EEXIST // Exist +#define URMA_EINPROGRESS EINPROGRESS +#define URMA_FAIL 0x1000 /* 0x1000 */ + +/* completion information */ +typedef enum urma_cr_status { // completion record status + URMA_CR_SUCCESS = 0, + URMA_CR_UNSUPPORTED_OPCODE_ERR, /* Opcode in the WR is not supported */ + URMA_CR_LOC_LEN_ERR, /* Local data too long error */ + URMA_CR_LOC_OPERATION_ERR, /* Local operation err */ + URMA_CR_LOC_ACCESS_ERR, /* Access to local memory error */ + URMA_CR_REM_RESP_LEN_ERR, /* Local Operation Error, with sub-status of Remote Response Length Error */ + URMA_CR_REM_UNSUPPORTED_REQ_ERR, + URMA_CR_REM_OPERATION_ERR, /* Error when target jetty can not complete the operation */ + URMA_CR_REM_ACCESS_ABORT_ERR, /* Error when target jetty access memory error or abort the operation */ + URMA_CR_ACK_TIMEOUT_ERR, /* Retransmission exceeds the maximum number of times */ + URMA_CR_RNR_RETRY_CNT_EXC_ERR, /* RNR retries exceeded the maximum number: remote jfr has no buffer */ + URMA_CR_WR_FLUSH_ERR, /* Jetty in the error state, and the hardware has processed the WR. */ + URMA_CR_WR_SUSPEND_DONE, /* Hardware constructs a fake CQE, and user_ctx is invalid. */ + URMA_CR_WR_FLUSH_ERR_DONE, /* Hardware constructs a fake CQE, and user_ctx is invalid. */ + URMA_CR_WR_UNHANDLED, /* Return of flush jetty/jfs, and the hardware has not processed the WR. */ + URMA_CR_LOC_DATA_POISON, /* Local Data Poison */ + URMA_CR_REM_DATA_POISON, /* Remote Data Poison */ +} urma_cr_status_t; + +typedef enum urma_cr_opcode { + URMA_CR_OPC_SEND = 0x00, + URMA_CR_OPC_SEND_WITH_IMM, + URMA_CR_OPC_SEND_WITH_INV, + URMA_CR_OPC_WRITE_WITH_IMM, +} urma_cr_opcode_t; + +/* event information */ +typedef enum urma_async_event_type { + URMA_EVENT_JFC_ERR, + URMA_EVENT_JFS_ERR, + URMA_EVENT_JFR_ERR, + URMA_EVENT_JFR_LIMIT, + URMA_EVENT_JETTY_ERR, + URMA_EVENT_JETTY_LIMIT, + URMA_EVENT_JETTY_GRP_ERR, + URMA_EVENT_PORT_ACTIVE, + URMA_EVENT_PORT_DOWN, + URMA_EVENT_DEV_FATAL, + URMA_EVENT_EID_CHANGE, // eid change, HNM and other management roles will be modified. + URMA_EVENT_ELR_ERR, /* Entity level error */ + URMA_EVENT_ELR_DONE /* Entity flush done */ +} urma_async_event_type_t; + +typedef enum urma_jfc_state { + URMA_JFC_STATE_INVALID = 0, + URMA_JFC_STATE_VALID, + URMA_JFC_STATE_ERROR +} urma_jfc_state_t; + +typedef enum urma_jetty_state { + URMA_JETTY_STATE_RESET = 0, + URMA_JETTY_STATE_READY, + URMA_JETTY_STATE_SUSPENDED, + URMA_JETTY_STATE_ERROR +} urma_jetty_state_t; + +typedef enum urma_jfr_state { + URMA_JFR_STATE_RESET = 0, + URMA_JFR_STATE_READY, + URMA_JFR_STATE_ERROR +} urma_jfr_state_t; + +#define URMA_JFS_DEPTH 0x0001 +#define URMA_JFS_FLAG 0x0002 +#define URMA_JFS_TRANS_MODE 0x0003 +#define URMA_JFS_PRIORITY 0x0004 +#define URMA_JFS_MAX_SGE 0x0005 +#define URMA_JFS_MAX_RSGE 0x0006 +#define URMA_JFS_MAX_INLINE_DATA 0x0007 +#define URMA_JFS_RNR_RETRY 0x0008 +#define URMA_JFS_ERR_TIMEOUT 0x0009 +#define URMA_JFS_BIND_JFC 0x000a +#define URMA_JFS_USER_CTX 0x000b +#define URMA_JFS_SQE_BASE_ADDR 0x000c +#define URMA_JFS_ID 0x000d +#define URMA_JFS_DB_ADDR 0x000e +#define URMA_JFS_DB_STATUS 0x000f +#define URMA_JFS_PI 0x0010 +#define URMA_JFS_PI_TYPE 0x0011 +#define URMA_JFS_CI 0x0012 +#define URMA_JFS_FULL_CTX 0x0013 + +#define URMA_JFR_DEPTH 0x1001 +#define URMA_JFR_FLAG 0x1002 +#define URMA_JFR_TRANS_MODE 0x1003 +#define URMA_JFR_MAX_SGE 0x1004 +#define URMA_JFR_MIN_RNR_TIMER 0x1005 +#define URMA_JFR_BIND_JFC 0x1006 +#define URMA_JFR_TOKEN_VALUE 0x1007 +#define URMA_JFR_USER_CTX 0x1008 +#define URMA_JFR_RQE_BASE_ADDR 0x1009 +#define URMA_JFR_ID 0x100a +#define URMA_JFR_DB_ADDR 0x100b +#define URMA_JFR_DB_STATUS 0x100c +#define URMA_JFR_PI 0x100d +#define URMA_JFR_PI_TYPE 0x100e +#define URMA_JFR_CI 0x100f +#define URMA_JFR_FULL_CTX 0x1010 + +#define URMA_JFC_DEPTH 0x2001 +#define URMA_JFC_CEQN 0x2002 +#define URMA_JFC_FLAG 0x2003 +#define URMA_JFC_BIND_JFCE 0x2004 +#define URMA_JFC_USER_CTX 0x2005 +#define URMA_JFC_CQE_BASE_ADDR 0x2006 +#define URMA_JFC_ID 0x2007 +#define URMA_JFC_DB_ADDR 0x2008 +#define URMA_JFC_DB_STATUS 0x2009 +#define URMA_JFC_PI 0x200a +#define URMA_JFC_PI_TYPE 0x200b +#define URMA_JFC_CI 0x200c +#define URMA_JFC_FULL_CTX 0x200d + +#define URMA_JETTY_ID 0x3001 +#define URMA_JETTY_FLAG 0x3002 +#define URMA_JETTY_BIND_JFR 0x3003 +#define URMA_JETTY_BIND_RX_JFC 0x3004 +#define URMA_JETTY_BIND_JTG 0x3005 +#define URMA_JETTY_USER_CTX 0x3006 +#define URMA_JETTY_FULL_CTX 0x3007 + +#endif // URMA_OPCODE_H diff --git a/src/brpc/urma/sdk/urma_types.h b/src/brpc/urma/sdk/urma_types.h new file mode 100644 index 0000000000..e62058b28c --- /dev/null +++ b/src/brpc/urma/sdk/urma_types.h @@ -0,0 +1,1430 @@ +/* + * SPDX-License-Identifier: MIT + * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. + * Description: URMA type header file + * Author: Ouyang Changchun, Bojie Li, Yan Fangfang, Qian Guoxin + * Create: 2021-07-13 + * Note: + * History: 2021-07-13 Create File + */ + +#ifndef URMA_TYPES_H +#define URMA_TYPES_H + +#include +#include +#include +#include +#include + +#ifndef __cplusplus +#include +#else +#include +#endif + +#include "urma_opcode.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define URMA_GET_VERSION(a, b) (((a) << 16) + ((b) > 65535 ? 65535 : (b))) +#define URMA_API_VERSION ((0 << 16) + 9) // Current Version: 0.9 +#define MAX_PORT_CNT 8 +#define URMA_MAX_JETTY_IN_JETTY_GRP 32U +#define URMA_MAX_NAME 64 +#define URMA_MAX_PATH 4096 +#define URMA_EID_SIZE (16) +#define URMA_MAX_PRIORITY_CNT 16 +#define URMA_IPV4_MAP_IPV6_PREFIX (0x0000ffff) +#define URMA_MAX_EID_CNT 1024 /* refer to UBCORE_MAX_SIP */ +#define URMA_CC_IDX_TABLE_SIZE 81 /* support 9 priorities and 9 algorithms */ + /* same as UBCORE_CC_IDX_TABLE_SIZE */ +#define URMA_OPT_REVERSED_NUM 4 + +#define URMA_EID_STR_LEN (39) +#define EID_FMT "%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x" +#define EID_RAW_ARGS(eid) \ + eid[0], eid[1], eid[2], eid[3], eid[4], eid[5], eid[6], eid[7], eid[8], eid[9], eid[10], eid[11], eid[12], \ + eid[13], eid[14], eid[15] +#define EID_ARGS(eid) EID_RAW_ARGS((eid).raw) +#define URMA_SEG_TOKEN_ID_INVALID 0xffffffff + +/* refer to UBCORE_MAX_DEV_NAME */ +#define URMA_MAX_DEV_NAME 64 +#define URMA_GUID_SIZE (16) + +#define URMA_IP_ADDR_BYTES 16 /* refer to UBCORE_IP_ADDR_BYTES */ +#define URMA_MAC_BYTES 6 /* refer to UBCORE_MAC_BYTES */ + +#define URMA_JFS_SQE_BASE_ADDR_MASK (1ULL << 0) +#define URMA_JFS_ID_MASK (1ULL << 1) +#define URMA_JFS_DB_ADDR_MASK (1ULL << 2) +#define URMA_JFS_DB_STATUS_MASK (1ULL << 3) +#define URMA_JFS_PI_MASK (1ULL << 4) +#define URMA_JFS_PI_TYPE_MASK (1ULL << 5) +#define URMA_JFS_CI_MASK (1ULL << 6) + +#define URMA_JFR_RQE_BASE_ADDR_MASK (1ULL << 0) +#define URMA_JFR_ID_MASK (1ULL << 1) +#define URMA_JFR_DB_ADDR_MASK (1ULL << 2) +#define URMA_JFR_DB_STATUS_MASK (1ULL << 3) +#define URMA_JFR_PI_MASK (1ULL << 4) +#define URMA_JFR_PI_TYPE_MASK (1ULL << 5) +#define URMA_JFR_CI_MASK (1ULL << 6) + +#define URMA_JFC_CQE_BASE_ADDR_MASK (1ULL << 0) +#define URMA_JFC_ID_MASK (1ULL << 1) +#define URMA_JFC_DB_ADDR_MASK (1ULL << 2) +#define URMA_JFC_DB_STATUS_MASK (1ULL << 3) +#define URMA_JFC_PI_MASK (1ULL << 4) +#define URMA_JFC_PI_TYPE_MASK (1ULL << 5) +#define URMA_JFC_CI_MASK (1ULL << 6) + +typedef struct urma_init_attr { + uint64_t token; /* [Optional] security token */ + uint32_t uasid; /* [Optional] uasid to set and reserve. If the parameter is 0, + the system will randomly assign a non-0 value. */ +} urma_init_attr_t; + +/* device information */ +typedef enum urma_mtu { + URMA_MTU_256 = 1, + URMA_MTU_512, + URMA_MTU_1024, + URMA_MTU_2048, + URMA_MTU_4096, + URMA_MTU_8192, +} urma_mtu_t; + +typedef enum urma_port_state { + URMA_PORT_NOP = 0, + URMA_PORT_DOWN, + URMA_PORT_INIT, + URMA_PORT_ARMED, + URMA_PORT_ACTIVE, + URMA_PORT_ACTIVE_DEFER, +} urma_port_state_t; + +typedef enum urma_speed { + URMA_SP_10M = 0, + URMA_SP_100M, + URMA_SP_1G, + URMA_SP_2_5G, + URMA_SP_5G, + URMA_SP_10G, + URMA_SP_14G, + URMA_SP_25G, + URMA_SP_40G, + URMA_SP_50G, + URMA_SP_100G, + URMA_SP_200G, + URMA_SP_400G, + URMA_SP_800G, +} urma_speed_t; + +typedef enum urma_link_width { + URMA_LINK_X1 = 0x1, + URMA_LINK_X2 = 0x1 << 1, + URMA_LINK_X4 = 0x1 << 2, + URMA_LINK_X8 = 0x1 << 3, + URMA_LINK_X16 = 0x1 << 4, + URMA_LINK_X32 = 0x1 << 5, +} urma_link_width_t; + +typedef union urma_eid { + uint8_t raw[URMA_EID_SIZE]; /* Network Order */ + struct { + uint64_t reserved; /* If IPv4 mapped to IPv6, == 0 */ + uint32_t prefix; /* If IPv4 mapped to IPv6, == 0x0000ffff */ + uint32_t addr; /* If IPv4 mapped to IPv6, == IPv4 addr */ + } in4; + struct { + uint64_t subnet_prefix; + uint64_t interface_id; + } in6; +} urma_eid_t; + +void urma_u32_to_eid(uint32_t ipv4, urma_eid_t *eid); +int urma_str_to_eid(const char *buf, urma_eid_t *eid); + +typedef struct urma_ref { +#ifndef __cplusplus + atomic_ulong atomic_cnt; +#else + std::atomic_ulong atomic_cnt; +#endif +} urma_ref_t; + +typedef struct urma_port_attr { + urma_mtu_t max_mtu; /* [Public] MTU_256, MTU_512, MTU_1024 etc. */ + urma_port_state_t state; /* [Public] PORT_DOWN, PORT_INIT, PORT_ACTIVE */ + urma_link_width_t active_width; /* [Public] link width: X1, X2, X4. */ + urma_speed_t active_speed; /* [Public] bandwidth. */ + urma_mtu_t active_mtu; /* [Public] current effective mtu. */ +} urma_port_attr_t; + +union urma_tp_type_en { + struct { + uint32_t rtp : 1; + uint32_t ctp : 1; + uint32_t utp : 1; + uint32_t reserved : 29; + } bs; + uint32_t value; +}; + +struct urma_sl_info { + uint32_t SL; + union urma_tp_type_en tp_type; +}; + +typedef union urma_device_feature { + struct { + uint32_t oor : 1; /* [Public] URMA_OUT_OF_ORDER_RECEIVING. */ + uint32_t jfc_per_wr : 1; /* [Public] URMA_JFC_PER_WR. */ + uint32_t stride_op : 1; /* [Public] URMA_STRIDE_OP. */ + uint32_t load_store_op : 1; /* [Public] URMA_LOAD_STORE_OP. */ + uint32_t non_pin : 1; /* [Public] URMA_NON_PIN. */ + uint32_t pmem : 1; /* [Public] URMA_PERSISTENCE_MEM. */ + uint32_t jfc_inline : 1; /* [Public] URMA_JFC_INLINE. */ + uint32_t spray_en : 1; /* [Public] URMA_SPRAY_ENABLE for UDP port. */ + uint32_t selective_retrans : 1; /* [Public] URMA_SELECTIVE_RETRANS. */ + uint32_t live_migrate : 1; /* [Public] support live migration. */ + uint32_t dca : 1; /* [Public] for user tp */ + uint32_t jetty_grp : 1; /* [Public] support jetty group. */ + uint32_t error_suspend : 1; /* [Public] support suspend jetty or jfs on error. */ + uint32_t outorder_comp : 1; /* [Public] support out-of-order completion. */ + uint32_t mn : 1; /* [Public] for user tp */ + uint32_t clan : 1; /* [Public] for user tp */ + uint32_t muti_seg_per_token_id : 1; + uint32_t ipourma_en : 1; + uint32_t ctp_en : 1; + uint32_t uboe : 1; + uint32_t reserved : 12; + } bs; + uint32_t value; +} urma_device_feature_t; + +typedef union urma_atomic_feature { + struct { + uint32_t cas : 1; + uint32_t swap : 1; + uint32_t fetch_and_add : 1; + uint32_t fetch_and_sub : 1; + uint32_t fetch_and_and : 1; + uint32_t fetch_and_or : 1; + uint32_t fetch_and_xor : 1; + uint32_t reserved : 25; + } bs; + uint32_t value; +} urma_atomic_feature_t; + +typedef union urma_order_type_cap { + struct { + uint32_t ot : 1; + uint32_t oi : 1; + uint32_t ol : 1; + uint32_t no : 1; + uint32_t reserved : 28; + } bs; + uint32_t value; +} urma_order_type_cap_t; + +typedef union urma_tp_type_cap { + struct { + uint32_t rtp : 1; + uint32_t ctp : 1; + uint32_t utp : 1; + uint32_t reserved : 29; + } bs; + uint32_t value; +} urma_tp_type_cap_t; + +typedef union urma_tp_feature { + struct { + uint32_t rm_multi_path : 1; + uint32_t rc_multi_path : 1; + uint32_t reserved : 30; + } bs; + uint32_t value; +} urma_tp_feature_t; + +typedef struct urma_device_cap { + urma_device_feature_t feature; /* [Public] support feature of device, such as OOO, LS etc. */ + uint32_t max_jfc; /* [Public] max number of jfc supported by the device. */ + uint32_t max_jfs; /* [Public] max number of jfs supported by the device. */ + uint32_t max_jfr; /* [Public] max number of jfr supported by the device. */ + uint32_t max_jetty; /* [Public] max number of jetty supported by the device. */ + uint32_t max_jetty_grp; /* [Public] max number of jetty group supported by the device. */ + uint32_t max_jetty_in_jetty_grp; /* [Public] max number of jetty per jetty group supported by the device. */ + uint32_t max_jfc_depth; /* [Public] max depth of jfc supported by the device. */ + uint32_t max_jfs_depth; /* [Public] max depth of jfs supported by the device. */ + uint32_t max_jfr_depth; /* [Public] max depth of jfr supported by the device. */ + uint32_t max_jfs_inline_len; /* [Public] max inline length(byte) supported by the jfs. */ + uint32_t max_jfs_sge; /* [Public] max number of sge supported by the jfs. */ + uint32_t max_jfs_rsge; /* [Public] max number of remote sge supported by the jfs. */ + uint32_t max_jfr_sge; /* [Public] max number of sge supported by the jfr. */ + uint64_t max_msg_size; /* [Public] max message size supported by the device. */ + uint32_t max_read_size; + uint32_t max_write_size; + uint32_t max_cas_size; + uint32_t max_swap_size; + uint32_t max_fetch_and_add_size; + uint32_t max_fetch_and_sub_size; + uint32_t max_fetch_and_and_size; + uint32_t max_fetch_and_or_size; + uint32_t max_fetch_and_xor_size; + urma_atomic_feature_t atomic_feat; /* [Public] support atomic feature of device */ + uint16_t trans_mode; /* [Public] bit OR of supported transport modes */ + uint16_t congestion_ctrl_alg; /* [Public] one or more mode from urma_congestion_ctrl_alg_t */ + uint32_t ceq_cnt; /* [Public] ceq_cnt */ + uint32_t max_tp_in_tpg; /* [Public] max tp in tpg */ + uint32_t max_eid_cnt; /* [Public] max eid count */ + uint64_t page_size_cap; /* [Public] page size capability, must include PAGE_SIZE(4k) */ + uint32_t max_oor_cnt; /* [Public] max OOR window size by packet, only for user tp */ + uint32_t mn; /* [Public] only for user tp */ + uint32_t max_netaddr_cnt; /* [Public] only for user tp */ + urma_order_type_cap_t rm_order_cap; + urma_order_type_cap_t rc_order_cap; + urma_tp_type_cap_t rm_tp_cap; + urma_tp_type_cap_t rc_tp_cap; + urma_tp_type_cap_t um_tp_cap; + urma_tp_feature_t tp_feature; + struct urma_sl_info priority_info[URMA_MAX_PRIORITY_CNT]; +} urma_device_cap_t; + +typedef struct urma_guid { + uint8_t raw[URMA_GUID_SIZE]; +} urma_guid_t; + +typedef struct urma_device_attr { + urma_guid_t guid; /* [Public] */ + urma_device_cap_t dev_cap; /* [Public] capabilities of device. */ + uint8_t port_cnt; /* [Public] port number of device. */ + struct urma_port_attr port_attr[MAX_PORT_CNT]; + uint32_t reserved_jetty_id_min; + uint32_t reserved_jetty_id_max; +} urma_device_attr_t; + +/* security information */ +typedef struct urma_token { + uint32_t token; +} urma_token_t; + +struct urma_sysfs_dev; +struct urma_ref; +struct urma_ops; +struct urma_provider_ops; + +typedef enum urma_transport_type { + URMA_TRANSPORT_INVALID = -1, + URMA_TRANSPORT_UB = 0, + URMA_TRANSPORT_MAX +} urma_transport_type_t; + +typedef enum urma_transport_mode { + URMA_TM_RM = 0x1, /* Reliable message */ + URMA_TM_RC = 0x1 << 1, /* Reliable connection */ + URMA_TM_UM = 0x1 << 2, /* Unreliable message */ +} urma_transport_mode_t; + +typedef enum urma_tp_cc_alg { + URMA_TP_CC_NONE = 0, + URMA_TP_CC_DCQCN, + URMA_TP_CC_DCQCN_AND_NETWORK_CC, + URMA_TP_CC_LDCP, + URMA_TP_CC_LDCP_AND_CAQM, + URMA_TP_CC_LDCP_AND_OPEN_CC, + URMA_TP_CC_HC3, + URMA_TP_CC_DIP, + URMA_TP_CC_ACC, + URMA_TP_CC_NUM, +} urma_tp_cc_alg_t; /* larger means better */ + +typedef enum urma_congestion_ctrl_alg { + URMA_CC_NONE = 0x1 << URMA_TP_CC_NONE, + URMA_CC_DCQCN = 0x1 << URMA_TP_CC_DCQCN, + URMA_CC_DCQCN_AND_NETWORK_CC = 0x1 << URMA_TP_CC_DCQCN_AND_NETWORK_CC, + URMA_CC_LDCP = 0x1 << URMA_TP_CC_LDCP, + URMA_CC_LDCP_AND_CAQM = 0x1 << URMA_TP_CC_LDCP_AND_CAQM, + URMA_CC_LDCP_AND_OPEN_CC = 0x1 << URMA_TP_CC_LDCP_AND_OPEN_CC, + URMA_CC_HC3 = 0x1 << URMA_TP_CC_HC3, + URMA_CC_DIP = 0x1 << URMA_TP_CC_DIP, + URMA_CC_ACC = 0x1 << URMA_TP_CC_ACC +} urma_congestion_ctrl_alg_t; + +typedef struct urma_cc_entry { + urma_tp_cc_alg_t alg; + uint8_t cc_pattern_idx; + uint8_t cc_priority; +} __attribute__((packed)) urma_cc_entry_t; + +typedef struct urma_device { + char name[URMA_MAX_NAME]; /* [Public] urma device's name, the names of devices + in different transport modes are different. */ + char path[URMA_MAX_PATH]; /* [Public] urma device's path in sysfs. */ + urma_transport_type_t type; /* [Public] urma device's transport type. */ + struct urma_provider_ops *ops; /* [Private] urma device driver's ops. */ + struct urma_sysfs_dev *sysfs_dev; /* [Private] internal device corresponding to the urma device */ +} urma_device_t; + +typedef enum urma_context_opt_name { + URMA_OPT_AGGR_MODE, +} urma_opt_name_t; + +typedef enum urma_context_aggr_mode { + URMA_AGGR_MODE_STANDALONE, + URMA_AGGR_MODE_ACTIVE_BACKUP, + URMA_AGGR_MODE_BALANCE, +} urma_context_aggr_mode_t; + +typedef struct urma_context { + struct urma_device *dev; /* [Private] point to the corresponding urma device. */ + struct urma_ops *ops; /* [Private] operation of urma device. */ + int dev_fd; /* [Private] fd of urma device's sysfs file. */ + int async_fd; /* [Private] fd of urma device's async event file. */ + pthread_mutex_t mutex; /* [Private] mutex of urma context. */ + urma_eid_t eid; /* [Public] eid of urma device. */ + uint32_t eid_index; + uint32_t uasid; /* [Public] uasid of current process. */ + struct urma_ref ref; /* [Private] reference count of urma context. */ + urma_context_aggr_mode_t aggr_mode; /* [Public] aggregated mode of urma context. */ +} urma_context_t; + +typedef struct urma_eid_info { + urma_eid_t eid; + uint32_t eid_index; /* 0~UBCORE_MAX_EID_CNT -1 */ +} urma_eid_info_t; + +typedef struct urma_jfce_cfg { + uint32_t depth; + uint64_t user_ctx; +} urma_jfce_cfg_t; + +typedef struct urma_jfce { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + int fd; /* [Private] fd of completed event. */ + struct urma_ref ref; /* [Private] reference count of urma context. */ +} urma_jfce_t; + +typedef union urma_jfc_flag { + struct { + uint32_t lock_free : 1; + uint32_t jfc_inline : 1; + uint32_t non_blocking : 1; + uint32_t has_drv_ext : 1; + uint32_t reserved : 28; + } bs; + uint32_t value; +} urma_jfc_flag_t; + +typedef struct urma_jfc_cfg { + uint32_t depth; /* [Required] the depth of jfc, no greater than urma_device_cap_t->jfc_depth */ + urma_jfc_flag_t flag; /* [Optional] see urma_jfc_flag_t, set flag.value to be 0 by default */ + uint32_t ceqn; /* [Optional] event queue id, less than urma_device_cap_t->ceq_cnt + set to 0 by default */ + urma_jfce_t *jfce; /* [Required] the event of jfc */ + uint64_t user_ctx; /* [Optional] private data of jfc, set to NULL by default */ +} urma_jfc_cfg_t; + +typedef enum urma_jfc_attr_mask { + JFC_MODERATE_COUNT = 0x1, + JFC_MODERATE_PERIOD = 0x1 << 1 +} urma_jfc_attr_mask_t; + +typedef struct urma_jfc_attr { + uint32_t mask; /* mask value, refer to urma_jfc_attr_mask_t */ + uint16_t moderate_count; + uint16_t moderate_period; /* in micro seconds */ +} urma_jfc_attr_t; + +typedef struct urma_jetty_id { + urma_eid_t eid; + uint32_t uasid; /* maybe zero(stand for kernel) or non-zero(stand for app) */ + uint32_t id; +} urma_jetty_id_t; + +typedef struct urma_jetty_id urma_jfs_id_t; +typedef struct urma_jetty_id urma_jfr_id_t; +typedef struct urma_jetty_id urma_jfc_id_t; + +union urma_jfc_opt_mask { + struct { + uint64_t urma_jfc_cqe_base_addr : 1; + uint64_t urma_jfc_db_addr : 1; + uint64_t urma_jfc_id : 1; + uint64_t urma_jfc_pi : 1; + uint64_t urma_jfc_pi_type : 1; + uint64_t urma_jfc_ci : 1; + uint64_t urma_jfc_db_status : 1; + uint64_t reserved : 57; + } bs; + uint64_t value; +}; + +typedef struct urma_jfc_opt { + union urma_jfc_opt_mask jfc_opt_mask; /* bit0:cqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, + bit5:ci, bit6:db_status */ + bool is_actived; + uint64_t urma_jfc_cqe_base_addr; /* [Optional] CQ Queue Address (VA) */ + uint32_t urma_jfc_id; /* [Optional] the id of jfc */ + uint64_t urma_jfc_db_addr; /* [Optional] CQ Queue Doorbell Address (VA) */ + uint8_t urma_jfc_db_status; /* [Optional] JFC Doorbell status, used for live migration (0 invalid, 1 valid) */ + uint16_t urma_jfc_pi; /* [Optional] PI value of the JFC */ + uint16_t urma_jfc_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ + uint16_t urma_jfc_ci; /* [Optional] CI value of the JFC */ + uint64_t reserved[URMA_OPT_REVERSED_NUM]; +} urma_jfc_opt_t; + +typedef struct urma_jfc { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jfc_id_t jfc_id; /* [Public] see urma_jetty_id. */ + urma_jfc_cfg_t jfc_cfg; /* [Public] storage jfc config. */ + uint64_t handle; + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t comp_events_acked; + uint32_t async_events_acked; + urma_jfc_opt_t urma_jfc_opt; +} urma_jfc_t; + +typedef enum urma_order_type { + URMA_DEF_ORDER, + URMA_OT, // target ordering + URMA_OI, // initiator ordering + URMA_OL, // low layer ordering + URMA_NO // unreliable non ordering +} urma_order_type_t; + +typedef union urma_jfs_flag { + struct { + uint32_t lock_free : 1; /* default as 0, lock protected */ + uint32_t error_suspend : 1; /* 0: error continue; 1: error suspend */ + uint32_t outorder_comp : 1; /* 0: not support; 1: support out-of-order completion */ + uint32_t order_type : 8; /* (0x0): default, auto config by driver */ + /* (0x1): OT, target ordering */ + /* (0x2): OI, initiator ordering */ + /* (0x3): OL, low layer ordering */ + /* (0x4): UNO, unreliable non ordering */ + uint32_t multi_path : 1; /* 1: multi-path, 0: single path, for ubagg only. */ + uint32_t ctp_rc_mul_path_mode : 1; /* 1: ctp rc mode multi-path */ + uint32_t non_blocking : 1; + uint32_t has_drv_ext : 1; + uint32_t reserved : 17; + } bs; + uint32_t value; +} urma_jfs_flag_t; + +union urma_jfs_opt_mask { + struct { + uint64_t urma_jfs_cqe_base_addr : 1; + uint64_t urma_jfs_db_addr : 1; + uint64_t urma_jfs_id : 1; + uint64_t urma_jfs_pi : 1; + uint64_t urma_jfs_pi_type : 1; + uint64_t urma_jfs_ci : 1; + uint64_t urma_jfs_db_status : 1; + uint64_t reserved : 57; + } bs; + uint64_t value; +}; + +typedef struct urma_jfs_opt { + union urma_jfs_opt_mask jfs_opt_mask; /* bit0:sqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, + bit5:ci, bit6:db_status */ + bool is_actived; + uint64_t urma_jfs_sqe_base_addr; /* [Optional] SQ Queue Address (VA) */ + uint32_t urma_jfs_id; /* [Optional] the id of jfs */ + uint64_t urma_jfs_db_addr; /* [Optional] SQ Queue Doorbell Address (VA) */ + uint8_t urma_jfs_db_status; /* [Optional] JFS Doorbell status, used for live migration (0 invalid, 1 valid) */ + uint16_t urma_jfs_pi; /* [Optional] PI value of the JFS */ + uint16_t urma_jfs_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ + uint16_t urma_jfs_ci; /* [Optional] CI value of the JFS */ + uint64_t reserved[URMA_OPT_REVERSED_NUM]; +} urma_jfs_opt_t; + +typedef struct urma_jfs_cfg { + uint32_t depth; /* [Required] the depth of jfs, defaut urma_device_cap_t->jfs_depth */ + urma_jfs_flag_t flag; /* [Optional] see urma_jfs_flag_t definition */ + urma_transport_mode_t trans_mode; /* [Required] transport mode, must be supported by the device */ + uint8_t priority; /* [Optional] set the priority of JFS, ranging from [0, 15] + Services with low delay need to set high priority. */ + uint8_t max_sge; /* [Optional] max sge count in one wr, defaut urma_device_cap_t->max_jfs_sge */ + uint8_t max_rsge; /* [Optional] max remote sge count in one wr, defaut urma_device_cap_t->max_jfs_sge */ + uint32_t max_inline_data; /* [Optional] the max inline data size of JFS. if the parameter is 0, + the system will assign device's max inline data length. */ + uint8_t rnr_retry; /* [Optional] number of times that jfs will resend packets before report error, + when the remote side is not ready to receive (RNR), ranging from [0, 7], + the value 0 means never retry and, + the value 7 means retry infinite number of times for RDMA devices */ + uint8_t err_timeout; /* [Optional] the timeout before report error, ranging from [0, 31], + the actual timeout in usec is caculated by: 4.096*(2^err_timeout) */ + urma_jfc_t *jfc; /* [Required] need to specify jfc */ + uint64_t user_ctx; /* [Optional] private data of jfs */ +} urma_jfs_cfg_t; + +typedef struct urma_jfs { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jfs_id_t jfs_id; /* [Public] see urma_jetty_id. */ + urma_jfs_cfg_t jfs_cfg; /* [Public] storage jfs config. */ + uint64_t handle; + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t async_events_acked; + urma_jfs_opt_t urma_jfs_opt; +} urma_jfs_t; + +typedef enum urma_jfs_attr_mask { + JFS_STATE = 0x1 +} urma_jfs_attr_mask_t; + +typedef urma_jetty_state_t urma_jfs_state_t; + +typedef struct urma_jfs_attr { + uint32_t mask; /* mask value refer to urma_jfs_attr_mask_t */ + urma_jfs_state_t state; +} urma_jfs_attr_t; + +typedef union urma_jfr_flag { + struct { + uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE + 1: URMA_TOKEN_PLAIN_TEXT + 2: URMA_TOKEN_SIGNED + 3: URMA_TOKEN_ALL_ENCRYPTED + 4: URMA_TOKEN_RESERVED */ + uint32_t tag_matching : 1; /* 0: URMA_NO_TAG_MATCHING. + 1: URMA_WITH_TAG_MATCHING. */ + uint32_t lock_free : 1; + uint32_t order_type : 8; /* (0x0): default, auto config by driver */ + /* (0x1): OT, target ordering */ + /* (0x2): OI, initiator ordering */ + /* (0x3): OL, low layer ordering */ + /* (0x4): UNO, unreliable non ordering */ + uint32_t has_drv_ext : 1; + uint32_t reserved : 18; + } bs; + uint32_t value; +} urma_jfr_flag_t; + +union urma_jfr_opt_mask { + struct { + uint64_t urma_jfr_cqe_base_addr : 1; + uint64_t urma_jfr_db_addr : 1; + uint64_t urma_jfr_id : 1; + uint64_t urma_jfr_pi : 1; + uint64_t urma_jfr_pi_type : 1; + uint64_t urma_jfr_ci : 1; + uint64_t urma_jfr_db_status : 1; + uint64_t reserved : 57; + } bs; + uint64_t value; +}; + +typedef struct urma_jfr_opt { + union urma_jfr_opt_mask jfr_opt_mask; /* bit0:rqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, + bit5:ci, bit6:db_status */ + bool is_actived; + uint64_t urma_jfr_rqe_base_addr; /* [Optional] RQ Queue Address (VA) */ + uint32_t urma_jfr_id; /* [Optional] the id of jfr */ + uint64_t urma_jfr_db_addr; /* [Optional] RQ Queue Doorbell Address (VA) */ + uint8_t urma_jfr_db_status; /* [Optional] JFR Doorbell status, used for live migration (0 invalid, 1 valid) */ + uint16_t urma_jfr_pi; /* [Optional] PI value of the JFR */ + uint16_t urma_jfr_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ + uint16_t urma_jfr_ci; /* [Optional] CI value of the JFR */ + uint64_t reserved[URMA_OPT_REVERSED_NUM]; +} urma_jfr_opt_t; + +typedef struct urma_jfr_cfg { + uint32_t id; /* [Optional] specify jfr id. If the parameter is 0, + the system will randomly assign a non-0 value. */ + uint32_t depth; /* [Required] total depth, include berth, defaut urma_device_cap_t->jfr_depth. */ + urma_jfr_flag_t flag; /* [Optional] whether is in TAG_matching, whether is in DC/IDC mode. */ + urma_transport_mode_t trans_mode; /* [Required] transport mode, must be supported by the device */ + uint8_t max_sge; /* [Optional] max sge count in one wr, defaut urma_device_cap_t->max_jfr_sge. */ + uint8_t min_rnr_timer; /* [Optional] the minimum RNR NACK timer, ranging from [0, 31], i.e. + the time before jfr sends NACK to the sender for the reason of "ready to receive" */ + urma_jfc_t *jfc; /* [Required] need to specify jfc. */ + urma_token_t token_value; /* [Required] specify token_value for jfr. */ + uint64_t user_ctx; /* [Optional] private data of jfr */ +} urma_jfr_cfg_t; + +typedef enum urma_jfr_attr_mask { + JFR_RX_THRESHOLD = 0x1, + JFR_STATE = 0x1 << 1 +} urma_jfr_attr_mask_t; + +typedef struct urma_jfr_attr { + uint32_t mask; // mask value refer to urma_jfr_attr_mask_t + uint32_t rx_threshold; + urma_jfr_state_t state; +} urma_jfr_attr_t; + +typedef struct urma_jfr { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jfr_id_t jfr_id; /* [Public] see urma_jetty_id. */ + urma_jfr_cfg_t jfr_cfg; /* [Public] storage jfr config. */ + uint64_t handle; + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t async_events_acked; + urma_jfr_opt_t urma_jfr_opt; +} urma_jfr_t; + +typedef union urma_import_jetty_flag { + struct { + uint32_t token_policy : 3; + uint32_t order_type : 8; /* (0x0): default, auto config by driver */ + /* (0x1): OT, target ordering */ + /* (0x2): OI, initiator ordering */ + /* (0x3): OL, low layer ordering */ + /* (0x4): UNO, unreliable non ordering */ + uint32_t share_tp : 1; /* 1: shared tp; 0: non-shared tp. When rc mode is not ta dst ordering, + this flag can only be set to 0. */ + uint32_t has_drv_ext : 1; + uint32_t reserved : 19; + } bs; + uint32_t value; + struct { + uint64_t reserved; + uint64_t stag; + uint64_t dtag; + } user_tag; +} urma_import_jetty_flag_t; + +typedef enum urma_tp_type { + URMA_RTP, + URMA_CTP, + URMA_UTP +} urma_tp_type_t; + +typedef struct urma_rjfr { + urma_jfr_id_t jfr_id; /* see urma_jetty_id */ + urma_transport_mode_t trans_mode; + urma_import_jetty_flag_t flag; + urma_tp_type_t tp_type; +} urma_rjfr_t; + +typedef struct urma_tp { + uint32_t tpn; /* vtpn */ +} urma_tp_t; + +typedef union urma_jetty_flag { + struct { + uint32_t share_jfr : 1; /* 0: URMA_NO_SHARE_JFR. + 1: URMA_SHARE_JFR. */ + uint32_t non_blocking : 1; + uint32_t has_drv_ext : 1; + uint32_t reserved : 29; + } bs; + uint32_t value; +} urma_jetty_flag_t; + +typedef struct urma_jetty_grp urma_jetty_grp_t; + +typedef struct urma_jetty_cfg { + uint32_t id; /* [Optional] user specified jetty id. */ + urma_jetty_flag_t flag; /* [Optional] Connection or connection less */ + + /* send configuration */ + urma_jfs_cfg_t jfs_cfg; /* [Required] see urma_jfs_cfg_t */ + + /* recv configuration */ + union { + struct { + urma_jfr_t *jfr; /* [Optional] shared jfr to receive msg */ + urma_jfc_t *jfc; /* [Optional] To replace the jfc related to the above jfr */ + } shared; /* [Required] */ + urma_jfr_cfg_t *jfr_cfg; /* deprecated */ + }; + urma_jetty_grp_t *jetty_grp; /* [Optional] user specified jetty group. */ + uint64_t user_ctx; /* [Optional] private data of jetty */ +} urma_jetty_cfg_t; + +typedef enum urma_jetty_grp_policy { + URMA_JETTY_GRP_POLICY_RR = 0, + URMA_JETTY_GRP_POLICY_HASH_HINT = 1 +} urma_jetty_grp_policy_t; + +typedef enum urma_target_type { + URMA_JFR = 0, + URMA_JETTY, + URMA_JETTY_GROUP +} urma_target_type_t; + +typedef struct urma_rjetty { + urma_jetty_id_t jetty_id; + urma_transport_mode_t trans_mode; + urma_jetty_grp_policy_t policy; + urma_target_type_t type; + urma_import_jetty_flag_t flag; + urma_tp_type_t tp_type; +} urma_rjetty_t; + +typedef struct urma_target_jetty { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jetty_id_t id; /* [Private] see urma_jetty_id. */ + uint64_t handle; + urma_transport_mode_t trans_mode; + urma_tp_t tp; + urma_target_type_t type; // todo supplementary target type + urma_import_jetty_flag_t flag; + urma_jetty_grp_policy_t policy; + urma_tp_type_t tp_type; +} urma_target_jetty_t; + +typedef enum urma_jetty_attr_mask { + JETTY_RX_THRESHOLD = 0x1, + JETTY_STATE = 0x1 << 1 +} urma_jetty_attr_mask_t; + +typedef struct urma_jetty_attr { + uint32_t mask; // mask value refer to urma_jetty_attr_mask_t + uint32_t rx_threshold; + urma_jetty_state_t state; +} urma_jetty_attr_t; + +typedef struct urma_jetty_opt { + bool is_actived; + urma_jfs_opt_t jfs_opt; + uint64_t reserved[URMA_OPT_REVERSED_NUM]; +} urma_jetty_opt_t; + +typedef struct urma_jetty { + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_jetty_id_t jetty_id; /* [Public] see urma_jetty_id. */ + urma_target_jetty_t *remote_jetty; /* [Private] Only valid for connection mode Jetty. + After the bind succeeds, the pointer is not null. */ + urma_jetty_cfg_t jetty_cfg; /* [Public] storage jetty config. */ + uint64_t handle; + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t async_events_acked; + urma_jetty_opt_t urma_jetty_opt; +} urma_jetty_t; + +typedef struct urma_notifier { + urma_context_t *urma_ctx; + int fd; + void *incomplete_tjetty_list; +} urma_notifier_t; + +typedef enum urma_notify_type { + URMA_IMPORT_JETTY_NOTIFY = 0, + URMA_BIND_JETTY_NOTIFY +} urma_notify_type_t; + +typedef struct urma_notify { + urma_notify_type_t type; + urma_status_t status; + uint64_t user_ctx; + union { + urma_target_jetty_t *tjetty; /* IMPORT */ + urma_jetty_t *jetty; /* BIND */ + }; +} urma_notify_t; + +typedef union urma_jetty_grp_flag { + struct { + uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE + 1: URMA_TOKEN_PLAIN_TEXT + 2: URMA_TOKEN_SIGNED + 3: URMA_TOKEN_ALL_ENCRYPTED + 4: URMA_TOKEN_RESERVED */ + uint32_t reserved : 29; + } bs; + uint32_t value; +} urma_jetty_grp_flag_t; + +typedef struct urma_jetty_grp_cfg { + char name[URMA_MAX_NAME]; + urma_jetty_grp_flag_t flag; + urma_token_t token_value; /* [Required] specify token_value for Jetty group. */ + uint32_t id; /* [Optional] specify Jetty group id. + If the parameter is 0, UMDK will assign a non_0 value. */ + urma_jetty_grp_policy_t policy; /* Hash or RR(on default) */ + uint64_t user_ctx; /* [Optional] private data of jetty */ +} urma_jetty_grp_cfg_t; + +struct urma_jetty_grp { + urma_context_t *urma_ctx; + urma_jetty_id_t jetty_grp_id; + urma_jetty_grp_cfg_t cfg; + uint32_t jetty_cnt; + urma_jetty_t **jetty_list; + pthread_mutex_t list_mutex; + uint64_t handle; /* use to quickly get uobj of jetty group in kernel module */ + pthread_mutex_t event_mutex; + pthread_cond_t event_cond; + uint32_t async_events_acked; +}; + +/* memory information */ +typedef struct urma_ubva { + urma_eid_t eid; + uint32_t uasid; // 24 bit for UB + uint64_t va; +} __attribute__((packed)) urma_ubva_t; + + +/* segment definition */ +typedef union urma_reg_seg_flag { + struct { + uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE. + 1: URMA_TOKEN_PLAIN_TEXT. + 2: URMA_TOKEN_SIGNED. + 3: URMA_TOKEN_ALL_ENCRYPTED. + 4: URMA_TOKEN_RESERVED. */ + uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. + 1: URMA_CACHEABLE. */ + uint32_t dsva : 1; + uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. + (0x1 << 1): URMA_ACCESS_READ. + (0x1 << 2): URMA_ACCESS_WRITE. + (0x1 << 3): URMA_ACCESS_ATOMIC. */ + uint32_t non_pin : 1; /* 0: segment pages pinned. + 1: segment pages non-pinned. */ + uint32_t user_iova : 1; /* 0: segment without user iova addr. + 1: segment with user iova addr. */ + uint32_t token_id_valid : 1; /* 0: token id in cfg is invalid. + 1: token id in cfg is valid. */ + uint32_t reserved : 18; + } bs; + uint32_t value; +} urma_reg_seg_flag_t; + +typedef union urma_seg_attr { + struct { + uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE. + 1: URMA_TOKEN_PLAIN_TEXT. + 2: URMA_TOKEN_SIGNED. + 3: URMA_TOKEN_ALL_ENCRYPTED. + 4: URMA_TOKEN_RESERVED. */ + uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. + 1: URMA_CACHEABLE. */ + uint32_t dsva : 1; + uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. + (0x1 << 1): URMA_ACCESS_READ. + (0x1 << 2): URMA_ACCESS_WRITE. + (0x1 << 3): URMA_ACCESS_ATOMIC. */ + uint32_t non_pin : 1; /* 0: segment pages pinned. + 1: segment pages non-pinned. */ + uint32_t user_iova : 1; /* 0: segment without user iova addr. + 1: segment with user iova addr. */ + uint32_t user_token_id : 1; /* 0: token_id is allocated and should be freed by urma. + 1: token_id is allocated by user in urma_seg_cfg. */ + uint32_t reserved : 18; + } bs; + uint32_t value; +} urma_seg_attr_t; + +typedef union urma_import_seg_flag { + struct { + uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. + 1: URMA_CACHEABLE. */ + uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. + (0x1 << 1): URMA_ACCESS_READ. + (0x1 << 2): URMA_ACCESS_WRITE. + (0x1 << 3): URMA_ACCESS_ATOMIC. + */ + uint32_t mapping : 1; /* 0: URMA_SEG_NOMAP/ + 1: URMA_SEG_MAPPED. */ + uint32_t reserved : 24; + } bs; + uint32_t value; +} urma_import_seg_flag_t; + +typedef union urma_token_id_flag { + struct { + uint32_t multi_seg : 1; + uint32_t reserved : 31; + } bs; + uint32_t value; +} urma_token_id_flag_t; + +typedef struct urma_token_id { + urma_context_t *urma_ctx; + uint32_t token_id; + uint64_t handle; + urma_ref_t ref; + urma_token_id_flag_t flag; +} urma_token_id_t; + +typedef struct urma_seg_cfg { + uint64_t va; /* specify the address of the segment to be registered */ + uint64_t len; /* specify the length of the segment to be registered */ + urma_token_id_t *token_id; + urma_token_t token_value; /* Security authentication for access */ + urma_reg_seg_flag_t flag; + uint64_t user_ctx; + uint64_t iova; /* user iova, maybe zero-based-address */ +} urma_seg_cfg_t; + +typedef struct urma_seg { + urma_ubva_t ubva; /* [Public] ubva of segment. */ + uint64_t len; /* [Public] length of segment. */ + urma_seg_attr_t attr; /* [Public] include: access flag, token policy, cacheability. */ + uint32_t token_id; /* [Private] match token */ +} urma_seg_t; + +typedef struct urma_target_seg { + urma_seg_t seg; /* [Private] see urma_seg_t. */ + uint64_t user_ctx; /* [Private] private data of segment */ + uint64_t mva; /* [Public] mapping addr when import remote seg. */ + urma_context_t *urma_ctx; /* [Private] point to urma context. */ + urma_token_id_t *token_id; /* When registering seg, it is a valid address; when importing seg, it is NULL */ + uint64_t handle; +} urma_target_seg_t; + +typedef struct urma_user_ctl_in { + uint64_t addr; /* [Required] the address of the input parameter buffer. */ + uint32_t len; /* [Required] the length of the input parameter buffer */ + /* + * Opcode is simultaneously recognized by user and driver. + * User opcode should be distinguished with enum urma_user_ctl_ops_t, which is only used by URMA. + */ + uint32_t opcode; /* [Required] */ +} urma_user_ctl_in_t; + +typedef struct urma_user_ctl_out { + uint64_t addr; /* [Optional] the address of the output parameter buffer. */ + uint32_t len; /* [Optional] the length of the output parameter buffer */ + uint32_t reserved; +} urma_user_ctl_out_t; + +typedef struct urma_user_target_seg { + urma_seg_attr_t attr; + uint32_t token_id; + urma_token_t token_value; +} urma_user_tseg_t; + +typedef struct urma_sge { + uint64_t addr; + uint32_t len; + /* Driver verification + * remote seg: Either tseg or user tseg is not NULL. + * If both of them are not NULL, ignore user_tseg. + * local seg: user_tseg is not supported, tseg must not NULL. + */ + urma_target_seg_t *tseg; + urma_user_tseg_t *user_tseg; /* To support the exemption of import_seg */ +} urma_sge_t; + +typedef struct urma_sg { + urma_sge_t *sge; + uint32_t num_sge; +} urma_sg_t; + +/* wr for batch operations */ +typedef union urma_jfs_wr_flag { + struct { + uint32_t place_order : 2; /* 0: There is no order with other WR + 1: relax order + 2: strong order + 3: reserve */ /* see urma_place_order_t */ + uint32_t comp_order : 1; /* 0: There is no completion order with othwe WR. + 1: Completion order with previous WR. */ + uint32_t fence : 1; /* 0: There is not fence. + 1: Fence with previous read and atomic WR */ + uint32_t solicited_enable : 1; /* 0: There is not solicited. + 1: solicited. It will trigger an event on remote side */ + uint32_t complete_enable : 1; /* 0: Do not notify local process after the task is complete. + 1: Notify local process after the task is completed. */ + uint32_t inline_flag : 1; /* 0: not inline. + 1: inline data. */ + + uint32_t db_bypass : 1; + uint32_t has_drv_ext : 1; + uint32_t reserved : 23; + } bs; + uint32_t value; +} urma_jfs_wr_flag_t; + +typedef union urma_jfr_wr_flag { + struct { + uint32_t complete_type : 1; /* 0: Write completion record to jfc. + 1: Write completion record to complete flag (CF) address */ + uint32_t reserved : 31; + } bs; + uint32_t value; +} urma_jfr_wr_flag_t; + +typedef struct urma_rw_wr { + urma_sg_t src; /* including total data length. src is local va for write, and remote va for read. + only support 1 src sge in read operation. */ + urma_sg_t dst; /* dst is remote va for write, and local va for read. + only support 1 dst sge in write operation. */ + uint8_t target_hint; // required when using jetty group + uint64_t notify_data; // notify data or imm data in host byte order; +} urma_rw_wr_t; + +typedef struct urma_send_wr { + urma_sg_t src; // including total data length + uint8_t target_hint; // required when using jetty group + uint64_t imm_data; // imm_data in host byte order; + urma_target_seg_t *tseg; /* tseg used only when send with invalidate */ +} urma_send_wr_t; + +typedef struct urma_cas_wr { + urma_sge_t *dst; // len is the data length of CAS operation + urma_sge_t *src; // local address for destination original value writeback, len represents the buffer length. + union { // Value compared with destination value + uint64_t cmp_data; // When the len <= 8B, it indicates the CMP value. + uint64_t cmp_addr; // When the len > 8B, it indicates the data address. + }; + union { // If destination value is the same as cmp_data, destination value will be changed to swap_data + uint64_t swap_data; // When the len <= 8B, it indicates the swap value. + uint64_t swap_addr; // When the len > 8B, it indicates the data address. + }; +} urma_cas_wr_t; + +typedef struct urma_faa_wr { + urma_sge_t *dst; // len is the data length of FAA operation + urma_sge_t *src; // local address for destination original value writeback, len represents the buffer length. + union { + uint64_t operand; // When the len <= 8B, it indicates the operand value. + uint64_t operand_addr; // When the len > 8B, it indicates the data address. + }; +} urma_faa_wr_t; + +typedef struct urma_jfs_wr { + urma_opcode_t opcode; + urma_jfs_wr_flag_t flag; + urma_target_jetty_t *tjetty; + uint64_t user_ctx; // completion data + union { + urma_rw_wr_t rw; + urma_send_wr_t send; + urma_cas_wr_t cas; + urma_faa_wr_t faa; + }; + struct urma_jfs_wr *next; +} urma_jfs_wr_t; + +typedef struct urma_jfr_wr { + urma_sg_t src; // includeing buffer length + uint64_t user_ctx; // completion data, eg. wr id + struct urma_jfr_wr *next; +} urma_jfr_wr_t; + +typedef union urma_cr_flag { + struct { + uint8_t s_r : 1; // Indicate CR stands for sending or receiving, 0: send, 1: recv. + uint8_t jetty : 1; // Indicate CR stands for jetty or jfs/jfr, 0: jfs/jfr, 1: jetty. + uint8_t suspend_done : 1; // Real CR associated with the WR, user_ctx is valid + uint8_t flush_err_done : 1; // Real CR associated with the WR, user_ctx is valid + uint8_t reserved : 4; + } bs; + uint8_t value; +} urma_cr_flag_t; + +typedef struct urma_cr_token { + uint32_t token_id; + urma_token_t token_value; +} urma_cr_token_t; + +typedef struct urma_cr { + urma_cr_status_t status; + uint64_t user_ctx; // user_ctx related to a work request + urma_cr_opcode_t opcode; // Only for recv + urma_cr_flag_t flag; // indicate notify data or swap data is valid or not + uint32_t completion_len; // The number of bytes transferred + + uint32_t local_id; // Local jetty ID, or JFS ID, or JFR ID, depends on flag + urma_jetty_id_t remote_id; // Valid only for receiving CR. The remote jetty where the + // received msg comes from Jetty ID or JFS ID, depends on flag. + union { + uint64_t imm_data; // Valid only for receiving CR: send/write/read with imm. + urma_cr_token_t invalid_token; // Valid only for receiving CR: send with invalidate. + }; + uint32_t tpn; // TP number or TPG number + uintptr_t user_data; // e.g. use as pointer to local jetty struct. +} urma_cr_t; + +typedef struct urma_async_event { + /* may be SW queue error, may be HW port error */ + const urma_context_t *urma_ctx; + union { + urma_jfc_t *jfc; + urma_jfs_t *jfs; + urma_jfr_t *jfr; + urma_jetty_t *jetty; + urma_jetty_grp_t *jetty_grp; + uint32_t port_id; + uint32_t eid_idx; + } element; + urma_async_event_type_t event_type; + void *priv; +} urma_async_event_t; + +/* URMA region definition */ +typedef union urma_ur_attr { + struct { + uint32_t reserved : 32; + } bs; + uint32_t value; +} urma_ur_attr_t; + +typedef union urma_import_ur_flag { + struct { + uint32_t mapping : 2; /* 0: URMA_SEG_NOMAP + 1: URMA_SEG_MAPPED_MVA + 2: URMA_SEG_MAPPED_DSVA */ + uint32_t reserved : 30; + } bs; + uint32_t value; +} urma_import_ur_flag_t; + +#define UR_NAME_MAX_LEN 256 +#define JFR_NAME_MAX_LEN 256 +#define URMA_MAX_SEGS_PER_UR_OPT 64 // Max number of SEGS per attach/detach ur + +// In parametre for create UR +typedef struct urma_ur { + char name[UR_NAME_MAX_LEN]; // UR url name + uint64_t size; + urma_ur_attr_t attr; // include: access flag, token policy, cacheability, dsva + uint64_t token; + uint64_t user_ctx; +} urma_ur_t; + +// Out parametre for import UR +typedef struct urma_target_ur { + char name[UR_NAME_MAX_LEN]; // UR url name + uint64_t size; + urma_import_ur_flag_t flag; // include: access flag, token policy, cacheability, dsva + urma_target_seg_t **tseg_list; + uint32_t cnt; +} urma_target_ur_t; + +typedef struct urma_seg_info { + urma_seg_t seg; + uint32_t idx_in_ur; +} urma_seg_info_t; + +// Out parametre for lookup UR +typedef struct urma_ur_info { + char name[UR_NAME_MAX_LEN]; // UR url name + uint64_t size; // limit size, by byte + urma_ur_attr_t attr; // include: access flag, token policy, cacheability, dsva + uint32_t cnt; // + urma_seg_info_t seg_list[0]; // cnt * sizeof(urma_seg_info_t) +} urma_ur_info_t; + +typedef struct urma_jfr_info { + char name[JFR_NAME_MAX_LEN]; // jfr url name + urma_eid_t eid; + uint32_t uasid; + uint32_t id; +} urma_jfr_info_t; + +typedef union urma_tp_cfg_flag { + struct { + uint32_t target : 1; /* 0: initiator, 1: target */ + uint32_t loopback : 1; + uint32_t dca_enable : 1; + /* for the bonding case, the hardware selects the port + * ignoring the port of the tp context and + * selects the port based on the hash value + * along with the information in the bonding group table. + */ + uint32_t bonding : 1; + uint32_t reserved : 28; + } bs; + uint32_t value; +} urma_tp_cfg_flag_t; + +typedef struct urma_tp_cfg { + urma_tp_cfg_flag_t flag; /* flag of initial tp */ + /* transport layer attributes */ + urma_transport_mode_t trans_mode; + uint8_t retry_num; + uint8_t retry_factor; /* for calculate the time slot to retry */ + uint8_t ack_timeout; + uint8_t dscp; + uint32_t oor_cnt; /* OOR window size: by packet */ +} urma_tp_cfg_t; + +typedef union urma_tp_attr_mask { + struct { + uint32_t flag : 1; + uint32_t peer_tpn : 1; + uint32_t state : 1; + uint32_t tx_psn : 1; + uint32_t rx_psn : 1; /* modify both rx psn and tx psn when restore tp */ + uint32_t mtu : 1; + uint32_t cc_pattern_idx : 1; + uint32_t oos_cnt : 1; + uint32_t local_net_addr_idx : 1; + uint32_t peer_net_addr : 1; + uint32_t data_udp_start : 1; + uint32_t ack_udp_start : 1; + uint32_t udp_range : 1; + uint32_t hop_limit : 1; + uint32_t flow_label : 1; + uint32_t port_id : 1; + uint32_t mn : 1; + uint32_t peer_trans_type : 1; + uint32_t reserved : 14; + } bs; + uint32_t value; +} urma_tp_attr_mask_t; + +typedef union urma_tp_mod_flag { + struct { + uint32_t oor_en : 1; /* out of order receive, 0: disable 1: enable */ + uint32_t sr_en : 1; /* selective retransmission, 0: disable 1: enable */ + uint32_t cc_en : 1; /* congestion control algorithm, 0: disable 1: enable */ + uint32_t cc_alg : 4; /* The value is ubcore_tp_cc_alg_t */ + uint32_t spray_en : 1; /* spray with src udp port, 0: disable 1: enable */ + uint32_t clan : 1; /* clan domain, 0: disable 1: enable */ + uint32_t reserved : 23; + } bs; + uint32_t value; +} urma_tp_mod_flag_t; + +typedef enum urma_tp_state { + URMA_TP_STATE_RESET = 0, + URMA_TP_STATE_PASSIVE, + URMA_TP_STATE_ACTIVE, + URMA_TP_STATE_BRAKE, + URMA_TP_STATE_ERROR +} urma_tp_state_t; + +typedef struct urma_net_addr { + sa_family_t sin_family; /* AF_INET/AF_INET6 */ + union { + struct in_addr in4; + struct in6_addr in6; + }; + uint64_t vlan; + uint8_t mac[URMA_MAC_BYTES]; + uint32_t prefix_len; +} urma_net_addr_t; + +typedef struct urma_net_addr_info { + urma_net_addr_t netaddr; + uint32_t index; +} urma_net_addr_info_t; + +typedef struct urma_tp_attr { + urma_tp_mod_flag_t flag; + uint32_t peer_tpn; + urma_tp_state_t state; + uint32_t tx_psn; + uint32_t rx_psn; + urma_mtu_t mtu; + uint8_t cc_pattern_idx; + uint32_t oos_cnt; /* out of standing packet cnt */ + uint32_t local_net_addr_idx; + urma_net_addr_t peer_net_addr; + uint16_t data_udp_start; + uint16_t ack_udp_start; + uint8_t udp_range; + uint8_t hop_limit; + uint32_t flow_label; + uint8_t port_id; + uint8_t mn; /* 0~15, a packet contains only one msg if mn is set as 0 */ + urma_transport_type_t peer_trans_type; +} urma_tp_attr_t; + +typedef union urma_get_tp_cfg_flag { + struct { + uint32_t ctp : 1; + uint32_t rtp : 1; + uint32_t utp : 1; + uint32_t uboe : 1; + uint32_t pre_defined : 1; + uint32_t dynamic_defined : 1; + uint32_t udp : 5; + uint32_t group_id : 15; + uint32_t reserved : 6; + } bs; + uint32_t value; +} urma_get_tp_cfg_flag_t; + +typedef struct urma_get_tp_cfg { + urma_get_tp_cfg_flag_t flag; + urma_transport_mode_t trans_mode; + urma_eid_t local_eid; + urma_eid_t peer_eid; +} urma_get_tp_cfg_t; + +typedef struct urma_tp_info { + uint64_t tp_handle; +} urma_tp_info_t; + +typedef struct urma_active_tp_attr { + uint32_t tx_psn; + uint32_t rx_psn; + uint64_t reserved; +} urma_active_tp_attr_t; + +typedef struct urma_active_tp_cfg { + uint64_t tp_handle; + uint64_t peer_tp_handle; + uint64_t tag; + urma_active_tp_attr_t tp_attr; +} urma_active_tp_cfg_t; + +typedef struct urma_active_tp_cfg urma_import_jetty_ex_cfg_t; +typedef struct urma_active_tp_cfg urma_import_jfr_ex_cfg_t; +typedef struct urma_active_tp_cfg urma_bind_jetty_ex_cfg_t; + +#pragma pack(1) +typedef struct urma_tp_attr_value { + uint8_t retry_times_init : 3; + uint8_t at : 5; + uint8_t sip[URMA_IP_ADDR_BYTES]; + uint8_t dip[URMA_IP_ADDR_BYTES]; + uint8_t sma[URMA_MAC_BYTES]; + uint8_t dma[URMA_MAC_BYTES]; + uint16_t vlan_id : 12; + uint8_t vlan_en : 1; + uint8_t dscp : 6; + uint8_t at_times : 5; + uint8_t sl : 4; + uint8_t ttl; + uint16_t ack_udp_srcport; + uint16_t data_udp_srcport; + uint8_t udp_srcport_range : 4; + uint8_t spray_en : 1; + uint8_t udp_global_en : 1; + uint8_t reserve_0 : 2; + uint16_t sl_bitmap; + uint8_t dscp_config_mode : 1; + uint8_t reserve_1 : 7; + uint8_t reserved[70]; +} urma_tp_attr_value_t; +#pragma pack() + +/* callback information */ +typedef void (*urma_async_event_cb)(urma_async_event_t *event, void *cb_arg); + +/* callback function type for urma_advise_jfr/jetty_async. User must define callback function to handle result. + advise_result is the result of advise jfr or jetty */ +typedef void (*urma_advise_async_cb_func)(urma_status_t advise_result, void *cb_arg); + +typedef enum urma_vlog_level { + URMA_VLOG_LEVEL_EMERG = 0, + URMA_VLOG_LEVEL_ALERT = 1, + URMA_VLOG_LEVEL_CRIT = 2, + URMA_VLOG_LEVEL_ERR = 3, + URMA_VLOG_LEVEL_WARNING = 4, + URMA_VLOG_LEVEL_NOTICE = 5, + URMA_VLOG_LEVEL_INFO = 6, + URMA_VLOG_LEVEL_DEBUG = 7, + URMA_VLOG_LEVEL_MAX = 8, +} urma_vlog_level_t; + +typedef void (*urma_log_cb_t)(int level, char *message); + +/* location log callback function definition */ +typedef void (*urma_loc_log_cb)(int level, const char *file, const char *function, int line, char *message); + +#ifdef __cplusplus +} +#endif + +#endif // URMA_TYPES_H From 59cbe7556beb6e55d2032ed29d7e0bfbd35dd25e Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Tue, 28 Jul 2026 16:35:22 +0800 Subject: [PATCH 12/45] Fix find_path for system URMA SDK at /usr/include/ub/umdk/urma/ The system URMA SDK installs headers at /usr/include/ub/umdk/urma/ (not flat under /usr/include). Update: - find_path: search for 'urma/urma_api.h' (not 'urma_api.h') - All source includes: '#include "urma/urma_api.h"' (not '"urma_api.h"') - SDK header internal includes: 'urma/urma_types.h' (not 'urma_types.h') - Bundled mock headers: move from sdk/ to sdk/urma/ to match layout This way find_path resolves to /usr/include/ub/umdk when the real SDK is installed, and the mock's sdk/ directory provides the same urma/ subdir structure. --- CMakeLists.txt | 2 +- src/brpc/urma/mock_urma.cpp | 2 +- src/brpc/urma/sdk/{ => urma}/urma_api.h | 2 +- src/brpc/urma/sdk/{ => urma}/urma_opcode.h | 0 src/brpc/urma/sdk/{ => urma}/urma_types.h | 2 +- src/brpc/urma/urma_endpoint.cpp | 2 +- src/brpc/urma/urma_endpoint.h | 4 ++-- src/brpc/urma/urma_handshake.h | 2 +- src/brpc/urma/urma_helper.cpp | 4 ++-- src/brpc/urma/urma_helper.h | 4 ++-- test/brpc_urma_unittest.cpp | 4 ++-- 11 files changed, 14 insertions(+), 14 deletions(-) rename src/brpc/urma/sdk/{ => urma}/urma_api.h (99%) rename src/brpc/urma/sdk/{ => urma}/urma_opcode.h (100%) rename src/brpc/urma/sdk/{ => urma}/urma_types.h (99%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ac8b6ad9c..e859b44306 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -316,7 +316,7 @@ if(WITH_URMA) # (src/brpc/urma/mock_urma.cpp) so CI can build and test UrmaTransport # on hosts without URMA hardware. The mock provides link-time stubs of # every urma_* symbol the transport calls. - find_path(URMA_INCLUDE_PATH NAMES urma_api.h) + find_path(URMA_INCLUDE_PATH NAMES urma/urma_api.h) find_library(URMA_LIB NAMES urma) if(URMA_INCLUDE_PATH AND URMA_LIB) message(STATUS "Found URMA SDK: ${URMA_INCLUDE_PATH}, ${URMA_LIB}") diff --git a/src/brpc/urma/mock_urma.cpp b/src/brpc/urma/mock_urma.cpp index 5e4c4a2338..665309872b 100644 --- a/src/brpc/urma/mock_urma.cpp +++ b/src/brpc/urma/mock_urma.cpp @@ -36,7 +36,7 @@ #if BRPC_WITH_URMA -#include "urma_api.h" +#include "urma/urma_api.h" #include #include diff --git a/src/brpc/urma/sdk/urma_api.h b/src/brpc/urma/sdk/urma/urma_api.h similarity index 99% rename from src/brpc/urma/sdk/urma_api.h rename to src/brpc/urma/sdk/urma/urma_api.h index 3f9a84425e..d070c0e80c 100644 --- a/src/brpc/urma/sdk/urma_api.h +++ b/src/brpc/urma/sdk/urma/urma_api.h @@ -13,7 +13,7 @@ #include #include -#include "urma_types.h" +#include "urma/urma_types.h" #ifdef __cplusplus extern "C" { diff --git a/src/brpc/urma/sdk/urma_opcode.h b/src/brpc/urma/sdk/urma/urma_opcode.h similarity index 100% rename from src/brpc/urma/sdk/urma_opcode.h rename to src/brpc/urma/sdk/urma/urma_opcode.h diff --git a/src/brpc/urma/sdk/urma_types.h b/src/brpc/urma/sdk/urma/urma_types.h similarity index 99% rename from src/brpc/urma/sdk/urma_types.h rename to src/brpc/urma/sdk/urma/urma_types.h index e62058b28c..c093f22565 100644 --- a/src/brpc/urma/sdk/urma_types.h +++ b/src/brpc/urma/sdk/urma/urma_types.h @@ -23,7 +23,7 @@ #include #endif -#include "urma_opcode.h" +#include "urma/urma_opcode.h" #ifdef __cplusplus extern "C" { diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 7f701f2f2c..ad1d1c0123 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -38,7 +38,7 @@ #include "brpc/input_messenger.h" #include "brpc/socket.h" -#include "urma_api.h" +#include "urma/urma_api.h" #include "brpc/urma/urma_endpoint.h" #include "brpc/urma/urma_handshake.h" #include "brpc/urma/urma_handshake.pb.h" diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index 26280f6976..cf79d2e97a 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -32,8 +32,8 @@ #if BRPC_WITH_URMA -#include "urma_api.h" -#include "urma_types.h" +#include "urma/urma_api.h" +#include "urma/urma_types.h" #include "brpc/urma/urma_handshake.h" #include "brpc/urma/urma_handshake.pb.h" diff --git a/src/brpc/urma/urma_handshake.h b/src/brpc/urma/urma_handshake.h index e444d62551..e622de011d 100644 --- a/src/brpc/urma/urma_handshake.h +++ b/src/brpc/urma/urma_handshake.h @@ -24,7 +24,7 @@ #if BRPC_WITH_URMA -#include "urma_types.h" +#include "urma/urma_types.h" namespace brpc { namespace urma { diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 1e6dcc2654..540c71ad8b 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -40,8 +40,8 @@ #include "butil/scoped_lock.h" #include "butil/synchronization/lock.h" -#include "urma_api.h" -#include "urma_types.h" +#include "urma/urma_api.h" +#include "urma/urma_types.h" DECLARE_int32(task_group_ntags); diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index 0452f0a7cd..adc3399781 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -28,8 +28,8 @@ #if BRPC_WITH_URMA -#include "urma_api.h" -#include "urma_types.h" +#include "urma/urma_api.h" +#include "urma/urma_types.h" namespace brpc { namespace urma { diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index c7d61cb5e8..6f27be748c 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -22,11 +22,11 @@ #if BRPC_WITH_URMA #include "butil/atomicops.h" #include "butil/sys_byteorder.h" -#include "urma_api.h" +#include "urma/urma_api.h" #include "brpc/urma/urma_handshake.h" #include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma/urma_helper.h" -#include "urma_types.h" +#include "urma/urma_types.h" using namespace brpc; From 12f23c756781880cf8fdf5a090850c999d35cfa8 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Tue, 28 Jul 2026 16:45:54 +0800 Subject: [PATCH 13/45] Fix find_path to search /usr/include/ub/umdk/ for URMA SDK headers The URMA SDK installs headers at /usr/include/ub/umdk/urma/urma_api.h (two levels under /usr/include). CMake's default find_path does not search this non-standard subdirectory. Add PATHS and PATH_SUFFIXES to cover common install layouts: PATHS /usr/include /usr/local/include PATH_SUFFIXES ub/umdk ub/umdk/urma umdk umdk/urma --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e859b44306..ca2fd62279 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -316,7 +316,9 @@ if(WITH_URMA) # (src/brpc/urma/mock_urma.cpp) so CI can build and test UrmaTransport # on hosts without URMA hardware. The mock provides link-time stubs of # every urma_* symbol the transport calls. - find_path(URMA_INCLUDE_PATH NAMES urma/urma_api.h) + find_path(URMA_INCLUDE_PATH NAMES urma/urma_api.h + PATHS /usr/include /usr/local/include + PATH_SUFFIXES ub/umdk ub/umdk/urma umdk umdk/urma) find_library(URMA_LIB NAMES urma) if(URMA_INCLUDE_PATH AND URMA_LIB) message(STATUS "Found URMA SDK: ${URMA_INCLUDE_PATH}, ${URMA_LIB}") From 15ff97520fce2ebacbcb24f3aa447fa7ded5e6fa Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Tue, 28 Jul 2026 17:06:38 +0800 Subject: [PATCH 14/45] Fix compile errors: Socket friend access, missing constants, type mismatches 1. Add friend declarations for urma::UrmaEndpoint/UrmaConnect/ UrmaHandshakeClient/ServerV2/V3 in socket.h (same as RDMA). Without these, UrmaEndpoint cannot access Socket private members (_read_buf, _transport, _app_connect, _user, _fd, _io_event, WaitEpollOut, WakeAsEpollOut). 2. Add HELLO_BODY_LEN and HELLO_PACKET_LEN constants to v2_wire namespace in urma_handshake.h (referenced by FillLocalHelloV2). 3. Add WriteToFd(IOBuf&) overload declaration to urma_endpoint.h (implementation exists in .cpp but was not declared in .h). 4. Fix ProcessNewMessage call: last_msg must be InputMessageClosure, not bool (matching RDMA's pattern). 5. Replace memset on non-trivial types (ParsedHello, HelloMessage) with value-initialization to avoid -Wclass-memaccess warnings. --- src/brpc/socket.h | 14 ++++++++++++++ src/brpc/urma/urma_endpoint.cpp | 8 ++++---- src/brpc/urma/urma_endpoint.h | 2 ++ src/brpc/urma/urma_handshake.h | 2 ++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/brpc/socket.h b/src/brpc/socket.h index e4713d86a2..4bc5db2a89 100644 --- a/src/brpc/socket.h +++ b/src/brpc/socket.h @@ -61,6 +61,14 @@ class RdmaHandshakeServerV2; class RdmaHandshakeClientV3; class RdmaHandshakeServerV3; } +namespace urma { +class UrmaEndpoint; +class UrmaConnect; +class UrmaHandshakeClientV2; +class UrmaHandshakeServerV2; +class UrmaHandshakeClientV3; +class UrmaHandshakeServerV3; +} class Socket; class AuthContext; @@ -325,6 +333,12 @@ friend class rdma::RdmaHandshakeClientV2; friend class rdma::RdmaHandshakeServerV2; friend class rdma::RdmaHandshakeClientV3; friend class rdma::RdmaHandshakeServerV3; +friend class urma::UrmaEndpoint; +friend class urma::UrmaConnect; +friend class urma::UrmaHandshakeClientV2; +friend class urma::UrmaHandshakeServerV2; +friend class urma::UrmaHandshakeClientV3; +friend class urma::UrmaHandshakeServerV3; friend class HealthCheckTask; friend class OnAppHealthCheckDone; friend class HealthCheckManager; diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index ad1d1c0123..3bd25566bc 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -198,7 +198,7 @@ int UrmaEndpoint::WriteToFd(void* data, size_t len) { // ============================================================================ void UrmaEndpoint::MakeLocalParsedHello(ParsedHello* out) const { - std::memset(out, 0, sizeof(*out)); + *out = ParsedHello{}; // value-initialize (avoids memset on non-trivial type) out->buffer_size = static_cast(GetUrmaRecvBlockSize()); out->recv_buffer_cnt = _rq_size - 1; if (_resource && _resource->jetty) { @@ -220,8 +220,8 @@ void UrmaEndpoint::MakeLocalParsedHello(ParsedHello* out) const { } void UrmaEndpoint::FillLocalHelloV2(v2_wire::HelloMessage* out) const { - std::memset(out, 0, sizeof(*out)); - out->msg_len = v2_wire::HELLO_PACKET_LEN; // set below if available; else 0 + *out = v2_wire::HelloMessage{}; // value-initialize + out->msg_len = v2_wire::HELLO_PACKET_LEN; out->hello_ver = v2_wire::HELLO_V2_VERSION; out->impl_ver = v2_wire::IMPL_V2_VERSION; ParsedHello p; @@ -753,7 +753,7 @@ void UrmaEndpoint::PollCq(Socket* m) { if (s->Failed()) { return; } ssize_t bytes = 0; - bool last_msg = false; + InputMessageClosure last_msg; while (true) { int n = std::min(FLAGS_urma_cqe_poll_once, 32); urma_cr_t crs[32]; diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index cf79d2e97a..354db98cd0 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -161,6 +161,8 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // Write at most @len bytes from @data to the TCP fd; waits on // _epollout_butex on EAGAIN. Returns 0 on success, -1 on IO error. int WriteToFd(void* data, size_t len); + // Write an IOBuf to the TCP fd (used by v3 protobuf handshake). + int WriteToFd(butil::IOBuf& data); // ---- Hello builders/parsers (used by urma_handshake.cpp) ---- // Fill the v2 binary HelloMessage with this endpoint's local params. diff --git a/src/brpc/urma/urma_handshake.h b/src/brpc/urma/urma_handshake.h index e622de011d..66548476d3 100644 --- a/src/brpc/urma/urma_handshake.h +++ b/src/brpc/urma/urma_handshake.h @@ -58,6 +58,8 @@ struct ParsedHello { namespace v2_wire { constexpr size_t MAGIC_STR_LEN = 4; +constexpr size_t HELLO_BODY_LEN = 82; +constexpr size_t HELLO_PACKET_LEN = MAGIC_STR_LEN + HELLO_BODY_LEN; // 86 constexpr size_t HELLO_MSG_LEN_MIN = 96; constexpr size_t HELLO_MSG_LEN_MAX = 4096; constexpr uint16_t HELLO_V2_VERSION = 2; From 9092a73c07c71426caa9208508c3dba5d84937ac Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 09:52:50 +0800 Subject: [PATCH 15/45] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/urma_performance/CMakeLists.txt | 15 +- example/urma_performance/client.cpp | 5 +- src/brpc/socket.h | 1 + src/brpc/ubshm/ub_ring.cpp | 1104 +++++++++++++++++++++++ src/brpc/urma/urma_handshake.cpp | 3 - src/brpc/urma/urma_helper.cpp | 8 +- src/brpc/urma/urma_helper.h | 2 + 7 files changed, 1126 insertions(+), 12 deletions(-) create mode 100644 src/brpc/ubshm/ub_ring.cpp diff --git a/example/urma_performance/CMakeLists.txt b/example/urma_performance/CMakeLists.txt index 07aa2440d6..f1cd402396 100644 --- a/example/urma_performance/CMakeLists.txt +++ b/example/urma_performance/CMakeLists.txt @@ -29,6 +29,8 @@ set(CMAKE_PREFIX_PATH ${OUTPUT_PATH}) include(FindThreads) include(FindProtobuf) +find_package(PkgConfig REQUIRED) +pkg_check_modules(ABSL absl_log absl_status absl_cord absl_strings absl_time absl_base absl_synchronization absl_spinlock_wait) protobuf_generate_cpp(PROTO_SRC PROTO_HEADER test.proto) # include PROTO_HEADER include_directories(${CMAKE_CURRENT_BINARY_DIR}) @@ -71,13 +73,13 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -DNDEBUG -O2 -D__const__=__unused__ -pip if(CMAKE_VERSION VERSION_LESS "3.1.3") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") endif() else() - set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) endif() @@ -97,14 +99,21 @@ endif() find_package(OpenSSL) include_directories(${OPENSSL_INCLUDE_DIR}) +find_library(URMA_LIB NAMES urma) +if (NOT URMA_LIB) + message(FATAL_ERROR "Fail to find urma") +endif() + set(DYNAMIC_LIB ${CMAKE_THREAD_LIBS_INIT} ${GFLAGS_LIBRARY} ${PROTOBUF_LIBRARIES} + ${ABSL_LIBRARIES} ${LEVELDB_LIB} ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY} ${THRIFT_LIB} + ${URMA_LIB} dl z ) diff --git a/example/urma_performance/client.cpp b/example/urma_performance/client.cpp index 32371321e8..6100ffa022 100644 --- a/example/urma_performance/client.cpp +++ b/example/urma_performance/client.cpp @@ -48,13 +48,14 @@ static void* worker(void* arg) { static_cast(arg); int qps = FLAGS_expected_qps; while (!brpc::IsAskedToQuit()) { - butil::FastRand fr; + butil::FastRandSeed seed; + butil::init_fast_rand_seed(&seed); std::vector cntls(FLAGS_queue_depth); std::vector reqs(FLAGS_queue_depth); std::vector resps(FLAGS_queue_depth); std::vector ids(FLAGS_queue_depth); for (int i = 0; i < FLAGS_queue_depth; ++i) { - cntls[i].set_log_id(fr.next() & 0x7fffffff); + cntls[i].set_log_id(butil::fast_rand() & 0x7fffffff); reqs[i].set_echo_attachment(FLAGS_echo_attachment); if (FLAGS_attachment_size >= 0) { cntls[i].request_attachment().resize(FLAGS_attachment_size, 'a'); diff --git a/src/brpc/socket.h b/src/brpc/socket.h index 4bc5db2a89..8c72878107 100644 --- a/src/brpc/socket.h +++ b/src/brpc/socket.h @@ -349,6 +349,7 @@ friend void DereferenceSocket(Socket*); friend class Transport; friend class TcpTransport; friend class RdmaTransport; +friend class UrmaTransport; friend class TransportFactory; class SharedPart; struct WriteRequest; diff --git a/src/brpc/ubshm/ub_ring.cpp b/src/brpc/ubshm/ub_ring.cpp new file mode 100644 index 0000000000..94e125fcef --- /dev/null +++ b/src/brpc/ubshm/ub_ring.cpp @@ -0,0 +1,1104 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#include +#include +#include +#include +#include +#include "bthread/bthread.h" +#include "butil/logging.h" +#include "brpc/ubshm/ub_ring.h" +#include "brpc/ubshm/ub_ring_manager.h" +#include "brpc/ubshm/shm/shm_ipc.h" + +namespace brpc { +namespace ubring { +uint32_t g_sleepTime[UBR_TASK_STEP_NUM] = {0}; +#define TIME_COVERSION 1000 +DEFINE_int32(ub_disconnect_timeout, 5, "Ubshm disconnection timeout."); +DEFINE_int32(ub_connect_timeout, 1, "Ubshm connection timeout."); +DEFINE_int32(ub_hb_timer_interval, 5, "Heartbeat timer interval."); +DEFINE_int32(ub_hb_retry_cnt, 10, "Heartbeat retry times."); +DEFINE_int32(ub_event_queue_timer_interval, 100, "Interval of the disconnection timer."); + +UBRing::UBRing() +{} +UBRing::~UBRing() +{} + +RETURN_CODE UBRing::UbrTrxMapShm(SHM *localShm, SHM *remoteShm) +{ + RETURN_CODE rc = UbrTrxMapLocalShm(localShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Trx map local shared memory failed."; + return rc; + } + rc = UbrTrxMapRemoteShm(remoteShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Trx map remote shared memory failed."; + return rc; + } + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrTrxClose() { + RETURN_CODE closeCheckRc = UbrTrxCloseCheck(_trx); + if (UNLIKELY(closeCheckRc != UBRING_OK)) { + if (closeCheckRc == UBRING_REENTRY) { + LOG(INFO) << "Trx close skipped, already closing, local name=" << _trx->localShm.name; + return UBRING_OK; + } + return UBRING_ERR; + } + if (_trx->ubrRx.remoteTxEventQ.addr != nullptr) { + ((UbrEventQMsg *)_trx->ubrRx.remoteTxEventQ.addr)->flag = UBR_STATE_CLOSING; + } + + uint32_t disconnectTimeout = FLAGS_ub_disconnect_timeout; + uint64_t startTime = GetCurNanoSeconds(); + + if (_trx->ubrTx.localTxEventQ.addr != nullptr && ((UbrEventQMsg *)_trx->ubrTx.localTxEventQ.addr)->flag == UBR_STATE_CONNECTED) { + ((UbrEventQMsg *)_trx->ubrTx.localTxEventQ.addr)->flag = UBR_STATE_CLOSED; + _trx->ubrTx.trxState = UBR_STATE_CLOSED; + } + + if (_trx->ubrTx.remoteRxEventQ.addr != nullptr) { + ((UbrEventQMsg *)_trx->ubrTx.remoteRxEventQ.addr)->flag = UBR_STATE_CLOSED; + } + while (_trx->ubrRx.localRxEventQ.addr != nullptr && ((UbrEventQMsg *)_trx->ubrRx.localRxEventQ.addr)->flag != UBR_STATE_CLOSED) { + UbrSetSleepTask(UBR_TASK_CLOSE); + if (HasTimedOut(startTime, disconnectTimeout) != UBRING_OK) { + LOG(WARNING) << "Local shm " << _trx->localShm.name + << " wait for the peer to close timed out, force cleanup."; + _trx->ubrRx.trxState = UBR_STATE_CLOSED; + // Force synchronous cleanup instead of relying on async timer + DeleteTimerSafe((uint32_t)_trx->timerFd); + DeleteTimerSafe((uint32_t)_trx->hbTimerFd); + if (_trx->ubrTx.remoteRxEventQ.addr != nullptr) { + ((UbrEventQMsg *)_trx->ubrTx.remoteRxEventQ.addr)->flag = UBR_STATE_CLOSED; + } + if (UNLIKELY(UbrTrxFreeShm(_trx) != UBRING_OK)) { + LOG(WARNING) << "Force close, local shm " << _trx->localShm.name << " free failed."; + } + if (UNLIKELY(UBRingManager::ReleaseUbrTrxFromMgr(_trx) != UBRING_OK)) { + LOG(WARNING) << "Force close, release trx " << _trx->localShm.name << " failed."; + } + return UBRING_ERR_TIMEOUT; + } + bthread_usleep(1000); // 1ms, yield to other bthreads + } + _trx->ubrRx.trxState = UBR_STATE_CLOSED; + RETURN_CODE rc; + if (UNLIKELY((rc = ClearTrxResource(_trx, startTime, UBR_SEND_CLOSE)) != UBRING_OK)) { + if (rc == UBRING_REENTRY) { + LOG(INFO) << "Trx close, peer is closing, trx local name=" << _trx->localShm.name; + return UBRING_OK; + } + LOG(ERROR) << "Trx close, clear trx resource failed, trx local name=" << _trx->localShm.name; + return UBRING_ERR; + } + // Unlink local shm name immediately so process exit does not leave visible leftovers. + RETURN_CODE unlinkRc = ShmFree(&_trx->localShm); + if (unlinkRc != UBRING_OK && unlinkRc != SHM_ERR_NOT_FOUND && unlinkRc != SHM_ERR_RESOURCE_ATTACHED) { + LOG(WARNING) << "Trx close, unlink local shm failed, trx local name=" << _trx->localShm.name + << ", rc=" << unlinkRc; + } + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrAddCloseTimer() { + if (UNLIKELY(_trx == NULL)) { + LOG(ERROR) << "Trx add close timer failed, trx is null."; + return UBRING_ERR; + } + + uint32_t eventQTimerInterval = FLAGS_ub_event_queue_timer_interval * TIME_COVERSION; + itimerspec timeSpec = { + .it_interval = {.tv_sec = 0, .tv_nsec = eventQTimerInterval}, + .it_value = {.tv_sec = 0, .tv_nsec = 1} + }; + int timerFd = TimerStart(&timeSpec, UbrTrxCloseCallback, (void*)_trx); + if (UNLIKELY(timerFd == -1)) { + LOG(ERROR) << "Start ubr close timer failed, trx local name=" << _trx->localShm.name; + return UBRING_ERR; + } + _trx->timerFd = timerFd; + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrAddTimer() { + if (UNLIKELY(UbrAddCloseTimer() != UBRING_OK)) { + LOG(ERROR) << "Ubr " << _trx->localShm.name << " add closed timer failed."; + return UBRING_ERR; + } + + if (UNLIKELY(UbrAddHBTimer() != UBRING_OK)) { + DeleteTimerSafe((uint32_t)_trx->timerFd); + LOG(ERROR) << "Ubr " << _trx->localShm.name << " add heartbeat timer failed."; + return UBRING_ERR; + } + return UBRING_OK; +} + +void* UBRing::UbrTrxCloseCallback(void* args) { + auto* trx = (UbrTrx*) args; + if (UNLIKELY(UBRing::UbrTrxCallbackCheck(trx) != UBRING_OK)) { + return nullptr; + } + + auto* localRxEventQ = (UbrEventQMsg *)trx->ubrRx.localRxEventQ.addr; + auto* localTxEventQ = (UbrEventQMsg *)trx->ubrTx.localTxEventQ.addr; + if (localRxEventQ->flag != UBR_STATE_CLOSED || localTxEventQ->flag == UBR_STATE_CLOSED) { + return nullptr; + } + trx->ubrRx.trxState = UBR_STATE_CLOSED; + int fd = (int)trx->localShm.fd; + do { + if (ATOMIC_LOAD(trx->closeCnt) == 0) { + break; + } + ATOMIC_SUB(trx->closeCnt, 1); + + uint64_t startTime = GetCurNanoSeconds(); + + if (localTxEventQ->flag == UBR_STATE_CONNECTED || ATOMIC_LOAD(trx->closeCnt) == 1) { + localTxEventQ->flag = UBR_STATE_CLOSED; + trx->ubrTx.trxState = UBR_STATE_CLOSED; + } + UbrEventQMsg* remoteRxEventQ = (UbrEventQMsg *)trx->ubrTx.remoteRxEventQ.addr; + if (remoteRxEventQ == nullptr) { + LOG(ERROR) << "Trx close callback failed, " << trx->localShm.name << " remoteRxEventQ is NULL."; + break; + } + remoteRxEventQ->flag = UBR_STATE_CLOSED; + RETURN_CODE clearRc = ClearTrxResource(trx, startTime, UBR_CALL_BACK_CLOSE, 1); + if (UNLIKELY(clearRc != UBRING_OK && clearRc != UBRING_REENTRY)) { + LOG(ERROR) << "Trx close callback failed, " << trx->localShm.name << " clear trx resource failed."; + break; + } + } while (0); + return nullptr; +} + +RETURN_CODE UBRing::UbrAddHBTimer() { + if (UNLIKELY(_trx == NULL)) { + LOG(ERROR) << "Trx add heartbeat timer failed, trx is null."; + return UBRING_ERR; + } + + itimerspec timeSpec = { + .it_interval = {.tv_sec = FLAGS_ub_hb_timer_interval, .tv_nsec = 0}, + .it_value = {.tv_sec = 0, .tv_nsec = 1} + }; + int timerFd = TimerStart(&timeSpec, UbrTrxHBCallback, (void*)_trx); + if (UNLIKELY(timerFd == -1)) { + LOG(ERROR) << "Start ubr heartbeat timer failed."; + return UBRING_ERR; + } + _trx->hbTimerFd = timerFd; + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrPassiveClearTrx(UbrTrx *trx, int fd, PASSIVE_DISC_TYPE type) { + RETURN_CODE passiveCloseCheckRc = UbrTrxCloseCheck(trx); + if (UNLIKELY(passiveCloseCheckRc != UBRING_OK)) { + if (passiveCloseCheckRc == UBRING_REENTRY) { + LOG(INFO) << "Passive close skipped, active close in progress, name=" << trx->localShm.name; + uint64_t startTime = GetCurNanoSeconds(); + return ClearTrxResource(trx, startTime, UBR_CALL_BACK_CLOSE); + } + return UBRING_ERR; + } + trx->ubrTx.trxState = UBR_STATE_CLOSED; + trx->ubrRx.trxState = UBR_STATE_CLOSED; + DeleteTimerSafe((uint32_t)trx->timerFd); + const char *typeName = NULL; + if (type == UBR_HEARTBEAT) { + DeleteTimer((uint32_t)trx->hbTimerFd); + typeName = "Trx heartbeat"; + } else if (type == UBR_UB_EVENT) { + DeleteTimerSafe((uint32_t)trx->hbTimerFd); + typeName = "Ub event callback"; + } + bthread_usleep(FLAGS_ub_flying_io_timeout * 1000000LL); // yield-friendly sleep + + int rc = ShmLocalFree(&trx->remoteShm); + if (rc != UBRING_OK) { + LOG(ERROR) << typeName << ", delete remote shm failed. ret=" << rc; + } + rc = ShmLocalFree(&trx->localShm); + if (rc != UBRING_OK) { + LOG(ERROR) << typeName << ", delete local shm failed. ret=" << rc; + } + + UBRingManager::ReleaseUbrTrxFromMgr(trx); + return UBRING_OK; +} + +void* UBRing::UbrTrxHBCallback(void* args) { + auto* trx = (UbrTrx*) args; + if (UNLIKELY(UbrTrxCallbackCheck(trx) != UBRING_OK)) { + return NULL; + } + + auto* localDataStatus = (UbrDataStatusQMsg *)trx->ubrTx.localDataStatusQ.addr; + auto* remoteDataStatus = (UbrDataStatusQMsg *)trx->ubrRx.remoteDataStatusQ.addr; + if (UNLIKELY(localDataStatus == NULL || remoteDataStatus == NULL)) { + LOG(ERROR) << "Heartbeat error, datastatus is NULL."; + return NULL; + } + + if (trx->ubrTx.trxState != UBR_STATE_CONNECTED || trx->ubrRx.trxState != UBR_STATE_CONNECTED) { + LOG_EVERY_SECOND(INFO) << "Heartbeat cannot be started, wait connected state."; + return NULL; + } + + remoteDataStatus->heartBeat = 1; + if (localDataStatus->heartBeat == 1) { + localDataStatus->heartBeat = 0; + trx->ubrTx.hbRetryCnt = 0; + return NULL; + } + + ++trx->ubrTx.hbRetryCnt; + if (trx->ubrTx.hbRetryCnt <= FLAGS_ub_hb_retry_cnt) { + return NULL; + } + + int fd = (int)trx->localShm.fd; + LOG(INFO) << "Hlc heartbeat, start to clear trx resource. hbTimerFd=" << fd << ", shmName=" << trx->localShm.name; + UbrPassiveClearTrx(trx, fd, UBR_HEARTBEAT); + LOG(INFO) << "Hlc heartbeat clear trx resource finish."; + return NULL; +} + +RETURN_CODE UBRing::UbrAddAsynClearTimer(UbrTrx *trx) { + if (UNLIKELY(trx == NULL)) { + LOG(ERROR) << "Trx add close timer failed, trx is null."; + return UBRING_ERR; + } + + if (trx->clearTimerFd > 0) { + return UBRING_OK; + } + + itimerspec timeSpec = { + .it_interval = {.tv_sec = 0, .tv_nsec = 0}, + .it_value = {.tv_sec = FLAGS_ub_flying_io_timeout, .tv_nsec = 0} + }; + + int timerFd = TimerStart(&timeSpec, UbrAsynClearCallback, (void*)trx); + if (UNLIKELY(timerFd == -1)) { + LOG(ERROR) << "Start ubr close timer failed, trx name=%s.", trx->localShm.name; + return UBRING_ERR; + } + trx->clearTimerFd = timerFd; + return UBRING_OK; +} + +void *UBRing::UbrAsynClearCallback(void *args) +{ + auto* trx = (UbrTrx*) args; + if (UNLIKELY(trx == NULL)) { + LOG(ERROR) << "Trx close, trx is null."; + return NULL; + } + + if (UNLIKELY(UbrTrxFreeShm(trx) != UBRING_OK)) { + LOG(ERROR) << "Trx close, wait for local shm " << trx->localShm.name << " free fail."; + } + + if (UNLIKELY(UBRingManager::ReleaseUbrTrxFromMgr(trx) != UBRING_OK)) { + LOG(ERROR) << "Trx close, release shm " << trx->localShm.name << " trx failed."; + } + return NULL; +} + +int UBRing::UbrTrxSend(const void *buf, uint32_t bufLen) +{ + if (UNLIKELY(CheckTrxSendPreCheck(_trx) != UBRING_OK)) { + return UBRING_ERR; + } + // 1.2 compute memory chunk number needed for the message + auto *dataStatusMsg = (UbrDataStatusQMsg *)_trx->ubrTx.localDataStatusQ.addr; + auto *dataMsg = (UbrMsgFormat *)_trx->ubrTx.remoteDataQ.addr; + uint32_t cap = _trx->ubrTx.capacity; + uint32_t tail = dataStatusMsg->tail; + uint32_t remainChunkNum = + (_trx->ubrTx.writePos > tail) ? (tail + cap - _trx->ubrTx.writePos) : (tail - _trx->ubrTx.writePos); + uint32_t needMsgChunkNum = CalcUbrMsgChunkCnt(bufLen); + if (needMsgChunkNum >= cap) { + LOG(ERROR) << "Ubr send failed, payload length=" << bufLen + << " needs " << needMsgChunkNum << " chunks, capacity=" << cap << "."; + errno = EMSGSIZE; + return UBRING_ERR; + } + if (remainChunkNum < needMsgChunkNum) { + return UBRING_RETRY; + } + UbrMsgFormat *msg = &(_trx->ubrTx.localMsgSpace); + uint32_t totalSendLen = 0; + uint32_t remainBufLen = bufLen; + uint8_t isLastPkt = 0; + _trx->ubrTx.outIoId++; + ((UbrEventQMsg *)_trx->ubrTx.remoteRxEventQ.addr)->ioId = _trx->ubrTx.outIoId; + while (remainBufLen > 0) { + isLastPkt = (uint8_t)(remainBufLen <= UBR_MSG_PAYLOAD_LEN); + msg->header[UBR_MSG_FLAG_INDEX] = isLastPkt ? UBR_MSG_CHUNK_EOF : UBR_MSG_CHUNK_EXIST; + msg->header[UBR_MSG_LEN_INDEX] = isLastPkt ? (uint8_t)remainBufLen : UBR_MSG_PAYLOAD_LEN; + msg->header[UBR_MSG_CUR_INDEX] = 0; + memcpy(msg->payload.inner, (const uint8_t *)buf + totalSendLen, msg->header[UBR_MSG_LEN_INDEX]); + Copy64Byte((int8_t *)&dataMsg[_trx->ubrTx.writePos], (int8_t *)msg); + _trx->ubrTx.writePos = (_trx->ubrTx.writePos + 1) % cap; + totalSendLen += msg->header[UBR_MSG_LEN_INDEX]; + remainBufLen -= msg->header[UBR_MSG_LEN_INDEX]; + } + return (int)totalSendLen; +} + +int UBRing::UbrTrxRecv(void *buf, uint32_t bufLen) +{ + RETURN_CODE rc = UBRING_OK; + if (UNLIKELY((rc = CheckTrxRecvParam(_trx, buf, bufLen)) != UBRING_OK)) { + return (rc == UBR_NOT_CONNECTED) ? 0 : rc; + } + UbrMsgFormat *dataMsg = (UbrMsgFormat *)_trx->ubrRx.localDataQ.addr; + uint32_t readPosEnd = _trx->ubrRx.readPos; + uint8_t flag = dataMsg[readPosEnd].header[UBR_MSG_FLAG_INDEX]; + if (flag == UBR_MSG_CHUNK_NONE) { + return UBRING_RETRY; + } + return UbrTrxRecvBlockMode(static_cast(buf), bufLen); +} + +int UBRing::UbrTrxRecvBlockMode(uint8_t *dest, uint32_t bufLen) +{ + RETURN_CODE rc = UBRING_OK; + if (UNLIKELY((rc = CheckTrxRecvParam(_trx, dest, bufLen)) != UBRING_OK)) { + return (rc == UBR_NOT_CONNECTED) ? 0 : rc; + } + + int32_t totalCopied = 0; + int32_t remainingLen = (int32_t)bufLen; + bool notEofEncountered = true; + + UbrRx *ubrRx = &_trx->ubrRx; + UbrMsgFormat *dataMsg = (UbrMsgFormat *)ubrRx->localDataQ.addr; + bool needUpdateEpollEofPos = ubrRx->readPos == ubrRx->epEofPos; + + while (notEofEncountered && remainingLen > 0) { + if (UNLIKELY(CheckTrxRecvPreCheck(_trx) != UBRING_OK)) { + return UBRING_ERR; + } + UbrMsgFormat *currentChunk = &dataMsg[ubrRx->readPos]; + uint8_t flag = currentChunk->header[UBR_MSG_FLAG_INDEX]; + if (flag == UBR_MSG_CHUNK_NONE) { + if (totalCopied > 0) { + break; + } + errno = EAGAIN; + return -1; + } + if (flag == UBR_MSG_CHUNK_EOF) { + notEofEncountered = false; + } + uint8_t chunkMsgLen = currentChunk->header[UBR_MSG_LEN_INDEX]; + uint8_t curIndex = currentChunk->header[UBR_MSG_CUR_INDEX]; + uint8_t availableData = chunkMsgLen - curIndex; + + int32_t copyLen = (remainingLen < availableData) ? remainingLen : availableData; + memcpy(dest + totalCopied, dataMsg[ubrRx->readPos].payload.inner + curIndex, (size_t)copyLen); + totalCopied += copyLen; + remainingLen -= copyLen; + currentChunk->header[UBR_MSG_CUR_INDEX] += (uint8_t)copyLen; + if (LIKELY(currentChunk->header[UBR_MSG_CUR_INDEX] == chunkMsgLen)) { + currentChunk->header[UBR_MSG_FLAG_INDEX] = UBR_MSG_CHUNK_NONE; + UpdateDataQTail(_trx); + ubrRx->readPos = (ubrRx->readPos + 1) % ubrRx->capacity; + } + } + if (needUpdateEpollEofPos) { + ubrRx->epEofPos = ubrRx->readPos; + } + return (int)totalCopied; +} + +ssize_t UBRing::UbrTrxWritev(const struct iovec *iov, int iovcnt) +{ + if (UNLIKELY(CheckTrxSendPreCheck(_trx) != UBRING_OK)) { + return UBRING_ERR; + } + + size_t bufLen = 0; + for (int i = 0; i < iovcnt; i++) { + bufLen += iov[i].iov_len; + } + RETURN_CODE rc = WritevHasEnoughSpace(bufLen); + if (rc != UBRING_OK) { + return rc; + } + + UbrMsgFormat *dataMsg = (UbrMsgFormat *)_trx->ubrTx.remoteDataQ.addr; + UbrMsgFormat *msg = &(_trx->ubrTx.localMsgSpace); + int curIov = 0; + size_t curIovPos = 0; + ssize_t totalSendLen = 0; + size_t pktRemainN = 0; + size_t iovRemain = 0; + size_t fulled = 0; + uint8_t isLastPkt = 0; + uint8_t curPktLen = 0; + _trx->ubrTx.outIoId++; + ((UbrEventQMsg *)_trx->ubrTx.remoteRxEventQ.addr)->ioId = _trx->ubrTx.outIoId; + while (bufLen > 0) { + isLastPkt = (uint8_t)(bufLen <= UBR_MSG_PAYLOAD_LEN); + curPktLen = isLastPkt ? (uint8_t)bufLen : UBR_MSG_PAYLOAD_LEN; + msg->header[UBR_MSG_FLAG_INDEX] = isLastPkt ? UBR_MSG_CHUNK_EOF : UBR_MSG_CHUNK_EXIST; + msg->header[UBR_MSG_LEN_INDEX] = curPktLen; + msg->header[UBR_MSG_CUR_INDEX] = 0; + pktRemainN = curPktLen; + while (curIov < iovcnt && pktRemainN > 0) { + iovRemain = (iov[curIov].iov_len - curIovPos); + fulled = iovRemain > pktRemainN ? pktRemainN : iovRemain; + memcpy((msg->payload.inner + (curPktLen - (uint8_t)pktRemainN)), + (uint8_t *)(iov[curIov].iov_base) + curIovPos, + fulled); + pktRemainN -= fulled; + curIovPos += fulled; + if (curIovPos == iov[curIov].iov_len) { + curIov++; + curIovPos = 0; + } + } + + Copy64Byte((int8_t *)&dataMsg[_trx->ubrTx.writePos], (int8_t *)msg); + _trx->ubrTx.writePos = (_trx->ubrTx.writePos + 1) % _trx->ubrTx.capacity; + totalSendLen += (ssize_t)curPktLen; + bufLen -= (int)curPktLen; + } + return totalSendLen; +} + +ssize_t UBRing::UbrTrxReadv(const struct iovec *iov, int iovcnt) +{ + RETURN_CODE rc = UBRING_OK; + if (UNLIKELY((rc = CheckTrxRecvParam(_trx, iov, (uint32_t)iovcnt)) != UBRING_OK)) { + return (rc == UBR_NOT_CONNECTED) ? 0 : rc; + } + UbrMsgFormat *dataMsg = (UbrMsgFormat *)_trx->ubrRx.localDataQ.addr; + uint32_t readPosEnd = _trx->ubrRx.readPos; + uint8_t flag = dataMsg[readPosEnd].header[UBR_MSG_FLAG_INDEX]; + if (flag == UBR_MSG_CHUNK_NONE) { + errno = EAGAIN; + return -1; + } + ssize_t nr = UbrTrxReadvBlockMode(iov, iovcnt); + if (UNLIKELY(nr == -1)) { + LOG(ERROR) << "Non-blocking readv msg in failed, connection has been closed."; + errno = EPIPE; + return -1; + } + return nr; +} + +ssize_t UBRing::UbrTrxReadvBlockMode(const struct iovec *iov, int iovcnt) +{ + RETURN_CODE rc = UBRING_OK; + if (UNLIKELY((rc = CheckTrxRecvParam(_trx, iov, (uint32_t)iovcnt)) != UBRING_OK)) { + return (rc == UBR_NOT_CONNECTED) ? 0 : rc; + } + + size_t remainBufLen = 0; + for (int i = 0; i < iovcnt; i++) { + remainBufLen += iov[i].iov_len; + } + + bool needUpdateEpollEofPos = _trx->ubrRx.readPos == _trx->ubrRx.epEofPos; + ssize_t totalRecvLen = StartReadv(_trx, iov, iovcnt, remainBufLen); + + if (needUpdateEpollEofPos) { + _trx->ubrRx.epEofPos = _trx->ubrRx.readPos; + } + return totalRecvLen; +} + +RETURN_CODE UBRing::IsUbrTrxReadable(uint32_t epEvent) +{ + if (UNLIKELY(_trx == NULL)) { + LOG(ERROR) << "The trx to be checked is NULL."; + return UBRING_ERR; + } + if (UNLIKELY(_trx->localShm.addr == NULL)) { + LOG(ERROR) << "The trx localShm to be checked is NULL."; + return UBRING_ERR; + } + if (UNLIKELY(_trx->ubrTx.trxState != UBR_STATE_CONNECTED)) { + // TODO mwj 这几块的日志是否需要删除 + // LOG(ERROR) << "The trx is not connected state."; + return UBRING_ERR; + } + + uint64_t ioId = ((UbrEventQMsg *)_trx->ubrRx.localRxEventQ.addr)->ioId; + if ((epEvent & EPOLLET) && ioId == _trx->ubrRx.inIoId) { + return MPA_MUXER_NOT_READY; + } + + uint32_t readPosEnd = _trx->ubrRx.readPos; + if (epEvent & EPOLLET) { + readPosEnd = _trx->ubrRx.epEofPos; + } + + UbrMsgFormat *dataMsg = (UbrMsgFormat *)_trx->ubrRx.localDataQ.addr; + uint8_t flag = dataMsg[readPosEnd].header[UBR_MSG_FLAG_INDEX]; + if (flag == UBR_MSG_CHUNK_NONE) { + return MPA_MUXER_NOT_READY; + } + if (epEvent & EPOLLET) { + _trx->ubrRx.inIoId = ioId; + } + return UBRING_OK; +} + +RETURN_CODE UBRing::IsUbrTrxWriteable(uint32_t epEvent) +{ + if (UNLIKELY(_trx == NULL)) { + LOG(ERROR) << "The trx to be checked is NULL."; + return UBRING_ERR; + } + if (UNLIKELY(_trx->localShm.addr == NULL)) { + LOG(ERROR) << "The trx localShm to be checked is NULL."; + return UBRING_ERR; + } + if (UNLIKELY((UbrEventQMsg *)_trx->ubrTx.localTxEventQ.addr == NULL)) { + LOG(ERROR) << "The trx localTxEventQ addr is NULL."; + return UBRING_ERR; + } + if (UNLIKELY((UbrEventQMsg *)_trx->ubrTx.localDataStatusQ.addr == NULL)) { + LOG(ERROR) << "The trx localDataStatusQ addr is NULL."; + return UBRING_ERR; + } + + if (UNLIKELY(_trx->ubrTx.trxState != UBR_STATE_CONNECTED)) { + LOG(ERROR) << "The trx is not connected state."; + return UBRING_ERR; + } + + UbrDataStatusQMsg *dataStatusMsg = (UbrDataStatusQMsg *)_trx->ubrTx.localDataStatusQ.addr; + uint32_t cap = _trx->ubrTx.capacity; + uint32_t tail = dataStatusMsg->tail; + uint32_t remainChunkNum = + (_trx->ubrTx.writePos > tail) ? (tail + cap - _trx->ubrTx.writePos) : (tail - _trx->ubrTx.writePos); + if (remainChunkNum == 0) { + _trx->ubrTx.epLastCap = remainChunkNum; + return MPA_MUXER_NOT_READY; + } + + if ((epEvent & EPOLLET) && (_trx->ubrTx.epLastCap >= remainChunkNum)) { + _trx->ubrTx.epLastCap = remainChunkNum; + return MPA_MUXER_NOT_READY; + } + _trx->ubrTx.epLastCap = remainChunkNum; + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrSetTimeout(UbrTaskStep taskType, int timeout) +{ + if (taskType >= UBR_TASK_STEP_NUM || timeout < 0) { + LOG(ERROR) << "Set timeout failed, invalid task type."; + return UBRING_ERR; + } + + g_sleepTime[taskType] = (uint32_t)timeout; + LOG(INFO) << "Set timeout success, taskType=" << taskType << ", timeout=" << timeout; + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrTrxFreeShm(UbrTrx *trx) +{ + if (trx == NULL) { + LOG(ERROR) << "Trx is NULL."; + return UBRING_ERR; + } + + RETURN_CODE rc = UBRING_OK; + rc = ShmMunmap(&trx->localShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Trx close, local unmap " << trx->localShm.name << " shm fail."; + return UBRING_ERR; + } + + rc = ShmFree(&trx->localShm); + if (UNLIKELY(rc != UBRING_OK)) { + if (rc != SHM_ERR_RESOURCE_ATTACHED && rc != SHM_ERR_NOT_FOUND) { + LOG(ERROR) << "Wait for " << trx->localShm.name << " local shm free fail."; + return UBRING_ERR; + } + LOG(INFO) << "Local shm " << trx->localShm.name << " already freed, continue to free remote shm."; + } + + RETURN_CODE remoteRc = UBRING_OK; + if (trx->remoteShm.addr != NULL) { + remoteRc = ShmRemoteFree(&trx->remoteShm); + } + if (remoteRc != UBRING_OK) { + LOG(WARNING) << "Free remote shm " << trx->remoteShm.name << " failed, rc=" << remoteRc; + } + + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrUnlinkLocalShm() +{ + if (UNLIKELY(_trx == NULL)) { + return UBRING_ERR; + } + RETURN_CODE rc = ShmFree(&_trx->localShm); + if (rc != UBRING_OK && rc != SHM_ERR_NOT_FOUND && rc != SHM_ERR_RESOURCE_ATTACHED) { + LOG(WARNING) << "Unlink local shm " << _trx->localShm.name << " failed, rc=" << rc; + return rc; + } + return UBRING_OK; +} + +void UBRing::PreWriteAddr(uint8_t *addr, size_t len) +{ + if (addr == NULL) { + return; + } + + size_t i = 0; + while (i < len) { + if (i + sizeof(uint64_t) <= len) { + *(uint64_t *)(addr + i) = (uint64_t)0; + i += sizeof(uint64_t); + } else if (i + sizeof(uint32_t) < len) { + *(uint32_t *)(addr + i) = (uint32_t)0; + i += sizeof(uint32_t); + } else if (i + sizeof(uint16_t) < len) { + *(uint16_t *)(addr + i) = (uint16_t)0; + i += sizeof(uint16_t); + } else { + *(addr + i) = (uint8_t)0; + i += sizeof(uint8_t); + } + } +} + +void UBRing::PrewriteUbrTx(UbrTx *tx) +{ + if (tx == NULL) { + return; + } + PreWriteAddr(tx->remoteDataQ.addr, tx->capacity * sizeof(UbrMsgFormat)); +} + +void UBRing::PrewriteUbrRx(UbrRx *rx) +{ + if (rx == NULL) { + return; + } + PreWriteAddr(rx->localDataQ.addr, rx->capacity * sizeof(UbrMsgFormat)); +} + +RETURN_CODE UBRing::UbrTrxMapLocalShm(SHM *localShm) +{ + if (UNLIKELY(_trx == NULL)) { + LOG(ERROR) << "Trx map Shared memory failed, trx is null."; + return UBRING_ERR; + } + if (UNLIKELY(localShm == NULL || localShm->addr == NULL)) { + LOG(ERROR) << "Trx map Shared memory failed, localShm is null or addr is NULL."; + return UBRING_ERR; + } + _trx->localShm = *localShm; + _trx->ubrTx.localTxEventQ.addr = localShm->addr + TX_EVENTQ_ADDR_OFFSET; + _trx->ubrTx.localTxEventQ.len = UBR_EVENTQ_LEN; + _trx->ubrRx.localRxEventQ.addr = localShm->addr + RX_EVENTQ_ADDR_OFFSET; + _trx->ubrRx.localRxEventQ.len = UBR_EVENTQ_LEN; + _trx->ubrTx.localDataStatusQ.addr = localShm->addr + DATASTATUSQ_ADDR_OFFSET; + _trx->ubrTx.localDataStatusQ.len = UBR_DATASTATUSQ_LEN; + size_t addrAlignedOffset = Aligned64Offset(localShm->addr + DATAQ_ADDR_OFFSET); + _trx->ubrRx.localDataQ.addr = localShm->addr + DATAQ_ADDR_OFFSET + addrAlignedOffset; + _trx->ubrRx.localDataQ.len = localShm->len - DATAQ_ADDR_OFFSET - addrAlignedOffset; + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrTrxMapRemoteShm(SHM *remoteShm) +{ + if (UNLIKELY(_trx == NULL)) { + LOG(ERROR) << "Trx map Shared memory failed, trx is null."; + return UBRING_ERR; + } + if (UNLIKELY(remoteShm == NULL || remoteShm->addr == NULL)) { + LOG(ERROR) << "Trx map Shared memory failed, remoteShm is null or addr is NULL."; + return UBRING_ERR; + } + _trx->remoteShm = *remoteShm; + _trx->ubrRx.remoteTxEventQ.addr = remoteShm->addr + TX_EVENTQ_ADDR_OFFSET; + _trx->ubrRx.remoteTxEventQ.len = UBR_EVENTQ_LEN; + _trx->ubrTx.remoteRxEventQ.addr = remoteShm->addr + RX_EVENTQ_ADDR_OFFSET; + _trx->ubrTx.remoteRxEventQ.len = UBR_EVENTQ_LEN; + _trx->ubrRx.remoteDataStatusQ.addr = remoteShm->addr + DATASTATUSQ_ADDR_OFFSET; + _trx->ubrRx.remoteDataStatusQ.len = UBR_DATASTATUSQ_LEN; + size_t addrAlignedOffset = Aligned64Offset(remoteShm->addr + DATAQ_ADDR_OFFSET); + _trx->ubrTx.remoteDataQ.addr = remoteShm->addr + DATAQ_ADDR_OFFSET + addrAlignedOffset; + _trx->ubrTx.remoteDataQ.len = remoteShm->len - DATAQ_ADDR_OFFSET - addrAlignedOffset; + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrServerTrxInit(SHM *localShm, SHM *remoteShm) +{ + RETURN_CODE rc = UbrTrxMapShm(localShm, remoteShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) <<"Trx map shared memory failed."; + return rc; + } + + uint32_t localDataMsgCap = (uint32_t)(_trx->ubrRx.localDataQ.len / UBR_MSG_LEN); + uint32_t remoteDataMsgCap = (uint32_t)(_trx->ubrTx.remoteDataQ.len / UBR_MSG_LEN); + _trx->ubrRx.capacity = localDataMsgCap; + _trx->ubrTx.capacity = remoteDataMsgCap; + rc = UBRingManager::GetUbrDealMsgMaxCnt(_trx->ubrRx.capacity, &_trx->ubrRx.dealMsgMaxCnt); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Get ubring deal msg max cnt."; + return rc; + } + PrewriteUbrRx(&_trx->ubrRx); + PrewriteUbrTx(&_trx->ubrTx); + + ((UbrDataStatusQMsg *)(_trx->ubrTx.localDataStatusQ.addr))->tail = remoteDataMsgCap - 1; + ((UbrDataStatusQMsg *)(_trx->ubrRx.remoteDataStatusQ.addr))->tail = localDataMsgCap - 1; + + if (UNLIKELY(UbrAddTimer() != UBRING_OK)) { + LOG(ERROR) << "Ubr add timer failed, localName=" << localShm->name; + return UBRING_ERR; + } + + ((UbrDataStatusQMsg *)(_trx->ubrTx.localDataStatusQ.addr))->timeout = FLAGS_ub_connect_timeout; + ((UbrDataStatusQMsg *)(_trx->ubrRx.remoteDataStatusQ.addr))->timeout = FLAGS_ub_connect_timeout; + + ((UbrEventQMsg *)_trx->ubrTx.remoteRxEventQ.addr)->flag = UBR_STATE_CONNECTED; + ((UbrEventQMsg *)_trx->ubrRx.localRxEventQ.addr)->flag = UBR_STATE_CONNECTED; + _trx->ubrTx.trxState = UBR_STATE_CONNECTED; + _trx->ubrRx.trxState = UBR_STATE_CONNECTED; + return UBRING_OK; +} + +int UBRing::UbrAllocateServerShm(SHM* remote_trx_shm, SHM* local_trx_shm) { + UbrSetSleepTask(UBR_TASK_ACCEPT_MAP_FRONT); + if (UNLIKELY((ShmRemoteMalloc(remote_trx_shm)) != UBRING_OK)) { + LOG(ERROR) << "Trx apply remote shared memory failed."; + return -1; + } + + if (UNLIKELY((ShmLocalCalloc(local_trx_shm)) != UBRING_OK)) { + LOG(ERROR) << "Trx apply local shared memory failed."; + ShmRemoteFree(remote_trx_shm); + return -1; + } + + UbrTrx **ubrTrxPtr = &_trx; + if (UNLIKELY((UBRingManager::AcquireUbrTrxFromMgr(ubrTrxPtr)) != UBRING_OK)) { + LOG(ERROR) << "Acquire ubrtrx failed."; + ShmRemoteFree(remote_trx_shm); + ShmLocalFree(local_trx_shm); + return -1; + } + _trx->type = TCP_TRX; + if (UNLIKELY((UbrServerTrxInit(local_trx_shm, remote_trx_shm)) != UBRING_OK)) { + LOG(ERROR) << "Server trx init failed."; + UbrTrxFreeShm(_trx); + UBRingManager::ReleaseUbrTrxFromMgr(_trx); + _trx = nullptr; + return -1; + } + return 0; +} + +int UBRing::UbrAllocateLocalShm(SHM *local_trx_shm, const char *shm_name) +{ + if (UNLIKELY((UBRingManager::AcquireUbrTrxFromMgr(&(_trx))) != UBRING_OK)) { + LOG(ERROR) << "Acquire ubrtrx failed, localName=" << shm_name; + return -1; + } + + _trx->type = TCP_TRX; + if (UNLIKELY((ApplyAndMapLocalShm(local_trx_shm, shm_name)) != UBRING_OK)) { + LOG(ERROR) << "Trx apply or map local shared memory failed, localName=" << shm_name; + _trx = nullptr; + return -1; + } + return 0; +} + +int UBRing::UbrMapRemoteShm(SHM *local_trx_shm, const char *local_name) +{ + RETURN_CODE rc = UbrMapRemoteShmAddTimer(local_trx_shm, local_name); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Connect Trx failed, local shm name=" << local_trx_shm->name; + return -1; + } + PrewriteUbrRx(&_trx->ubrRx); + PrewriteUbrTx(&_trx->ubrTx); + ((UbrEventQMsg *)_trx->ubrRx.remoteTxEventQ.addr)->flag = UBR_STATE_CONNECTED; + ((UbrEventQMsg *)_trx->ubrRx.localRxEventQ.addr)->flag = UBR_STATE_CONNECTED; + _trx->ubrTx.trxState = UBR_STATE_CONNECTED; + _trx->ubrRx.trxState = UBR_STATE_CONNECTED; + return 0; +} + +RETURN_CODE UBRing::UbrMapRemoteShmAddTimer(SHM *localTrxShm, const char *localName) +{ + uint64_t startTime = GetCurNanoSeconds(); + + size_t remoteServerLen = UBR_MSG_LEN * (((UbrDataStatusQMsg *)(_trx->ubrTx.localDataStatusQ.addr))->tail + 1) + + UBR_MSG_LEN * ((DATAQ_ADDR_OFFSET / UBR_MSG_LEN) + 1); + SHM remoteTrxShm = {NULL, remoteServerLen, 0, {0}, localTrxShm->fd}; + int result = snprintf(remoteTrxShm.name, + SHM_MAX_NAME_BUFF_LEN, + "%s_%s_%s", + SHM_NAME_PREFIX, + localName, + SERVER_SHM_NAME_SUFFIX); + if (UNLIKELY(result < 0)) { + LOG(ERROR) << "Copy server shared memory name failed, localName=%s, ret=%d.", localName, result; + return UBRING_ERR; + } + UbrSetSleepTask(UBR_TASK_CONNECT_MAP_FRONT); + RETURN_CODE rc = ApplyAndMapRemoteShm(&remoteTrxShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Connect Trx map shared memory failed, remote shm=" << remoteTrxShm.name; + return rc; + } + + if (UNLIKELY(UbrAddTimer() != UBRING_OK)) { + LOG(ERROR) << "Ubr add timer failed, localName=" << localName; + ShmRemoteFree(&_trx->remoteShm); + return UBRING_ERR; + } + + UbrSetSleepTask(UBR_TASK_CONNECT_MAP_AFTER); + + uint32_t timeout = ((UbrDataStatusQMsg *)(_trx->ubrTx.localDataStatusQ.addr))->timeout; + if (HasTimedOut(startTime, timeout) != UBRING_OK) { + LOG(ERROR) << "Local shm " << localTrxShm->name << " wait for connect remote map timeout."; + DeleteTimerSafe((uint32_t)_trx->hbTimerFd); + DeleteTimerSafe((uint32_t)_trx->timerFd); + ShmRemoteFree(&_trx->remoteShm); + return UBRING_ERR_TIMEOUT; + } + + return UBRING_OK; +} + +RETURN_CODE UBRing::ApplyAndMapLocalShm(SHM *localTrxShm, const char *localName) +{ + if (UNLIKELY(_trx == NULL || localTrxShm == NULL)) { + LOG(ERROR) << "Trx map Shared memory failed, trx is null, localName=" << localName; + return UBRING_ERR; + } + int result = snprintf(localTrxShm->name, + SHM_MAX_NAME_BUFF_LEN, + "%s_%s_%s", + SHM_NAME_PREFIX, + localName, + CLIENT_SHM_NAME_SUFFIX); + if (UNLIKELY(result < 0)) { + LOG(ERROR) << "Copy client localTrx shared memory name failed, localName=" << localName << ", ret=" << result; + return UBRING_ERR; + } + + RETURN_CODE rc = ShmLocalCalloc(localTrxShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Trx apply local shared memory failed, local shm name=" << localTrxShm->name << ", rc=" << rc; + if (rc == SHM_ERR_EXIST || rc == SHM_ERR_NOT_FOUND) { + rc = UBR_ERR_ADDR_IN_USE; + } + UBRingManager::ReleaseUbrTrxFromMgr(_trx); + return rc; + } + rc = UbrTrxMapLocalShm(localTrxShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Trx map local shared memory failed, local shm name=" << localTrxShm->name; + ShmLocalFree(localTrxShm); + UBRingManager::ReleaseUbrTrxFromMgr(_trx); + return rc; + } + ((UbrDataStatusQMsg *)_trx->ubrTx.localDataStatusQ.addr)->timeout = FLAGS_ub_connect_timeout; + _trx->ubrRx.capacity = (uint32_t)(_trx->ubrRx.localDataQ.len / UBR_MSG_LEN); + rc = UBRingManager::GetUbrDealMsgMaxCnt(_trx->ubrRx.capacity, &_trx->ubrRx.dealMsgMaxCnt); + if (rc != UBRING_OK) { + LOG(ERROR) << "Get ubring deal msg max cnt, local shm name=" << localTrxShm->name; + ShmLocalFree(localTrxShm); + UBRingManager::ReleaseUbrTrxFromMgr(_trx); + return rc; + } + return UBRING_OK; +} + +RETURN_CODE UBRing::ApplyAndMapRemoteShm(SHM *remoteTrxShm) +{ + RETURN_CODE rc = ShmRemoteMalloc(remoteTrxShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Trx apply remote shared memory failed."; + return rc; + } + rc = UbrTrxMapRemoteShm(remoteTrxShm); + if (UNLIKELY(rc != UBRING_OK)) { + LOG(ERROR) << "Trx map shared memory failed."; + ShmRemoteFree(remoteTrxShm); + return rc; + } + _trx->ubrTx.capacity = (uint32_t)(_trx->ubrTx.remoteDataQ.len / UBR_MSG_LEN); + return UBRING_OK; +} + +RETURN_CODE UBRing::WritevHasEnoughSpace(size_t bufLen) +{ + UbrDataStatusQMsg *dataStatusMsg = (UbrDataStatusQMsg *)_trx->ubrTx.localDataStatusQ.addr; + uint32_t cap = _trx->ubrTx.capacity; + uint32_t tail = dataStatusMsg->tail; + uint32_t remainChunkNum = + (_trx->ubrTx.writePos > tail) ? (tail + cap - _trx->ubrTx.writePos) : (tail - _trx->ubrTx.writePos); + uint32_t needMsgChunkNum = CalcUbrMsgChunkCnt((uint32_t)bufLen); + if (needMsgChunkNum >= cap) { + LOG(ERROR) << "Ubr write failed, payload length=" << bufLen + << " needs " << needMsgChunkNum << " chunks, capacity=" << cap << "."; + errno = EMSGSIZE; + return UBRING_ERR; + } + if (remainChunkNum < needMsgChunkNum) { + return UBRING_RETRY; + } + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrClearResourceCheck(UbrTrx *trx, uint64_t startTime, UbrCloseType closeType) +{ + if (UNLIKELY(trx == NULL)) { + LOG(ERROR) << "Trx close failed, trx is null."; + return UBRING_ERR; + } + + UbrEventQMsg* localTxEventQ = (UbrEventQMsg *)trx->ubrTx.localTxEventQ.addr; + if (localTxEventQ->flag == UBR_STATE_CONNECTED) { + localTxEventQ->flag = UBR_STATE_CLOSING; + } + + if (closeType == UBR_SEND_CLOSE) { + DeleteTimerSafe((uint32_t)trx->timerFd); + } else { + DeleteTimer((uint32_t)trx->timerFd); + } + DeleteTimerSafe((uint32_t)trx->hbTimerFd); + + if (localTxEventQ->flag == UBR_STATE_CLOSING) { + localTxEventQ->flag = UBR_STATE_CLOSED; + trx->ubrTx.trxState = UBR_STATE_CLOSED; + } + + return UBRING_OK; +} + +RETURN_CODE UBRing::ClearTrxResource(UbrTrx *trx, uint64_t startTime, UbrCloseType closeType, int op) +{ + RETURN_CODE rc = UbrClearResourceCheck(trx, startTime, closeType); + if (rc != UBRING_OK) { + return rc; + } + + rc = UbrAddAsynClearTimer(trx); + if (rc != UBRING_OK) { + LOG(ERROR) << "Trx close, add " << trx->localShm.name << " close clear timer failed."; + return UBRING_ERR; + } + + return UBRING_OK; +} + +RETURN_CODE UBRing::UbrTrxCloseCheck(UbrTrx *trx) +{ + if (UNLIKELY(trx == NULL)) { + LOG(ERROR) << "Trx close failed, client trx is null."; + return UBRING_ERR; + } + int expected = MAX_CLOSE_COUNT; + if (!ATOMIC_COMPARE_EXCHANGE_STRONG(trx->closeCnt, expected, MAX_CLOSE_COUNT - 1)) { + LOG(INFO) << "Trx close skipped, already closing, trx local name=" << trx->localShm.name; + return UBRING_REENTRY; + } + + if (UNLIKELY(trx->ubrTx.localTxEventQ.addr == nullptr)) { + LOG(ERROR) << "Trx close failed, localTxEventQ addr is NULL, trx local name=" << trx->localShm.name; + return UBRING_ERR; + } + return UBRING_OK; +} + +ssize_t UBRing::StartReadv(UbrTrx *trx, const struct iovec *iov, int iovcnt, size_t remainBufLen) +{ + ssize_t totalRecvLen = 0; + int iovIndex = 0; + size_t iovPos = 0; + UbrMsgFormat *dataMsg = (UbrMsgFormat *)trx->ubrRx.localDataQ.addr; + bool notEofEncountered = true; + while (notEofEncountered && remainBufLen > 0) { + if (UNLIKELY(CheckTrxRecvPreCheck(trx) != UBRING_OK)) { + return UBRING_ERR; + } + UbrMsgFormat *currentChunk = &dataMsg[trx->ubrRx.readPos]; + uint8_t flag = currentChunk->header[UBR_MSG_FLAG_INDEX]; + if (flag == UBR_MSG_CHUNK_NONE) { + if (totalRecvLen > 0) { + break; + } + errno = EAGAIN; + return -1; + } + if (flag == UBR_MSG_CHUNK_EOF) { + notEofEncountered = false; + } + uint8_t chunkMsgLen = currentChunk->header[UBR_MSG_LEN_INDEX]; + uint8_t curIndex = currentChunk->header[UBR_MSG_CUR_INDEX]; + uint8_t recvLen = + remainBufLen > (size_t)(chunkMsgLen - curIndex) ? (chunkMsgLen - curIndex) : (uint8_t)remainBufLen; + while (iovIndex < iovcnt && recvLen > 0) { + size_t copyLen = + recvLen > (iov[iovIndex].iov_len - iovPos) ? iov[iovIndex].iov_len - iovPos : (size_t)recvLen; + memcpy((uint8_t *)iov[iovIndex].iov_base + iovPos, currentChunk->payload.inner + curIndex, copyLen); + recvLen -= (uint8_t)copyLen; + iovPos += copyLen; + curIndex += (uint8_t)copyLen; + if (iovPos == iov[iovIndex].iov_len) { + iovIndex++; + iovPos = 0; + } + remainBufLen -= copyLen; + totalRecvLen += (ssize_t)copyLen; + } + currentChunk->header[UBR_MSG_CUR_INDEX] = curIndex; + if (currentChunk->header[UBR_MSG_CUR_INDEX] == chunkMsgLen) { + currentChunk->header[UBR_MSG_FLAG_INDEX] = UBR_MSG_CHUNK_NONE; + UpdateDataQTail(trx); + trx->ubrRx.readPos = (trx->ubrRx.readPos + 1) % trx->ubrRx.capacity; + } + } + return totalRecvLen; +} +} // namespace ubring +} // namespace brpc diff --git a/src/brpc/urma/urma_handshake.cpp b/src/brpc/urma/urma_handshake.cpp index 61fedc6eb1..115a02989f 100644 --- a/src/brpc/urma/urma_handshake.cpp +++ b/src/brpc/urma/urma_handshake.cpp @@ -68,9 +68,6 @@ DEFINE_int32(urma_client_handshake_version, 2, namespace v2_wire { -constexpr size_t HELLO_BODY_LEN = 82; -constexpr size_t HELLO_PACKET_LEN = MAGIC_STR_LEN + HELLO_BODY_LEN; // 86 - void HelloMessage::Serialize(void* buf) const { uint8_t* p = static_cast(buf); *(uint16_t*)p = butil::HostToNet16(msg_len); p += 2; diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 540c71ad8b..042e597837 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -76,7 +76,7 @@ DEFINE_bool(urma_recv_zerocopy, true, DEFINE_int32(urma_zerocopy_min_size, 512, "Receives smaller than this many bytes are copied (not zero-copy)"); -DEFINE_string(urma_device, "", +DEFINE_string(urma_device, "bonding_dev_0", "The name of the URMA device to use. Empty means the first one."); DEFINE_int32(urma_max_sge, 0, "Max SGEs per WR. 0 means the device maximum."); @@ -524,7 +524,7 @@ uint32_t RegisterMemoryForUrma(void* buf, size_t len) { urma_unregister_seg(tseg); return 0; } - return reinterpret_cast(reinterpret_cast(tseg)); + return static_cast(reinterpret_cast(tseg)); } void DeregisterMemoryForUrma(void* buf) { @@ -542,7 +542,7 @@ uint32_t GetSegHandle(void* buf) { auto* base = static_cast(g_pool_base); auto* p = static_cast(buf); if (p >= base && p < base + g_pool_size) { - return reinterpret_cast(reinterpret_cast(g_pool_seg)); + return static_cast(reinterpret_cast(g_pool_seg)); } } // User-registered buffer? @@ -553,7 +553,7 @@ uint32_t GetSegHandle(void* buf) { auto* b = static_cast(it->second.base); auto* p = static_cast(buf); if (p >= b && p < b + it->second.len) { - return reinterpret_cast( + return static_cast( reinterpret_cast(it->second.tseg)); } } diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index adc3399781..98e736212b 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -32,6 +32,8 @@ #include "urma/urma_types.h" namespace brpc { +DECLARE_bool(usercode_in_coroutine); +DECLARE_bool(usercode_in_pthread); namespace urma { // Initialize the URMA environment. From f175292a2969854696929c59b45214c3ee965d70 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 10:47:02 +0800 Subject: [PATCH 16/45] =?UTF-8?q?=E4=BF=AE=E5=A4=8Durma=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BUILD.bazel | 11 +- Makefile | 6 + bazel/config/BUILD.bazel | 8 +- config_brpc.sh | 23 +- docs/cn/urma.md | 2 +- src/brpc/channel.cpp | 2 + src/brpc/channel.h | 4 +- src/brpc/input_messenger.cpp | 3 +- src/brpc/urma/mock_urma.cpp | 272 ++++++++----- src/brpc/urma/urma_endpoint.cpp | 643 +++++++++++++++++++++++-------- src/brpc/urma/urma_endpoint.h | 12 +- src/brpc/urma/urma_handshake.cpp | 16 +- src/brpc/urma/urma_handshake.h | 10 +- src/brpc/urma/urma_helper.cpp | 174 ++++++--- src/brpc/urma/urma_helper.h | 8 +- src/brpc/urma_transport.cpp | 11 +- src/brpc/urma_transport.h | 2 +- test/brpc_urma_unittest.cpp | 141 +++++++ 18 files changed, 986 insertions(+), 362 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 3a5030845a..cc1aab79c0 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -51,6 +51,9 @@ DEFINES = [ }) + select({ "//bazel/config:brpc_with_rdma": ["BRPC_WITH_RDMA=1"], "//conditions:default": [], + }) + select({ + "//bazel/config:brpc_with_urma": ["BRPC_WITH_URMA=1"], + "//conditions:default": [], }) + select({ "//bazel/config:brpc_with_debug_bthread_sche_safety": ["BRPC_DEBUG_BTHREAD_SCHE_SAFETY=1"], "//conditions:default": ["BRPC_DEBUG_BTHREAD_SCHE_SAFETY=0"], @@ -508,6 +511,7 @@ filegroup( "src/brpc/*.proto", "src/brpc/policy/*.proto", "src/brpc/rdma/*.proto", + "src/brpc/urma/*.proto", ]), visibility = ["//visibility:public"], ) @@ -548,7 +552,12 @@ cc_library( copts = COPTS, includes = [ "src/", - ], + ] + select({ + "//bazel/config:brpc_with_urma": [ + "src/brpc/urma/sdk/", + ], + "//conditions:default": [], + }), linkopts = LINKOPTS, visibility = ["//visibility:public"], deps = [ diff --git a/Makefile b/Makefile index b66c464bb6..789832fd27 100644 --- a/Makefile +++ b/Makefile @@ -203,9 +203,15 @@ JSON2PB_SOURCES = $(foreach d,$(JSON2PB_DIRS),$(wildcard $(addprefix $(d)/*,$(SR JSON2PB_OBJS = $(addsuffix .o, $(basename $(JSON2PB_SOURCES))) BRPC_DIRS = src/brpc src/brpc/details src/brpc/builtin src/brpc/policy src/brpc/policy/mysql src/brpc/rdma +ifeq ($(WITH_URMA),1) +BRPC_DIRS += src/brpc/urma +endif THRIFT_SOURCES = $(foreach d,$(BRPC_DIRS),$(wildcard $(addprefix $(d)/thrift*,$(SRCEXTS)))) EXCLUDE_SOURCES = $(foreach d,$(BRPC_DIRS),$(wildcard $(addprefix $(d)/event_dispatcher_*,$(SRCEXTS)))) BRPC_SOURCES_ALL = $(foreach d,$(BRPC_DIRS),$(wildcard $(addprefix $(d)/*,$(SRCEXTS)))) +ifeq ($(URMA_USE_MOCK),0) +BRPC_SOURCES_ALL := $(filter-out src/brpc/urma/mock_urma.cpp,$(BRPC_SOURCES_ALL)) +endif BRPC_SOURCES = $(filter-out $(THRIFT_SOURCES) $(EXCLUDE_SOURCES), $(BRPC_SOURCES_ALL)) BRPC_PROTOS = $(filter %.proto,$(BRPC_SOURCES)) BRPC_CFAMILIES = $(filter-out %.proto %.pb.cc,$(BRPC_SOURCES)) diff --git a/bazel/config/BUILD.bazel b/bazel/config/BUILD.bazel index eec551da8b..e801d096ee 100644 --- a/bazel/config/BUILD.bazel +++ b/bazel/config/BUILD.bazel @@ -104,6 +104,12 @@ config_setting( visibility = ["//visibility:public"], ) +config_setting( + name = "brpc_with_urma", + define_values = {"BRPC_WITH_URMA": "true"}, + visibility = ["//visibility:public"], +) + config_setting( name = "brpc_with_boringssl", define_values = {"BRPC_WITH_BORINGSSL": "true"}, @@ -149,4 +155,4 @@ config_setting( name = "with_babylon_counter", define_values = {"with_babylon_counter": "true"}, visibility = ["//visibility:public"], -) \ No newline at end of file +) diff --git a/config_brpc.sh b/config_brpc.sh index 1c05942068..ff2ef7afc1 100755 --- a/config_brpc.sh +++ b/config_brpc.sh @@ -54,10 +54,11 @@ else LDD=ldd fi -TEMP=`getopt -o v: --long headers:,libs:,cc:,cxx:,with-glog,with-thrift,with-rdma,with-mesalink,with-bthread-tracer,with-debug-bthread-sche-safety,with-debug-lock,with-asan,with-riscv-zvbc,with-riscv-zbc,nodebugsymbols,werror -n 'config_brpc' -- "$@"` +TEMP=`getopt -o v: --long headers:,libs:,cc:,cxx:,with-glog,with-thrift,with-rdma,with-urma,with-mesalink,with-bthread-tracer,with-debug-bthread-sche-safety,with-debug-lock,with-asan,with-riscv-zvbc,with-riscv-zbc,nodebugsymbols,werror -n 'config_brpc' -- "$@"` WITH_GLOG=0 WITH_THRIFT=0 WITH_RDMA=0 +WITH_URMA=0 WITH_MESALINK=0 WITH_BTHREAD_TRACER=0 WITH_ASAN=0 @@ -89,6 +90,7 @@ while true; do --with-glog ) WITH_GLOG=1; shift 1 ;; --with-thrift) WITH_THRIFT=1; shift 1 ;; --with-rdma) WITH_RDMA=1; shift 1 ;; + --with-urma) WITH_URMA=1; shift 1 ;; --with-mesalink) WITH_MESALINK=1; shift 1 ;; --with-bthread-tracer) WITH_BTHREAD_TRACER=1; shift 1 ;; --with-debug-bthread-sche-safety ) BRPC_DEBUG_BTHREAD_SCHE_SAFETY=1; shift 1 ;; @@ -536,6 +538,24 @@ if [ $WITH_RDMA != 0 ]; then append_to_output "WITH_RDMA=1" fi +if [ $WITH_URMA != 0 ]; then + URMA_LIB=$(find_dir_of_lib urma) + URMA_HDR=$(find_dir_of_header urma/urma_api.h) + CPPFLAGS="${CPPFLAGS} -DBRPC_WITH_URMA=1" + append_to_output "WITH_URMA=1" + if [ -n "$URMA_LIB" ] && [ -n "$URMA_HDR" ]; then + append_to_output_libs "$URMA_LIB" + append_to_output_headers "$URMA_HDR" + append_to_output "DYNAMIC_LINKINGS+=-lurma" + append_to_output "URMA_USE_MOCK=0" + else + URMA_MOCK_HDR="$(${REALPATH} src/brpc/urma/sdk)" + append_to_output_headers "$URMA_MOCK_HDR" + append_to_output "URMA_USE_MOCK=1" + print_info "liburma not found; using bundled URMA mock" + fi +fi + if [ $WITH_MESALINK != 0 ]; then CPPFLAGS="${CPPFLAGS} -DUSE_MESALINK" fi @@ -667,6 +687,7 @@ print_info "System: $SYSTEM" if [ $WITH_GLOG -ne 0 ]; then print_info "With glog: yes"; fi if [ $WITH_THRIFT -ne 0 ]; then print_info "With thrift: yes"; fi if [ $WITH_RDMA -ne 0 ]; then print_info "With RDMA: yes"; fi +if [ $WITH_URMA -ne 0 ]; then print_info "With URMA: yes"; fi if [ $WITH_MESALINK -ne 0 ]; then print_info "With MesaLink: yes"; fi if [ $WITH_BTHREAD_TRACER -ne 0 ]; then print_info "With bthread tracer: yes"; fi if [ $WITH_ASAN -ne 0 ]; then print_info "With ASAN: yes"; fi diff --git a/docs/cn/urma.md b/docs/cn/urma.md index 6dbd64e634..4af118c29b 100644 --- a/docs/cn/urma.md +++ b/docs/cn/urma.md @@ -76,7 +76,7 @@ UrmaTransport : public Transport (urma_transport.{h,cpp}) urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.{h,cpp}) +-- UrmaResource { jfc, jfce, jfr, jetty, remote_jetty, remote_seg } +-- 握手状态机(C/S 对称,在 TCP fd 上驱动) - +-- 发送路径:urma_post_jetty_send_wr(URMA_OPC_SEND) + +-- 发送路径:urma_post_jetty_send_wr(URMA_OPC_SEND_IMM) +-- 接收路径:urma_poll_jfc -> HandleCompletion -> InputMessenger +-- 双窗口信用流控(_remote_rq_window / _sq_window) ``` diff --git a/src/brpc/channel.cpp b/src/brpc/channel.cpp index a8caeaf953..bd3e7be5be 100644 --- a/src/brpc/channel.cpp +++ b/src/brpc/channel.cpp @@ -134,6 +134,8 @@ static ChannelSignature ComputeChannelSignature(const ChannelOptions& opt) { } if (opt.socket_mode == SOCKET_MODE_RDMA) { buf.append("|rdma"); + } else if (opt.socket_mode == SOCKET_MODE_URMA) { + buf.append("|urma"); } butil::MurmurHash3_x64_128_Update(&mm_ctx, buf.data(), buf.size()); buf.clear(); diff --git a/src/brpc/channel.h b/src/brpc/channel.h index f0aff0f5b9..d4ea8dbd25 100644 --- a/src/brpc/channel.h +++ b/src/brpc/channel.h @@ -106,8 +106,8 @@ struct ChannelOptions { const ChannelSSLOptions& ssl_options() const { return *_ssl_options; } ChannelSSLOptions* mutable_ssl_options(); - // Let this channel Choose to use a certain socket: - // 0 SOCKET_MODE_TCP, 1 SOCKET_MODE_RDMA, 2 SOCKET_MODE_UBRING, 3 SOCKET_MODE_URMA. + // Let this channel choose a transport: + // 0 SOCKET_MODE_TCP, 1 SOCKET_MODE_RDMA, 2 SOCKET_MODE_URMA. // Default: SOCKET_MODE_TCP SocketMode socket_mode; diff --git a/src/brpc/input_messenger.cpp b/src/brpc/input_messenger.cpp index c249cca22c..46e77e4643 100644 --- a/src/brpc/input_messenger.cpp +++ b/src/brpc/input_messenger.cpp @@ -312,7 +312,8 @@ int InputMessenger::ProcessNewMessage( // not in the bthread where the polling bthread is located, because the // method for processing messages may call synchronization primitives, // causing the polling bthread to be scheduled out. - if (m->_socket_mode == SOCKET_MODE_RDMA) { + if (m->_socket_mode == SOCKET_MODE_RDMA || + m->_socket_mode == SOCKET_MODE_URMA) { m->_transport->QueueMessage(last_msg, &num_bthread_created, true); } if (num_bthread_created) { diff --git a/src/brpc/urma/mock_urma.cpp b/src/brpc/urma/mock_urma.cpp index 665309872b..eab2544cf5 100644 --- a/src/brpc/urma/mock_urma.cpp +++ b/src/brpc/urma/mock_urma.cpp @@ -27,10 +27,9 @@ // - Per-object state is held in anonymous-namespace maps keyed on the opaque // pointer returned to the caller. Membership is checked on delete so misuse // returns URMA_EINVAL rather than crashes. -// - Completion path: each posted send/recv WR's user_ctx is pushed onto the -// owning JFC's FIFO and handed back (URMA_CR_SUCCESS) on the next -// urma_poll_jfc. No payload bytes are moved - the mock is a control-plane -// stand-in, sufficient for unit tests of the handshake / state machine. +// - Completion path: posted recv WRs remain pending until a SEND targets the +// corresponding mock jetty. Payload and immediate data are copied into the +// remote recv WR and both local-send and remote-recv completions are queued. // - Device-name contract: device->name == "mock_urma_device" so tests can // match it with --urma_device=mock_urma_device. @@ -40,20 +39,28 @@ #include #include +#include #include #include #include #include #include +#include +#include #include namespace { -// Per-JFC completion queue: a FIFO of user_ctx awaiting completion. struct JfcState { std::mutex mutex; - std::deque pending_ctx; // send completions - std::deque pending_recv; // recv completions (user_ctx of recv WR) + std::deque completions; + bool event_pending{false}; +}; + +struct PendingRecv { + uint64_t addr; + uint32_t len; + uint64_t user_ctx; }; std::shared_mutex g_rw_mutex; @@ -66,9 +73,30 @@ std::map jfr_map; // Side-table: JFR -> the JFC it was created with (used to route recv // completions to the right JfcState, since the JFR is an opaque handle). std::map jfr_jfc_map; +std::map> jfr_recv_map; std::map seg_map; std::map jetty_map; +std::map jetty_id_map; std::map target_jetty_map; +std::atomic next_jetty_id{1}; + +void PushCompletion(urma_jfc_t* jfc, JfcState* state, + const urma_cr_t& completion) { + bool signal = false; + { + std::lock_guard lock(state->mutex); + state->completions.push_back(completion); + if (!state->event_pending) { + state->event_pending = true; + signal = true; + } + } + if (signal && jfc && jfc->jfc_cfg.jfce && + jfc->jfc_cfg.jfce->fd >= 0) { + uint64_t one = 1; + (void)write(jfc->jfc_cfg.jfce->fd, &one, sizeof(one)); + } +} urma_device_attr_t mock_device_attr = { .guid = {.raw = {10}}, @@ -115,9 +143,12 @@ urma_status_t urma_uninit(void) { jfc_state_map.clear(); jfr_map.clear(); jfr_jfc_map.clear(); + jfr_recv_map.clear(); seg_map.clear(); jetty_map.clear(); + jetty_id_map.clear(); target_jetty_map.clear(); + next_jetty_id.store(1); return URMA_SUCCESS; } @@ -261,14 +292,15 @@ urma_jfce_t *urma_create_jfce(urma_context_t *ctx) { if (!ctx || context_map.find(ctx) == context_map.end()) { return nullptr; } - // Allocate a real urma_jfce_t so consumers (brpc's AllocateResources reads - // jfce->fd) get a valid struct. Zero-init first so the embedded urma_ref - // (std::atomic_ulong) is in a valid state; the fd is left at -1 so - // Socket::Create falls back to the synthetic-carrier path when used. - urma_jfce_t *jfce = new urma_jfce_t; - memset(jfce, 0, sizeof(urma_jfce_t)); + // Allocate a real nonblocking eventfd so brpc's event-mode CQ socket can + // be exercised by the mock as well. + urma_jfce_t *jfce = new urma_jfce_t{}; jfce->urma_ctx = ctx; - jfce->fd = -1; + jfce->fd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC); + if (jfce->fd < 0) { + delete jfce; + return nullptr; + } jfce_map[jfce] = 1; return jfce; } @@ -279,6 +311,7 @@ urma_status_t urma_delete_jfce(urma_jfce_t *jfce) { return URMA_EINVAL; } jfce_map.erase(jfce); + close(jfce->fd); delete jfce; return URMA_SUCCESS; } @@ -324,6 +357,7 @@ urma_jfr_t *urma_create_jfr(urma_context_t *ctx, urma_jfr_cfg_t *cfg) { jfr_map[jfr] = 1; // Stash the JFC for urma_post_jfr_wr's completion routing. jfr_jfc_map[jfr] = cfg->jfc; + jfr_recv_map[jfr] = {}; return jfr; } @@ -334,6 +368,7 @@ urma_status_t urma_delete_jfr(urma_jfr_t *jfr) { } jfr_map.erase(jfr); jfr_jfc_map.erase(jfr); + jfr_recv_map.erase(jfr); delete reinterpret_cast(jfr); return URMA_SUCCESS; } @@ -412,10 +447,11 @@ urma_jetty_t *urma_create_jetty(urma_context_t *ctx, urma_jetty_cfg_t *cfg) { memset(&jetty->jetty_id.eid, 0, sizeof(urma_eid_t)); jetty->jetty_id.eid.raw[0] = 1; jetty->jetty_id.uasid = 0; - jetty->jetty_id.id = 1; + jetty->jetty_id.id = next_jetty_id.fetch_add(1); jetty->jetty_cfg = *cfg; jetty->remote_jetty = nullptr; jetty_map[jetty] = 1; + jetty_id_map[jetty->jetty_id.id] = jetty; return jetty; } @@ -424,6 +460,7 @@ urma_status_t urma_delete_jetty(urma_jetty_t *jetty) { if (!jetty || jetty_map.find(jetty) == jetty_map.end()) { return URMA_EINVAL; } + jetty_id_map.erase(jetty->jetty_id.id); jetty_map.erase(jetty); delete jetty; return URMA_SUCCESS; @@ -484,122 +521,157 @@ urma_status_t urma_modify_jetty(urma_jetty_t *jetty, urma_jetty_attr_t *attr) { urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr) { - { - std::shared_lock lock(g_rw_mutex); - if (!jetty || !wr || jetty_map.find(jetty) == jetty_map.end()) { - if (bad_wr) { - *bad_wr = wr; - } - return URMA_EINVAL; - } + std::shared_lock read_lock(g_rw_mutex); + auto local_it = jetty_map.find(jetty); + auto local_jfc_it = + jetty ? jfc_state_map.find(jetty->jetty_cfg.jfs_cfg.jfc) + : jfc_state_map.end(); + if (!jetty || !wr || local_it == jetty_map.end() || + local_jfc_it == jfc_state_map.end()) { + if (bad_wr) { *bad_wr = wr; } + return URMA_EINVAL; } + JfcState* local_state = local_jfc_it->second; + read_lock.unlock(); + + for (urma_jfs_wr_t* current = wr; current; current = current->next) { + urma_cr_t send_cr{}; + send_cr.status = URMA_CR_SUCCESS; + send_cr.user_ctx = current->user_ctx; + send_cr.flag.bs.s_r = 0; + if (current->flag.bs.complete_enable) { + PushCompletion(jetty->jetty_cfg.jfs_cfg.jfc, + local_state, send_cr); + } - urma_jfc_t *jfc = jetty->jetty_cfg.jfs_cfg.jfc; - JfcState *state = nullptr; - { - std::shared_lock lock(g_rw_mutex); - auto it = jfc_state_map.find(jfc); - if (it == jfc_state_map.end()) { - if (bad_wr) { - *bad_wr = wr; + if (!current->tjetty) { continue; } + PendingRecv recv{}; + urma_jfc_t* remote_jfc = nullptr; + { + std::unique_lock lock(g_rw_mutex); + auto remote_it = jetty_id_map.find(current->tjetty->id.id); + if (remote_it == jetty_id_map.end()) { + continue; } - return URMA_EINVAL; + urma_jfr_t* remote_jfr = + remote_it->second->jetty_cfg.shared.jfr; + auto recv_it = jfr_recv_map.find(remote_jfr); + auto jfc_it = jfr_jfc_map.find(remote_jfr); + if (recv_it == jfr_recv_map.end() || recv_it->second.empty() || + jfc_it == jfr_jfc_map.end()) { + continue; + } + recv = recv_it->second.front(); + recv_it->second.pop_front(); + remote_jfc = jfc_it->second; } - state = it->second; - } - { - std::lock_guard jfc_lock(state->mutex); - urma_jfs_wr_t *current_wr = wr; - while (current_wr) { - // Send completion: user_ctx == 0 marks a pure-ack WR; still - // complete it so HandleCompletion reclaims the imm budget. - state->pending_ctx.push_back(current_wr->user_ctx); - current_wr = current_wr->next; + uint32_t copied = 0; + for (uint32_t i = 0; + i < current->send.src.num_sge && copied < recv.len; ++i) { + const urma_sge_t& sge = current->send.src.sge[i]; + const uint32_t n = std::min(sge.len, recv.len - copied); + std::memcpy(reinterpret_cast(recv.addr + copied), + reinterpret_cast(sge.addr), n); + copied += n; } - } - if (bad_wr) { - *bad_wr = nullptr; + JfcState* remote_state = nullptr; + { + std::shared_lock lock(g_rw_mutex); + auto state_it = jfc_state_map.find(remote_jfc); + if (state_it != jfc_state_map.end()) { + remote_state = state_it->second; + } + } + if (remote_state) { + urma_cr_t recv_cr{}; + recv_cr.status = URMA_CR_SUCCESS; + recv_cr.user_ctx = recv.user_ctx; + recv_cr.flag.bs.s_r = 1; + recv_cr.completion_len = copied; + recv_cr.opcode = + current->opcode == URMA_OPC_SEND_IMM + ? URMA_CR_OPC_SEND_WITH_IMM + : URMA_CR_OPC_SEND; + recv_cr.imm_data = current->send.imm_data; + PushCompletion(remote_jfc, remote_state, recv_cr); + } } + if (bad_wr) { *bad_wr = nullptr; } return URMA_SUCCESS; } -// brpc's recv path posts recv WRs via the JFR. In the real driver a posted -// recv completes when a peer SEND arrives; the mock has no peer, so we -// immediately enqueue a recv completion (URMA_CR_SUCCESS, zero-length) on -// the JFC the JFR is bound to. This lets the endpoint's PollCq loop drain -// recv completions and exercise PostRecv/SendAck without real traffic. urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr) { - std::shared_lock lock(g_rw_mutex); - if (!jfr || !wr || jfr_map.find(jfr) == jfr_map.end()) { - if (bad_wr) { *bad_wr = wr; } - return URMA_EINVAL; - } - auto jfc_it = jfr_jfc_map.find(jfr); - if (jfc_it == jfr_jfc_map.end() || jfc_it->second == nullptr) { - if (bad_wr) { *bad_wr = wr; } - return URMA_EINVAL; - } - urma_jfc_t *jfc = jfc_it->second; - auto it = jfc_state_map.find(jfc); - if (it == jfc_state_map.end()) { + std::unique_lock lock(g_rw_mutex); + auto recv_it = jfr_recv_map.find(jfr); + if (!jfr || !wr || recv_it == jfr_recv_map.end()) { if (bad_wr) { *bad_wr = wr; } return URMA_EINVAL; } - // Walk the linked list of recv WRs and enqueue one completion per WR. - JfcState *state = it->second; - std::lock_guard jfc_lock(state->mutex); - urma_jfr_wr_t *cur = wr; - while (cur) { - state->pending_recv.push_back(cur->user_ctx); - cur = cur->next; + for (urma_jfr_wr_t* current = wr; current; current = current->next) { + if (current->src.num_sge == 0 || !current->src.sge) { + if (bad_wr) { *bad_wr = current; } + return URMA_EINVAL; + } + recv_it->second.push_back(PendingRecv{ + current->src.sge[0].addr, + current->src.sge[0].len, + current->user_ctx}); } if (bad_wr) { *bad_wr = nullptr; } return URMA_SUCCESS; } int urma_poll_jfc(urma_jfc_t *jfc, int num_entries, urma_cr_t *cr_list) { - JfcState *state = nullptr; + JfcState* state = nullptr; { std::shared_lock lock(g_rw_mutex); auto it = jfc_state_map.find(jfc); - if (it == jfc_state_map.end()) { - return -1; - } + if (it == jfc_state_map.end()) { return -1; } state = it->second; } + std::lock_guard lock(state->mutex); + int count = 0; + while (count < num_entries && !state->completions.empty()) { + cr_list[count++] = state->completions.front(); + state->completions.pop_front(); + } + if (state->completions.empty()) { + state->event_pending = false; + } + return count; +} - int num_completed = 0; - { - std::lock_guard jfc_lock(state->mutex); - // Drain send completions first, then recv completions. - int available_send = static_cast(state->pending_ctx.size()); - int from_send = std::min(num_entries, available_send); - for (int i = 0; i < from_send; ++i) { - cr_list[num_completed].status = URMA_CR_SUCCESS; - cr_list[num_completed].user_ctx = state->pending_ctx[i]; - cr_list[num_completed].flag.bs.s_r = 0; // send - cr_list[num_completed].completion_len = 0; - ++num_completed; +urma_status_t urma_rearm_jfc(urma_jfc_t*, bool) { + return URMA_SUCCESS; +} + +int urma_wait_jfc(urma_jfce_t* jfce, uint32_t jfc_cnt, int, + urma_jfc_t* jfcs[]) { + if (!jfce || !jfcs || jfc_cnt == 0) { + errno = EINVAL; + return -1; + } + uint64_t value = 0; + (void)read(jfce->fd, &value, sizeof(value)); + std::shared_lock lock(g_rw_mutex); + uint32_t count = 0; + for (const auto& item : jfc_state_map) { + if (count >= jfc_cnt || item.first->jfc_cfg.jfce != jfce) { + continue; } - state->pending_ctx.erase(state->pending_ctx.begin(), - state->pending_ctx.begin() + from_send); - int remaining = num_entries - num_completed; - int available_recv = static_cast(state->pending_recv.size()); - int from_recv = std::min(remaining, available_recv); - for (int i = 0; i < from_recv; ++i) { - cr_list[num_completed].status = URMA_CR_SUCCESS; - cr_list[num_completed].user_ctx = state->pending_recv[i]; - cr_list[num_completed].flag.bs.s_r = 1; // recv - cr_list[num_completed].completion_len = 0; // no payload moved - ++num_completed; + std::lock_guard state_lock(item.second->mutex); + if (item.second->event_pending) { + jfcs[count++] = item.first; + item.second->event_pending = false; } - state->pending_recv.erase(state->pending_recv.begin(), - state->pending_recv.begin() + from_recv); } - return num_completed; + return static_cast(count); +} + +void urma_ack_jfc(urma_jfc_t*[], uint32_t[], uint32_t) { } } // extern "C" diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 3bd25566bc..8fb86922e5 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -22,8 +22,12 @@ #include #include #include +#include #include +#include +#include #include +#include #include @@ -45,6 +49,8 @@ #include "brpc/urma/urma_helper.h" #include "brpc/urma_transport.h" +DECLARE_int32(task_group_ntags); + namespace brpc { namespace urma { @@ -62,6 +68,7 @@ DECLARE_int32(urma_cqe_poll_once); DECLARE_bool(urma_recv_zerocopy); DECLARE_int32(urma_zerocopy_min_size); DECLARE_int32(urma_prepared_jetty_cnt); +DECLARE_bool(urma_poller_yield); // ---- Constants shared with the handshake module ---- static const int WAIT_TIMEOUT_MS = 50; @@ -88,8 +95,8 @@ UrmaResource::~UrmaResource() { if (remote_seg) { urma_unimport_seg(remote_seg); } if (jetty) { urma_delete_jetty(jetty); } if (jfr) { urma_delete_jfr(jfr); } - if (jfce) { urma_delete_jfce(jfce); } if (jfc) { urma_delete_jfc(jfc); } + if (jfce) { urma_delete_jfce(jfce); } } // ============================================================================ @@ -291,14 +298,12 @@ int UrmaEndpoint::ReadAndParseHelloV3(ParsedHello* out, bool* negotiated) { if (ReadFromFd(&pb_size_be, sizeof(pb_size_be)) < 0) { return -1; } uint32_t pb_size = butil::NetToHost32(pb_size_be); if (pb_size == 0 || pb_size > 4096) { return 0; } - butil::IOPortal body; - if (body.append_from_file_descriptor(_socket->fd(), pb_size) != - static_cast(pb_size)) { - return -1; - } + std::string body(pb_size, '\0'); + if (ReadFromFd(&body[0], pb_size) < 0) { return -1; } UrmaHello msg; - butil::IOBufAsZeroCopyInputStream zcis(body); - if (!msg.ParseFromZeroCopyStream(&zcis)) { return 0; } + if (!msg.ParseFromArray(body.data(), static_cast(body.size()))) { + return 0; + } if (msg.eid().size() != 16 || msg.seg_eid().size() != 16) { return 0; } out->buffer_size = msg.buffer_size(); out->recv_buffer_cnt = msg.recv_buffer_cnt(); @@ -311,6 +316,7 @@ int UrmaEndpoint::ReadAndParseHelloV3(ParsedHello* out, bool* negotiated) { out->seg_va = msg.seg_va(); out->seg_len = msg.seg_len(); out->seg_token_id = msg.seg_token_id(); + if (!ValidHello(*out)) { return 0; } *negotiated = true; return 0; } @@ -332,63 +338,70 @@ int UrmaEndpoint::AllocateResources() { _rq_size <= static_cast(FLAGS_urma_rq_size)) { BAIDU_SCOPED_LOCK(g_prepared_mutex); if (g_prepared_list) { - _resource->jfc = g_prepared_list->jfc; - _resource->jfce = g_prepared_list->jfce; - _resource->jfr = g_prepared_list->jfr; - _resource->jetty = g_prepared_list->jetty; UrmaResource* next = g_prepared_list->next; - delete g_prepared_list; + delete _resource; + _resource = g_prepared_list; g_prepared_list = next; + _resource->next = nullptr; --g_prepared_cnt; - // Resize per-connection buffers. - _sbuf.resize(_sq_size - RESERVED_WR_NUM); - _rbuf.resize(_rq_size); - _rbuf_data.resize(_rq_size, nullptr); - return 0; } } - // Event-mode: create JFCE so JFC can bind to it. - if (!FLAGS_urma_use_polling) { + if (!_resource->jfc) { + // The SDK requires every JFC to reference a JFCE. Polling mode does + // not arm or consume it, but still supplies the required object. _resource->jfce = urma_create_jfce(ctx); - // Failure is non-fatal: fall back to busy polling. - } - - urma_jfc_cfg_t jfc_cfg{}; - jfc_cfg.depth = static_cast(_sq_size + _rq_size); - if (_resource->jfce) { jfc_cfg.jfce = _resource->jfce; } - _resource->jfc = urma_create_jfc(ctx, &jfc_cfg); - if (!_resource->jfc) { PLOG(ERROR) << "urma_create_jfc"; return -1; } - - urma_jfr_cfg_t jfr_cfg{}; - jfr_cfg.depth = static_cast(_rq_size); - jfr_cfg.trans_mode = URMA_TM_RM; - jfr_cfg.max_sge = 1; - jfr_cfg.min_rnr_timer = URMA_TYPICAL_MIN_RNR_TIMER; - jfr_cfg.jfc = _resource->jfc; - _resource->jfr = urma_create_jfr(ctx, &jfr_cfg); - if (!_resource->jfr) { PLOG(ERROR) << "urma_create_jfr"; return -1; } - - urma_jetty_cfg_t jetty_cfg{}; - jetty_cfg.flag.bs.share_jfr = 1; - jetty_cfg.jfs_cfg.depth = static_cast(_sq_size); - jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; - jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; - jetty_cfg.jfs_cfg.max_sge = 1; - jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; - jetty_cfg.jfs_cfg.err_timeout = URMA_TYPICAL_ERR_TIMEOUT; - jetty_cfg.jfs_cfg.jfc = _resource->jfc; - jetty_cfg.shared.jfr = _resource->jfr; - jetty_cfg.shared.jfc = _resource->jfc; - _resource->jetty = urma_create_jetty(ctx, &jetty_cfg); - if (!_resource->jetty) { PLOG(ERROR) << "urma_create_jetty"; return -1; } + if (!_resource->jfce || + (!FLAGS_urma_use_polling && _resource->jfce->fd < 0)) { + LOG(ERROR) << "Fail to create a usable URMA JFCE"; + errno = ENODEV; + return -1; + } + + urma_jfc_cfg_t jfc_cfg{}; + jfc_cfg.depth = static_cast(_sq_size + _rq_size); + jfc_cfg.jfce = _resource->jfce; + _resource->jfc = urma_create_jfc(ctx, &jfc_cfg); + if (!_resource->jfc) { PLOG(ERROR) << "urma_create_jfc"; return -1; } + + urma_jfr_cfg_t jfr_cfg{}; + jfr_cfg.depth = static_cast(_rq_size); + jfr_cfg.trans_mode = URMA_TM_RM; + jfr_cfg.max_sge = 1; + jfr_cfg.min_rnr_timer = URMA_TYPICAL_MIN_RNR_TIMER; + jfr_cfg.jfc = _resource->jfc; + _resource->jfr = urma_create_jfr(ctx, &jfr_cfg); + if (!_resource->jfr) { PLOG(ERROR) << "urma_create_jfr"; return -1; } + + urma_jetty_cfg_t jetty_cfg{}; + jetty_cfg.flag.bs.share_jfr = 1; + jetty_cfg.jfs_cfg.depth = static_cast(_sq_size); + jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; + jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; + jetty_cfg.jfs_cfg.max_sge = 1; + jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; + jetty_cfg.jfs_cfg.err_timeout = URMA_TYPICAL_ERR_TIMEOUT; + jetty_cfg.jfs_cfg.jfc = _resource->jfc; + jetty_cfg.shared.jfr = _resource->jfr; + jetty_cfg.shared.jfc = _resource->jfc; + _resource->jetty = urma_create_jetty(ctx, &jetty_cfg); + if (!_resource->jetty) { PLOG(ERROR) << "urma_create_jetty"; return -1; } + } _sbuf.resize(_sq_size - RESERVED_WR_NUM); _rbuf.resize(_rq_size); _rbuf_data.resize(_rq_size, nullptr); // Wrap the JFCE fd in a brpc Socket so PollCq is driven by epoll. - if (!FLAGS_urma_use_polling && _resource->jfce) { + if (!FLAGS_urma_use_polling) { + if (!_resource->jfce || _resource->jfce->fd < 0) { + LOG(ERROR) << "Prepared URMA resource has no usable JFCE"; + errno = ENODEV; + return -1; + } + if (ReqNotifyCq() != 0) { + return -1; + } SocketOptions options; options.user = this; options.keytable_pool = _socket->keytable_pool(); @@ -416,6 +429,10 @@ int UrmaEndpoint::AllocateResources() { void UrmaEndpoint::DeallocateResources() { if (!_resource) { return; } + if (FLAGS_urma_use_polling) { + PollerRemoveCqSid(); + } + // Tear down the CQ socket so the EventDispatcher stops calling PollCq. if (_cq_sid != INVALID_SOCKET_ID) { SocketUniquePtr s; @@ -430,35 +447,9 @@ void UrmaEndpoint::DeallocateResources() { _cq_sid = INVALID_SOCKET_ID; } - // Recycle into the prepared pool if sizes match. - bool recycle = (_sq_size <= static_cast(FLAGS_urma_sq_size) && - _rq_size <= static_cast(FLAGS_urma_rq_size) && - g_prepared_cnt < 1024); - if (recycle) { - UrmaResource* holder = new (std::nothrow) UrmaResource(); - if (holder) { - holder->jfc = _resource->jfc; - holder->jfce = _resource->jfce; - holder->jfr = _resource->jfr; - holder->jetty = _resource->jetty; - // Drop the imported peer objects (not pooled). - if (_resource->remote_jetty) { urma_unimport_jetty(_resource->remote_jetty); } - if (_resource->remote_seg) { urma_unimport_seg(_resource->remote_seg); } - _resource->remote_jetty = nullptr; - _resource->remote_seg = nullptr; - _resource->jfc = nullptr; - _resource->jfce = nullptr; - _resource->jfr = nullptr; - _resource->jetty = nullptr; - BAIDU_SCOPED_LOCK(g_prepared_mutex); - holder->next = g_prepared_list; - g_prepared_list = holder; - ++g_prepared_cnt; - delete _resource; - _resource = nullptr; - return; - } - } + // Reusing a Jetty requires a driver-supported RESET plus a complete JFC + // drain. Until that lifecycle is implemented, prepared resources are + // one-shot: they accelerate connection setup but are destroyed on close. delete _resource; _resource = nullptr; } @@ -487,7 +478,8 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { seg_flag.bs.mapping = URMA_SEG_NOMAP; _resource->remote_seg = urma_import_seg(ctx, &peer_seg, &seg_token, 0, seg_flag); if (!_resource->remote_seg) { - PLOG(WARNING) << "urma_import_seg failed (continuing with import_jetty)"; + PLOG(ERROR) << "urma_import_seg failed"; + return -1; } // 2. urma_import_jetty. @@ -530,12 +522,13 @@ class UrmaIOBuf : private butil::IOBuf { // Returns bytes added, or -1 (errno set). ssize_t cut_into_sglist(urma_sge_t* sglist, size_t* sge_index, butil::IOBuf* to, size_t max_sge, - urma_target_seg_t* pool_seg, size_t max_len) { + size_t max_len) { size_t len = 0; while (*sge_index < max_sge && len < max_len && _ref_num() != 0) { butil::IOBuf::BlockRef const& r = _ref_at(0); const void* start = fetch1(); - urma_target_seg_t* tseg = pool_seg; + urma_target_seg_t* tseg = + GetPoolSegFor(const_cast(start)); if (!tseg) { // User-registered memory: look up the seg handle. uint64_t meta = get_first_data_meta(); @@ -566,7 +559,6 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { errno = ENOTCONN; return -1; } - urma_target_seg_t* pool_seg = GetPoolSegFor(nullptr); int max_sge = GetUrmaMaxSge(); if (max_sge < 1) { max_sge = 1; } @@ -595,8 +587,7 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { auto* data = reinterpret_cast(from[current]); if (data->empty()) { current++; continue; } ssize_t n = data->cut_into_sglist(sglist, &sge_index, to, - max_sge, pool_seg, - max_len - this_len); + max_sge, max_len - this_len); if (n < 0) { return -1; } this_len += n; } @@ -605,14 +596,19 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { urma_sg_t sg{sglist, static_cast(sge_index)}; urma_jfs_wr_t wr{}; std::memset(&wr, 0, sizeof(wr)); - wr.opcode = URMA_OPC_SEND; + const uint32_t ack = + _new_rq_wrs.exchange(0, butil::memory_order_relaxed); + wr.opcode = URMA_OPC_SEND_IMM; wr.flag.bs.complete_enable = 1; + wr.flag.bs.solicited_enable = 1; wr.tjetty = _resource->remote_jetty; wr.send.src = sg; + wr.send.imm_data = ack; wr.user_ctx = 1; urma_jfs_wr_t* bad_wr = nullptr; int rc = urma_post_jetty_send_wr(_resource->jetty, &wr, &bad_wr); if (rc != URMA_SUCCESS) { + _new_rq_wrs.fetch_add(ack, butil::memory_order_relaxed); LOG(WARNING) << "urma_post_jetty_send_wr failed: " << rc; errno = rc; return -1; @@ -657,12 +653,28 @@ int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { &_rbuf[_rq_received], block_size + IOBUF_BLOCK_HEADER_LEN); void* data = nullptr; int size = 0; - if (!zcis.Next(&data, &size) || !data) { + if (!zcis.Next(&data, &size) || !data || + size < static_cast(block_size)) { + errno = ENOMEM; return -1; } _rbuf_data[_rq_received] = data; if (DoPostRecv(data, block_size) < 0) { return -1; } } else { + if (_rbuf_data[_rq_received] == nullptr) { + _rbuf[_rq_received].clear(); + butil::IOBufAsZeroCopyOutputStream zcos( + &_rbuf[_rq_received], + block_size + IOBUF_BLOCK_HEADER_LEN); + void* data = nullptr; + int size = 0; + if (!zcos.Next(&data, &size) || !data || + size < static_cast(block_size)) { + errno = ENOMEM; + return -1; + } + _rbuf_data[_rq_received] = data; + } if (DoPostRecv(_rbuf_data[_rq_received], block_size) < 0) { return -1; } @@ -672,19 +684,24 @@ int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { return 0; } -int UrmaEndpoint::SendImm(uint32_t /*imm*/) { +int UrmaEndpoint::SendImm(uint32_t imm) { + if (imm == 0) { return 0; } if (!_resource || !_resource->jetty || !_resource->remote_jetty) { errno = ENOTCONN; return -1; } - // Empty-payload SEND to flush peer-side credit. + // Empty-payload SEND_IMM flushes peer-side receive credit. Connection + // lifetime is owned by the TCP fd, so this is not an EOF marker. urma_jfs_wr_t wr{}; std::memset(&wr, 0, sizeof(wr)); - wr.opcode = URMA_OPC_SEND; + wr.opcode = URMA_OPC_SEND_IMM; wr.flag.bs.complete_enable = 1; + wr.flag.bs.solicited_enable = 1; wr.tjetty = _resource->remote_jetty; + wr.send.imm_data = imm; wr.user_ctx = 0; // 0 == pure ack (HandleCompletion reuses budget). urma_jfs_wr_t* bad = nullptr; if (urma_post_jetty_send_wr(_resource->jetty, &wr, &bad) != URMA_SUCCESS) { + _new_rq_wrs.fetch_add(imm, butil::memory_order_relaxed); return -1; } if (_sq_imm_window_size > 0) { --_sq_imm_window_size; } @@ -692,8 +709,10 @@ int UrmaEndpoint::SendImm(uint32_t /*imm*/) { } int UrmaEndpoint::SendAck(int num) { - if (_new_rq_wrs.fetch_add(num, butil::memory_order_relaxed) > - _remote_window_capacity / 2 && _sq_imm_window_size > 0) { + const uint16_t old = + _new_rq_wrs.fetch_add(num, butil::memory_order_relaxed); + if (old + num > _remote_window_capacity / 2 && + _sq_imm_window_size > 0) { return SendImm(_new_rq_wrs.exchange(0, butil::memory_order_relaxed)); } return 0; @@ -701,11 +720,17 @@ int UrmaEndpoint::SendAck(int num) { ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { bool zerocopy = FLAGS_urma_recv_zerocopy; + if (cr.status != URMA_CR_SUCCESS) { + LOG(WARNING) << "URMA completion failed, status=" << cr.status; + errno = EIO; + return -1; + } if (cr.flag.bs.s_r == 0) { // Send completion: reclaim SQ window and wake the writer. if (cr.user_ctx == 0) { // Pure-ack WR: just replenish the imm budget. _sq_imm_window_size += 1; + SendAck(0); return 0; } uint16_t wnd = 1; // We signal every WR (complete_enable=1). @@ -722,14 +747,39 @@ ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { return 0; } // Recv completion. - if (cr.completion_len == 0) { - // Peer closed. - errno = EEOF; - _socket->SetFailed(EEOF, "Peer closed the URMA connection"); + if (cr.opcode == URMA_CR_OPC_SEND_WITH_IMM && cr.imm_data > 0) { + if (cr.imm_data > _local_window_capacity) { + LOG(WARNING) << "Invalid URMA receive credit: " << cr.imm_data; + errno = EPROTO; + return -1; + } + const uint16_t acks = static_cast(cr.imm_data); + uint16_t old = + _remote_rq_window_size.load(butil::memory_order_relaxed); + while (true) { + if (old > _local_window_capacity - acks) { + LOG(WARNING) << "URMA receive credit exceeds window"; + errno = EPROTO; + return -1; + } + if (_remote_rq_window_size.compare_exchange_weak( + old, static_cast(old + acks), + butil::memory_order_relaxed)) { + break; + } + } + if (_sq_window_size.load(butil::memory_order_relaxed) > 0) { + _socket->WakeAsEpollOut(); + } + } else if (cr.completion_len == 0) { + LOG(WARNING) << "Zero-length URMA receive without immediate credit"; + errno = EPROTO; return -1; } - if (cr.status != URMA_CR_SUCCESS) { - errno = EIO; + if (cr.completion_len > GetUrmaRecvBlockSize()) { + LOG(WARNING) << "URMA completion exceeds receive buffer: " + << cr.completion_len; + errno = EPROTO; return -1; } if (cr.completion_len < static_cast(FLAGS_urma_zerocopy_min_size)) { @@ -752,10 +802,16 @@ void UrmaEndpoint::PollCq(Socket* m) { if (Socket::Address(ep->_socket->id(), &s) != 0) { return; } if (s->Failed()) { return; } + if (!FLAGS_urma_use_polling) { + if (ep->GetAndAckEvents(s) != 0 || ep->ReqNotifyCq() != 0) { + return; + } + } + ssize_t bytes = 0; InputMessageClosure last_msg; while (true) { - int n = std::min(FLAGS_urma_cqe_poll_once, 32); + int n = std::max(1, std::min(FLAGS_urma_cqe_poll_once, 32)); urma_cr_t crs[32]; int cnt = urma_poll_jfc(ep->_resource->jfc, n, crs); if (cnt < 0) { @@ -790,10 +846,15 @@ void UrmaEndpoint::PollCq(Socket* m) { void UrmaEndpoint::ApplyRemoteHello(const ParsedHello& remote) { _remote_recv_block_size = remote.buffer_size; - _local_window_capacity = - std::min(_sq_size, static_cast(remote.recv_buffer_cnt + 1)) - - RESERVED_WR_NUM; - _remote_window_capacity = _rq_size - RESERVED_WR_NUM; + const uint32_t peer_rq_size = remote.recv_buffer_cnt + 1; + const uint32_t local_capacity = + std::min(_sq_size, peer_rq_size); + _local_window_capacity = static_cast( + local_capacity > RESERVED_WR_NUM + ? local_capacity - RESERVED_WR_NUM + : 0); + _remote_window_capacity = + _rq_size > RESERVED_WR_NUM ? _rq_size - RESERVED_WR_NUM : 0; _sq_imm_window_size = RESERVED_WR_NUM; _remote_rq_window_size.store(_local_window_capacity, butil::memory_order_relaxed); @@ -804,6 +865,8 @@ void UrmaEndpoint::ApplyRemoteHello(const ParsedHello& remote) { // OnNewDataFromTcp: edge-triggered dispatcher. // ============================================================================ +static void TryReadOnTcpDuringUrmaEst(Socket* socket); + void UrmaEndpoint::OnNewDataFromTcp(Socket* m) { auto* tp = static_cast(m->_transport.get()); if (!tp) { return; } @@ -817,7 +880,9 @@ void UrmaEndpoint::OnNewDataFromTcp(Socket* m) { } int progress = 0; while (true) { - if (ep->_state == UNINIT) { + const State state = + ep->_state.load(butil::memory_order_acquire); + if (state == UNINIT) { if (!m->CreatedByConnect()) { // Server side: kick off the handshake bthread. if (!IsUrmaAvailable()) { @@ -843,16 +908,16 @@ void UrmaEndpoint::OnNewDataFromTcp(Socket* m) { } // Client side: handled by ProcessHandshakeAtClient. return; - } else if (ep->_state < ESTABLISHED) { + } else if (state < ESTABLISHED) { // During handshake: wake the handshake bthread parked in ReadFromFd. ep->_read_butex->fetch_add(1, butil::memory_order_release); bthread::butex_wake(ep->_read_butex); return; - } else if (ep->_state == FALLBACK_TCP) { + } else if (state == FALLBACK_TCP) { InputMessenger::OnNewMessages(m); return; - } else if (ep->_state == ESTABLISHED) { - // Drain stray TCP bytes (protocol error). + } else if (state == ESTABLISHED) { + TryReadOnTcpDuringUrmaEst(m); return; } if (!m->MoreReadEvents(&progress)) { break; } @@ -860,11 +925,59 @@ void UrmaEndpoint::OnNewDataFromTcp(Socket* m) { } inline void UrmaEndpoint::TryReadOnTcp() { - if (_state == FALLBACK_TCP) { + if (_state.load(butil::memory_order_acquire) == FALLBACK_TCP) { InputMessenger::OnNewMessages(_socket); } } +static void TryReadOnTcpDuringUrmaEst(Socket* socket) { + int progress = Socket::PROGRESS_INIT; + while (true) { + uint8_t byte = 0; + const ssize_t nr = read(socket->fd(), &byte, 1); + if (nr < 0) { + if (errno != EAGAIN) { + const int saved_errno = errno; + socket->SetFailed(saved_errno, "Fail to read URMA TCP fd: %s", + berror(saved_errno)); + return; + } + if (!socket->MoreReadEvents(&progress)) { + return; + } + } else if (nr == 0) { + socket->SetEOF(); + return; + } else { + socket->SetFailed( + EPROTO, "Unexpected TCP data after URMA was established"); + return; + } + } +} + +void UrmaEndpoint::FallbackToTcp(UrmaTransport* transport, bool process_tcp) { + transport->_urma_state = UrmaTransport::URMA_OFF; + _state.store(FALLBACK_TCP, butil::memory_order_release); + DeallocateResources(); + if (process_tcp) { + TryReadOnTcp(); + } +} + +void UrmaEndpoint::FailHandshake(UrmaTransport* transport, int error, + const char* reason) { + transport->_urma_state = UrmaTransport::URMA_OFF; + _state.store(FAILED, butil::memory_order_release); + DeallocateResources(); + auto* connect = + static_cast(_socket->_app_connect.get()); + if (connect) { + connect->_error = error; + } + _socket->SetFailed(error, "URMA handshake failed: %s", reason); +} + // ============================================================================ // Handshake state machines (client / server). Run in a background bthread. // ============================================================================ @@ -875,56 +988,52 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { auto* tp = static_cast(s->_transport.get()); UrmaConnect::RunGuard guard(static_cast(s->_app_connect.get())); if (!IsUrmaAvailable()) { - ep->_state = FALLBACK_TCP; - tp->_urma_state = UrmaTransport::URMA_OFF; + ep->FallbackToTcp(tp, true); return nullptr; } ep->_state = C_ALLOC_RES; if (ep->AllocateResources() < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + ep->FallbackToTcp(tp, true); return nullptr; } // Pre-post recv buffers. if (ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + ep->FallbackToTcp(tp, true); return nullptr; } ep->_state = C_HELLO_SEND; std::unique_ptr hs(CreateClientHandshake(ep)); ep->_handshake_version = hs->ProtocolVersion(); if (hs->SendLocalHello() < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "send client hello"); return nullptr; } ep->_state = C_HELLO_WAIT; ParsedHello remote; bool negotiated = false; if (hs->ReceiveAndParseRemoteHello(&remote, &negotiated) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "read server hello"); return nullptr; } if (!negotiated) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + ep->FallbackToTcp(tp, true); return nullptr; } ep->ApplyRemoteHello(remote); ep->_state = C_IMPORT_PEER; if (ep->ImportPeer(remote) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "import server resources"); return nullptr; } ep->_state = C_ACK_SEND; uint32_t flags = HELLO_ACK_URMA_OK; uint32_t flags_be = butil::HostToNet32(flags); if (ep->WriteToFd(&flags_be, HELLO_ACK_LEN) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "send client ack"); return nullptr; } tp->_urma_state = UrmaTransport::URMA_ON; @@ -940,77 +1049,73 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->_state = S_HELLO_WAIT; uint8_t magic[v2_wire::MAGIC_STR_LEN]; if (ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "read client magic"); return nullptr; } std::unique_ptr hs(CreateServerHandshakeByMagic(ep, magic)); if (!hs) { // Not an URMA peer: push the magic back and fall back to TCP. ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; - InputMessenger::OnNewMessages(s.get()); + ep->FallbackToTcp(tp, true); return nullptr; } ep->_handshake_version = hs->ProtocolVersion(); ParsedHello remote; bool negotiated = false; if (hs->ReceiveAndParseRemoteHello(&remote, &negotiated) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "read client hello"); return nullptr; } if (!negotiated) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + ep->FailHandshake(tp, EPROTO, "invalid client hello"); return nullptr; } ep->_state = S_ALLOC_RES; if (ep->AllocateResources() < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "allocate server resources"); return nullptr; } if (ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "post server receives"); return nullptr; } ep->ApplyRemoteHello(remote); ep->_state = S_IMPORT_PEER; if (ep->ImportPeer(remote) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "import client resources"); return nullptr; } ep->_state = S_HELLO_SEND; if (hs->SendLocalHello() < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "send server hello"); return nullptr; } ep->_state = S_ACK_WAIT; uint32_t flags_be = 0; if (ep->ReadFromFd(&flags_be, HELLO_ACK_LEN) < 0) { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "read client ack"); return nullptr; } uint32_t flags = butil::NetToHost32(flags_be); bool client_ack_ok = (flags & HELLO_ACK_URMA_OK) != 0; if (client_ack_ok) { - if (tp->_urma_state == UrmaTransport::URMA_OFF) { + if (tp->_urma_state.load(butil::memory_order_acquire) == + UrmaTransport::URMA_OFF) { // Protocol breakdown: client wants URMA but we already fell back. - s->SetFailed(EPROTO, "URMA ack mismatch"); - ep->_state = FAILED; + ep->FailHandshake(tp, EPROTO, "client ack mismatch"); return nullptr; } tp->_urma_state = UrmaTransport::URMA_ON; ep->_state = ESTABLISHED; } else { - tp->_urma_state = UrmaTransport::URMA_OFF; - ep->_state = FALLBACK_TCP; + ep->FallbackToTcp(tp, true); } return nullptr; } @@ -1023,10 +1128,15 @@ void UrmaConnect::StartConnect(const Socket* socket, void (*done)(int, void*), void* data) { _done = done; _data = data; + _error = 0; auto* tp = static_cast(socket->_transport.get()); - if (!tp || !tp->_urma_ep || !IsUrmaAvailable()) { + if (!tp) { + Run(); + return; + } + if (!tp->_urma_ep || !IsUrmaAvailable()) { // Fall back to TCP immediately. - if (tp && tp->_urma_ep) { + if (tp->_urma_ep) { tp->_urma_ep->_state = UrmaEndpoint::FALLBACK_TCP; } tp->_urma_state = UrmaTransport::URMA_OFF; @@ -1051,7 +1161,7 @@ void UrmaConnect::Run() { if (_done) { auto cb = _done; _done = nullptr; - cb(0, _data); + cb(_error, _data); } } @@ -1060,7 +1170,7 @@ void UrmaConnect::Run() { // ============================================================================ std::string UrmaEndpoint::GetStateStr() const { - switch (_state) { + switch (_state.load(butil::memory_order_acquire)) { case UNINIT: return "UNINIT"; case C_ALLOC_RES: return "C_ALLOC_RES"; case C_HELLO_SEND: return "C_HELLO_SEND"; @@ -1088,22 +1198,214 @@ void UrmaEndpoint::DebugInfo(std::ostream& os, butil::StringPiece) const { << " handshake_version=" << _handshake_version; } -int UrmaEndpoint::GetAndAckEvents(SocketUniquePtr&) { return 0; } -int UrmaEndpoint::ReqNotifyCq() { return 0; } -void UrmaEndpoint::PollerAddCqSid() {} -void UrmaEndpoint::PollerRemoveCqSid() {} +int UrmaEndpoint::GetAndAckEvents(SocketUniquePtr& s) { + if (!_resource || !_resource->jfce || !_resource->jfc) { + errno = ENODEV; + return -1; + } + while (true) { + urma_jfc_t* jfcs[16]{}; + int count = urma_wait_jfc(_resource->jfce, 16, 0, jfcs); + if (count < 0) { + if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) { + return 0; + } + const int saved_errno = errno; + PLOG(ERROR) << "Fail to wait URMA JFC event from " + << s->description(); + s->SetFailed(saved_errno, "Fail to wait URMA JFC event: %s", + berror(saved_errno)); + return -1; + } + if (count == 0) { return 0; } + uint32_t nevents[16]; + for (int i = 0; i < count; ++i) { + nevents[i] = 1; + } + urma_ack_jfc(jfcs, nevents, static_cast(count)); + } +} + +int UrmaEndpoint::ReqNotifyCq() { + if (!_resource || !_resource->jfc) { + errno = ENODEV; + return -1; + } + const int rc = urma_rearm_jfc(_resource->jfc, false); + if (rc != URMA_SUCCESS) { + errno = rc; + PLOG(WARNING) << "Fail to rearm URMA JFC"; + _socket->SetFailed(rc, "Fail to rearm URMA JFC: %s", berror(rc)); + return -1; + } + return 0; +} + +int UrmaEndpoint::PollingModeInitialize( + bthread_tag_t tag, std::function callback, + std::function init_fn, std::function release_fn) { + if (!FLAGS_urma_use_polling) { + return 0; + } + if (tag >= _poller_groups.size() || + _poller_groups[tag].pollers.empty()) { + errno = EINVAL; + return -1; + } + auto& group = _poller_groups[tag]; + bool expected = false; + if (!group.running.compare_exchange_strong(expected, true)) { + return 0; + } + struct FnArgs { + Poller* poller; + butil::atomic* running; + }; + auto fn = [](void* p) -> void* { + std::unique_ptr args(static_cast(p)); + Poller* poller = args->poller; + butil::atomic* running = args->running; + std::unordered_set cq_sids; + CqSidOp op; + + if (poller->init_fn) { + poller->init_fn(); + } + while (running->load(butil::memory_order_relaxed)) { + while (poller->op_queue.Dequeue(op)) { + if (op.type == CqSidOp::ADD) { + cq_sids.emplace(op.sid); + } else { + cq_sids.erase(op.sid); + } + } + for (SocketId sid : cq_sids) { + SocketUniquePtr s; + if (Socket::Address(sid, &s) == 0) { + PollCq(s.get()); + } + } + if (poller->callback) { + poller->callback(); + } + if (FLAGS_urma_poller_yield || cq_sids.empty()) { + bthread_yield(); + } + } + if (poller->release_fn) { + poller->release_fn(); + } + return nullptr; + }; + + auto& pollers = group.pollers; + for (size_t i = 0; i < pollers.size(); ++i) { + pollers[i].callback = callback; + pollers[i].init_fn = init_fn; + pollers[i].release_fn = release_fn; + std::unique_ptr args(new (std::nothrow) + FnArgs{&pollers[i], &group.running}); + if (!args) { + group.running.store(false, butil::memory_order_relaxed); + for (size_t j = 0; j < i; ++j) { + bthread_join(pollers[j].tid, nullptr); + pollers[j].tid = INVALID_BTHREAD; + } + errno = ENOMEM; + return -1; + } + bthread_attr_t attr = FLAGS_urma_disable_bthread + ? BTHREAD_ATTR_PTHREAD + : BTHREAD_ATTR_NORMAL; + attr.tag = tag; + bthread_attr_set_name(&attr, "UrmaPolling"); + const int rc = bthread_start_background( + &pollers[i].tid, &attr, fn, args.get()); + if (rc != 0) { + group.running.store(false, butil::memory_order_relaxed); + for (size_t j = 0; j < i; ++j) { + bthread_join(pollers[j].tid, nullptr); + pollers[j].tid = INVALID_BTHREAD; + } + errno = rc; + return -1; + } + args.release(); + } + return 0; +} + +void UrmaEndpoint::PollingModeRelease(bthread_tag_t tag) { + if (!FLAGS_urma_use_polling || tag >= _poller_groups.size()) { + return; + } + auto& group = _poller_groups[tag]; + group.running.store(false, butil::memory_order_relaxed); + for (auto& poller : group.pollers) { + if (poller.tid != INVALID_BTHREAD) { + bthread_join(poller.tid, nullptr); + poller.tid = INVALID_BTHREAD; + } + } +} + +void UrmaEndpoint::PollerAddCqSid() { + if (_cq_sid == INVALID_SOCKET_ID || _poller_groups.empty()) { + return; + } + _poller_tag = bthread_self_tag(); + if (_poller_tag >= _poller_groups.size()) { + return; + } + auto& pollers = _poller_groups[_poller_tag].pollers; + if (pollers.empty()) { return; } + const size_t index = + butil::fmix32(_cq_sid) % pollers.size(); + pollers[index].op_queue.Enqueue( + CqSidOp{CqSidOp::ADD, _cq_sid}); +} + +void UrmaEndpoint::PollerRemoveCqSid() { + if (_cq_sid == INVALID_SOCKET_ID || _poller_groups.empty() || + _poller_tag >= _poller_groups.size()) { + return; + } + auto& pollers = _poller_groups[_poller_tag].pollers; + if (pollers.empty()) { return; } + const size_t index = + butil::fmix32(_cq_sid) % pollers.size(); + pollers[index].op_queue.Enqueue( + CqSidOp{CqSidOp::REMOVE, _cq_sid}); +} int UrmaEndpoint::GlobalInitialize() { // Pre-allocate the prepared jetty pool. Skipped if URMA init is skipped // (unit-test mode). + if (FLAGS_urma_use_polling && _poller_groups.empty()) { + if (FLAGS_urma_poller_num <= 0) { + LOG(ERROR) << "urma_poller_num must be positive"; + errno = EINVAL; + return -1; + } + size_t ntags = static_cast(FLAGS_task_group_ntags); + if (ntags == 0) { ntags = 1; } + _poller_groups = std::vector(ntags); + } if (g_prepared_cnt > 0) { return 0; } urma_context_t* ctx = GetUrmaContext(); if (!ctx) { return 0; } for (int i = 0; i < FLAGS_urma_prepared_jetty_cnt && i < 1024; ++i) { auto* r = new (std::nothrow) UrmaResource(); if (!r) { break; } + r->jfce = urma_create_jfce(ctx); + if (!r->jfce || + (!FLAGS_urma_use_polling && r->jfce->fd < 0)) { + delete r; + break; + } urma_jfc_cfg_t jfc_cfg{}; jfc_cfg.depth = static_cast(FLAGS_urma_sq_size + FLAGS_urma_rq_size); + jfc_cfg.jfce = r->jfce; r->jfc = urma_create_jfc(ctx, &jfc_cfg); if (!r->jfc) { delete r; break; } urma_jfr_cfg_t jfr_cfg{}; @@ -1136,20 +1438,19 @@ int UrmaEndpoint::GlobalInitialize() { } void UrmaEndpoint::GlobalRelease() { - BAIDU_SCOPED_LOCK(g_prepared_mutex); - while (g_prepared_list) { - UrmaResource* next = g_prepared_list->next; - delete g_prepared_list; - g_prepared_list = next; + { + BAIDU_SCOPED_LOCK(g_prepared_mutex); + while (g_prepared_list) { + UrmaResource* next = g_prepared_list->next; + delete g_prepared_list; + g_prepared_list = next; + } + g_prepared_cnt = 0; + } + for (size_t tag = 0; tag < _poller_groups.size(); ++tag) { + PollingModeRelease(static_cast(tag)); } - g_prepared_cnt = 0; -} - -int UrmaEndpoint::PollingModeInitialize(bthread_tag_t, std::function, - std::function, std::function) { - return 0; } -void UrmaEndpoint::PollingModeRelease(bthread_tag_t) {} int UrmaEndpoint::BringUpJetty() { // URMA jetty is created in READY state; no RESET->INIT->RTR->RTS needed. diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index 354db98cd0..eed2eb3632 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -54,6 +54,7 @@ DECLARE_bool(urma_disable_bthread); // UrmaTransport::Connect(); its StartConnect spawns the client-side handshake // bthread that drives the URMA negotiation over the already-connected TCP fd. class UrmaConnect : public AppConnect { + friend class UrmaEndpoint; public: void StartConnect(const Socket* socket, void (*done)(int err, void* data), void* data) override; @@ -69,6 +70,7 @@ class UrmaConnect : public AppConnect { void Run(); void (*_done)(int, void*){nullptr}; void* _data{nullptr}; + int _error{0}; }; // POD holder for the URMA kernel objects backing one connection: @@ -219,8 +221,8 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // Post a single recv WR pointing at @block of @block_size. int DoPostRecv(void* block, size_t block_size); - // Send a pure-ACK WR (URMA_OPC_SEND with no payload, to flush peer-side - // flow-control credit). @imm is unused in v1 (kept for SEND_IMM upgrade). + // Send a pure-ACK URMA_OPC_SEND_IMM WR with no payload. @imm carries the + // number of receive WRs reposted for peer-side flow-control credit. int SendImm(uint32_t imm); // Piggyback ack: if _new_rq_wrs is above the threshold, flush it via // SendImm. @num is the number of new recv WRs to add. @@ -243,6 +245,9 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { void PollerRemoveCqSid(); inline void TryReadOnTcp(); + void FallbackToTcp(UrmaTransport* transport, bool process_tcp); + void FailHandshake(UrmaTransport* transport, int error, + const char* reason); // Construct a ParsedHello from local state (used by SendLocalHello). void MakeLocalParsedHello(ParsedHello* out) const; @@ -256,7 +261,7 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { Socket* _socket; // Handshake state. - State _state{UNINIT}; + butil::atomic _state{UNINIT}; int _handshake_version{0}; // 0 = unnegotiated; 2 = v2; 3 = v3 // The URMA resources (jetty / jfc / jfr / jfce / imported peer objects). @@ -323,6 +328,7 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { butil::atomic running; }; static std::vector _poller_groups; + bthread_tag_t _poller_tag{0}; DISALLOW_COPY_AND_ASSIGN(UrmaEndpoint); }; diff --git a/src/brpc/urma/urma_handshake.cpp b/src/brpc/urma/urma_handshake.cpp index 115a02989f..48a85b3494 100644 --- a/src/brpc/urma/urma_handshake.cpp +++ b/src/brpc/urma/urma_handshake.cpp @@ -25,6 +25,7 @@ #include +#include "butil/atomicops.h" #include "butil/iobuf.h" // IOBuf, IOPortal, IOBufAsZeroCopy* #include "butil/logging.h" #include "butil/sys_byteorder.h" @@ -115,10 +116,14 @@ void HelloMessage::Deserialize(const void* buf) { namespace { constexpr uint32_t MIN_BUFFER_SIZE = 1024; -constexpr uint32_t MIN_BUFFER_CNT = 1; +// Three SQ entries are reserved for flow-control messages. The advertised +// receive count must leave at least one data WR after those reservations. +constexpr uint32_t MIN_BUFFER_CNT = 3; constexpr uint32_t MAX_BUFFER_CNT = 65535; constexpr uint32_t MAX_V3_PB_SIZE = 4096; +} // namespace + bool ValidHello(const ParsedHello& h) { if (h.buffer_size < MIN_BUFFER_SIZE) { return false; } if (h.recv_buffer_cnt < MIN_BUFFER_CNT || h.recv_buffer_cnt > MAX_BUFFER_CNT) { @@ -130,8 +135,6 @@ bool ValidHello(const ParsedHello& h) { return true; } -} // namespace - // File-local (not in the anonymous namespace so it can be friend-declared // from urma_endpoint.h's UrmaEndpoint). Reads the body following the magic // and translates it into ParsedHello. @@ -141,7 +144,9 @@ int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated) { if (ep->ReadFromFd(body, v2_wire::HELLO_BODY_LEN) < 0) { return -1; } v2_wire::HelloMessage m; m.Deserialize(body); - if (m.hello_ver != v2_wire::HELLO_V2_VERSION || + if (m.msg_len < v2_wire::HELLO_MSG_LEN_MIN || + m.msg_len > v2_wire::HELLO_MSG_LEN_MAX || + m.hello_ver != v2_wire::HELLO_V2_VERSION || m.impl_ver != v2_wire::IMPL_V2_VERSION) { return 0; } ParsedHello p; p.buffer_size = m.buffer_size; @@ -211,7 +216,8 @@ int UrmaHandshakeServerV2::SendLocalHello() { v2_wire::HelloMessage m; _ep->FillLocalHelloV2(&m); auto* tp = static_cast(_ep->_socket->_transport.get()); - if (tp->_urma_state == UrmaTransport::URMA_OFF) { + if (tp->_urma_state.load(butil::memory_order_acquire) == + UrmaTransport::URMA_OFF) { // Tell the client we are not URMA-capable: zero the version fields so // the client's version check fails and it falls back to TCP. m.hello_ver = 0; diff --git a/src/brpc/urma/urma_handshake.h b/src/brpc/urma/urma_handshake.h index 66548476d3..6ada472944 100644 --- a/src/brpc/urma/urma_handshake.h +++ b/src/brpc/urma/urma_handshake.h @@ -51,16 +51,20 @@ struct ParsedHello { uint32_t seg_token_id = 0; // segment token id }; +// Validate all values that influence resource import and queue/window sizing. +// Both v2 and v3 handshakes must pass this check before negotiation succeeds. +bool ValidHello(const ParsedHello& hello); + // v2 binary wire layout. The full on-wire packet is: -// [ "URMA" 4B ][ HelloMessage body 92B ] => 96 bytes total. -// (msg_len = 96 includes the magic prefix and the body, matching RDMA's +// [ "URMA" 4B ][ HelloMessage body 82B ] => 86 bytes total. +// (msg_len = 86 includes the magic prefix and the body, matching RDMA's // convention where msg_len covers the whole packet.) namespace v2_wire { constexpr size_t MAGIC_STR_LEN = 4; constexpr size_t HELLO_BODY_LEN = 82; constexpr size_t HELLO_PACKET_LEN = MAGIC_STR_LEN + HELLO_BODY_LEN; // 86 -constexpr size_t HELLO_MSG_LEN_MIN = 96; +constexpr size_t HELLO_MSG_LEN_MIN = HELLO_PACKET_LEN; constexpr size_t HELLO_MSG_LEN_MAX = 4096; constexpr uint16_t HELLO_V2_VERSION = 2; constexpr uint16_t IMPL_V2_VERSION = 1; diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 042e597837..78c7b56b44 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -28,6 +28,7 @@ #include #include +#include #include #include @@ -42,6 +43,7 @@ #include "urma/urma_api.h" #include "urma/urma_types.h" +#include "brpc/urma/urma_endpoint.h" DECLARE_int32(task_group_ntags); @@ -76,7 +78,7 @@ DEFINE_bool(urma_recv_zerocopy, true, DEFINE_int32(urma_zerocopy_min_size, 512, "Receives smaller than this many bytes are copied (not zero-copy)"); -DEFINE_string(urma_device, "bonding_dev_0", +DEFINE_string(urma_device, "", "The name of the URMA device to use. Empty means the first one."); DEFINE_int32(urma_max_sge, 0, "Max SGEs per WR. 0 means the device maximum."); @@ -102,6 +104,7 @@ DEFINE_bool(urma_event_mode, true, // EAGAIN-like errno used by the send path to signal window-full. constexpr int kErrnoUrmaWindowFull = EAGAIN; +constexpr size_t kIOBufBlockHeaderLen = 32; // Set to true to skip real URMA hardware initialization (unit tests). When // true, GlobalUrmaInitializeOrDie() returns without touching liburma and the @@ -139,14 +142,10 @@ static butil::Mutex* g_user_segs_lock = nullptr; // Original IOBuf allocator (saved so we can restore it on release). static void* (*g_mem_alloc_orig)(size_t) = nullptr; static void (*g_mem_dealloc_orig)(void*) = nullptr; +static size_t g_default_block_size_orig = 0; namespace { -void ExitWithError(const char* msg) { - LOG(ERROR) << msg; - exit(1); -} - // Round up to the page size. size_t PageSize() { long ps = sysconf(_SC_PAGESIZE); @@ -308,30 +307,75 @@ bool InitPool() { // pool address; the per-WR length selects the slice. urma_target_seg_t* GetPoolSegFor(void* buf) { if (g_skip_urma_init || !g_pool_seg || !g_pool_base) { return nullptr; } - auto* base = static_cast(g_pool_base); - auto* p = static_cast(buf); - if (p >= base && p < base + g_pool_size && - static_cast(p - base) % g_pool_buffer_size == 0) { + if (buf == nullptr) { return g_pool_seg; } + const uintptr_t base = reinterpret_cast(g_pool_base); + const uintptr_t p = reinterpret_cast(buf); + if (p >= base && p - base < g_pool_size) { return g_pool_seg; } return nullptr; } +static void CleanupFailedInitialization() { + if (g_mem_alloc_orig) { + butil::iobuf::blockmem_allocate = g_mem_alloc_orig; + g_mem_alloc_orig = nullptr; + } + if (g_mem_dealloc_orig) { + butil::iobuf::blockmem_deallocate = g_mem_dealloc_orig; + g_mem_dealloc_orig = nullptr; + } + if (g_default_block_size_orig != 0) { + butil::SetDefaultBlockSize(g_default_block_size_orig); + g_default_block_size_orig = 0; + } + UrmaEndpoint::GlobalRelease(); + if (g_pool_seg) { + urma_unregister_seg(g_pool_seg); + g_pool_seg = nullptr; + } + if (g_pool_base) { + munmap(g_pool_base, g_pool_size); + g_pool_base = nullptr; + g_pool_size = 0; + } + delete g_pool; + g_pool = nullptr; + delete g_user_segs; + g_user_segs = nullptr; + delete g_user_segs_lock; + g_user_segs_lock = nullptr; + if (g_context) { + urma_delete_context(g_context); + g_context = nullptr; + } + g_device = nullptr; + g_urma_available.store(false, butil::memory_order_release); +} + // ============================================================================ // Global initialization. // ============================================================================ -static void GlobalUrmaInitializeOrDieImpl() { +static bool GlobalUrmaInitializeImpl() { if (BAIDU_UNLIKELY(g_skip_urma_init)) { g_urma_available.store(true, butil::memory_order_release); - return; + return true; + } + if (FLAGS_urma_sq_size < 16 || FLAGS_urma_sq_size > 4096 || + FLAGS_urma_rq_size < 16 || FLAGS_urma_rq_size > 4096 || + FLAGS_urma_buffer_size < 1024 || FLAGS_urma_buffer_count <= 0 || + FLAGS_urma_poller_num <= 0) { + LOG(ERROR) << "Invalid URMA queue, buffer, or poller configuration"; + errno = EINVAL; + return false; } urma_init_attr_t init_attr{}; int status = urma_init(&init_attr); if (status != URMA_SUCCESS && status != URMA_EEXIST) { LOG(ERROR) << "Fail to urma_init: " << status; - exit(1); + return false; } int num_devices = 0; @@ -339,7 +383,7 @@ static void GlobalUrmaInitializeOrDieImpl() { if (!devices || num_devices <= 0) { LOG(ERROR) << "No URMA device found"; urma_free_device_list(devices); - exit(1); + return false; } urma_device_t* found = nullptr; for (int i = 0; i < num_devices; ++i) { @@ -352,34 +396,40 @@ static void GlobalUrmaInitializeOrDieImpl() { if (!found) { LOG(ERROR) << "URMA device not found: " << FLAGS_urma_device; urma_free_device_list(devices); - exit(1); + return false; } g_device = found; + const std::string device_name = found->name; + if (urma_query_device(found, &g_device_attr) != URMA_SUCCESS) { + LOG(ERROR) << "Fail to urma_query_device"; + urma_free_device_list(devices); + g_device = nullptr; + return false; + } uint32_t eid_cnt = 0; - urma_eid_info_t* eids = urma_get_eid_list(g_device, &eid_cnt); + urma_eid_info_t* eids = urma_get_eid_list(found, &eid_cnt); if (!eids || eid_cnt == 0) { LOG(ERROR) << "Fail to urma_get_eid_list"; urma_free_eid_list(eids); urma_free_device_list(devices); - exit(1); + g_device = nullptr; + return false; } - g_context = urma_create_context(g_device, eids[0].eid_index); + g_context = urma_create_context(found, eids[0].eid_index); urma_free_eid_list(eids); urma_free_device_list(devices); + g_device = nullptr; if (!g_context) { LOG(ERROR) << "Fail to urma_create_context"; - exit(1); - } - - if (urma_query_device(g_device, &g_device_attr) != URMA_SUCCESS) { - LOG(ERROR) << "Fail to urma_query_device"; - exit(1); + return false; } g_max_sge = FLAGS_urma_max_sge > 0 ? FLAGS_urma_max_sge : static_cast(g_device_attr.dev_cap.max_jfs_sge); if (g_max_sge < 1) { g_max_sge = 1; } - g_recv_block_size = static_cast(FLAGS_urma_buffer_size); + g_recv_block_size = + static_cast(FLAGS_urma_buffer_size) - + kIOBufBlockHeaderLen; // User-segment table. g_user_segs_lock = new (std::nothrow) butil::Mutex; @@ -387,7 +437,7 @@ static void GlobalUrmaInitializeOrDieImpl() { if (!g_user_segs_lock || !g_user_segs || g_user_segs->init(65536) < 0) { LOG(ERROR) << "Fail to init g_user_segs"; - exit(1); + return false; } // Buffer pool. @@ -395,12 +445,13 @@ static void GlobalUrmaInitializeOrDieImpl() { g_pool_buffer_size = static_cast(FLAGS_urma_buffer_size); // Resize the pool's per-shard vectors to hold the configured count. size_t count = static_cast(FLAGS_urma_buffer_count); + g_pool->in_use.assign(count, 0); for (size_t s = 0; s < kShardCount; ++s) { g_pool->free_lists[s].reserve(count / kShardCount + 1); } if (!InitPool()) { LOG(ERROR) << "Fail to init URMA buffer pool"; - exit(1); + return false; } // Hijack IOBuf allocation so every IOBuf block is backed by a registered @@ -408,15 +459,22 @@ static void GlobalUrmaInitializeOrDieImpl() { // directly as an urma_sge_t pointing at g_pool_seg. g_mem_alloc_orig = butil::iobuf::blockmem_allocate; g_mem_dealloc_orig = butil::iobuf::blockmem_deallocate; + g_default_block_size_orig = butil::GetDefaultBlockSize(); butil::iobuf::blockmem_allocate = PoolAllocate; butil::iobuf::blockmem_deallocate = PoolDeallocate; butil::SetDefaultBlockSize(g_pool_buffer_size); + if (UrmaEndpoint::GlobalInitialize() != 0) { + LOG(ERROR) << "Fail to initialize URMA endpoint resources"; + return false; + } + g_urma_available.store(true, butil::memory_order_release); - LOG(INFO) << "URMA initialized: device=" << g_device->name + LOG(INFO) << "URMA initialized: device=" << device_name << " max_sge=" << g_max_sge << " buffer_size=" << g_pool_buffer_size << " buffer_count=" << g_pool->buffer_count(); + return true; } static butil::atomic g_init_once{0}; @@ -428,7 +486,10 @@ void GlobalUrmaInitializeOrDie() { if (g_init_once.compare_exchange_strong(expected, 1, butil::memory_order_acq_rel)) { BAIDU_SCOPED_LOCK(g_init_mutex); - GlobalUrmaInitializeOrDieImpl(); + if (!GlobalUrmaInitializeImpl()) { + LOG(WARNING) << "URMA initialization failed; falling back to TCP"; + CleanupFailedInitialization(); + } g_init_once.store(2, butil::memory_order_release); } else { // Wait for the other thread to finish init. @@ -455,44 +516,28 @@ int GetUrmaMaxSge() { return g_max_sge; } size_t GetUrmaRecvBlockSize() { return g_recv_block_size; } // ============================================================================ -// Polling mode (per bthread tag). Currently a no-op stub: URMA polling is -// driven by per-connection JFC polling in urma_endpoint.cpp. This hook exists -// to match the RdmaTransport::ContextInitOrDie signature and to allow future -// per-tag poller groups to be registered. +// Polling mode (per bthread tag). // ============================================================================ -struct PollerGroup { - bool running{false}; -}; -static std::vector g_poller_groups; - bool InitPollingModeWithTag(bthread_tag_t tag, - std::function /*callback*/, - std::function /*init_fn*/, - std::function /*release_fn*/) { + std::function callback, + std::function init_fn, + std::function release_fn) { if (BAIDU_UNLIKELY(g_skip_urma_init)) { return true; } - if (g_poller_groups.empty()) { - size_t ntags = static_cast(FLAGS_task_group_ntags); - if (ntags == 0) { ntags = 1; } - g_poller_groups.resize(ntags); - } - if (tag < g_poller_groups.size()) { - g_poller_groups[tag].running = true; - } - return true; + return UrmaEndpoint::PollingModeInitialize( + tag, std::move(callback), std::move(init_fn), + std::move(release_fn)) == 0; } void ReleasePollingModeWithTag(bthread_tag_t tag) { - if (tag < g_poller_groups.size()) { - g_poller_groups[tag].running = false; - } + UrmaEndpoint::PollingModeRelease(tag); } // ============================================================================ // User memory registration. // ============================================================================ -uint32_t RegisterMemoryForUrma(void* buf, size_t len) { +uint64_t RegisterMemoryForUrma(void* buf, size_t len) { if (BAIDU_UNLIKELY(g_skip_urma_init) || !g_context) { return 0; } urma_reg_seg_flag_t flag{}; flag.bs.token_policy = URMA_TOKEN_NONE; @@ -524,7 +569,7 @@ uint32_t RegisterMemoryForUrma(void* buf, size_t len) { urma_unregister_seg(tseg); return 0; } - return static_cast(reinterpret_cast(tseg)); + return static_cast(reinterpret_cast(tseg)); } void DeregisterMemoryForUrma(void* buf) { @@ -536,13 +581,13 @@ void DeregisterMemoryForUrma(void* buf) { g_user_segs->erase(buf); } -uint32_t GetSegHandle(void* buf) { +uint64_t GetSegHandle(void* buf) { // Pool buffer? if (g_pool_seg) { - auto* base = static_cast(g_pool_base); - auto* p = static_cast(buf); - if (p >= base && p < base + g_pool_size) { - return static_cast(reinterpret_cast(g_pool_seg)); + const uintptr_t base = reinterpret_cast(g_pool_base); + const uintptr_t p = reinterpret_cast(buf); + if (p >= base && p - base < g_pool_size) { + return static_cast(reinterpret_cast(g_pool_seg)); } } // User-registered buffer? @@ -550,10 +595,11 @@ uint32_t GetSegHandle(void* buf) { BAIDU_SCOPED_LOCK(*g_user_segs_lock); // Find the segment whose [base, base+len) contains buf. for (auto it = g_user_segs->begin(); it != g_user_segs->end(); ++it) { - auto* b = static_cast(it->second.base); - auto* p = static_cast(buf); - if (p >= b && p < b + it->second.len) { - return static_cast( + const uintptr_t base = + reinterpret_cast(it->second.base); + const uintptr_t p = reinterpret_cast(buf); + if (p >= base && p - base < it->second.len) { + return static_cast( reinterpret_cast(it->second.tseg)); } } diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index 98e736212b..d5c9ecd1f0 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -36,8 +36,8 @@ DECLARE_bool(usercode_in_coroutine); DECLARE_bool(usercode_in_pthread); namespace urma { -// Initialize the URMA environment. -// Exit the process if initialization fails. +// Initialize the URMA environment. Failure disables URMA globally so +// individual sockets transparently fall back to TCP. void GlobalUrmaInitializeOrDie(); // Initialize URMA polling mode for a given bthread tag. @@ -53,7 +53,7 @@ void ReleasePollingModeWithTag(bthread_tag_t tag); // Returns the (opaque, non-zero) target segment handle stored in the user-mr // table; 0 on failure. To use the memory in an IOBuf, append it via // append_user_data_with_meta and pass the returned handle as the data meta. -uint32_t RegisterMemoryForUrma(void* buf, size_t len); +uint64_t RegisterMemoryForUrma(void* buf, size_t len); // Deregister a previously registered user buffer. void DeregisterMemoryForUrma(void* buf); @@ -61,7 +61,7 @@ void DeregisterMemoryForUrma(void* buf); // Return the registered-segment handle for a given address, or 0 if the // address is not in any region managed by the URMA buffer pool or the user-mr // table. The handle is carried by urma_sge_t.tseg on the send path. -uint32_t GetSegHandle(void* buf); +uint64_t GetSegHandle(void* buf); // Get the global URMA context (the urma_context_t created on the selected // device / EID). Returns NULL if URMA is not initialized. diff --git a/src/brpc/urma_transport.cpp b/src/brpc/urma_transport.cpp index 51323de213..9f34661c2a 100644 --- a/src/brpc/urma_transport.cpp +++ b/src/brpc/urma_transport.cpp @@ -87,7 +87,8 @@ std::shared_ptr UrmaTransport::Connect() { } int UrmaTransport::CutFromIOBuf(butil::IOBuf* buf) { - if (_urma_ep && _urma_state != URMA_OFF) { + if (_urma_ep && + _urma_state.load(butil::memory_order_acquire) != URMA_OFF) { butil::IOBuf* data_arr[1] = {buf}; return _urma_ep->CutFromIOBufList(data_arr, 1); } else { @@ -96,7 +97,8 @@ int UrmaTransport::CutFromIOBuf(butil::IOBuf* buf) { } ssize_t UrmaTransport::CutFromIOBufList(butil::IOBuf** buf, size_t ndata) { - if (_urma_ep && _urma_state != URMA_OFF) { + if (_urma_ep && + _urma_state.load(butil::memory_order_acquire) != URMA_OFF) { return _urma_ep->CutFromIOBufList(buf, ndata); } else { return _tcp_transport->CutFromIOBufList(buf, ndata); @@ -105,7 +107,7 @@ ssize_t UrmaTransport::CutFromIOBufList(butil::IOBuf** buf, size_t ndata) { int UrmaTransport::WaitEpollOut(butil::atomic* _epollout_butex, bool pollin, const timespec duetime) { - if (_urma_state == URMA_ON) { + if (_urma_state.load(butil::memory_order_acquire) == URMA_ON) { const int expected_val = _epollout_butex->load(butil::memory_order_acquire); CHECK(_urma_ep != nullptr); if (!_urma_ep->IsWritable()) { @@ -178,7 +180,8 @@ void UrmaTransport::QueueMessage(InputMessageClosure& input_msg, } void UrmaTransport::Debug(std::ostream& os) { - if (_urma_state == URMA_ON && _urma_ep) { + if (_urma_state.load(butil::memory_order_acquire) == URMA_ON && + _urma_ep) { _urma_ep->DebugInfo(os); } } diff --git a/src/brpc/urma_transport.h b/src/brpc/urma_transport.h index fb78841514..152cf8ef3f 100644 --- a/src/brpc/urma_transport.h +++ b/src/brpc/urma_transport.h @@ -74,7 +74,7 @@ friend class urma::UrmaHandshakeClientV3; }; urma::UrmaEndpoint* _urma_ep = nullptr; - UrmaState _urma_state{URMA_UNKNOWN}; + butil::atomic _urma_state{URMA_UNKNOWN}; std::shared_ptr _tcp_transport; }; diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index 6f27be748c..524f339aa1 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -222,6 +222,26 @@ TEST(UrmaHandshakeTest, parsed_hello_segment_fields) { EXPECT_EQ(7u, p.seg_token_id); } +TEST(UrmaHandshakeTest, rejects_invalid_resource_and_window_values) { + urma::ParsedHello hello; + hello.buffer_size = 8192; + hello.recv_buffer_cnt = 127; + hello.jetty_id = 1; + hello.tp_type = URMA_CTP; + hello.seg_va = 0x1000; + hello.seg_len = 8192; + EXPECT_TRUE(urma::ValidHello(hello)); + + hello.recv_buffer_cnt = 2; + EXPECT_FALSE(urma::ValidHello(hello)); + hello.recv_buffer_cnt = 127; + hello.seg_len = 0; + EXPECT_FALSE(urma::ValidHello(hello)); + hello.seg_len = 8192; + hello.jetty_id = 0; + EXPECT_FALSE(urma::ValidHello(hello)); +} + // --------------------------------------------------------------------------- // SupportedByUrma: only baidu_std. // --------------------------------------------------------------------------- @@ -304,8 +324,11 @@ TEST_F(UrmaMockTest, post_and_poll_completion) { urma_context_t* ctx = urma_create_context(devices[0], 0); ASSERT_NE(nullptr, ctx); + urma_jfce_t* jfce = urma_create_jfce(ctx); + ASSERT_NE(nullptr, jfce); urma_jfc_cfg_t jfc_cfg{}; jfc_cfg.depth = 16; + jfc_cfg.jfce = jfce; urma_jfc_t* jfc = urma_create_jfc(ctx, &jfc_cfg); ASSERT_NE(nullptr, jfc); @@ -357,6 +380,124 @@ TEST_F(UrmaMockTest, post_and_poll_completion) { urma_delete_jetty(jetty); urma_delete_jfr(jfr); urma_delete_jfc(jfc); + urma_delete_jfce(jfce); + urma_delete_context(ctx); + urma_free_device_list(devices); +} + +TEST_F(UrmaMockTest, paired_send_moves_payload_and_immediate_credit) { + int num_devices = 0; + urma_device_t** devices = urma_get_device_list(&num_devices); + ASSERT_NE(nullptr, devices); + ASSERT_GT(num_devices, 0); + if (strcmp(devices[0]->name, "mock_urma_device") != 0) { + urma_free_device_list(devices); + GTEST_SKIP() << "This test exercises the bundled URMA mock"; + } + urma_context_t* ctx = urma_create_context(devices[0], 0); + ASSERT_NE(nullptr, ctx); + + urma_jfce_t* sender_jfce = urma_create_jfce(ctx); + urma_jfce_t* receiver_jfce = urma_create_jfce(ctx); + ASSERT_NE(nullptr, sender_jfce); + ASSERT_NE(nullptr, receiver_jfce); + urma_jfc_cfg_t sender_jfc_cfg{}; + sender_jfc_cfg.depth = 8; + sender_jfc_cfg.jfce = sender_jfce; + urma_jfc_t* sender_jfc = urma_create_jfc(ctx, &sender_jfc_cfg); + ASSERT_NE(nullptr, sender_jfc); + urma_jfc_cfg_t receiver_jfc_cfg{}; + receiver_jfc_cfg.depth = 8; + receiver_jfc_cfg.jfce = receiver_jfce; + urma_jfc_t* receiver_jfc = urma_create_jfc(ctx, &receiver_jfc_cfg); + ASSERT_NE(nullptr, receiver_jfc); + + urma_jfr_cfg_t sender_jfr_cfg{}; + sender_jfr_cfg.depth = 4; + sender_jfr_cfg.trans_mode = URMA_TM_RM; + sender_jfr_cfg.max_sge = 1; + sender_jfr_cfg.jfc = sender_jfc; + urma_jfr_t* sender_jfr = urma_create_jfr(ctx, &sender_jfr_cfg); + ASSERT_NE(nullptr, sender_jfr); + urma_jfr_cfg_t receiver_jfr_cfg = sender_jfr_cfg; + receiver_jfr_cfg.jfc = receiver_jfc; + urma_jfr_t* receiver_jfr = urma_create_jfr(ctx, &receiver_jfr_cfg); + ASSERT_NE(nullptr, receiver_jfr); + + auto create_jetty = [&](urma_jfc_t* jfc, urma_jfr_t* jfr) { + urma_jetty_cfg_t cfg{}; + cfg.flag.bs.share_jfr = 1; + cfg.jfs_cfg.depth = 4; + cfg.jfs_cfg.trans_mode = URMA_TM_RM; + cfg.jfs_cfg.max_sge = 1; + cfg.jfs_cfg.jfc = jfc; + cfg.shared.jfr = jfr; + cfg.shared.jfc = jfc; + return urma_create_jetty(ctx, &cfg); + }; + urma_jetty_t* sender = create_jetty(sender_jfc, sender_jfr); + urma_jetty_t* receiver = create_jetty(receiver_jfc, receiver_jfr); + ASSERT_NE(nullptr, sender); + ASSERT_NE(nullptr, receiver); + + urma_rjetty_t remote{}; + remote.jetty_id = receiver->jetty_id; + remote.trans_mode = URMA_TM_RM; + remote.type = URMA_JETTY; + remote.tp_type = URMA_CTP; + urma_token_t token{}; + urma_target_jetty_t* target = + urma_import_jetty(ctx, &remote, &token); + ASSERT_NE(nullptr, target); + + char recv_buf[64]{}; + urma_sge_t recv_sge{ + reinterpret_cast(recv_buf), sizeof(recv_buf), nullptr, + nullptr}; + urma_sg_t recv_sg{&recv_sge, 1}; + urma_jfr_wr_t recv_wr{recv_sg, 99, nullptr}; + urma_jfr_wr_t* bad_recv = nullptr; + ASSERT_EQ(URMA_SUCCESS, + urma_post_jfr_wr(receiver_jfr, &recv_wr, &bad_recv)); + + const char payload[] = "urma-payload"; + urma_sge_t send_sge{ + reinterpret_cast(payload), sizeof(payload), nullptr, + nullptr}; + urma_sg_t send_sg{&send_sge, 1}; + urma_jfs_wr_t send_wr{}; + send_wr.opcode = URMA_OPC_SEND_IMM; + send_wr.flag.bs.complete_enable = 1; + send_wr.tjetty = target; + send_wr.user_ctx = 7; + send_wr.send.src = send_sg; + send_wr.send.imm_data = 13; + urma_jfs_wr_t* bad_send = nullptr; + ASSERT_EQ(URMA_SUCCESS, + urma_post_jetty_send_wr(sender, &send_wr, &bad_send)); + + urma_cr_t sender_cr{}; + ASSERT_EQ(1, urma_poll_jfc(sender_jfc, 1, &sender_cr)); + EXPECT_EQ(0, sender_cr.flag.bs.s_r); + EXPECT_EQ(7u, sender_cr.user_ctx); + + urma_cr_t receiver_cr{}; + ASSERT_EQ(1, urma_poll_jfc(receiver_jfc, 1, &receiver_cr)); + EXPECT_EQ(1, receiver_cr.flag.bs.s_r); + EXPECT_EQ(URMA_CR_OPC_SEND_WITH_IMM, receiver_cr.opcode); + EXPECT_EQ(13u, receiver_cr.imm_data); + EXPECT_EQ(sizeof(payload), receiver_cr.completion_len); + EXPECT_EQ(0, memcmp(payload, recv_buf, sizeof(payload))); + + urma_unimport_jetty(target); + urma_delete_jetty(receiver); + urma_delete_jetty(sender); + urma_delete_jfr(receiver_jfr); + urma_delete_jfr(sender_jfr); + urma_delete_jfc(receiver_jfc); + urma_delete_jfc(sender_jfc); + urma_delete_jfce(receiver_jfce); + urma_delete_jfce(sender_jfce); urma_delete_context(ctx); urma_free_device_list(devices); } From 6dc30009385c2980dceb4bce7722344faf26942f Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 11:09:14 +0800 Subject: [PATCH 17/45] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 ++ src/brpc/socket.h | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index db41888c9a..b6b24f169d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,6 +118,8 @@ endif() set(WITH_URMA_VAL "0") if(WITH_URMA) set(WITH_URMA_VAL "1") +endif() + set(WITH_UBRING_VAL "0") if(WITH_UBRING) set(WITH_UBRING_VAL "1") diff --git a/src/brpc/socket.h b/src/brpc/socket.h index 96daca041e..547f14e512 100644 --- a/src/brpc/socket.h +++ b/src/brpc/socket.h @@ -61,7 +61,7 @@ class RdmaHandshakeServerV2; class RdmaHandshakeClientV3; class RdmaHandshakeServerV3; } -<<<<<<< HEAD + namespace urma { class UrmaEndpoint; class UrmaConnect; @@ -71,12 +71,11 @@ class UrmaHandshakeClientV3; class UrmaHandshakeServerV3; } -======= namespace ubring { class UBShmEndpoint; class UBConnect; } ->>>>>>> origin + class Socket; class AuthContext; class EventDispatcher; From f10eb22ce53ae7cb462fd3329714754f51fd506f Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 11:21:02 +0800 Subject: [PATCH 18/45] =?UTF-8?q?=E4=BF=AE=E5=A4=8Durma=20performance?= =?UTF-8?q?=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/cmake/BrpcExample.cmake | 59 ++++++++++- example/urma_performance/CMakeLists.txt | 131 +++--------------------- 2 files changed, 75 insertions(+), 115 deletions(-) diff --git a/example/cmake/BrpcExample.cmake b/example/cmake/BrpcExample.cmake index 7afb3bd3a9..bd003aa600 100644 --- a/example/cmake/BrpcExample.cmake +++ b/example/cmake/BrpcExample.cmake @@ -39,6 +39,52 @@ macro(brpc_example_find_common_deps out_libs) find_package(Threads REQUIRED) find_package(Protobuf REQUIRED) + set(BRPC_EXAMPLE_CXX_STANDARD 11) + set(_protobuf_absl_targets) + if(Protobuf_VERSION VERSION_GREATER 4.21) + # Protobuf 5+ exposes Abseil types from generated code and requires + # C++17. Keep this list in sync with the top-level CMake build. + set(BRPC_EXAMPLE_CXX_STANDARD 17) + find_package(absl REQUIRED CONFIG) + set(_protobuf_absl_targets + absl::absl_check + absl::absl_log + absl::algorithm + absl::base + absl::bind_front + absl::bits + absl::btree + absl::cleanup + absl::cord + absl::core_headers + absl::debugging + absl::die_if_null + absl::dynamic_annotations + absl::flags + absl::flat_hash_map + absl::flat_hash_set + absl::function_ref + absl::hash + absl::layout + absl::log_initialize + absl::log_globals + absl::log_severity + absl::memory + absl::node_hash_map + absl::node_hash_set + absl::random_distributions + absl::random_random + absl::span + absl::status + absl::statusor + absl::strings + absl::synchronization + absl::time + absl::type_traits + absl::utility + absl::variant + ) + endif() # Search for libthrift* by best effort. If it is not found and brpc is # compiled with thrift protocol enabled, a link error would be reported. @@ -81,6 +127,7 @@ macro(brpc_example_find_common_deps out_libs) Threads::Threads ${GFLAGS_LIBRARY} ${PROTOBUF_LIBRARIES} + ${_protobuf_absl_targets} ${LEVELDB_LIB} ${OPENSSL_CRYPTO_LIBRARY} ${OPENSSL_SSL_LIBRARY} @@ -118,13 +165,19 @@ function(brpc_example_configure_target target_name) ${OPENSSL_INCLUDE_DIR} ${GPERFTOOLS_INCLUDE_DIR} ${RDMA_INCLUDE_PATH} + ${URMA_INCLUDE_PATH} ) if(_include_dirs) target_include_directories(${target_name} PRIVATE ${_include_dirs}) endif() - target_compile_features(${target_name} PRIVATE cxx_std_11) + if(NOT BRPC_EXAMPLE_CXX_STANDARD) + set(BRPC_EXAMPLE_CXX_STANDARD 11) + endif() + target_compile_features(${target_name} PRIVATE + cxx_std_${BRPC_EXAMPLE_CXX_STANDARD} + ) target_compile_definitions(${target_name} PRIVATE NDEBUG __const__=__unused__ @@ -147,6 +200,10 @@ function(brpc_example_configure_target target_name) target_compile_definitions(${target_name} PRIVATE BRPC_WITH_RDMA=1) endif() + if(BRPC_EXAMPLE_WITH_URMA) + target_compile_definitions(${target_name} PRIVATE BRPC_WITH_URMA=1) + endif() + if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") include(CheckFunctionExists) check_function_exists(clock_gettime BRPC_EXAMPLE_HAVE_CLOCK_GETTIME) diff --git a/example/urma_performance/CMakeLists.txt b/example/urma_performance/CMakeLists.txt index f1cd402396..d8a4eaee8e 100644 --- a/example/urma_performance/CMakeLists.txt +++ b/example/urma_performance/CMakeLists.txt @@ -15,129 +15,32 @@ # specific language governing permissions and limitations # under the License. -cmake_minimum_required(VERSION 2.8.10) +cmake_minimum_required(VERSION 3.16...3.28) project(urma_performance C CXX) -option(LINK_SO "Whether examples are linked dynamically" OFF) +include(${CMAKE_CURRENT_LIST_DIR}/../cmake/BrpcExample.cmake) -execute_process( - COMMAND bash -c "find ${PROJECT_SOURCE_DIR}/../.. -type d -regex '.*output/include$' | head -n1 | xargs dirname | tr -d '\n'" - OUTPUT_VARIABLE OUTPUT_PATH -) +option(LINK_SO "Whether examples are linked dynamically" OFF) -set(CMAKE_PREFIX_PATH ${OUTPUT_PATH}) +brpc_example_find_common_deps(DYNAMIC_LIB) -include(FindThreads) -include(FindProtobuf) -find_package(PkgConfig REQUIRED) -pkg_check_modules(ABSL absl_log absl_status absl_cord absl_strings absl_time absl_base absl_synchronization absl_spinlock_wait) protobuf_generate_cpp(PROTO_SRC PROTO_HEADER test.proto) -# include PROTO_HEADER -include_directories(${CMAKE_CURRENT_BINARY_DIR}) - -# Search for libthrift* by best effort. If it is not found and brpc is -# compiled with thrift protocol enabled, a link error would be reported. -find_library(THRIFT_LIB NAMES thrift) -if (NOT THRIFT_LIB) - set(THRIFT_LIB "") -endif() - -find_path(BRPC_INCLUDE_PATH NAMES brpc/server.h) -if(LINK_SO) - find_library(BRPC_LIB NAMES brpc) -else() - find_library(BRPC_LIB NAMES libbrpc.a brpc) -endif() -if((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB)) - message(FATAL_ERROR "Fail to find brpc") -endif() -include_directories(${BRPC_INCLUDE_PATH}) - -find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h) -find_library(GFLAGS_LIBRARY NAMES gflags libgflags) -if((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIBRARY)) - message(FATAL_ERROR "Fail to find gflags") -endif() -include_directories(${GFLAGS_INCLUDE_PATH}) - -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - include(CheckFunctionExists) - CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME) - if(NOT HAVE_CLOCK_GETTIME) - set(DEFINE_CLOCK_GETTIME "-DNO_CLOCK_GETTIME_IN_MAC") - endif() -endif() - -set(CMAKE_CPP_FLAGS "${DEFINE_CLOCK_GETTIME} -DBRPC_WITH_URMA=1") -set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -DNDEBUG -O2 -D__const__=__unused__ -pipe -W -Wall -Wno-unused-parameter -fPIC -fno-omit-frame-pointer") - -if(CMAKE_VERSION VERSION_LESS "3.1.3") - if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") - endif() - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") - endif() -else() - set(CMAKE_CXX_STANDARD 17) - set(CMAKE_CXX_STANDARD_REQUIRED ON) -endif() - -find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h) -find_library(LEVELDB_LIB NAMES leveldb) -if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB)) - message(FATAL_ERROR "Fail to find leveldb") -endif() -include_directories(${LEVELDB_INCLUDE_PATH}) - -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - set(OPENSSL_ROOT_DIR - "/usr/local/opt/openssl" # Homebrew installed OpenSSL - ) -endif() - -find_package(OpenSSL) -include_directories(${OPENSSL_INCLUDE_DIR}) - +set(BRPC_EXAMPLE_WITH_URMA ON) +find_path(URMA_INCLUDE_PATH NAMES urma/urma_api.h + PATHS /usr/include /usr/local/include + PATH_SUFFIXES ub/umdk ub/umdk/urma umdk umdk/urma) find_library(URMA_LIB NAMES urma) -if (NOT URMA_LIB) - message(FATAL_ERROR "Fail to find urma") -endif() - -set(DYNAMIC_LIB - ${CMAKE_THREAD_LIBS_INIT} - ${GFLAGS_LIBRARY} - ${PROTOBUF_LIBRARIES} - ${ABSL_LIBRARIES} - ${LEVELDB_LIB} - ${OPENSSL_CRYPTO_LIBRARY} - ${OPENSSL_SSL_LIBRARY} - ${THRIFT_LIB} - ${URMA_LIB} - dl - z - ) - -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - set(DYNAMIC_LIB ${DYNAMIC_LIB} - pthread - "-framework CoreFoundation" - "-framework CoreGraphics" - "-framework CoreData" - "-framework CoreText" - "-framework Security" - "-framework Foundation" - "-Wl,-U,_MallocExtension_ReleaseFreeMemory" - "-Wl,-U,_ProfilerStart" - "-Wl,-U,_ProfilerStop" - "-Wl,-U,__Z13GetStackTracePPvii" - "-Wl,-U,_mallctl" - "-Wl,-U,_malloc_stats_print" - ) +if(URMA_LIB) + list(APPEND DYNAMIC_LIB ${URMA_LIB}) +else() + message(STATUS + "liburma not found; the example requires brpc built with the bundled URMA mock") endif() add_executable(urma_performance_client client.cpp ${PROTO_SRC} ${PROTO_HEADER}) +brpc_example_configure_target(urma_performance_client) add_executable(urma_performance_server server.cpp ${PROTO_SRC} ${PROTO_HEADER}) +brpc_example_configure_target(urma_performance_server) -target_link_libraries(urma_performance_client ${BRPC_LIB} ${DYNAMIC_LIB}) -target_link_libraries(urma_performance_server ${BRPC_LIB} ${DYNAMIC_LIB}) +target_link_libraries(urma_performance_client PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB}) +target_link_libraries(urma_performance_server PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB}) From 9acab4c327be3a28236749a27f6754536ff2a725 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 11:54:12 +0800 Subject: [PATCH 19/45] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dserver=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/urma_performance/server.cpp | 6 +++++- src/brpc/server.cpp | 10 ++++----- src/brpc/urma/urma_helper.cpp | 33 ++++++++++++++++++++++++----- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/example/urma_performance/server.cpp b/example/urma_performance/server.cpp index 07accfd0a1..87c8c69136 100644 --- a/example/urma_performance/server.cpp +++ b/example/urma_performance/server.cpp @@ -65,6 +65,11 @@ int main(int argc, char* argv[]) { brpc::Server server; test::PerfTestServiceImpl service; + if (server.AddService(&service, brpc::SERVER_DOESNT_OWN_SERVICE) != 0) { + LOG(ERROR) << "Fail to add PerfTestService"; + return -1; + } + brpc::ServerOptions options; options.socket_mode = FLAGS_use_urma ? brpc::SOCKET_MODE_URMA : brpc::SOCKET_MODE_TCP; @@ -72,7 +77,6 @@ int main(int argc, char* argv[]) { LOG(ERROR) << "Fail to start server"; return -1; } - server.AddService(&service, brpc::SERVER_DOESNT_OWN_SERVICE); LOG(INFO) << "URMA performance server started on port " << FLAGS_port << " (use_urma=" << FLAGS_use_urma << ")"; server.RunUntilAskedToQuit(); diff --git a/src/brpc/server.cpp b/src/brpc/server.cpp index 230c228416..feb2eb8ab4 100644 --- a/src/brpc/server.cpp +++ b/src/brpc/server.cpp @@ -1136,11 +1136,11 @@ int Server::StartInternal(const butil::EndPoint& endpoint, continue; } if (port_range.min_port != port_range.max_port) { - LOG(ERROR) << "Fail to listen " << _listen_addr.ip - << ":[" << port_range.min_port << '-' - << port_range.max_port << ']'; + PLOG(ERROR) << "Fail to listen " << _listen_addr.ip + << ":[" << port_range.min_port << '-' + << port_range.max_port << ']'; } else { - LOG(ERROR) << "Fail to listen " << _listen_addr; + PLOG(ERROR) << "Fail to listen " << _listen_addr; } return -1; } @@ -1201,7 +1201,7 @@ int Server::StartInternal(const butil::EndPoint& endpoint, butil::fd_guard sockfd(tcp_listen(internal_point, SetSocketBufferOptions)); if (sockfd < 0) { - LOG(ERROR) << "Fail to listen " << internal_point << " (internal)"; + PLOG(ERROR) << "Fail to listen " << internal_point << " (internal)"; return -1; } if (NULL == _internal_am) { diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 78c7b56b44..0fd70d7a68 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -121,6 +121,10 @@ static urma_context_t* g_context = nullptr; static urma_device_attr_t g_device_attr{}; static int g_max_sge = 1; static size_t g_recv_block_size = 8 * 1024; +// urma_init/urma_uninit manage process-global liburma state. Only uninitialize +// it when this helper performed the successful initialization; URMA_EEXIST +// means another component owns that state. +static bool g_owns_urma_init = false; // The single registered segment backing the buffer pool. The whole pool is // one urma_register_seg call, sliced into fixed-size buffers. urma_target_seg_t @@ -316,7 +320,8 @@ urma_target_seg_t* GetPoolSegFor(void* buf) { return nullptr; } -static void CleanupFailedInitialization() { +static void GlobalRelease() { + g_urma_available.store(false, butil::memory_order_release); if (g_mem_alloc_orig) { butil::iobuf::blockmem_allocate = g_mem_alloc_orig; g_mem_alloc_orig = nullptr; @@ -349,8 +354,14 @@ static void CleanupFailedInitialization() { urma_delete_context(g_context); g_context = nullptr; } + if (g_owns_urma_init) { + const urma_status_t status = urma_uninit(); + if (status != URMA_SUCCESS) { + LOG(WARNING) << "Fail to urma_uninit: " << status; + } + g_owns_urma_init = false; + } g_device = nullptr; - g_urma_available.store(false, butil::memory_order_release); } // ============================================================================ @@ -372,11 +383,22 @@ static bool GlobalUrmaInitializeImpl() { } urma_init_attr_t init_attr{}; - int status = urma_init(&init_attr); + const urma_status_t status = urma_init(&init_attr); if (status != URMA_SUCCESS && status != URMA_EEXIST) { - LOG(ERROR) << "Fail to urma_init: " << status; + if (status == URMA_FAIL) { + LOG(ERROR) << "Fail to urma_init: " << status + << " (URMA_FAIL). liburma returns URMA_FAIL when it " + "cannot load a provider, or when URMA was already " + "initialized by another component. Verify readable " + "provider libraries under /usr/lib64/urma, loaded " + "URMA kernel drivers, and that urma_init is called " + "only once per process"; + } else { + LOG(ERROR) << "Fail to urma_init: " << status; + } return false; } + g_owns_urma_init = (status == URMA_SUCCESS); int num_devices = 0; urma_device_t** devices = urma_get_device_list(&num_devices); @@ -470,6 +492,7 @@ static bool GlobalUrmaInitializeImpl() { } g_urma_available.store(true, butil::memory_order_release); + atexit(GlobalRelease); LOG(INFO) << "URMA initialized: device=" << device_name << " max_sge=" << g_max_sge << " buffer_size=" << g_pool_buffer_size @@ -488,7 +511,7 @@ void GlobalUrmaInitializeOrDie() { BAIDU_SCOPED_LOCK(g_init_mutex); if (!GlobalUrmaInitializeImpl()) { LOG(WARNING) << "URMA initialization failed; falling back to TCP"; - CleanupFailedInitialization(); + GlobalRelease(); } g_init_once.store(2, butil::memory_order_release); } else { From da53b7aeed8f86ec895c591cfd05ef6c6a142158 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 14:30:02 +0800 Subject: [PATCH 20/45] fix --- docs/cn/urma.md | 2 +- docs/cn/urma_proposal.md | 2 +- docs/en/urma.md | 2 +- src/brpc/urma/urma_endpoint.cpp | 45 ++++++++++++++++++++++++++++++--- src/brpc/urma/urma_helper.cpp | 21 +++++++++++---- 5 files changed, 60 insertions(+), 12 deletions(-) diff --git a/docs/cn/urma.md b/docs/cn/urma.md index 4af118c29b..bfb37ee6f8 100644 --- a/docs/cn/urma.md +++ b/docs/cn/urma.md @@ -120,7 +120,7 @@ block 都由注册 segment 支撑,发送路径可直接从 IOBuf block refs | `--urma_zerocopy_min_size` | 512 | 小于此值的接收拷贝 | | `--urma_device` | "" | URMA 设备名(空=首个) | | `--urma_max_sge` | 0 | 每 WR SGE 上限(0=设备上限) | -| `--urma_prepared_jetty_cnt` | 1024 | 预连接 Jetty+CQ 数量 | +| `--urma_prepared_jetty_cnt` | 8 | 预连接 Jetty+CQ 请求数量;会根据 `RLIMIT_NOFILE` 自动限制 | | `--urma_buffer_size` | 8192 | 池中每个 buffer 大小(字节) | | `--urma_buffer_count` | 65536 | 池中 buffer 数量 | | `--urma_client_handshake_version` | 2 | 客户端握手版本(2=二进制,3=protobuf) | diff --git a/docs/cn/urma_proposal.md b/docs/cn/urma_proposal.md index 9b83cac4d5..f41484e105 100644 --- a/docs/cn/urma_proposal.md +++ b/docs/cn/urma_proposal.md @@ -322,7 +322,7 @@ server.Start(port, &sopt); | `--urma_device` | "" | `urma_helper.cpp` | URMA 设备名;空=首个活跃 | | `--urma_sq_size` | 128 | `urma_endpoint.cpp` | 每连接 SQ 深度([16,4096]) | | `--urma_rq_size` | 128 | `urma_endpoint.cpp` | 每连接 RQ 深度 | -| `--urma_prepared_jetty_cnt` | 1024 | `urma_endpoint.cpp` | 预连接 Jetty 池大小 | +| `--urma_prepared_jetty_cnt` | 8 | `urma_endpoint.cpp` | 预连接 Jetty 池大小 | | `--urma_cqe_poll_once` | 32 | `urma_endpoint.cpp` | 每次 `ibv_poll_cq` 上限 | | `--urma_recv_zerocopy` | true | `urma_endpoint.cpp` | 接收零拷贝开关 | | `--urma_zerocopy_min_size` | 512 | `urma_endpoint.cpp` | 零拷贝阈值(小于则拷贝) | diff --git a/docs/en/urma.md b/docs/en/urma.md index 69fc6ac55f..d51991ea03 100644 --- a/docs/en/urma.md +++ b/docs/en/urma.md @@ -127,7 +127,7 @@ All flags use the `urma_` prefix (mirroring RDMA's `rdma_` prefix): | `--urma_zerocopy_min_size` | 512 | Receives smaller than this are copied | | `--urma_device` | "" | URMA device name (empty = first) | | `--urma_max_sge` | 0 | Max SGEs per WR (0 = device max) | -| `--urma_prepared_jetty_cnt` | 1024 | Pre-allocated Jetty+CQ sets | +| `--urma_prepared_jetty_cnt` | 8 | Requested pre-allocated Jetty+CQ sets; automatically capped according to `RLIMIT_NOFILE` | | `--urma_buffer_size` | 8192 | Per-buffer size in the pool (bytes) | | `--urma_buffer_count` | 65536 | Number of buffers in the pool | | `--urma_client_handshake_version` | 2 | Client wire version (2=binary, 3=protobuf) | diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 8fb86922e5..ee97f4df6e 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -84,6 +85,36 @@ static butil::Mutex g_prepared_mutex; static UrmaResource* g_prepared_list = nullptr; // singly-linked static int g_prepared_cnt = 0; +static int PreparedJettyCount() { + const int requested = + std::max(0, std::min(FLAGS_urma_prepared_jetty_cnt, 1024)); + if (requested == 0) { + return 0; + } + + struct rlimit nofile; + if (getrlimit(RLIMIT_NOFILE, &nofile) != 0 || + nofile.rlim_cur == RLIM_INFINITY) { + return requested; + } + + // In event mode each prepared JFCE consumes a file descriptor. Keep room + // for one TCP fd per future URMA connection and for brpc/system internals. + static const rlim_t kReservedFdCount = 64; + const rlim_t max_prepared = + nofile.rlim_cur > kReservedFdCount + ? (nofile.rlim_cur - kReservedFdCount) / 2 + : 0; + if (max_prepared >= static_cast(requested)) { + return requested; + } + + LOG(WARNING) << "Cap URMA prepared jetty count from " << requested + << " to " << max_prepared + << " due to RLIMIT_NOFILE=" << nofile.rlim_cur; + return static_cast(max_prepared); +} + std::vector UrmaEndpoint::_poller_groups; // ============================================================================ @@ -378,7 +409,8 @@ int UrmaEndpoint::AllocateResources() { jetty_cfg.jfs_cfg.depth = static_cast(_sq_size); jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; - jetty_cfg.jfs_cfg.max_sge = 1; + jetty_cfg.jfs_cfg.max_sge = + static_cast(GetUrmaMaxSge()); jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; jetty_cfg.jfs_cfg.err_timeout = URMA_TYPICAL_ERR_TIMEOUT; jetty_cfg.jfs_cfg.jfc = _resource->jfc; @@ -609,7 +641,10 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { int rc = urma_post_jetty_send_wr(_resource->jetty, &wr, &bad_wr); if (rc != URMA_SUCCESS) { _new_rq_wrs.fetch_add(ack, butil::memory_order_relaxed); - LOG(WARNING) << "urma_post_jetty_send_wr failed: " << rc; + LOG(WARNING) << "urma_post_jetty_send_wr failed: " << rc + << ", num_sge=" << sge_index + << ", configured_max_sge=" << GetUrmaMaxSge() + << ", payload_size=" << this_len; errno = rc; return -1; } @@ -1394,7 +1429,8 @@ int UrmaEndpoint::GlobalInitialize() { if (g_prepared_cnt > 0) { return 0; } urma_context_t* ctx = GetUrmaContext(); if (!ctx) { return 0; } - for (int i = 0; i < FLAGS_urma_prepared_jetty_cnt && i < 1024; ++i) { + const int prepared_jetty_count = PreparedJettyCount(); + for (int i = 0; i < prepared_jetty_count; ++i) { auto* r = new (std::nothrow) UrmaResource(); if (!r) { break; } r->jfce = urma_create_jfce(ctx); @@ -1421,7 +1457,8 @@ int UrmaEndpoint::GlobalInitialize() { jetty_cfg.jfs_cfg.depth = static_cast(FLAGS_urma_sq_size); jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; - jetty_cfg.jfs_cfg.max_sge = 1; + jetty_cfg.jfs_cfg.max_sge = + static_cast(GetUrmaMaxSge()); jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; jetty_cfg.jfs_cfg.err_timeout = URMA_TYPICAL_ERR_TIMEOUT; jetty_cfg.jfs_cfg.jfc = r->jfc; diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 0fd70d7a68..2d6dc030de 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -82,8 +82,9 @@ DEFINE_string(urma_device, "", "The name of the URMA device to use. Empty means the first one."); DEFINE_int32(urma_max_sge, 0, "Max SGEs per WR. 0 means the device maximum."); -DEFINE_int32(urma_prepared_jetty_cnt, 1024, - "Number of pre-allocated Jetty+CQ sets for fast connect"); +DEFINE_int32(urma_prepared_jetty_cnt, 8, + "Requested number of pre-allocated Jetty+CQ sets for fast " + "connect; capped automatically according to RLIMIT_NOFILE"); DEFINE_int32(urma_buffer_size, 8 * 1024, "Per-buffer size in the URMA buffer pool (bytes). " @@ -446,9 +447,19 @@ static bool GlobalUrmaInitializeImpl() { LOG(ERROR) << "Fail to urma_create_context"; return false; } - g_max_sge = FLAGS_urma_max_sge > 0 ? FLAGS_urma_max_sge - : static_cast(g_device_attr.dev_cap.max_jfs_sge); - if (g_max_sge < 1) { g_max_sge = 1; } + uint32_t device_max_sge = g_device_attr.dev_cap.max_jfs_sge; + if (device_max_sge == 0) { device_max_sge = 1; } + // urma_jfs_cfg_t::max_sge is uint8_t. + if (device_max_sge > 255) { device_max_sge = 255; } + g_max_sge = static_cast(device_max_sge); + if (FLAGS_urma_max_sge > 0) { + if (FLAGS_urma_max_sge > g_max_sge) { + LOG(WARNING) << "Cap urma_max_sge from " << FLAGS_urma_max_sge + << " to device/config limit " << g_max_sge; + } else { + g_max_sge = FLAGS_urma_max_sge; + } + } g_recv_block_size = static_cast(FLAGS_urma_buffer_size) - kIOBufBlockHeaderLen; From 5497f012ba41786c73347add8f03382d4670fa8b Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 14:43:05 +0800 Subject: [PATCH 21/45] fix --- example/urma_performance/client.cpp | 41 +++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/example/urma_performance/client.cpp b/example/urma_performance/client.cpp index 6100ffa022..4369d1dfbd 100644 --- a/example/urma_performance/client.cpp +++ b/example/urma_performance/client.cpp @@ -38,10 +38,12 @@ DEFINE_int32(queue_depth, 1, "How many requests can be pending in the queue"); DEFINE_int32(expected_qps, 0, "The expected QPS"); DEFINE_int32(max_thread_num, 16, "The max number of threads are used"); DEFINE_int32(attachment_size, -1, "Attachment size is used (in Bytes)"); +DEFINE_int32(rpc_timeout_ms, 1000, "Timeout for each RPC in milliseconds"); DEFINE_bool(echo_attachment, false, "Select whether attachment should be echo"); DEFINE_bool(use_urma, true, "Use URMA transport (true) or TCP (false)"); bvar::LatencyRecorder g_latency("client"); +bvar::Adder g_error_count("client_error_count"); static void* worker(void* arg) { test::PerfTestService_Stub* stub = @@ -65,7 +67,13 @@ static void* worker(void* arg) { } for (int i = 0; i < FLAGS_queue_depth; ++i) { brpc::Join(ids[i]); - g_latency << cntls[i].latency_us(); + if (cntls[i].Failed()) { + g_error_count << 1; + LOG_EVERY_SECOND(WARNING) + << "RPC failed: " << cntls[i].ErrorText(); + } else { + g_latency << cntls[i].latency_us(); + } } if (qps > 0) { usleep(FLAGS_queue_depth * 1000000 / qps); @@ -79,6 +87,9 @@ int main(int argc, char* argv[]) { brpc::ChannelOptions options; options.socket_mode = FLAGS_use_urma ? brpc::SOCKET_MODE_URMA : brpc::SOCKET_MODE_TCP; + options.connect_timeout_ms = FLAGS_rpc_timeout_ms; + options.timeout_ms = FLAGS_rpc_timeout_ms; + options.max_retry = 0; brpc::Channel channel; if (channel.Init(FLAGS_server.c_str(), &options) != 0) { LOG(ERROR) << "Fail to init channel to " << FLAGS_server; @@ -86,16 +97,42 @@ int main(int argc, char* argv[]) { } test::PerfTestService_Stub stub(&channel); + // Complete one RPC before starting all workers. This makes handshake and + // data-path failures visible instead of looking like a hung benchmark. + brpc::Controller warmup_cntl; + warmup_cntl.set_timeout_ms(FLAGS_rpc_timeout_ms); + test::PerfTestRequest warmup_req; + test::PerfTestResponse warmup_resp; + warmup_req.set_echo_attachment(false); + stub.Test(&warmup_cntl, &warmup_req, &warmup_resp, nullptr); + if (warmup_cntl.Failed()) { + LOG(ERROR) << "Warm-up RPC failed: " << warmup_cntl.ErrorText(); + return -1; + } + LOG(INFO) << "Warm-up RPC to " << FLAGS_server + << " succeeded, latency=" << warmup_cntl.latency_us() << "us"; + int thread_num = FLAGS_thread_num; if (thread_num == 0) { thread_num = FLAGS_max_thread_num; } + if (thread_num <= 0 || FLAGS_queue_depth <= 0) { + LOG(ERROR) << "thread_num and queue_depth must be positive"; + return -1; + } std::vector tids(thread_num); for (int i = 0; i < thread_num; ++i) { bthread_start_background(&tids[i], nullptr, worker, &stub); } - LOG(INFO) << "URMA performance client started (use_urma=" << FLAGS_use_urma + LOG(INFO) << "URMA performance client started (server=" << FLAGS_server + << ", use_urma=" << FLAGS_use_urma << ", threads=" << thread_num << ")"; + while (!brpc::IsAskedToQuit()) { + sleep(1); + LOG(INFO) << "qps=" << g_latency.qps(1) + << " latency=" << g_latency.latency(1) << "us" + << " errors=" << g_error_count.get_value(); + } for (int i = 0; i < thread_num; ++i) { bthread_join(tids[i], nullptr); } From 118b636fe2474f192fc46ab52244b3af9d26b171 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 14:58:49 +0800 Subject: [PATCH 22/45] fix --- src/brpc/urma/urma_endpoint.cpp | 55 +++++++++++++++++++++++++++++++++ src/brpc/urma/urma_helper.cpp | 6 +++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index ee97f4df6e..b4ae193044 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -70,6 +70,7 @@ DECLARE_bool(urma_recv_zerocopy); DECLARE_int32(urma_zerocopy_min_size); DECLARE_int32(urma_prepared_jetty_cnt); DECLARE_bool(urma_poller_yield); +DECLARE_bool(urma_trace_verbose); // ---- Constants shared with the handshake module ---- static const int WAIT_TIMEOUT_MS = 50; @@ -648,6 +649,10 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { errno = rc; return -1; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA posted SEND: payload_size=" << this_len + << " num_sge=" << sge_index << " ack=" << ack + << " on " << _socket->description(); _sq_current = (_sq_current + 1) % (_sq_size - RESERVED_WR_NUM); _remote_rq_window_size.fetch_sub(1, butil::memory_order_relaxed); _sq_window_size.fetch_sub(1, butil::memory_order_relaxed); @@ -755,6 +760,15 @@ int UrmaEndpoint::SendAck(int num) { ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { bool zerocopy = FLAGS_urma_recv_zerocopy; + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA completion: status=" << cr.status + << " direction=" << (cr.flag.bs.s_r ? "recv" : "send") + << " opcode=" + << (cr.flag.bs.s_r ? static_cast(cr.opcode) : -1) + << " length=" << cr.completion_len + << " imm=" << (cr.flag.bs.s_r ? cr.imm_data : 0) + << " user_ctx=" << cr.user_ctx + << " on " << _socket->description(); if (cr.status != URMA_CR_SUCCESS) { LOG(WARNING) << "URMA completion failed, status=" << cr.status; errno = EIO; @@ -854,6 +868,9 @@ void UrmaEndpoint::PollCq(Socket* m) { return; } if (cnt == 0) { break; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA polled " << cnt << " completion(s) on " + << s->description(); for (int i = 0; i < cnt; ++i) { if (s->Failed()) { return; } ssize_t nr = ep->HandleCompletion(crs[i]); @@ -1002,6 +1019,10 @@ void UrmaEndpoint::FallbackToTcp(UrmaTransport* transport, bool process_tcp) { void UrmaEndpoint::FailHandshake(UrmaTransport* transport, int error, const char* reason) { + LOG(ERROR) << "URMA handshake failed in state=" << GetStateStr() + << " on " << _socket->description() + << ": " << reason << ", error=" << error + << " (" << berror(error) << ')'; transport->_urma_state = UrmaTransport::URMA_OFF; _state.store(FAILED, butil::memory_order_release); DeallocateResources(); @@ -1022,6 +1043,8 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { SocketUniquePtr s(ep->_socket); auto* tp = static_cast(s->_transport.get()); UrmaConnect::RunGuard guard(static_cast(s->_app_connect.get())); + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "Start URMA client handshake on " << s->description(); if (!IsUrmaAvailable()) { ep->FallbackToTcp(tp, true); return nullptr; @@ -1036,6 +1059,8 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FallbackToTcp(tp, true); return nullptr; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA client resources ready on " << s->description(); ep->_state = C_HELLO_SEND; std::unique_ptr hs(CreateClientHandshake(ep)); ep->_handshake_version = hs->ProtocolVersion(); @@ -1044,6 +1069,8 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FailHandshake(tp, saved_errno, "send client hello"); return nullptr; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA client hello sent on " << s->description(); ep->_state = C_HELLO_WAIT; ParsedHello remote; bool negotiated = false; @@ -1056,6 +1083,8 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FallbackToTcp(tp, true); return nullptr; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA client received server hello on " << s->description(); ep->ApplyRemoteHello(remote); ep->_state = C_IMPORT_PEER; if (ep->ImportPeer(remote) < 0) { @@ -1063,6 +1092,8 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FailHandshake(tp, saved_errno, "import server resources"); return nullptr; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA client imported server resources on " << s->description(); ep->_state = C_ACK_SEND; uint32_t flags = HELLO_ACK_URMA_OK; uint32_t flags_be = butil::HostToNet32(flags); @@ -1073,6 +1104,9 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { } tp->_urma_state = UrmaTransport::URMA_ON; ep->_state = ESTABLISHED; + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA client handshake established (v" + << ep->_handshake_version << ") on " << s->description(); return nullptr; } @@ -1081,6 +1115,8 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { SocketUniquePtr s(ep->_socket); auto* tp = static_cast(s->_transport.get()); UrmaConnect::RunGuard guard(static_cast(s->_app_connect.get())); + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "Start URMA server handshake on " << s->description(); ep->_state = S_HELLO_WAIT; uint8_t magic[v2_wire::MAGIC_STR_LEN]; if (ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { @@ -1107,6 +1143,8 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->FailHandshake(tp, EPROTO, "invalid client hello"); return nullptr; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA server received client hello on " << s->description(); ep->_state = S_ALLOC_RES; if (ep->AllocateResources() < 0) { const int saved_errno = errno ? errno : EIO; @@ -1118,6 +1156,8 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->FailHandshake(tp, saved_errno, "post server receives"); return nullptr; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA server resources ready on " << s->description(); ep->ApplyRemoteHello(remote); ep->_state = S_IMPORT_PEER; if (ep->ImportPeer(remote) < 0) { @@ -1125,12 +1165,16 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->FailHandshake(tp, saved_errno, "import client resources"); return nullptr; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA server imported client resources on " << s->description(); ep->_state = S_HELLO_SEND; if (hs->SendLocalHello() < 0) { const int saved_errno = errno ? errno : EIO; ep->FailHandshake(tp, saved_errno, "send server hello"); return nullptr; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA server hello sent on " << s->description(); ep->_state = S_ACK_WAIT; uint32_t flags_be = 0; if (ep->ReadFromFd(&flags_be, HELLO_ACK_LEN) < 0) { @@ -1149,6 +1193,9 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { } tp->_urma_state = UrmaTransport::URMA_ON; ep->_state = ESTABLISHED; + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA server handshake established (v" + << ep->_handshake_version << ") on " << s->description(); } else { ep->FallbackToTcp(tp, true); } @@ -1161,6 +1208,10 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { void UrmaConnect::StartConnect(const Socket* socket, void (*done)(int, void*), void* data) { + SocketUniquePtr s; + if (Socket::Address(socket->id(), &s) != 0) { + return; + } _done = done; _data = data; _error = 0; @@ -1187,6 +1238,10 @@ void UrmaConnect::StartConnect(const Socket* socket, tp->_urma_ep->_state = UrmaEndpoint::FALLBACK_TCP; tp->_urma_state = UrmaTransport::URMA_OFF; Run(); + } else { + // ProcessHandshakeAtClient adopts this reference in its + // SocketUniquePtr constructor. + s.release(); } } diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 2d6dc030de..0ebf847a68 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -503,7 +503,11 @@ static bool GlobalUrmaInitializeImpl() { } g_urma_available.store(true, butil::memory_order_release); - atexit(GlobalRelease); + // Do not register GlobalRelease with atexit. IOBuf keeps blocks in + // thread-local chains whose destructors may run after atexit handlers. + // Unmapping the registered pool here would leave those TLS chains + // pointing into unmapped memory. The process reclaims global URMA + // resources on exit; GlobalRelease remains available for init rollback. LOG(INFO) << "URMA initialized: device=" << device_name << " max_sge=" << g_max_sge << " buffer_size=" << g_pool_buffer_size From 170c03dafa7d8e4e625b158ec4069a9a58f28f64 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 15:23:04 +0800 Subject: [PATCH 23/45] fix --- src/brpc/urma/urma_endpoint.cpp | 90 +++++++++++++++++++++++---------- src/brpc/urma/urma_endpoint.h | 5 +- 2 files changed, 65 insertions(+), 30 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index b4ae193044..3545707902 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -851,43 +851,74 @@ void UrmaEndpoint::PollCq(Socket* m) { if (Socket::Address(ep->_socket->id(), &s) != 0) { return; } if (s->Failed()) { return; } + urma_jfc_t* event_jfc = nullptr; if (!FLAGS_urma_use_polling) { - if (ep->GetAndAckEvents(s) != 0 || ep->ReqNotifyCq() != 0) { + const int event_count = ep->WaitCqEvent(s, &event_jfc); + if (event_count <= 0) { return; } } ssize_t bytes = 0; + int completion_error = 0; InputMessageClosure last_msg; while (true) { int n = std::max(1, std::min(FLAGS_urma_cqe_poll_once, 32)); urma_cr_t crs[32]; int cnt = urma_poll_jfc(ep->_resource->jfc, n, crs); if (cnt < 0) { - s->SetFailed(EIO, "urma_poll_jfc failed: %d", cnt); - return; + completion_error = EIO; + break; } if (cnt == 0) { break; } LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA polled " << cnt << " completion(s) on " << s->description(); for (int i = 0; i < cnt; ++i) { - if (s->Failed()) { return; } + if (s->Failed()) { + completion_error = ECANCELED; + break; + } ssize_t nr = ep->HandleCompletion(crs[i]); if (nr < 0) { - s->SetFailed(errno, "URMA completion error"); - return; + completion_error = errno ? errno : EIO; + break; } bytes += nr; } + if (completion_error != 0) { break; } + } + + if (!FLAGS_urma_use_polling) { + // URMA requires this strict order: + // wait_jfc -> poll_jfc -> ack_jfc -> rearm_jfc. + uint32_t nevents = 1; + urma_ack_jfc(&event_jfc, &nevents, 1); + if (ep->ReqNotifyCq() != 0) { + return; + } + } + if (completion_error != 0) { + if (!s->Failed()) { + s->SetFailed(completion_error, "URMA completion error"); + } + return; } if (bytes > 0) { int64_t received_us = butil::cpuwide_time_us(); int64_t base_realtime = butil::gettimeofday_us() - received_us; auto* messenger = static_cast(s->user()); if (messenger) { - messenger->ProcessNewMessage(s.get(), bytes, false, received_us, - base_realtime, last_msg); + const int rc = + messenger->ProcessNewMessage(s.get(), bytes, false, received_us, + base_realtime, last_msg); + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA dispatched " << bytes + << " byte(s) to InputMessenger, rc=" << rc + << " on " << s->description(); + } else { + LOG(ERROR) << "URMA socket has no InputMessenger: " + << s->description(); } } } @@ -1288,32 +1319,35 @@ void UrmaEndpoint::DebugInfo(std::ostream& os, butil::StringPiece) const { << " handshake_version=" << _handshake_version; } -int UrmaEndpoint::GetAndAckEvents(SocketUniquePtr& s) { +int UrmaEndpoint::WaitCqEvent(SocketUniquePtr& s, + urma_jfc_t** event_jfc) { if (!_resource || !_resource->jfce || !_resource->jfc) { errno = ENODEV; return -1; } - while (true) { - urma_jfc_t* jfcs[16]{}; - int count = urma_wait_jfc(_resource->jfce, 16, 0, jfcs); - if (count < 0) { - if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) { - return 0; - } - const int saved_errno = errno; - PLOG(ERROR) << "Fail to wait URMA JFC event from " - << s->description(); - s->SetFailed(saved_errno, "Fail to wait URMA JFC event: %s", - berror(saved_errno)); - return -1; - } - if (count == 0) { return 0; } - uint32_t nevents[16]; - for (int i = 0; i < count; ++i) { - nevents[i] = 1; + *event_jfc = nullptr; + int count = urma_wait_jfc(_resource->jfce, 1, 0, event_jfc); + if (count < 0) { + if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) { + return 0; } - urma_ack_jfc(jfcs, nevents, static_cast(count)); + const int saved_errno = errno; + PLOG(ERROR) << "Fail to wait URMA JFC event from " + << s->description(); + s->SetFailed(saved_errno, "Fail to wait URMA JFC event: %s", + berror(saved_errno)); + return -1; + } + if (count == 0) { return 0; } + if (*event_jfc != _resource->jfc) { + LOG(ERROR) << "Unexpected URMA JFC event on " << s->description(); + errno = EPROTO; + s->SetFailed(EPROTO, "Unexpected URMA JFC event"); + return -1; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA JFC event received on " << s->description(); + return 1; } int UrmaEndpoint::ReqNotifyCq() { diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index eed2eb3632..b269ea36f7 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -234,8 +234,9 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // (0 for send completions), or -1 on error (errno set). ssize_t HandleCompletion(const urma_cr_t& cr); - // Get-and-ack async events on the JFCE fd (event mode only). - int GetAndAckEvents(SocketUniquePtr& s); + // Consume one async event from the JFCE fd (event mode only). The caller + // must poll the JFC before acknowledging and rearming the event. + int WaitCqEvent(SocketUniquePtr& s, urma_jfc_t** event_jfc); // Request completion notification (event mode only). int ReqNotifyCq(); From df368cb0063557fdbc3373217cf14f5c51531bba Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 16:18:25 +0800 Subject: [PATCH 24/45] =?UTF-8?q?=E6=B7=BB=E5=8A=A0bond=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/en/urma.md | 8 + graphify-out/GRAPH_HEALTH.txt | 35 + graphify-out/GRAPH_REPORT.md | 357 + graphify-out/cache/stat-index.json | 1 + graphify-out/cost.json | 12 + graphify-out/graph.html | 320 + graphify-out/graph.json | 21342 ++++++++++++++++ graphify-out/manifest.json | 52 + ...0d20642510e3e3d14a570a041257996772a31.json | 1 + ...615a74b896364be016d8a28ec657f714e1422.json | 1 + ...ea3f39bb1c3f972074cfdeb983ed964bc1f54.json | 1 + ...d4d6ab3654daf64631c4821071a362adf2f1e.json | 1 + ...1bdaf944a337cafc10e12152fa2915751f7d0.json | 1 + ...705c41b2381b7a5af286fab00d3241d6a5eca.json | 1 + ...b8cdaa14683461e3f2562a4ce8dedce8721ed.json | 1 + ...7d33a73a6879dca40078e12765880de1061a1.json | 1 + ...0956f4dd08aef5a92ffdbffd70a11effd1833.json | 1 + ...37defc274c585af039c0e7b995bfe7f0bf804.json | 1 + .../urma/graphify-out/cache/stat-index.json | 1 + src/brpc/urma/urma_bonding.h | 35 + src/brpc/urma/urma_endpoint.cpp | 43 +- src/brpc/urma/urma_helper.cpp | 65 + src/brpc/urma/urma_helper.h | 3 + 23 files changed, 22283 insertions(+), 1 deletion(-) create mode 100644 graphify-out/GRAPH_HEALTH.txt create mode 100644 graphify-out/GRAPH_REPORT.md create mode 100644 graphify-out/cache/stat-index.json create mode 100644 graphify-out/cost.json create mode 100644 graphify-out/graph.html create mode 100644 graphify-out/graph.json create mode 100644 graphify-out/manifest.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833.json create mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804.json create mode 100644 src/brpc/urma/graphify-out/cache/stat-index.json create mode 100644 src/brpc/urma/urma_bonding.h diff --git a/docs/en/urma.md b/docs/en/urma.md index d51991ea03..fc58b988c5 100644 --- a/docs/en/urma.md +++ b/docs/en/urma.md @@ -127,11 +127,19 @@ All flags use the `urma_` prefix (mirroring RDMA's `rdma_` prefix): | `--urma_zerocopy_min_size` | 512 | Receives smaller than this are copied | | `--urma_device` | "" | URMA device name (empty = first) | | `--urma_max_sge` | 0 | Max SGEs per WR (0 = device max) | +| `--urma_bonding_mode` | 0 | Bonding mode: 0=standalone, 1=active-backup, 2=balance | +| `--urma_bonding_level` | 0 | Bonding level: 0=IODIE, 1=port | | `--urma_prepared_jetty_cnt` | 8 | Requested pre-allocated Jetty+CQ sets; automatically capped according to `RLIMIT_NOFILE` | | `--urma_buffer_size` | 8192 | Per-buffer size in the pool (bytes) | | `--urma_buffer_count` | 65536 | Number of buffers in the pool | | `--urma_client_handshake_version` | 2 | Client wire version (2=binary, 3=protobuf) | +For a device whose name starts with `bonding`, brpc configures the provider +immediately after context creation and before creating segments or queues. +The default standalone+IODIE combination matches the UMDK performance tool. +Bonding support requires the provider extension header +`urma/urma_ubagg.h`. + ## Coexistence with UBRing UrmaTransport is the recommended transport for **large packets and diff --git a/graphify-out/GRAPH_HEALTH.txt b/graphify-out/GRAPH_HEALTH.txt new file mode 100644 index 0000000000..38d5fcd8c3 --- /dev/null +++ b/graphify-out/GRAPH_HEALTH.txt @@ -0,0 +1,35 @@ +[graphify] MultiDiGraph edge-collapse diagnostic +input: +input_stage: provided JSON (normal graph.json is post-build) +effective_directed: +nodes: 823 +unverified_code_nodes: 0 +raw_edges: 1182 +valid_candidate_edges: 1100 +missing_endpoint_edges: 0 +dangling_endpoint_edges: 82 +self_loop_edges: 0 +exact_duplicate_edges: 0 +directed_unique_endpoint_pairs: 1100 +directed_same_endpoint_collapsed_edges: 0 +undirected_unique_endpoint_pairs: 1100 +undirected_same_endpoint_collapsed_edges: 0 +same_endpoint_group_count: 0 +relation_variant_groups: 0 +source_file_variant_groups: 0 +source_location_variant_groups: 0 +context_variant_groups: 0 +post_build_graph_type: Graph +post_build_edges: 1111 +producer_suppression_sites: 10 +producer_suppression_examples: + - L1047 seen_ids arity=unknown + - L1197 seen_ids arity=unknown + - L1199 seen_doc_refs arity=unknown + - L1622 seen_ids arity=unknown + - L2091 seen_keys arity=unknown + - L3014 seen_ids arity=unknown + - L3122 seen_ids arity=unknown + - L3201 seen_ids arity=unknown +note: normal graph.json is post-build; raw producer loss must be measured earlier. +GRAPH HEALTH WARNING: 82 dangling-endpoint edges - graph may be incomplete/corrupt. diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md new file mode 100644 index 0000000000..fa6dc57f1c --- /dev/null +++ b/graphify-out/GRAPH_REPORT.md @@ -0,0 +1,357 @@ +# Graph Report - C:\workspace\code\opensource\brpc\src\brpc\urma (2026-07-29) + +## Corpus Check +- Corpus is ~27,958 words - fits in a single context window. You may not need a graph. + +## Summary +- 823 nodes · 1111 edges · 59 communities +- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 61 edges (avg confidence: 0.8) +- Token cost: 0 input · 0 output + +## Community Hubs (Navigation) +- Endpoint Data Path +- Handshake State Machine +- Device Capability Model +- Transport Port Attributes +- Global Runtime Buffer Pool +- Memory Segment Registration +- Work Request Payloads +- Context Address Identity +- Queue Pair Configuration +- Transport Attribute Values +- Core SDK Types +- Endpoint Resource Allocation +- URMA API Lifecycle +- Endpoint Resource Bundle +- Completion Queue Processing +- Mock URMA Backend +- Unreliable Transport Resources +- Completion Queue Internals +- Completion Record Model +- Receive Queue Internals +- Jetty Runtime State +- Jetty Group Runtime +- Parsed Handshake Payload +- Send Queue Internals +- Completion Queue Options +- Receive Queue Options +- Send Queue Options +- Imported Target Jetty +- Atomic Scatter Gather +- Context Event Resources +- Send Work Request +- Device Attribute Record +- Jetty Configuration +- Jetty Group Configuration +- Remote Jetty Identity +- Transport Path Configuration +- Resource Import APIs +- Completion Queue Configuration +- Remote Receive Queue +- Token Identifier Lifecycle +- Transport Configuration Query +- Network Address Model +- Notification Record +- Active Transport Config +- Async Event Model +- Receive Posting Lifecycle +- Congestion Control Entry +- Jetty Runtime Attributes +- Jetty Option State +- Receive Queue Attributes +- Pending Receive Buffer +- Completion Event Wait +- Active Transport Attributes +- Completion Queue Attributes +- Send Queue Attributes +- User Control Input +- User Control Output +- URMA Initialization Attributes +- Service Level Mapping + +## God Nodes (most connected - your core abstractions) +1. `urma_device_cap` - 47 edges +2. `urma_tp_attr` - 24 edges +3. `urma_tp_attr_value` - 23 edges +4. `UrmaEndpoint` - 20 edges +5. `HelloMessage` - 19 edges +6. `urma_target_jetty` - 18 edges +7. `urma_jetty_grp` - 17 edges +8. `urma_jetty` - 17 edges +9. `urma_jfc` - 16 edges +10. `UrmaResource` - 16 edges + +## Surprising Connections (you probably didn't know these) +- `GlobalUrmaInitializeImpl()` --calls--> `urma_init()` [INFERRED] + urma_helper.cpp → mock_urma.cpp +- `GlobalUrmaInitializeImpl()` --calls--> `urma_get_device_list()` [INFERRED] + urma_helper.cpp → mock_urma.cpp +- `GlobalUrmaInitializeImpl()` --calls--> `urma_free_device_list()` [INFERRED] + urma_helper.cpp → mock_urma.cpp +- `GlobalUrmaInitializeImpl()` --calls--> `urma_query_device()` [INFERRED] + urma_helper.cpp → mock_urma.cpp +- `GlobalUrmaInitializeImpl()` --calls--> `urma_get_eid_list()` [INFERRED] + urma_helper.cpp → mock_urma.cpp + +## Import Cycles +- None detected. + +## Communities (59 total, 0 thin omitted) + +### Community 0 - "Endpoint Data Path" +Cohesion: 0.05 +Nodes (44): AppConnect, IOBuf, ostream, Socket, StringPiece, bthread_tag_t, function, ParsedHello (+36 more) + +### Community 1 - "Handshake State Machine" +Cohesion: 0.06 +Nodes (49): UrmaEndpoint::FillLocalHelloV2(), UrmaEndpoint::ProcessHandshakeAtServer(), UrmaEndpoint::ReadAndParseHelloV3(), ParsedHello, CreateClientHandshake(), CreateServerHandshakeByMagic(), DrainBytes(), HelloMessage (+41 more) + +### Community 2 - "Device Capability Model" +Cohesion: 0.04 +Nodes (47): urma_device_cap, atomic_feat, ceq_cnt, congestion_ctrl_alg, feature, max_cas_size, max_eid_cnt, max_fetch_and_add_size (+39 more) + +### Community 3 - "Transport Port Attributes" +Cohesion: 0.05 +Nodes (42): urma_device, name, ops, path, sysfs_dev, type, urma_net_addr_info, index (+34 more) + +### Community 4 - "Global Runtime Buffer Pool" +Cohesion: 0.07 +Nodes (36): atomic, urma_delete_context(), urma_register_seg(), urma_uninit(), urma_unregister_seg(), AlignUp(), BufferPool, free_lists (+28 more) + +### Community 5 - "Memory Segment Registration" +Cohesion: 0.06 +Nodes (36): urma_seg_t, urma_token_t, urma_cr_token, token_id, token_value, urma_seg, attr, urma_seg_cfg (+28 more) + +### Community 6 - "Work Request Payloads" +Cohesion: 0.07 +Nodes (29): urma_target_seg_t, urma_jfr_wr, next, src, user_ctx, urma_rw_wr, dst, notify_data (+21 more) + +### Community 7 - "Context Address Identity" +Cohesion: 0.07 +Nodes (29): urma_context, aggr_mode, async_fd, dev, dev_fd, eid, eid_index, mutex (+21 more) + +### Community 8 - "Queue Pair Configuration" +Cohesion: 0.08 +Nodes (25): urma_jfc_t, urma_jfr_cfg, depth, flag, id, jfc, max_sge, min_rnr_timer (+17 more) + +### Community 9 - "Transport Attribute Values" +Cohesion: 0.09 +Nodes (23): urma_tp_attr_value, ack_udp_srcport, at, at_times, data_udp_srcport, dip, dma, dscp (+15 more) + +### Community 10 - "Core SDK Types" +Cohesion: 0.12 +Nodes (15): urma_guid, raw, urma_jfce_cfg, depth, user_ctx, urma_ops, urma_provider_ops, urma_ref (+7 more) + +### Community 11 - "Endpoint Resource Allocation" +Cohesion: 0.19 +Nodes (16): urma_context_t, urma_jetty_cfg_t, urma_jfc_cfg_t, urma_jfce_t, urma_jfr_cfg_t, urma_create_jetty(), urma_create_jfc(), urma_create_jfce() (+8 more) + +### Community 12 - "URMA API Lifecycle" +Cohesion: 0.18 +Nodes (15): urma_jetty_t, urma_status_t, urma_target_jetty_t, urma_bind_jetty(), urma_delete_jetty(), urma_delete_jfc(), urma_init(), urma_modify_jetty() (+7 more) + +### Community 13 - "Endpoint Resource Bundle" +Cohesion: 0.12 +Nodes (16): urma_jetty_t, urma_jfc_t, urma_jfce_t, urma_jfr_t, urma_target_jetty_t, urma_target_seg_t, PreparedJetty, res (+8 more) + +### Community 14 - "Completion Queue Processing" +Cohesion: 0.18 +Nodes (14): deque, mutex, urma_cr_t, urma_jfc_t, JfcState, completions, event_pending, mutex (+6 more) + +### Community 15 - "Mock URMA Backend" +Cohesion: 0.22 +Nodes (13): urma_ack_async_event(), urma_create_context(), urma_free_device_list(), urma_free_eid_list(), urma_get_async_event(), urma_get_device_by_name(), urma_get_device_list(), urma_get_eid_list() (+5 more) + +### Community 16 - "Unreliable Transport Resources" +Cohesion: 0.14 +Nodes (14): urma_ur, attr, urma_ur_info, attr, cnt, name, seg_list, size (+6 more) + +### Community 17 - "Completion Queue Internals" +Cohesion: 0.15 +Nodes (13): urma_jfc_cfg_t, urma_jfc, async_events_acked, comp_events_acked, event_cond, event_mutex, handle, jfc_cfg (+5 more) + +### Community 18 - "Completion Record Model" +Cohesion: 0.15 +Nodes (13): urma_cr, completion_len, flag, local_id, opcode, remote_id, status, tpn (+5 more) + +### Community 19 - "Receive Queue Internals" +Cohesion: 0.17 +Nodes (12): pthread_mutex_t, urma_jfr_cfg_t, urma_jfr, async_events_acked, event_cond, event_mutex, handle, jfr_cfg (+4 more) + +### Community 20 - "Jetty Runtime State" +Cohesion: 0.17 +Nodes (12): urma_jetty_cfg_t, urma_jetty, async_events_acked, event_cond, event_mutex, handle, jetty_cfg, jetty_id (+4 more) + +### Community 21 - "Jetty Group Runtime" +Cohesion: 0.17 +Nodes (12): urma_jetty_t, urma_jetty_grp, async_events_acked, event_cond, event_mutex, handle, jetty_cnt, jetty_grp_id (+4 more) + +### Community 22 - "Parsed Handshake Payload" +Cohesion: 0.17 +Nodes (12): ParsedHello, buffer_size, eid, jetty_id, recv_buffer_cnt, seg_eid, seg_len, seg_token_id (+4 more) + +### Community 23 - "Send Queue Internals" +Cohesion: 0.18 +Nodes (11): pthread_cond_t, urma_jfs, async_events_acked, event_cond, event_mutex, handle, jfs_cfg, jfs_id (+3 more) + +### Community 24 - "Completion Queue Options" +Cohesion: 0.18 +Nodes (11): urma_jfc_opt, is_actived, jfc_opt_mask, reserved, urma_jfc_ci, urma_jfc_cqe_base_addr, urma_jfc_db_addr, urma_jfc_db_status (+3 more) + +### Community 25 - "Receive Queue Options" +Cohesion: 0.18 +Nodes (11): urma_jfr_opt, is_actived, jfr_opt_mask, reserved, urma_jfr_ci, urma_jfr_db_addr, urma_jfr_db_status, urma_jfr_id (+3 more) + +### Community 26 - "Send Queue Options" +Cohesion: 0.18 +Nodes (11): urma_jfs_opt, is_actived, jfs_opt_mask, reserved, urma_jfs_ci, urma_jfs_db_addr, urma_jfs_db_status, urma_jfs_id (+3 more) + +### Community 27 - "Imported Target Jetty" +Cohesion: 0.18 +Nodes (11): urma_target_jetty, flag, handle, id, policy, tp, tp_type, trans_mode (+3 more) + +### Community 28 - "Atomic Scatter Gather" +Cohesion: 0.20 +Nodes (10): urma_sge_t, urma_cas_wr, dst, src, urma_faa_wr, dst, src, urma_sg (+2 more) + +### Community 29 - "Context Event Resources" +Cohesion: 0.22 +Nodes (9): urma_context_t, urma_jfce, fd, ref, urma_ctx, urma_notifier, fd, incomplete_tjetty_list (+1 more) + +### Community 30 - "Send Work Request" +Cohesion: 0.22 +Nodes (9): urma_target_jetty_t, urma_jfs_wr, flag, next, opcode, tjetty, user_ctx, urma_jfs_wr_flag_t (+1 more) + +### Community 31 - "Device Attribute Record" +Cohesion: 0.22 +Nodes (9): urma_device_attr, dev_cap, guid, port_attr, port_cnt, reserved_jetty_id_max, reserved_jetty_id_min, urma_device_cap_t (+1 more) + +### Community 32 - "Jetty Configuration" +Cohesion: 0.22 +Nodes (9): urma_jetty_cfg, flag, id, jetty_grp, jfs_cfg, user_ctx, urma_jetty_flag_t, urma_jetty_grp_t (+1 more) + +### Community 33 - "Jetty Group Configuration" +Cohesion: 0.22 +Nodes (9): urma_jetty_grp_cfg, flag, id, name, policy, token_value, user_ctx, urma_jetty_grp_flag_t (+1 more) + +### Community 34 - "Remote Jetty Identity" +Cohesion: 0.22 +Nodes (9): urma_rjetty, flag, jetty_id, policy, tp_type, trans_mode, type, urma_jetty_id_t (+1 more) + +### Community 35 - "Transport Path Configuration" +Cohesion: 0.22 +Nodes (9): urma_tp_cfg, ack_timeout, dscp, flag, oor_cnt, retry_factor, retry_num, trans_mode (+1 more) + +### Community 36 - "Resource Import APIs" +Cohesion: 0.25 +Nodes (8): urma_seg_t, urma_target_seg_t, urma_token_t, urma_import_jetty(), urma_import_seg(), urma_unimport_seg(), urma_import_seg_flag_t, urma_rjetty_t + +### Community 37 - "Completion Queue Configuration" +Cohesion: 0.25 +Nodes (8): urma_jfce_t, urma_jfc_cfg, ceqn, depth, flag, jfce, user_ctx, urma_jfc_flag_t + +### Community 38 - "Remote Receive Queue" +Cohesion: 0.25 +Nodes (8): urma_rjfr, flag, jfr_id, tp_type, trans_mode, urma_import_jetty_flag_t, urma_jfr_id_t, urma_tp_type_t + +### Community 39 - "Token Identifier Lifecycle" +Cohesion: 0.25 +Nodes (8): urma_token_id, flag, handle, ref, token_id, urma_ctx, urma_ref_t, urma_token_id_flag_t + +### Community 40 - "Transport Configuration Query" +Cohesion: 0.29 +Nodes (7): urma_get_tp_cfg, flag, local_eid, peer_eid, trans_mode, urma_get_tp_cfg_flag_t, urma_transport_mode_t + +### Community 41 - "Network Address Model" +Cohesion: 0.33 +Nodes (6): sa_family_t, urma_net_addr, mac, prefix_len, sin_family, vlan + +### Community 42 - "Notification Record" +Cohesion: 0.33 +Nodes (6): urma_status_t, urma_notify, status, type, user_ctx, urma_notify_type_t + +### Community 43 - "Active Transport Config" +Cohesion: 0.33 +Nodes (6): urma_active_tp_cfg, peer_tp_handle, tag, tp_attr, tp_handle, urma_active_tp_attr_t + +### Community 44 - "Async Event Model" +Cohesion: 0.33 +Nodes (6): urma_async_event, element, event_type, priv, urma_ctx, urma_async_event_type_t + +### Community 45 - "Receive Posting Lifecycle" +Cohesion: 0.40 +Nodes (5): urma_jfr_t, urma_delete_jfr(), urma_post_jfr_wr(), UrmaEndpoint::DoPostRecv(), urma_jfr_wr_t + +### Community 46 - "Congestion Control Entry" +Cohesion: 0.40 +Nodes (5): urma_cc_entry, alg, cc_pattern_idx, cc_priority, urma_tp_cc_alg_t + +### Community 47 - "Jetty Runtime Attributes" +Cohesion: 0.40 +Nodes (5): urma_jetty_attr, mask, rx_threshold, state, urma_jetty_state_t + +### Community 48 - "Jetty Option State" +Cohesion: 0.40 +Nodes (5): urma_jetty_opt, is_actived, jfs_opt, reserved, urma_jfs_opt_t + +### Community 49 - "Receive Queue Attributes" +Cohesion: 0.40 +Nodes (5): urma_jfr_attr, mask, rx_threshold, state, urma_jfr_state_t + +### Community 50 - "Pending Receive Buffer" +Cohesion: 0.50 +Nodes (4): PendingRecv, addr, len, user_ctx + +### Community 51 - "Completion Event Wait" +Cohesion: 0.50 +Nodes (4): urma_wait_jfc(), SocketUniquePtr, urma_jfc_t, UrmaEndpoint::WaitCqEvent() + +### Community 52 - "Active Transport Attributes" +Cohesion: 0.50 +Nodes (4): urma_active_tp_attr, reserved, rx_psn, tx_psn + +### Community 53 - "Completion Queue Attributes" +Cohesion: 0.50 +Nodes (4): urma_jfc_attr, mask, moderate_count, moderate_period + +### Community 54 - "Send Queue Attributes" +Cohesion: 0.50 +Nodes (4): urma_jfs_attr, mask, state, urma_jfs_state_t + +### Community 55 - "User Control Input" +Cohesion: 0.50 +Nodes (4): urma_user_ctl_in, addr, len, opcode + +### Community 56 - "User Control Output" +Cohesion: 0.50 +Nodes (4): urma_user_ctl_out, addr, len, reserved + +### Community 57 - "URMA Initialization Attributes" +Cohesion: 0.67 +Nodes (3): urma_init_attr, token, uasid + +### Community 58 - "Service Level Mapping" +Cohesion: 0.67 +Nodes (3): urma_sl_info, SL, tp_type + +## Knowledge Gaps +- **458 isolated node(s):** `mutex`, `completions`, `event_pending`, `addr`, `len` (+453 more) + These have ≤1 connection - possible missing edges or undocumented components. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `urma_device_cap` connect `Device Capability Model` to `Core SDK Types`?** + _High betweenness centrality (0.109) - this node is a cross-community bridge._ +- **Why does `urma_tp_attr_value` connect `Transport Attribute Values` to `Core SDK Types`?** + _High betweenness centrality (0.053) - this node is a cross-community bridge._ +- **Why does `urma_tp_attr` connect `Transport Port Attributes` to `Core SDK Types`?** + _High betweenness centrality (0.052) - this node is a cross-community bridge._ +- **Are the 3 inferred relationships involving `UrmaEndpoint` (e.g. with `UrmaEndpoint::PollCq()` and `UrmaEndpoint::ProcessHandshakeAtClient()`) actually correct?** + _`UrmaEndpoint` has 3 INFERRED edges - model-reasoned connections that need verification._ +- **What connects `mutex`, `completions`, `event_pending` to the rest of the system?** + _458 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `Endpoint Data Path` be split into smaller, more focused modules?** + _Cohesion score 0.05027322404371585 - nodes in this community are weakly interconnected._ +- **Should `Handshake State Machine` be split into smaller, more focused modules?** + _Cohesion score 0.05536723163841808 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/graphify-out/cache/stat-index.json b/graphify-out/cache/stat-index.json new file mode 100644 index 0000000000..3c5ec99e3c --- /dev/null +++ b/graphify-out/cache/stat-index.json @@ -0,0 +1 @@ +{"C:\\workspace\\code\\opensource\\brpc\\AGENTS.md":{"size":2891,"mtime_ns":1784705330069121000,"word_count":400},"C:\\workspace\\code\\opensource\\brpc\\CHANGES.md":{"size":2345,"mtime_ns":1782715529475026200,"word_count":363},"C:\\workspace\\code\\opensource\\brpc\\CLAUDE.md":{"size":5679,"mtime_ns":1784705330069121000,"word_count":674},"C:\\workspace\\code\\opensource\\brpc\\CMakeLists.txt":{"size":28537,"mtime_ns":1785294541266797500,"word_count":1554},"C:\\workspace\\code\\opensource\\brpc\\CODE_OF_CONDUCT.md":{"size":3262,"mtime_ns":1782715529476028500,"word_count":446},"C:\\workspace\\code\\opensource\\brpc\\CONTRIBUTING.md":{"size":1561,"mtime_ns":1782715529476028500,"word_count":127},"C:\\workspace\\code\\opensource\\brpc\\README.md":{"size":7448,"mtime_ns":1785293755574793300,"word_count":526},"C:\\workspace\\code\\opensource\\brpc\\README_cn.md":{"size":7253,"mtime_ns":1785293755574793300,"word_count":276},"C:\\workspace\\code\\opensource\\brpc\\SECURITY.md":{"size":546,"mtime_ns":1784705330079267300,"word_count":67},"C:\\workspace\\code\\opensource\\brpc\\THREAT_MODEL.md":{"size":44650,"mtime_ns":1784705330080272500,"word_count":6157},"C:\\workspace\\code\\opensource\\brpc\\bazel\\third_party\\leveldb\\port.h":{"size":1453,"mtime_ns":1782715529481063500,"word_count":212},"C:\\workspace\\code\\opensource\\brpc\\bazel\\third_party\\leveldb\\port_config.h":{"size":1591,"mtime_ns":1782715529481063500,"word_count":241},"C:\\workspace\\code\\opensource\\brpc\\community\\apache-package-validator.sh":{"size":3164,"mtime_ns":1782715529485574200,"word_count":383},"C:\\workspace\\code\\opensource\\brpc\\community\\cases.md":{"size":5015,"mtime_ns":1782715529485574200,"word_count":288},"C:\\workspace\\code\\opensource\\brpc\\community\\logo-bRPC.svg":{"size":11382,"mtime_ns":1782715529485574200,"word_count":47},"C:\\workspace\\code\\opensource\\brpc\\community\\newcommitter_cn.md":{"size":4056,"mtime_ns":1782715529486575000,"word_count":220},"C:\\workspace\\code\\opensource\\brpc\\community\\newcommitter_en.md":{"size":4539,"mtime_ns":1782715529486575000,"word_count":548},"C:\\workspace\\code\\opensource\\brpc\\community\\oncall.md":{"size":5388,"mtime_ns":1782715529486575000,"word_count":404},"C:\\workspace\\code\\opensource\\brpc\\community\\release_cn.md":{"size":18016,"mtime_ns":1782715529486575000,"word_count":1643},"C:\\workspace\\code\\opensource\\brpc\\community\\release_en.md":{"size":17835,"mtime_ns":1782715529486575000,"word_count":2493},"C:\\workspace\\code\\opensource\\brpc\\community\\release_schedule.md":{"size":747,"mtime_ns":1782715529487598600,"word_count":28},"C:\\workspace\\code\\opensource\\brpc\\community\\releasecheck.md":{"size":1755,"mtime_ns":1782715529487598600,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\community\\releasecheck.png":{"size":251728,"mtime_ns":1782715529488600400,"word_count":12619},"C:\\workspace\\code\\opensource\\brpc\\community\\releasefail.png":{"size":228365,"mtime_ns":1782715529490597800,"word_count":10283},"C:\\workspace\\code\\opensource\\brpc\\config_brpc.sh":{"size":23229,"mtime_ns":1785290288703298900,"word_count":2128},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\atomic_instructions.md":{"size":12219,"mtime_ns":1782715529491101400,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\auto_concurrency_limiter.md":{"size":13713,"mtime_ns":1782715529491101400,"word_count":300},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\avalanche.md":{"size":4881,"mtime_ns":1782715529491101400,"word_count":47},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\backup_request.md":{"size":6569,"mtime_ns":1782715529492103000,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\baidu_std.md":{"size":6981,"mtime_ns":1782715529492103000,"word_count":352},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bazel_support.md":{"size":607,"mtime_ns":1782715529492103000,"word_count":35},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\benchmark.md":{"size":20665,"mtime_ns":1782715529492103000,"word_count":307},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\benchmark_http.md":{"size":444,"mtime_ns":1782715529492103000,"word_count":6},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread.md":{"size":9133,"mtime_ns":1782715529501606000,"word_count":142},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread_id.md":{"size":2499,"mtime_ns":1782715529502607000,"word_count":77},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread_or_not.md":{"size":5795,"mtime_ns":1782715529502607000,"word_count":126},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread_tagged_task_group.md":{"size":4529,"mtime_ns":1782715529502607000,"word_count":80},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread_tracer.md":{"size":13045,"mtime_ns":1784705330080272500,"word_count":599},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\builtin_service.md":{"size":2601,"mtime_ns":1782715529503638400,"word_count":55},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bvar.md":{"size":4408,"mtime_ns":1782715529503638400,"word_count":154},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bvar_c++.md":{"size":30120,"mtime_ns":1782715529503638400,"word_count":1997},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\case_apicontrol.md":{"size":3195,"mtime_ns":1782715529503638400,"word_count":196},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\case_baidu_dsp.md":{"size":1827,"mtime_ns":1782715529504638700,"word_count":73},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\case_elf.md":{"size":5118,"mtime_ns":1782715529504638700,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\case_ubrpc.md":{"size":2415,"mtime_ns":1782715529504638700,"word_count":109},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\circuit_breaker.md":{"size":6840,"mtime_ns":1782715529504638700,"word_count":108},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\client.md":{"size":68304,"mtime_ns":1784705330080272500,"word_count":2427},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\combo_channel.md":{"size":25563,"mtime_ns":1782715529505639900,"word_count":1426},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\connections.md":{"size":3262,"mtime_ns":1782715529505639900,"word_count":363},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\consistent_hashing.md":{"size":4322,"mtime_ns":1782715529505639900,"word_count":79},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\contention_profiler.md":{"size":3763,"mtime_ns":1782715529506641700,"word_count":67},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\coroutine.md":{"size":8593,"mtime_ns":1782715529506641700,"word_count":317},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\couchbase_example.md":{"size":130,"mtime_ns":1782715529506641700,"word_count":5},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\cpu_profiler.md":{"size":6639,"mtime_ns":1782715529506641700,"word_count":357},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\dummy_server.md":{"size":924,"mtime_ns":1782715529506641700,"word_count":26},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\endpoint.md":{"size":2500,"mtime_ns":1782715529507643800,"word_count":124},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\error_code.md":{"size":9106,"mtime_ns":1782715529507643800,"word_count":449},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\execution_queue.md":{"size":11817,"mtime_ns":1782715529507643800,"word_count":702},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\flags.md":{"size":6756,"mtime_ns":1782715529507643800,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\flatmap.md":{"size":16248,"mtime_ns":1782715529507643800,"word_count":1154},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\getting_started.md":{"size":14334,"mtime_ns":1782715529508646100,"word_count":730},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\heap_profiler.md":{"size":10335,"mtime_ns":1782715529508646100,"word_count":468},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\http_client.md":{"size":12848,"mtime_ns":1782715529508646100,"word_count":586},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\http_derivatives.md":{"size":1861,"mtime_ns":1782715529508646100,"word_count":35},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\http_service.md":{"size":18764,"mtime_ns":1782715529509647800,"word_count":827},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\io.md":{"size":10332,"mtime_ns":1782715529509647800,"word_count":103},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\iobuf.md":{"size":3024,"mtime_ns":1782715529509647800,"word_count":166},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\json2pb.md":{"size":4721,"mtime_ns":1782715529509647800,"word_count":237},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\lalb.md":{"size":16454,"mtime_ns":1782715529509647800,"word_count":216},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\load_balancing.md":{"size":5249,"mtime_ns":1782715529510668700,"word_count":66},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\mbvar_c++.md":{"size":32958,"mtime_ns":1782715529510668700,"word_count":2355},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\memcache_client.md":{"size":5728,"mtime_ns":1782715529510668700,"word_count":303},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\memory_management.md":{"size":6410,"mtime_ns":1782715529510668700,"word_count":46},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\mysql_client.md":{"size":16455,"mtime_ns":1784705330080272500,"word_count":1380},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\new_protocol.md":{"size":9664,"mtime_ns":1782715529511670500,"word_count":335},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\nshead_service.md":{"size":12333,"mtime_ns":1782715529511670500,"word_count":677},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\overview.md":{"size":10444,"mtime_ns":1782715529511670500,"word_count":178},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\parallel_http.md":{"size":327,"mtime_ns":1782715529511670500,"word_count":1},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rdma.md":{"size":7739,"mtime_ns":1782715529511670500,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\redis_client.md":{"size":17225,"mtime_ns":1782715529512672600,"word_count":1026},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rpc_press.md":{"size":7460,"mtime_ns":1784705330080272500,"word_count":279},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rpc_replay.md":{"size":6393,"mtime_ns":1782715529512672600,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rpc_view.md":{"size":1952,"mtime_ns":1782715529512672600,"word_count":54},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rpcz.md":{"size":6018,"mtime_ns":1782715529512672600,"word_count":189},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\sanitizers.md":{"size":2382,"mtime_ns":1782715529512672600,"word_count":114},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\server.md":{"size":58609,"mtime_ns":1782715529513674600,"word_count":2555},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\server_debugging.md":{"size":6315,"mtime_ns":1782715529513674600,"word_count":144},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\server_push.md":{"size":4362,"mtime_ns":1782715529513674600,"word_count":26},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\status.md":{"size":2935,"mtime_ns":1782715529514678800,"word_count":79},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\streaming_log.md":{"size":12537,"mtime_ns":1782715529514678800,"word_count":728},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\streaming_rpc.md":{"size":7680,"mtime_ns":1782715529514678800,"word_count":612},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\thread_local.md":{"size":4489,"mtime_ns":1782715529514678800,"word_count":134},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\threading_overview.md":{"size":7888,"mtime_ns":1782715529514678800,"word_count":64},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\thrift.md":{"size":6276,"mtime_ns":1782715529515680900,"word_count":445},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\timeout_concurrency_limiter.md":{"size":2426,"mtime_ns":1782715529515680900,"word_count":45},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\timer_keeping.md":{"size":9998,"mtime_ns":1782715529515680900,"word_count":78},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\ub_client.md":{"size":13304,"mtime_ns":1782715529515680900,"word_count":869},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\ubring.md":{"size":6431,"mtime_ns":1785293755576798900,"word_count":463},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\urma.md":{"size":6357,"mtime_ns":1785306414230220700,"word_count":565},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\urma_proposal.md":{"size":32686,"mtime_ns":1785306414868888700,"word_count":2551},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\vars.md":{"size":6594,"mtime_ns":1782715529515680900,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\wireshark_baidu_std.md":{"size":1530,"mtime_ns":1782715529516677800,"word_count":66},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\atomic_instructions.md":{"size":13565,"mtime_ns":1782715529517181500,"word_count":1936},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\auto_concurrency_limiter.md":{"size":289,"mtime_ns":1782715529517181500,"word_count":34},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\avalanche.md":{"size":883,"mtime_ns":1782715529517181500,"word_count":156},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\backup_request.md":{"size":7180,"mtime_ns":1782715529517181500,"word_count":938},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\baidu_std.md":{"size":259,"mtime_ns":1782715529517181500,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bazel_support.md":{"size":651,"mtime_ns":1782715529517181500,"word_count":81},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\benchmark.md":{"size":259,"mtime_ns":1782715529518183500,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\benchmark_http.md":{"size":269,"mtime_ns":1782715529518183500,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread.md":{"size":255,"mtime_ns":1782715529520215700,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread_id.md":{"size":261,"mtime_ns":1782715529520215700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread_or_not.md":{"size":269,"mtime_ns":1782715529520215700,"word_count":34},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread_tagged_task_group.md":{"size":291,"mtime_ns":1782715529520215700,"word_count":35},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread_tracer.md":{"size":269,"mtime_ns":1782715529520215700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\builtin_service.md":{"size":3000,"mtime_ns":1782715529520215700,"word_count":345},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bvar.md":{"size":5000,"mtime_ns":1782715529520215700,"word_count":635},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bvar_c++.md":{"size":24377,"mtime_ns":1782715529521718200,"word_count":3129},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\case_apicontrol.md":{"size":271,"mtime_ns":1782715529521718200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\case_baidu_dsp.md":{"size":269,"mtime_ns":1782715529521718200,"word_count":34},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\case_elf.md":{"size":257,"mtime_ns":1782715529521718200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\case_ubrpc.md":{"size":261,"mtime_ns":1782715529521718200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\circuit_breaker.md":{"size":271,"mtime_ns":1782715529521718200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\client.md":{"size":66955,"mtime_ns":1784705330085987300,"word_count":8729},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\combo_channel.md":{"size":27876,"mtime_ns":1782715529522724500,"word_count":3483},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\connections.md":{"size":263,"mtime_ns":1782715529522724500,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\consistent_hashing.md":{"size":277,"mtime_ns":1782715529522724500,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\contention_profiler.md":{"size":279,"mtime_ns":1782715529522724500,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\coroutine.md":{"size":259,"mtime_ns":1782715529523726100,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\couchbase_example.md":{"size":49027,"mtime_ns":1782715529523726100,"word_count":5217},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\cpu_profiler.md":{"size":265,"mtime_ns":1782715529523726100,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\dummy_server.md":{"size":960,"mtime_ns":1782715529523726100,"word_count":141},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\endpoint.md":{"size":257,"mtime_ns":1782715529523726100,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\error_code.md":{"size":9825,"mtime_ns":1782715529524728000,"word_count":1401},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\execution_queue.md":{"size":271,"mtime_ns":1782715529524728000,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\flags.md":{"size":251,"mtime_ns":1782715529524728000,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\flatmap.md":{"size":255,"mtime_ns":1782715529524728000,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\getting_started.md":{"size":14112,"mtime_ns":1782715529524728000,"word_count":1838},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\heap_profiler.md":{"size":267,"mtime_ns":1782715529524728000,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\http_client.md":{"size":13873,"mtime_ns":1782715529525729600,"word_count":1746},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\http_derivatives.md":{"size":2142,"mtime_ns":1782715529525729600,"word_count":288},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\http_service.md":{"size":20338,"mtime_ns":1782715529525729600,"word_count":2363},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\io.md":{"size":11221,"mtime_ns":1782715529525729600,"word_count":1592},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\iobuf.md":{"size":3307,"mtime_ns":1782715529525729600,"word_count":446},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\json2pb.md":{"size":255,"mtime_ns":1782715529526731700,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\lalb.md":{"size":1990,"mtime_ns":1782715529526731700,"word_count":300},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\load_balancing.md":{"size":269,"mtime_ns":1782715529526731700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\mbvar_c++.md":{"size":259,"mtime_ns":1782715529526731700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\memcache_client.md":{"size":6322,"mtime_ns":1782715529526731700,"word_count":818},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\memory_management.md":{"size":275,"mtime_ns":1782715529526731700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\new_protocol.md":{"size":11023,"mtime_ns":1782715529527733400,"word_count":1471},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\nshead_service.md":{"size":269,"mtime_ns":1782715529527733400,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\overview.md":{"size":11801,"mtime_ns":1782715529527733400,"word_count":1370},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\parallel_http.md":{"size":267,"mtime_ns":1782715529527733400,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rdma.md":{"size":7480,"mtime_ns":1782715529527733400,"word_count":1068},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\redis_client.md":{"size":18390,"mtime_ns":1782715529528735200,"word_count":2310},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rpc_press.md":{"size":259,"mtime_ns":1782715529528735200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rpc_replay.md":{"size":261,"mtime_ns":1782715529528735200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rpc_view.md":{"size":257,"mtime_ns":1782715529528735200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rpcz.md":{"size":249,"mtime_ns":1782715529528735200,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\sanitizers.md":{"size":261,"mtime_ns":1782715529528735200,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\server.md":{"size":61515,"mtime_ns":1782715529529737400,"word_count":7753},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\server_debugging.md":{"size":7186,"mtime_ns":1782715529529737400,"word_count":1012},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\server_push.md":{"size":5290,"mtime_ns":1782715529529737400,"word_count":825},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\status.md":{"size":3263,"mtime_ns":1782715529529737400,"word_count":387},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\streaming_log.md":{"size":13219,"mtime_ns":1782715529530739300,"word_count":1908},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\streaming_rpc.md":{"size":8111,"mtime_ns":1782715529530739300,"word_count":1174},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\thread_local.md":{"size":265,"mtime_ns":1782715529530739300,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\threading_overview.md":{"size":9862,"mtime_ns":1782715529530739300,"word_count":1402},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\thrift.md":{"size":6413,"mtime_ns":1782715529530739300,"word_count":751},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\timeout_concurrency_limiter.md":{"size":295,"mtime_ns":1782715529530739300,"word_count":34},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\timer_keeping.md":{"size":267,"mtime_ns":1782715529530739300,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\ub_client.md":{"size":259,"mtime_ns":1782715529540766800,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\ubring.md":{"size":6701,"mtime_ns":1785293755576798900,"word_count":802},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\urma.md":{"size":6832,"mtime_ns":1785306413618282700,"word_count":919},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\vars.md":{"size":7500,"mtime_ns":1782715529541767900,"word_count":1051},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\wireshark_baidu_std.md":{"size":1550,"mtime_ns":1782715529541767900,"word_count":120},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\302.png":{"size":32213,"mtime_ns":1782715529541767900,"word_count":1130},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_1.png":{"size":31584,"mtime_ns":1782715529542770200,"word_count":1073},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_2.png":{"size":39964,"mtime_ns":1782715529542770200,"word_count":1481},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_3.png":{"size":25322,"mtime_ns":1782715529542770200,"word_count":890},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_4.png":{"size":32399,"mtime_ns":1782715529543772400,"word_count":1135},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_5.png":{"size":10546,"mtime_ns":1782715529543772400,"word_count":415},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\backup_request_1.png":{"size":22198,"mtime_ns":1782715529543772400,"word_count":800},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\backup_request_2.png":{"size":45644,"mtime_ns":1782715529544774400,"word_count":1674},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\backup_request_3.png":{"size":30140,"mtime_ns":1782715529544774400,"word_count":1292},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\backup_request_4.png":{"size":21024,"mtime_ns":1782715529544774400,"word_count":1066},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_1.png":{"size":35908,"mtime_ns":1782715529544774400,"word_count":1284},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_10.png":{"size":31382,"mtime_ns":1782715529545776700,"word_count":1070},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_2.png":{"size":36011,"mtime_ns":1782715529545776700,"word_count":1225},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_3.png":{"size":35498,"mtime_ns":1782715529545776700,"word_count":1282},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_4.png":{"size":28475,"mtime_ns":1782715529546779000,"word_count":970},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_5.png":{"size":48125,"mtime_ns":1782715529546779000,"word_count":1745},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_6.png":{"size":38226,"mtime_ns":1782715529546779000,"word_count":1354},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_7.png":{"size":30661,"mtime_ns":1782715529547780600,"word_count":1071},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_8.png":{"size":30800,"mtime_ns":1782715529547780600,"word_count":1044},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_9.png":{"size":32526,"mtime_ns":1782715529547780600,"word_count":1174},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_concurrency_1.png":{"size":35166,"mtime_ns":1782715529548782500,"word_count":1293},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_concurrency_2.png":{"size":18192,"mtime_ns":1782715529548782500,"word_count":631},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_concurrency_3.png":{"size":4265,"mtime_ns":1782715529548782500,"word_count":130},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_creation_qps.png":{"size":23590,"mtime_ns":1782715529548782500,"word_count":1056},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_status_model.svg":{"size":19072,"mtime_ns":1782715529549784200,"word_count":1395},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_stb_model.svg":{"size":23048,"mtime_ns":1782715529549784200,"word_count":1673},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_tagged_increment_all.png":{"size":179089,"mtime_ns":1782715529551283500,"word_count":5714},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_tagged_increment_tag1.png":{"size":178168,"mtime_ns":1782715529551283500,"word_count":5576},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_tagged_worker_usage.png":{"size":190384,"mtime_ns":1782715529552285300,"word_count":5811},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\builtin_service_from_console.png":{"size":127971,"mtime_ns":1782715529553287800,"word_count":5139},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\builtin_service_more.png":{"size":72208,"mtime_ns":1782715529554297300,"word_count":2746},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_dump_flags.png":{"size":31152,"mtime_ns":1782715529554297300,"word_count":1112},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_dump_flags_2.png":{"size":34488,"mtime_ns":1782715529555296500,"word_count":1324},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_flow.png":{"size":9252,"mtime_ns":1782715529555296500,"word_count":413},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_noah1.png":{"size":32722,"mtime_ns":1782715529555296500,"word_count":1192},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_noah2.png":{"size":20280,"mtime_ns":1782715529556297300,"word_count":850},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_noah3.png":{"size":25759,"mtime_ns":1782715529556297300,"word_count":1169},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_perf.png":{"size":106239,"mtime_ns":1782715529557299200,"word_count":4475},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\chash.png":{"size":20446,"mtime_ns":1782715529557299200,"word_count":769},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\client_side.png":{"size":42131,"mtime_ns":1782715529558299400,"word_count":1861},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\cmd_jeprof_text.png":{"size":374689,"mtime_ns":1782715529560298000,"word_count":12992},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\connection_timedout.png":{"size":185600,"mtime_ns":1782715529561298600,"word_count":6674},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\curl_jeprof_flamegraph.png":{"size":777258,"mtime_ns":1782715529564300000,"word_count":28188},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\curl_jeprof_svg.png":{"size":346446,"mtime_ns":1782715529566337600,"word_count":17254},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\curl_jeprof_text.png":{"size":484854,"mtime_ns":1782715529569853500,"word_count":21016},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\dummy_server_1.png":{"size":1988,"mtime_ns":1782715529569853500,"word_count":63},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\dummy_server_2.png":{"size":30010,"mtime_ns":1782715529569853500,"word_count":1086},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\dummy_server_3.png":{"size":37915,"mtime_ns":1782715529570902700,"word_count":1376},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\echo_cpu_profiling.png":{"size":250029,"mtime_ns":1782715529571904200,"word_count":10529},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\flag_setvalue.png":{"size":10826,"mtime_ns":1782715529571904200,"word_count":377},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\foobar_bvar.png":{"size":58629,"mtime_ns":1782715529572905900,"word_count":2137},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\foobar_latency_cdf.png":{"size":16830,"mtime_ns":1782715529572905900,"word_count":640},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\full_worker_usage.png":{"size":23286,"mtime_ns":1782715529572905900,"word_count":1035},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\full_worker_usage_2.png":{"size":26680,"mtime_ns":1782715529573907200,"word_count":1104},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\growth_profiler.png":{"size":170350,"mtime_ns":1782715529574908300,"word_count":6553},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\health_service.png":{"size":6521,"mtime_ns":1782715529574908300,"word_count":225},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\heap_profiler_1.png":{"size":201040,"mtime_ns":1782715529576911000,"word_count":8227},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\heap_profiler_2.png":{"size":126084,"mtime_ns":1782715529576911000,"word_count":4868},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\heap_profiler_3.gif":{"size":2247904,"mtime_ns":1782715529588943200,"word_count":92596},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\high_cpu_usage.png":{"size":24193,"mtime_ns":1782715529588943200,"word_count":1068},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\je_stats_print.png":{"size":253493,"mtime_ns":1782715529589944700,"word_count":10390},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_1.png":{"size":15250,"mtime_ns":1782715529590946200,"word_count":632},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_2.png":{"size":1165962,"mtime_ns":1782715529593950000,"word_count":42024},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_3.png":{"size":840918,"mtime_ns":1782715529596150400,"word_count":30453},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_4.png":{"size":3025,"mtime_ns":1782715529596150400,"word_count":112},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_5.png":{"size":2994,"mtime_ns":1782715529596150400,"word_count":120},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\latency_cdf.png":{"size":77892,"mtime_ns":1782715529597158000,"word_count":3181},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lb.png":{"size":6167,"mtime_ns":1782715529597158000,"word_count":256},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\logo-white.png":{"size":9721,"mtime_ns":1782715529597158000,"word_count":372},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\logo.png":{"size":10115,"mtime_ns":1782715529597158000,"word_count":391},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\multi_client_latency_cdf.png":{"size":89313,"mtime_ns":1782715529598157500,"word_count":3866},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\multi_server_latency_cdf.png":{"size":82956,"mtime_ns":1782715529599158200,"word_count":3417},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\normal_cpu_usage.png":{"size":27189,"mtime_ns":1782715529599158200,"word_count":1253},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\normal_worker_usage.png":{"size":26899,"mtime_ns":1782715529599158200,"word_count":1220},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ns.png":{"size":5942,"mtime_ns":1782715529600177200,"word_count":250},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ns_access_interval.png":{"size":37332,"mtime_ns":1782715529600177200,"word_count":1404},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ns_filter.jpg":{"size":11648,"mtime_ns":1782715529600177200,"word_count":343},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\pchan.png":{"size":21250,"mtime_ns":1782715529600177200,"word_count":808},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\pooled_conn.png":{"size":21428,"mtime_ns":1782715529600177200,"word_count":822},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\protobufs_service.png":{"size":22602,"mtime_ns":1782715529601680500,"word_count":878},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\qps_vs_multi_client.png":{"size":90134,"mtime_ns":1782715529601680500,"word_count":3574},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\qps_vs_reqsize.png":{"size":118079,"mtime_ns":1782715529602685700,"word_count":4869},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\qps_vs_threadnum.png":{"size":95901,"mtime_ns":1782715529603687500,"word_count":4113},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\raft_contention_1.png":{"size":896576,"mtime_ns":1782715529608688000,"word_count":39417},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\raft_contention_2.png":{"size":118523,"mtime_ns":1782715529609688800,"word_count":4579},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\raft_contention_3.png":{"size":113155,"mtime_ns":1782715529610690100,"word_count":4703},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\register_lb.png":{"size":17384,"mtime_ns":1782715529610690100,"word_count":486},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\register_ns.png":{"size":31870,"mtime_ns":1782715529610690100,"word_count":1205},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\reloadable_flags.png":{"size":34324,"mtime_ns":1782715529611691800,"word_count":1107},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\resource_pool.png":{"size":9227,"mtime_ns":1782715529611691800,"word_count":345},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\restful_1.png":{"size":13695,"mtime_ns":1782715529611691800,"word_count":456},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\restful_2.png":{"size":14638,"mtime_ns":1782715529611691800,"word_count":520},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\restful_3.png":{"size":33118,"mtime_ns":1782715529612722800,"word_count":1522},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc.png":{"size":13643,"mtime_ns":1782715529612722800,"word_count":457},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_flow.png":{"size":54016,"mtime_ns":1782715529613724800,"word_count":2328},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_press_1.png":{"size":17965,"mtime_ns":1782715529613724800,"word_count":580},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_press_2.png":{"size":83440,"mtime_ns":1782715529613724800,"word_count":3521},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_1.png":{"size":36288,"mtime_ns":1782715529614726800,"word_count":1740},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_2.png":{"size":6338,"mtime_ns":1782715529614726800,"word_count":231},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_3.png":{"size":35966,"mtime_ns":1782715529614726800,"word_count":1411},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_4.png":{"size":19835,"mtime_ns":1782715529615723200,"word_count":717},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_5.png":{"size":77345,"mtime_ns":1782715529616226400,"word_count":3313},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_view_1.png":{"size":79695,"mtime_ns":1782715529616226400,"word_count":3596},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_view_2.png":{"size":92344,"mtime_ns":1782715529617228200,"word_count":3607},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_view_3.png":{"size":135737,"mtime_ns":1782715529617228200,"word_count":4836},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz.png":{"size":200429,"mtime_ns":1782715529619735000,"word_count":7388},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_2.png":{"size":45268,"mtime_ns":1782715529619735000,"word_count":1614},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_3.png":{"size":33345,"mtime_ns":1782715529619735000,"word_count":1218},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_4.png":{"size":12971,"mtime_ns":1782715529619735000,"word_count":509},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_5.png":{"size":30211,"mtime_ns":1782715529620736900,"word_count":1156},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_6.png":{"size":138317,"mtime_ns":1782715529621738900,"word_count":5363},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_7.png":{"size":191679,"mtime_ns":1782715529622867700,"word_count":6650},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\server_side.png":{"size":41706,"mtime_ns":1782715529622867700,"word_count":1921},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_invalid_value.png":{"size":13154,"mtime_ns":1782715529622867700,"word_count":504},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_reject.png":{"size":13692,"mtime_ns":1782715529623869500,"word_count":479},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_with_form.png":{"size":17969,"mtime_ns":1782715529623869500,"word_count":665},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_with_form_2.png":{"size":18089,"mtime_ns":1782715529623869500,"word_count":627},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_with_form_3.png":{"size":8999,"mtime_ns":1782715529623869500,"word_count":301},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\short_conn.png":{"size":17957,"mtime_ns":1782715529624871400,"word_count":675},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\single_conn.png":{"size":20962,"mtime_ns":1782715529624871400,"word_count":817},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\status.png":{"size":138800,"mtime_ns":1782715529625873400,"word_count":5944},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\status_2.png":{"size":170832,"mtime_ns":1782715529626875100,"word_count":6399},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\tcmalloc_stuck.png":{"size":716744,"mtime_ns":1782715529629890200,"word_count":26567},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\the_r_after_flag.png":{"size":7331,"mtime_ns":1782715529629890200,"word_count":289},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\threading_overview_1.png":{"size":25019,"mtime_ns":1782715529630909000,"word_count":1164},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\threading_overview_2.png":{"size":31149,"mtime_ns":1782715529630909000,"word_count":1205},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\trace_printf.png":{"size":7940,"mtime_ns":1782715529630909000,"word_count":262},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\twolevel_server_latency_cdf.png":{"size":80948,"mtime_ns":1782715529631910400,"word_count":3359},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ubrpc_compare_1.png":{"size":142076,"mtime_ns":1782715529632910600,"word_count":5299},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ubrpc_compare_2.png":{"size":107741,"mtime_ns":1782715529633909800,"word_count":4317},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_1.gif":{"size":1117263,"mtime_ns":1782715529639457200,"word_count":41811},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_2.gif":{"size":1632482,"mtime_ns":1782715529648008100,"word_count":61945},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_3.gif":{"size":1603109,"mtime_ns":1782715529655541200,"word_count":61971},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_4.png":{"size":21442,"mtime_ns":1782715529656540000,"word_count":1136},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_5.png":{"size":38628,"mtime_ns":1782715529656540000,"word_count":1436},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_6.png":{"size":84449,"mtime_ns":1782715529657539100,"word_count":2806},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_7.png":{"size":30808,"mtime_ns":1782715529657539100,"word_count":1025},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\version_service.png":{"size":8943,"mtime_ns":1782715529657539100,"word_count":316},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vlog_service.png":{"size":150416,"mtime_ns":1782715529658537800,"word_count":5268},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_baidu_std_request.png":{"size":88216,"mtime_ns":1782715529659609100,"word_count":3453},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_baidu_std_response.png":{"size":80784,"mtime_ns":1782715529660641100,"word_count":3310},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_folders.png":{"size":119784,"mtime_ns":1782715529661641000,"word_count":4409},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_protobuf_search_paths.png":{"size":133530,"mtime_ns":1782715529661641000,"word_count":4904},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_protobuf_settings.png":{"size":573273,"mtime_ns":1782715529665643200,"word_count":20037},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\write.png":{"size":22661,"mtime_ns":1782715529665643200,"word_count":885},"C:\\workspace\\code\\opensource\\brpc\\example\\asynchronous_echo_c++\\CMakeLists.txt":{"size":1540,"mtime_ns":1785293755577795200,"word_count":161},"C:\\workspace\\code\\opensource\\brpc\\example\\asynchronous_echo_c++\\client.cpp":{"size":4855,"mtime_ns":1782715529666644100,"word_count":560},"C:\\workspace\\code\\opensource\\brpc\\example\\asynchronous_echo_c++\\server.cpp":{"size":4973,"mtime_ns":1782715529667645800,"word_count":533},"C:\\workspace\\code\\opensource\\brpc\\example\\auto_concurrency_limiter\\CMakeLists.txt":{"size":1543,"mtime_ns":1785293755577795200,"word_count":161},"C:\\workspace\\code\\opensource\\brpc\\example\\auto_concurrency_limiter\\client.cpp":{"size":9468,"mtime_ns":1782715529668648000,"word_count":777},"C:\\workspace\\code\\opensource\\brpc\\example\\auto_concurrency_limiter\\server.cpp":{"size":10595,"mtime_ns":1782715529668648000,"word_count":812},"C:\\workspace\\code\\opensource\\brpc\\example\\auto_concurrency_limiter\\test_case.json":{"size":5064,"mtime_ns":1782715529669644700,"word_count":244},"C:\\workspace\\code\\opensource\\brpc\\example\\backup_request_c++\\CMakeLists.txt":{"size":1551,"mtime_ns":1785293755578839800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\backup_request_c++\\client.cpp":{"size":3821,"mtime_ns":1782715529670147600,"word_count":450},"C:\\workspace\\code\\opensource\\brpc\\example\\backup_request_c++\\server.cpp":{"size":4431,"mtime_ns":1782715529671149000,"word_count":515},"C:\\workspace\\code\\opensource\\brpc\\example\\baidu_proxy_and_generic_call\\CMakeLists.txt":{"size":1637,"mtime_ns":1785293755578839800,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\example\\baidu_proxy_and_generic_call\\client.cpp":{"size":4188,"mtime_ns":1782715529671149000,"word_count":469},"C:\\workspace\\code\\opensource\\brpc\\example\\baidu_proxy_and_generic_call\\proxy.cpp":{"size":6949,"mtime_ns":1782715529672150400,"word_count":650},"C:\\workspace\\code\\opensource\\brpc\\example\\baidu_proxy_and_generic_call\\server.cpp":{"size":4974,"mtime_ns":1782715529672150400,"word_count":551},"C:\\workspace\\code\\opensource\\brpc\\example\\bthread_tag_echo_c++\\CMakeLists.txt":{"size":1715,"mtime_ns":1785293755578839800,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\bthread_tag_echo_c++\\client.cpp":{"size":6223,"mtime_ns":1782715529672150400,"word_count":671},"C:\\workspace\\code\\opensource\\brpc\\example\\bthread_tag_echo_c++\\server.cpp":{"size":5757,"mtime_ns":1782715529673152800,"word_count":601},"C:\\workspace\\code\\opensource\\brpc\\example\\build_with_bazel\\test.cc":{"size":1120,"mtime_ns":1782715529675170800,"word_count":157},"C:\\workspace\\code\\opensource\\brpc\\example\\cancel_c++\\CMakeLists.txt":{"size":1495,"mtime_ns":1785293755578839800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\cancel_c++\\client.cpp":{"size":5380,"mtime_ns":1782715529677174000,"word_count":591},"C:\\workspace\\code\\opensource\\brpc\\example\\cancel_c++\\server.cpp":{"size":4276,"mtime_ns":1782715529678170700,"word_count":486},"C:\\workspace\\code\\opensource\\brpc\\example\\cascade_echo_c++\\CMakeLists.txt":{"size":1537,"mtime_ns":1785293755578839800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\cascade_echo_c++\\client.cpp":{"size":5951,"mtime_ns":1782715529678674100,"word_count":650},"C:\\workspace\\code\\opensource\\brpc\\example\\cascade_echo_c++\\server.cpp":{"size":5714,"mtime_ns":1782715529678674100,"word_count":582},"C:\\workspace\\code\\opensource\\brpc\\example\\coroutine\\coroutine_server.cpp":{"size":5187,"mtime_ns":1782715529679676300,"word_count":465},"C:\\workspace\\code\\opensource\\brpc\\example\\couchbase_c++\\couchbase_client.cpp":{"size":18543,"mtime_ns":1782715529679676300,"word_count":1887},"C:\\workspace\\code\\opensource\\brpc\\example\\couchbase_c++\\multithreaded_couchbase_client.cpp":{"size":12725,"mtime_ns":1782715529680678800,"word_count":1353},"C:\\workspace\\code\\opensource\\brpc\\example\\couchbase_c++\\traditional_brpc_couchbase_client.cpp":{"size":6028,"mtime_ns":1782715529680678800,"word_count":689},"C:\\workspace\\code\\opensource\\brpc\\example\\dynamic_partition_echo_c++\\CMakeLists.txt":{"size":1923,"mtime_ns":1785293755578839800,"word_count":177},"C:\\workspace\\code\\opensource\\brpc\\example\\dynamic_partition_echo_c++\\client.cpp":{"size":8331,"mtime_ns":1782715529681681000,"word_count":855},"C:\\workspace\\code\\opensource\\brpc\\example\\dynamic_partition_echo_c++\\server.cpp":{"size":6962,"mtime_ns":1782715529681681000,"word_count":739},"C:\\workspace\\code\\opensource\\brpc\\example\\echo_c++\\CMakeLists.txt":{"size":1481,"mtime_ns":1785293755578839800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\echo_c++\\client.cpp":{"size":4252,"mtime_ns":1782715529682683100,"word_count":482},"C:\\workspace\\code\\opensource\\brpc\\example\\echo_c++\\server.cpp":{"size":5886,"mtime_ns":1782715529682683100,"word_count":626},"C:\\workspace\\code\\opensource\\brpc\\example\\grpc_c++\\CMakeLists.txt":{"size":1680,"mtime_ns":1785293755578839800,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\example\\grpc_c++\\client.cpp":{"size":3716,"mtime_ns":1782715529683685400,"word_count":421},"C:\\workspace\\code\\opensource\\brpc\\example\\grpc_c++\\server.cpp":{"size":2926,"mtime_ns":1782715529683685400,"word_count":332},"C:\\workspace\\code\\opensource\\brpc\\example\\http_c++\\CMakeLists.txt":{"size":2059,"mtime_ns":1785293755578839800,"word_count":187},"C:\\workspace\\code\\opensource\\brpc\\example\\http_c++\\benchmark_http.cpp":{"size":5390,"mtime_ns":1782715529684687500,"word_count":574},"C:\\workspace\\code\\opensource\\brpc\\example\\http_c++\\http_client.cpp":{"size":4566,"mtime_ns":1784622097679688900,"word_count":493},"C:\\workspace\\code\\opensource\\brpc\\example\\http_c++\\http_server.cpp":{"size":11326,"mtime_ns":1784622097681693900,"word_count":964},"C:\\workspace\\code\\opensource\\brpc\\example\\memcache_c++\\CMakeLists.txt":{"size":1284,"mtime_ns":1785293755578839800,"word_count":152},"C:\\workspace\\code\\opensource\\brpc\\example\\memcache_c++\\client.cpp":{"size":8547,"mtime_ns":1782715529685689600,"word_count":901},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_c++\\CMakeLists.txt":{"size":1897,"mtime_ns":1785293755578839800,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_c++\\client.cpp":{"size":6382,"mtime_ns":1782715529687190200,"word_count":682},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_c++\\server.cpp":{"size":3809,"mtime_ns":1782715529687190200,"word_count":402},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_fns_c++\\CMakeLists.txt":{"size":1836,"mtime_ns":1785293755578839800,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_fns_c++\\client.cpp":{"size":6567,"mtime_ns":1782715529688192400,"word_count":698},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_fns_c++\\random_kill.sh":{"size":1963,"mtime_ns":1782715529688192400,"word_count":252},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_fns_c++\\server.cpp":{"size":7553,"mtime_ns":1782715529689193900,"word_count":814},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\CMakeLists.txt":{"size":1393,"mtime_ns":1785293755583754900,"word_count":94},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_cli.cpp":{"size":6395,"mtime_ns":1785293755583754900,"word_count":713},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_go_press.go":{"size":2002,"mtime_ns":1784705330085987300,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_press.cpp":{"size":9180,"mtime_ns":1785293755583754900,"word_count":931},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_stmt.cpp":{"size":8272,"mtime_ns":1785293755584757000,"word_count":853},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_tx.cpp":{"size":4677,"mtime_ns":1785293755584757000,"word_count":490},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysqlclient_press.cpp":{"size":8809,"mtime_ns":1785293755584757000,"word_count":895},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_extension_c++\\CMakeLists.txt":{"size":1507,"mtime_ns":1785293755584757000,"word_count":159},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_extension_c++\\client.cpp":{"size":3305,"mtime_ns":1782715529689193900,"word_count":380},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_extension_c++\\server.cpp":{"size":2947,"mtime_ns":1782715529690220300,"word_count":343},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_pb_extension_c++\\CMakeLists.txt":{"size":1586,"mtime_ns":1785293755584757000,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_pb_extension_c++\\client.cpp":{"size":3305,"mtime_ns":1782715529690220300,"word_count":380},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_pb_extension_c++\\server.cpp":{"size":5020,"mtime_ns":1782715529691337500,"word_count":497},"C:\\workspace\\code\\opensource\\brpc\\example\\parallel_echo_c++\\CMakeLists.txt":{"size":1766,"mtime_ns":1785293755584757000,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\parallel_echo_c++\\client.cpp":{"size":8881,"mtime_ns":1782715529691337500,"word_count":927},"C:\\workspace\\code\\opensource\\brpc\\example\\parallel_echo_c++\\server.cpp":{"size":3244,"mtime_ns":1782715529692339200,"word_count":356},"C:\\workspace\\code\\opensource\\brpc\\example\\partition_echo_c++\\CMakeLists.txt":{"size":1777,"mtime_ns":1785293755586819000,"word_count":177},"C:\\workspace\\code\\opensource\\brpc\\example\\partition_echo_c++\\client.cpp":{"size":8419,"mtime_ns":1782715529692339200,"word_count":859},"C:\\workspace\\code\\opensource\\brpc\\example\\partition_echo_c++\\server.cpp":{"size":6961,"mtime_ns":1782715529693339900,"word_count":739},"C:\\workspace\\code\\opensource\\brpc\\example\\rdma_performance\\CMakeLists.txt":{"size":1728,"mtime_ns":1785293755586819000,"word_count":186},"C:\\workspace\\code\\opensource\\brpc\\example\\rdma_performance\\client.cpp":{"size":12141,"mtime_ns":1782715529694341900,"word_count":1109},"C:\\workspace\\code\\opensource\\brpc\\example\\rdma_performance\\server.cpp":{"size":3295,"mtime_ns":1782715529694341900,"word_count":318},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\CMakeLists.txt":{"size":2153,"mtime_ns":1785293755586819000,"word_count":212},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\redis_cli.cpp":{"size":5769,"mtime_ns":1782715529695344100,"word_count":669},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\redis_cluster_client.cpp":{"size":4473,"mtime_ns":1782715529695344100,"word_count":449},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\redis_press.cpp":{"size":7439,"mtime_ns":1782715529695344100,"word_count":791},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\redis_server.cpp":{"size":8208,"mtime_ns":1782715529695344100,"word_count":661},"C:\\workspace\\code\\opensource\\brpc\\example\\rpcz_echo_c++\\CMakeLists.txt":{"size":1518,"mtime_ns":1785293755587842000,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\rpcz_echo_c++\\client.cpp":{"size":4100,"mtime_ns":1782715529696690800,"word_count":473},"C:\\workspace\\code\\opensource\\brpc\\example\\rpcz_echo_c++\\server.cpp":{"size":7252,"mtime_ns":1782715529696690800,"word_count":781},"C:\\workspace\\code\\opensource\\brpc\\example\\selective_echo_c++\\CMakeLists.txt":{"size":1773,"mtime_ns":1785293755588347800,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\selective_echo_c++\\client.cpp":{"size":9671,"mtime_ns":1782715529697851600,"word_count":1041},"C:\\workspace\\code\\opensource\\brpc\\example\\selective_echo_c++\\server.cpp":{"size":6920,"mtime_ns":1782715529697851600,"word_count":737},"C:\\workspace\\code\\opensource\\brpc\\example\\session_data_and_thread_local\\CMakeLists.txt":{"size":1874,"mtime_ns":1785293755588347800,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\session_data_and_thread_local\\client.cpp":{"size":6126,"mtime_ns":1782715529698852500,"word_count":665},"C:\\workspace\\code\\opensource\\brpc\\example\\session_data_and_thread_local\\server.cpp":{"size":9199,"mtime_ns":1782715529698852500,"word_count":847},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_batch_echo_c++\\CMakeLists.txt":{"size":1593,"mtime_ns":1785293755588347800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_batch_echo_c++\\client.cpp":{"size":4756,"mtime_ns":1782715529699854000,"word_count":526},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_batch_echo_c++\\server.cpp":{"size":4697,"mtime_ns":1782715529699854000,"word_count":525},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_echo_c++\\CMakeLists.txt":{"size":1551,"mtime_ns":1785293755589353900,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_echo_c++\\client.cpp":{"size":3387,"mtime_ns":1782715529700856400,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_echo_c++\\server.cpp":{"size":4317,"mtime_ns":1782715529701858500,"word_count":477},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\README.md":{"size":270,"mtime_ns":1782715529701858500,"word_count":28},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\client.cpp":{"size":3165,"mtime_ns":1782715529701858500,"word_count":357},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\client2.cpp":{"size":5760,"mtime_ns":1782715529701858500,"word_count":622},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\native_client.cpp":{"size":2765,"mtime_ns":1782715529701858500,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\native_server.cpp":{"size":4617,"mtime_ns":1782715529703361800,"word_count":360},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\server.cpp":{"size":3262,"mtime_ns":1782715529703361800,"word_count":347},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\server2.cpp":{"size":4328,"mtime_ns":1782715529703361800,"word_count":450},"C:\\workspace\\code\\opensource\\brpc\\example\\ubring_performance\\CMakeLists.txt":{"size":4569,"mtime_ns":1785293755589353900,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\example\\ubring_performance\\client.cpp":{"size":12630,"mtime_ns":1785293755589353900,"word_count":1178},"C:\\workspace\\code\\opensource\\brpc\\example\\ubring_performance\\server.cpp":{"size":3272,"mtime_ns":1785293755589353900,"word_count":320},"C:\\workspace\\code\\opensource\\brpc\\example\\urma_performance\\CMakeLists.txt":{"size":1944,"mtime_ns":1785295159720532200,"word_count":199},"C:\\workspace\\code\\opensource\\brpc\\example\\urma_performance\\client.cpp":{"size":5867,"mtime_ns":1785307277948975000,"word_count":582},"C:\\workspace\\code\\opensource\\brpc\\example\\urma_performance\\server.cpp":{"size":3300,"mtime_ns":1785297141444153100,"word_count":333},"C:\\workspace\\code\\opensource\\brpc\\homebrew-formula\\protobuf.rb":{"size":4020,"mtime_ns":1782715529703361800,"word_count":342},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\1.8.1.brpc-no-unwind\\presubmit.yml":{"size":430,"mtime_ns":1784705330096388400,"word_count":36},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\1.8.1.brpc-no-unwind\\source.json":{"size":404,"mtime_ns":1784705330096388400,"word_count":15},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\1.8.3.brpc-no-unwind\\presubmit.yml":{"size":430,"mtime_ns":1784705330101462200,"word_count":36},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\1.8.3.brpc-no-unwind\\source.json":{"size":404,"mtime_ns":1784705330101462200,"word_count":15},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\metadata.json":{"size":457,"mtime_ns":1784705330101462200,"word_count":29},"C:\\workspace\\code\\opensource\\brpc\\src\\CMakeLists.txt":{"size":4224,"mtime_ns":1784705330102964600,"word_count":320},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\acceptor.cpp":{"size":13380,"mtime_ns":1782715529705372200,"word_count":1335},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\acceptor.h":{"size":4067,"mtime_ns":1782715529705372200,"word_count":464},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_connection_type.cpp":{"size":2469,"mtime_ns":1782715529705372200,"word_count":269},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_connection_type.h":{"size":2654,"mtime_ns":1782715529705372200,"word_count":320},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_max_concurrency.cpp":{"size":3754,"mtime_ns":1784705330102964600,"word_count":366},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_max_concurrency.h":{"size":4254,"mtime_ns":1784705330102964600,"word_count":439},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_protocol_type.h":{"size":3204,"mtime_ns":1782715529706386100,"word_count":354},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\amf.cpp":{"size":41359,"mtime_ns":1784705330102964600,"word_count":3829},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\amf.h":{"size":10388,"mtime_ns":1782715529707388300,"word_count":1109},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\amf_inl.h":{"size":4789,"mtime_ns":1782715529707388300,"word_count":574},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\authenticator.h":{"size":3526,"mtime_ns":1782715529707388300,"word_count":444},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\backup_request_policy.cpp":{"size":7589,"mtime_ns":1782715529707388300,"word_count":738},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\backup_request_policy.h":{"size":3229,"mtime_ns":1782715529707388300,"word_count":445},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\baidu_master_service.cpp":{"size":1754,"mtime_ns":1782715529708390600,"word_count":202},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\baidu_master_service.h":{"size":3696,"mtime_ns":1782715529708390600,"word_count":299},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\bad_method_service.cpp":{"size":2802,"mtime_ns":1782715529708390600,"word_count":301},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\bad_method_service.h":{"size":1316,"mtime_ns":1782715529708390600,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\bthreads_service.cpp":{"size":3166,"mtime_ns":1782715529709387300,"word_count":327},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\bthreads_service.h":{"size":1327,"mtime_ns":1782715529709387300,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\common.cpp":{"size":12591,"mtime_ns":1782715529709890700,"word_count":1266},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\common.h":{"size":4917,"mtime_ns":1782715529709890700,"word_count":610},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\connections_service.cpp":{"size":15542,"mtime_ns":1782715529709890700,"word_count":1459},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\connections_service.h":{"size":1675,"mtime_ns":1782715529709890700,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\dir_service.cpp":{"size":4752,"mtime_ns":1782715529710891500,"word_count":458},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\dir_service.h":{"size":1294,"mtime_ns":1782715529710891500,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\flags_service.cpp":{"size":9765,"mtime_ns":1782715529710891500,"word_count":876},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\flags_service.h":{"size":1504,"mtime_ns":1782715529710891500,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\flot_min_js.cpp":{"size":55098,"mtime_ns":1782715529711893500,"word_count":667},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\flot_min_js.h":{"size":1310,"mtime_ns":1782715529711893500,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\get_favicon_service.cpp":{"size":3970,"mtime_ns":1782715529711893500,"word_count":763},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\get_favicon_service.h":{"size":1319,"mtime_ns":1782715529711893500,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\get_js_service.cpp":{"size":5067,"mtime_ns":1782715529711893500,"word_count":375},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\get_js_service.h":{"size":2133,"mtime_ns":1782715529712895700,"word_count":212},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\grpc_health_check_service.cpp":{"size":1890,"mtime_ns":1782715529712895700,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\grpc_health_check_service.h":{"size":1366,"mtime_ns":1782715529712895700,"word_count":161},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\health_service.cpp":{"size":1813,"mtime_ns":1782715529712895700,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\health_service.h":{"size":1335,"mtime_ns":1782715529712895700,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\hotspots_service.cpp":{"size":49479,"mtime_ns":1782715529713897600,"word_count":4345},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\hotspots_service.h":{"size":3788,"mtime_ns":1782715529713897600,"word_count":263},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\ids_service.cpp":{"size":2267,"mtime_ns":1782715529713897600,"word_count":234},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\ids_service.h":{"size":1291,"mtime_ns":1782715529713897600,"word_count":161},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\index_service.cpp":{"size":8194,"mtime_ns":1782715529713897600,"word_count":947},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\index_service.h":{"size":1427,"mtime_ns":1782715529714899600,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\jquery_min_js.cpp":{"size":97759,"mtime_ns":1782715529714899600,"word_count":1444},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\jquery_min_js.h":{"size":1324,"mtime_ns":1782715529714899600,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\list_service.cpp":{"size":1790,"mtime_ns":1782715529715901500,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\list_service.h":{"size":1437,"mtime_ns":1782715529715901500,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\memory_service.cpp":{"size":4031,"mtime_ns":1782715529715901500,"word_count":324},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\memory_service.h":{"size":1321,"mtime_ns":1782715529715901500,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\pprof_perl.cpp":{"size":250257,"mtime_ns":1782715529717381700,"word_count":28063},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\pprof_perl.h":{"size":1006,"mtime_ns":1782715529717381700,"word_count":145},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\pprof_service.cpp":{"size":19879,"mtime_ns":1782715529717381700,"word_count":1816},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\pprof_service.h":{"size":2434,"mtime_ns":1782715529718383400,"word_count":211},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\prometheus_metrics_service.cpp":{"size":9647,"mtime_ns":1782715529718383400,"word_count":941},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\prometheus_metrics_service.h":{"size":1493,"mtime_ns":1782715529718383400,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\protobufs_service.cpp":{"size":4688,"mtime_ns":1782715529718383400,"word_count":411},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\protobufs_service.h":{"size":1725,"mtime_ns":1782715529718383400,"word_count":203},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\rpcz_service.cpp":{"size":27566,"mtime_ns":1784705330102964600,"word_count":2496},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\rpcz_service.h":{"size":2530,"mtime_ns":1782715529719385100,"word_count":219},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\sockets_service.cpp":{"size":2204,"mtime_ns":1782715529719385100,"word_count":224},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\sockets_service.h":{"size":1320,"mtime_ns":1782715529719385100,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\sorttable_js.cpp":{"size":21008,"mtime_ns":1782715529720381900,"word_count":2418},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\sorttable_js.h":{"size":1269,"mtime_ns":1782715529720381900,"word_count":182},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\status_service.cpp":{"size":9977,"mtime_ns":1782715529720381900,"word_count":916},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\status_service.h":{"size":1435,"mtime_ns":1782715529720381900,"word_count":171},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\tabbed.h":{"size":2897,"mtime_ns":1782715529720885600,"word_count":349},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\threads_service.cpp":{"size":2137,"mtime_ns":1782715529720885600,"word_count":217},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\threads_service.h":{"size":1342,"mtime_ns":1782715529720885600,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\vars_service.cpp":{"size":17466,"mtime_ns":1782715529720885600,"word_count":1685},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\vars_service.h":{"size":1402,"mtime_ns":1782715529721915300,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\version_service.cpp":{"size":1689,"mtime_ns":1782715529721915300,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\version_service.h":{"size":1463,"mtime_ns":1782715529721915300,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\viz_min_js.cpp":{"size":1428808,"mtime_ns":1782715529727918900,"word_count":8559},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\viz_min_js.h":{"size":1303,"mtime_ns":1782715529727918900,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\vlog_service.cpp":{"size":3349,"mtime_ns":1782715529727918900,"word_count":332},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\vlog_service.h":{"size":1372,"mtime_ns":1782715529727918900,"word_count":168},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\callback.h":{"size":45251,"mtime_ns":1782715529728920000,"word_count":5198},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\channel.cpp":{"size":26401,"mtime_ns":1785290286031770500,"word_count":2215},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\channel.h":{"size":12349,"mtime_ns":1785291389127943900,"word_count":1447},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\channel_base.h":{"size":1572,"mtime_ns":1782715529729921200,"word_count":206},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\checksum.cpp":{"size":3299,"mtime_ns":1782715529729921200,"word_count":404},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\checksum.h":{"size":2159,"mtime_ns":1782715529729921200,"word_count":276},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\circuit_breaker.cpp":{"size":10551,"mtime_ns":1782715529729921200,"word_count":945},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\circuit_breaker.h":{"size":3510,"mtime_ns":1782715529729921200,"word_count":405},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\closure_guard.h":{"size":2225,"mtime_ns":1782715529730922800,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\cluster_recover_policy.cpp":{"size":5234,"mtime_ns":1782715529730922800,"word_count":514},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\cluster_recover_policy.h":{"size":3542,"mtime_ns":1782715529730922800,"word_count":456},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\compress.cpp":{"size":4458,"mtime_ns":1782715529730922800,"word_count":458},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\compress.h":{"size":6483,"mtime_ns":1782715529730922800,"word_count":635},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\concurrency_limiter.h":{"size":2645,"mtime_ns":1782715529730922800,"word_count":328},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\controller.cpp":{"size":72085,"mtime_ns":1784705330102964600,"word_count":6614},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\controller.h":{"size":44687,"mtime_ns":1784705330102964600,"word_count":5023},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\coroutine.h":{"size":4027,"mtime_ns":1782715529731924900,"word_count":489},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\coroutine_inl.h":{"size":10197,"mtime_ns":1782715529732931800,"word_count":1096},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\couchbase.cpp":{"size":101908,"mtime_ns":1784705330102964600,"word_count":9199},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\couchbase.h":{"size":20606,"mtime_ns":1782715529732931800,"word_count":1645},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\data_factory.h":{"size":1869,"mtime_ns":1782715529733933700,"word_count":279},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\describable.h":{"size":3213,"mtime_ns":1782715529733933700,"word_count":368},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\destroyable.h":{"size":1539,"mtime_ns":1782715529733933700,"word_count":213},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\controller_private_accessor.h":{"size":6790,"mtime_ns":1784705330102964600,"word_count":649},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\has_epollrdhup.cpp":{"size":2195,"mtime_ns":1782715529734936000,"word_count":274},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\has_epollrdhup.h":{"size":1310,"mtime_ns":1782715529734936000,"word_count":197},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\health_check.cpp":{"size":8642,"mtime_ns":1782715529734936000,"word_count":928},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\health_check.h":{"size":1216,"mtime_ns":1782715529734936000,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\hpack-static-table.h":{"size":8051,"mtime_ns":1782715529734936000,"word_count":823},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\hpack.cpp":{"size":29575,"mtime_ns":1784705330102964600,"word_count":2966},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\hpack.h":{"size":5308,"mtime_ns":1782715529735938100,"word_count":654},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\http_message.cpp":{"size":31175,"mtime_ns":1784705330102964600,"word_count":3187},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\http_message.h":{"size":5950,"mtime_ns":1784705330102964600,"word_count":627},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\http_parser.cpp":{"size":76245,"mtime_ns":1782715529735938100,"word_count":7786},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\http_parser.h":{"size":13648,"mtime_ns":1782715529737440800,"word_count":1570},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\jemalloc_profiler.cpp":{"size":12071,"mtime_ns":1782715529737440800,"word_count":1225},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\jemalloc_profiler.h":{"size":1127,"mtime_ns":1782715529737440800,"word_count":153},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\load_balancer_with_naming.cpp":{"size":2273,"mtime_ns":1782715529737440800,"word_count":245},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\load_balancer_with_naming.h":{"size":1800,"mtime_ns":1782715529738439500,"word_count":193},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\mesalink_ssl_helper.cpp":{"size":12966,"mtime_ns":1782715529738439500,"word_count":1327},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\method_status.cpp":{"size":5730,"mtime_ns":1782715529738439500,"word_count":508},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\method_status.h":{"size":4154,"mtime_ns":1782715529738941200,"word_count":477},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\naming_service_thread.cpp":{"size":18221,"mtime_ns":1782715529738941200,"word_count":1575},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\naming_service_thread.h":{"size":5590,"mtime_ns":1782715529738941200,"word_count":530},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\profiler_linker.h":{"size":1939,"mtime_ns":1782715529738941200,"word_count":240},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\rtmp_utils.cpp":{"size":2123,"mtime_ns":1784705330102964600,"word_count":296},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\rtmp_utils.h":{"size":1969,"mtime_ns":1782715529738941200,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\server_private_accessor.h":{"size":4627,"mtime_ns":1782715529738941200,"word_count":406},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\sparse_minute_counter.h":{"size":5722,"mtime_ns":1782715529740443400,"word_count":683},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\ssl_helper.cpp":{"size":32926,"mtime_ns":1784705330102964600,"word_count":3433},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\ssl_helper.h":{"size":4724,"mtime_ns":1784705330102964600,"word_count":607},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\tcmalloc_extension.cpp":{"size":2624,"mtime_ns":1782715529740443400,"word_count":324},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\tcmalloc_extension.h":{"size":14722,"mtime_ns":1782715529741450200,"word_count":2097},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\usercode_backup_pool.cpp":{"size":6942,"mtime_ns":1782715529741450200,"word_count":679},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\usercode_backup_pool.h":{"size":3439,"mtime_ns":1782715529741450200,"word_count":434},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\esp_head.h":{"size":1277,"mtime_ns":1782715529741450200,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\esp_message.cpp":{"size":1946,"mtime_ns":1782715529742451800,"word_count":231},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\esp_message.h":{"size":1674,"mtime_ns":1782715529742451800,"word_count":200},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\event_dispatcher.cpp":{"size":4503,"mtime_ns":1784705330102964600,"word_count":438},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\event_dispatcher.h":{"size":11008,"mtime_ns":1784705330110532100,"word_count":1100},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\event_dispatcher_epoll.cpp":{"size":8499,"mtime_ns":1784705330110532100,"word_count":960},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\event_dispatcher_kqueue.cpp":{"size":8057,"mtime_ns":1782715529743453800,"word_count":922},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\excluded_servers.h":{"size":3202,"mtime_ns":1782715529743453800,"word_count":392},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\extension.h":{"size":1965,"mtime_ns":1782715529743453800,"word_count":243},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\extension_inl.h":{"size":2677,"mtime_ns":1782715529743453800,"word_count":338},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\global.cpp":{"size":28335,"mtime_ns":1785293755589353900,"word_count":2098},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\global.h":{"size":1077,"mtime_ns":1782715529744455800,"word_count":157},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\grpc.cpp":{"size":7047,"mtime_ns":1782715529744455800,"word_count":776},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\grpc.h":{"size":6718,"mtime_ns":1782715529745458000,"word_count":925},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\health_check_option.h":{"size":1265,"mtime_ns":1782715529745458000,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\health_reporter.h":{"size":1504,"mtime_ns":1782715529745458000,"word_count":202},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http2.cpp":{"size":4345,"mtime_ns":1782715529745458000,"word_count":403},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http2.h":{"size":5798,"mtime_ns":1782715529746459200,"word_count":815},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_header.cpp":{"size":4793,"mtime_ns":1782715529746459200,"word_count":475},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_header.h":{"size":8448,"mtime_ns":1782715529746459200,"word_count":932},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_method.cpp":{"size":5242,"mtime_ns":1784705330111668600,"word_count":580},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_method.h":{"size":2269,"mtime_ns":1782715529747461000,"word_count":260},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_status_code.cpp":{"size":6600,"mtime_ns":1782715529747461000,"word_count":546},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_status_code.h":{"size":34734,"mtime_ns":1782715529747461000,"word_count":5437},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\input_message_base.h":{"size":2223,"mtime_ns":1782715529747461000,"word_count":287},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\input_messenger.cpp":{"size":23201,"mtime_ns":1785294178016642400,"word_count":2200},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\input_messenger.h":{"size":6399,"mtime_ns":1785294217486306400,"word_count":764},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\interceptor.h":{"size":1407,"mtime_ns":1782715529748463400,"word_count":190},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\kvmap.h":{"size":2502,"mtime_ns":1782715529748463400,"word_count":331},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\load_balancer.cpp":{"size":4536,"mtime_ns":1782715529748463400,"word_count":476},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\load_balancer.h":{"size":6913,"mtime_ns":1782715529749465500,"word_count":714},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\log.h":{"size":1263,"mtime_ns":1782715529749465500,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\memcache.cpp":{"size":28637,"mtime_ns":1785293755591863800,"word_count":2611},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\memcache.h":{"size":8377,"mtime_ns":1782715529749465500,"word_count":838},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\mongo_head.h":{"size":2906,"mtime_ns":1782715529749465500,"word_count":298},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\mongo_service_adaptor.h":{"size":2294,"mtime_ns":1782715529749465500,"word_count":315},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\naming_service.h":{"size":3317,"mtime_ns":1782715529750492400,"word_count":400},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\naming_service_filter.h":{"size":1298,"mtime_ns":1782715529750492400,"word_count":182},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nonreflectable_message.h":{"size":11315,"mtime_ns":1784705330111668600,"word_count":981},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead.h":{"size":1413,"mtime_ns":1782715529750492400,"word_count":197},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_message.cpp":{"size":2572,"mtime_ns":1782715529750492400,"word_count":282},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_message.h":{"size":2053,"mtime_ns":1782715529751494400,"word_count":231},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_pb_service_adaptor.cpp":{"size":5435,"mtime_ns":1782715529751494400,"word_count":451},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_pb_service_adaptor.h":{"size":4387,"mtime_ns":1782715529752028700,"word_count":500},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_service.cpp":{"size":1933,"mtime_ns":1782715529752028700,"word_count":217},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_service.h":{"size":4739,"mtime_ns":1782715529752028700,"word_count":518},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\parallel_channel.cpp":{"size":30328,"mtime_ns":1782715529752028700,"word_count":3002},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\parallel_channel.h":{"size":11869,"mtime_ns":1782715529753035100,"word_count":1376},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\parse_result.h":{"size":3194,"mtime_ns":1785293755592870000,"word_count":382},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\partition_channel.cpp":{"size":17557,"mtime_ns":1782715529753035100,"word_count":1534},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\partition_channel.h":{"size":7022,"mtime_ns":1782715529753035100,"word_count":799},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\pb_compat.h":{"size":1489,"mtime_ns":1782715529753035100,"word_count":200},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\periodic_naming_service.cpp":{"size":3049,"mtime_ns":1782715529753035100,"word_count":358},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\periodic_naming_service.h":{"size":1408,"mtime_ns":1782715529753035100,"word_count":172},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\periodic_task.cpp":{"size":2214,"mtime_ns":1782715529753035100,"word_count":254},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\periodic_task.h":{"size":1875,"mtime_ns":1782715529754538600,"word_count":272},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\auto_concurrency_limiter.cpp":{"size":13671,"mtime_ns":1782715529754538600,"word_count":1316},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\auto_concurrency_limiter.h":{"size":2983,"mtime_ns":1782715529754538600,"word_count":291},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\baidu_naming_service.cpp":{"size":2931,"mtime_ns":1782715529754538600,"word_count":321},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\baidu_naming_service.h":{"size":1694,"mtime_ns":1782715529755543500,"word_count":202},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\baidu_rpc_protocol.cpp":{"size":49267,"mtime_ns":1782715529755543500,"word_count":3333},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\baidu_rpc_protocol.h":{"size":2214,"mtime_ns":1782715529755543500,"word_count":250},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\consistent_hashing_load_balancer.cpp":{"size":14831,"mtime_ns":1782715529755543500,"word_count":1393},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\consistent_hashing_load_balancer.h":{"size":3640,"mtime_ns":1782715529756545700,"word_count":368},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\constant_concurrency_limiter.cpp":{"size":1875,"mtime_ns":1784705330113128200,"word_count":196},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\constant_concurrency_limiter.h":{"size":1652,"mtime_ns":1782715529756545700,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\consul_naming_service.cpp":{"size":11156,"mtime_ns":1782715529756545700,"word_count":1013},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\consul_naming_service.h":{"size":1883,"mtime_ns":1782715529756545700,"word_count":210},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\couchbase_authenticator.cpp":{"size":2254,"mtime_ns":1782715529757548200,"word_count":226},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\couchbase_authenticator.h":{"size":1904,"mtime_ns":1782715529757548200,"word_count":227},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\couchbase_protocol.cpp":{"size":9653,"mtime_ns":1784705330113128200,"word_count":730},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\couchbase_protocol.h":{"size":5502,"mtime_ns":1782715529757548200,"word_count":623},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\crc32c_checksum.cpp":{"size":2385,"mtime_ns":1782715529757548200,"word_count":266},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\crc32c_checksum.h":{"size":1262,"mtime_ns":1782715529758550100,"word_count":171},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\dh.cpp":{"size":4141,"mtime_ns":1782715529758550100,"word_count":514},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\dh.h":{"size":2682,"mtime_ns":1782715529758550100,"word_count":388},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\discovery_naming_service.cpp":{"size":18186,"mtime_ns":1782715529758550100,"word_count":1665},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\discovery_naming_service.h":{"size":2654,"mtime_ns":1782715529758550100,"word_count":303},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\domain_naming_service.cpp":{"size":6480,"mtime_ns":1782715529758550100,"word_count":749},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\domain_naming_service.h":{"size":1686,"mtime_ns":1782715529759552100,"word_count":195},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\dynpart_load_balancer.cpp":{"size":5664,"mtime_ns":1782715529759552100,"word_count":605},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\dynpart_load_balancer.h":{"size":2477,"mtime_ns":1782715529759552100,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\esp_authenticator.cpp":{"size":1671,"mtime_ns":1782715529759552100,"word_count":200},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\esp_authenticator.h":{"size":1421,"mtime_ns":1782715529759552100,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\esp_protocol.cpp":{"size":6031,"mtime_ns":1782715529760554100,"word_count":544},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\esp_protocol.h":{"size":1770,"mtime_ns":1782715529760554100,"word_count":192},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\file_naming_service.cpp":{"size":5851,"mtime_ns":1782715529760554100,"word_count":633},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\file_naming_service.h":{"size":1555,"mtime_ns":1782715529760554100,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\giano_authenticator.cpp":{"size":2867,"mtime_ns":1782715529760554100,"word_count":295},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\giano_authenticator.h":{"size":1899,"mtime_ns":1782715529761556200,"word_count":219},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\gzip_compress.cpp":{"size":7312,"mtime_ns":1782715529761556200,"word_count":702},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\gzip_compress.h":{"size":2001,"mtime_ns":1782715529761556200,"word_count":230},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hasher.cpp":{"size":6762,"mtime_ns":1782715529761556200,"word_count":684},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hasher.h":{"size":1455,"mtime_ns":1782715529761556200,"word_count":193},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\http2_rpc_protocol.cpp":{"size":73177,"mtime_ns":1785293755593873600,"word_count":6354},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\http2_rpc_protocol.h":{"size":14955,"mtime_ns":1782715529762558300,"word_count":1333},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\http_rpc_protocol.cpp":{"size":78321,"mtime_ns":1784705330115511500,"word_count":6275},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\http_rpc_protocol.h":{"size":5930,"mtime_ns":1784622097681693900,"word_count":540},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hulu_pbrpc_controller.h":{"size":3672,"mtime_ns":1782715529763560100,"word_count":396},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hulu_pbrpc_protocol.cpp":{"size":29058,"mtime_ns":1782715529764561900,"word_count":2142},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hulu_pbrpc_protocol.h":{"size":1983,"mtime_ns":1782715529764561900,"word_count":228},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\list_naming_service.cpp":{"size":4305,"mtime_ns":1782715529764561900,"word_count":423},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\list_naming_service.h":{"size":2085,"mtime_ns":1782715529764561900,"word_count":237},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\locality_aware_load_balancer.cpp":{"size":22598,"mtime_ns":1782715529764561900,"word_count":2460},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\locality_aware_load_balancer.h":{"size":8057,"mtime_ns":1782715529765564000,"word_count":771},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\memcache_binary_header.h":{"size":4870,"mtime_ns":1782715529765564000,"word_count":587},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\memcache_binary_protocol.cpp":{"size":10210,"mtime_ns":1784705330115511500,"word_count":735},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\memcache_binary_protocol.h":{"size":2074,"mtime_ns":1782715529765564000,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mongo_protocol.cpp":{"size":12564,"mtime_ns":1782715529766565900,"word_count":931},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mongo_protocol.h":{"size":1331,"mtime_ns":1782715529766565900,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\most_common_message.h":{"size":1811,"mtime_ns":1782715529766565900,"word_count":226},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql.cpp":{"size":15691,"mtime_ns":1784705330115511500,"word_count":1573},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql.h":{"size":7973,"mtime_ns":1784705330116690000,"word_count":801},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_handshake.cpp":{"size":11529,"mtime_ns":1784705330116690000,"word_count":1158},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_handshake.h":{"size":6336,"mtime_ns":1784705330116690000,"word_count":657},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_packet.cpp":{"size":6792,"mtime_ns":1784705330116690000,"word_count":734},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_packet.h":{"size":4703,"mtime_ns":1784705330118097000,"word_count":621},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_scramble.cpp":{"size":6354,"mtime_ns":1784705330118097000,"word_count":585},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_scramble.h":{"size":5337,"mtime_ns":1784705330118097000,"word_count":642},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_authenticator.cpp":{"size":8949,"mtime_ns":1784705330118097000,"word_count":896},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_authenticator.h":{"size":3089,"mtime_ns":1784705330119225300,"word_count":310},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_command.cpp":{"size":10969,"mtime_ns":1784705330119225300,"word_count":1054},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_command.h":{"size":3673,"mtime_ns":1784705330119726800,"word_count":353},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_common.cpp":{"size":7614,"mtime_ns":1784705330119726800,"word_count":589},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_common.h":{"size":6876,"mtime_ns":1784705330119726800,"word_count":735},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_protocol.cpp":{"size":24139,"mtime_ns":1784705330119726800,"word_count":2263},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_protocol.h":{"size":2027,"mtime_ns":1784705330119726800,"word_count":221},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_reply.cpp":{"size":56717,"mtime_ns":1784705330120999500,"word_count":5680},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_reply.h":{"size":28419,"mtime_ns":1784705330120999500,"word_count":2813},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_statement.cpp":{"size":6640,"mtime_ns":1784705330122010900,"word_count":826},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_statement.h":{"size":2505,"mtime_ns":1784705330122010900,"word_count":265},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_statement_inl.h":{"size":2033,"mtime_ns":1784705330122010900,"word_count":235},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_transaction.cpp":{"size":4936,"mtime_ns":1784705330122010900,"word_count":525},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_transaction.h":{"size":3061,"mtime_ns":1784705330123014700,"word_count":293},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nacos_naming_service.cpp":{"size":10168,"mtime_ns":1782715529766565900,"word_count":960},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nacos_naming_service.h":{"size":2070,"mtime_ns":1782715529766565900,"word_count":229},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nova_pbrpc_protocol.cpp":{"size":8578,"mtime_ns":1782715529767567800,"word_count":791},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nova_pbrpc_protocol.h":{"size":2427,"mtime_ns":1782715529767567800,"word_count":243},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nshead_mcpack_protocol.cpp":{"size":7919,"mtime_ns":1782715529767567800,"word_count":643},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nshead_mcpack_protocol.h":{"size":2495,"mtime_ns":1782715529767567800,"word_count":242},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nshead_protocol.cpp":{"size":17308,"mtime_ns":1782715529767567800,"word_count":1384},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nshead_protocol.h":{"size":1919,"mtime_ns":1782715529768580600,"word_count":225},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\p2c_ewma_load_balancer.cpp":{"size":14826,"mtime_ns":1784705330123014700,"word_count":1616},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\p2c_ewma_load_balancer.h":{"size":4135,"mtime_ns":1784705330123014700,"word_count":466},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\public_pbrpc_protocol.cpp":{"size":12416,"mtime_ns":1782715529768580600,"word_count":1002},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\public_pbrpc_protocol.h":{"size":2438,"mtime_ns":1782715529768580600,"word_count":243},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\randomized_load_balancer.cpp":{"size":5666,"mtime_ns":1782715529768580600,"word_count":606},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\randomized_load_balancer.h":{"size":2689,"mtime_ns":1782715529768580600,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\rdma_handshake_protocol.cpp":{"size":1679,"mtime_ns":1785293755594417000,"word_count":211},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\rdma_handshake_protocol.h":{"size":2603,"mtime_ns":1785293755594417000,"word_count":377},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\redis_authenticator.cpp":{"size":1453,"mtime_ns":1782715529769582900,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\redis_authenticator.h":{"size":1768,"mtime_ns":1782715529769582900,"word_count":220},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\redis_protocol.cpp":{"size":13576,"mtime_ns":1782715529769582900,"word_count":1170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\redis_protocol.h":{"size":2345,"mtime_ns":1782715529769582900,"word_count":266},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\remote_file_naming_service.cpp":{"size":6200,"mtime_ns":1782715529770585100,"word_count":585},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\remote_file_naming_service.h":{"size":1635,"mtime_ns":1782715529770585100,"word_count":192},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\round_robin_load_balancer.cpp":{"size":5522,"mtime_ns":1782715529770585100,"word_count":591},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\round_robin_load_balancer.h":{"size":2745,"mtime_ns":1782715529770585100,"word_count":291},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\rtmp_protocol.cpp":{"size":145529,"mtime_ns":1784705330124065900,"word_count":12539},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\rtmp_protocol.h":{"size":25446,"mtime_ns":1782715529772084300,"word_count":2296},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\snappy_compress.cpp":{"size":2957,"mtime_ns":1782715529772084300,"word_count":304},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\snappy_compress.h":{"size":1607,"mtime_ns":1782715529772084300,"word_count":205},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\sofa_pbrpc_protocol.cpp":{"size":23043,"mtime_ns":1782715529772084300,"word_count":1789},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\sofa_pbrpc_protocol.h":{"size":1998,"mtime_ns":1782715529773085200,"word_count":228},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\streaming_rpc_protocol.cpp":{"size":7335,"mtime_ns":1782715529773085200,"word_count":681},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\streaming_rpc_protocol.h":{"size":1823,"mtime_ns":1782715529773085200,"word_count":199},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\thrift_protocol.cpp":{"size":30101,"mtime_ns":1782715529773085200,"word_count":2277},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\thrift_protocol.h":{"size":1966,"mtime_ns":1782715529773085200,"word_count":232},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\timeout_concurrency_limiter.cpp":{"size":7511,"mtime_ns":1782715529774085800,"word_count":679},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\timeout_concurrency_limiter.h":{"size":2674,"mtime_ns":1782715529774085800,"word_count":266},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\ubrpc2pb_protocol.cpp":{"size":24337,"mtime_ns":1782715529774085800,"word_count":1743},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\ubrpc2pb_protocol.h":{"size":2935,"mtime_ns":1782715529774085800,"word_count":269},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\weighted_randomized_load_balancer.cpp":{"size":7257,"mtime_ns":1782715529774085800,"word_count":714},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\weighted_randomized_load_balancer.h":{"size":2824,"mtime_ns":1782715529774085800,"word_count":319},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\weighted_round_robin_load_balancer.cpp":{"size":9593,"mtime_ns":1782715529775087400,"word_count":931},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\weighted_round_robin_load_balancer.h":{"size":3649,"mtime_ns":1782715529775087400,"word_count":382},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\progressive_attachment.cpp":{"size":9576,"mtime_ns":1782715529775087400,"word_count":950},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\progressive_attachment.h":{"size":3102,"mtime_ns":1782715529775087400,"word_count":378},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\progressive_reader.h":{"size":4248,"mtime_ns":1784622097681693900,"word_count":586},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\protocol.cpp":{"size":10052,"mtime_ns":1782715529776089500,"word_count":943},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\protocol.h":{"size":9864,"mtime_ns":1782715529776089500,"word_count":1079},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\block_pool.cpp":{"size":22623,"mtime_ns":1784705330124065900,"word_count":2232},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\block_pool.h":{"size":5224,"mtime_ns":1784705330124065900,"word_count":843},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_endpoint.cpp":{"size":63632,"mtime_ns":1785293755594417000,"word_count":6162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_endpoint.h":{"size":12453,"mtime_ns":1785293755594417000,"word_count":1437},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake.cpp":{"size":18728,"mtime_ns":1785293755594417000,"word_count":1695},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake.h":{"size":6466,"mtime_ns":1785293755596422600,"word_count":769},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake_constants.h":{"size":2418,"mtime_ns":1785293755596422600,"word_count":355},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake_server.cpp":{"size":8514,"mtime_ns":1785293755597447500,"word_count":907},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake_server.h":{"size":1827,"mtime_ns":1785293755597447500,"word_count":241},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_helper.cpp":{"size":25576,"mtime_ns":1785293755597447500,"word_count":2548},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_helper.h":{"size":2982,"mtime_ns":1782715529778093500,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma_transport.cpp":{"size":9294,"mtime_ns":1785293755597447500,"word_count":883},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma_transport.h":{"size":2588,"mtime_ns":1785293755597447500,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis.cpp":{"size":10934,"mtime_ns":1782715529779095900,"word_count":1076},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis.h":{"size":12023,"mtime_ns":1782715529779095900,"word_count":1394},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_cluster.cpp":{"size":40585,"mtime_ns":1782715529779095900,"word_count":3338},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_cluster.h":{"size":6789,"mtime_ns":1782715529779095900,"word_count":495},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_command.cpp":{"size":23822,"mtime_ns":1784705330128565700,"word_count":2385},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_command.h":{"size":3236,"mtime_ns":1782715529780122100,"word_count":369},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_reply.cpp":{"size":18412,"mtime_ns":1784705330128565700,"word_count":1869},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_reply.h":{"size":11635,"mtime_ns":1784705330128565700,"word_count":1406},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\reloadable_flags.cpp":{"size":2968,"mtime_ns":1782715529780122100,"word_count":329},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\reloadable_flags.h":{"size":2379,"mtime_ns":1782715529781124400,"word_count":269},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\restful.cpp":{"size":19130,"mtime_ns":1782715529781124400,"word_count":1861},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\restful.h":{"size":3903,"mtime_ns":1782715529781124400,"word_count":436},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\retry_policy.cpp":{"size":2900,"mtime_ns":1782715529781124400,"word_count":318},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\retry_policy.h":{"size":5634,"mtime_ns":1782715529782126500,"word_count":559},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rpc_dump.cpp":{"size":12453,"mtime_ns":1782715529782126500,"word_count":1208},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rpc_dump.h":{"size":3484,"mtime_ns":1782715529782126500,"word_count":439},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rpc_pb_message_factory.cpp":{"size":2011,"mtime_ns":1782715529782126500,"word_count":209},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rpc_pb_message_factory.h":{"size":5234,"mtime_ns":1782715529782126500,"word_count":458},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rtmp.cpp":{"size":104468,"mtime_ns":1784705330129679800,"word_count":8954},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rtmp.h":{"size":41683,"mtime_ns":1782715529783128700,"word_count":4418},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\selective_channel.cpp":{"size":20754,"mtime_ns":1784705330129679800,"word_count":1846},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\selective_channel.h":{"size":4534,"mtime_ns":1782715529784154900,"word_count":573},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\serialized_request.cpp":{"size":2085,"mtime_ns":1782715529784154900,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\serialized_request.h":{"size":2039,"mtime_ns":1782715529784154900,"word_count":224},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\serialized_response.cpp":{"size":2105,"mtime_ns":1782715529784154900,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\serialized_response.h":{"size":2052,"mtime_ns":1782715529784154900,"word_count":224},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server.cpp":{"size":88506,"mtime_ns":1785297140877672000,"word_count":7481},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server.h":{"size":34855,"mtime_ns":1784622249691028500,"word_count":4008},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server_id.cpp":{"size":2193,"mtime_ns":1782715529786159100,"word_count":253},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server_id.h":{"size":3443,"mtime_ns":1782715529786159100,"word_count":431},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server_node.h":{"size":2173,"mtime_ns":1782715529786159100,"word_count":288},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\shared_object.h":{"size":1026,"mtime_ns":1782715529786159100,"word_count":146},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\simple_data_pool.cpp":{"size":3836,"mtime_ns":1782715529786159100,"word_count":427},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\simple_data_pool.h":{"size":1967,"mtime_ns":1782715529786159100,"word_count":256},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket.cpp":{"size":110107,"mtime_ns":1785293755599452600,"word_count":10510},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket.h":{"size":44265,"mtime_ns":1785294553928446600,"word_count":4950},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_id.h":{"size":1881,"mtime_ns":1782715529787161200,"word_count":257},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_inl.h":{"size":5006,"mtime_ns":1782715529787161200,"word_count":511},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_map.cpp":{"size":16300,"mtime_ns":1784705330132174000,"word_count":1558},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_map.h":{"size":9024,"mtime_ns":1782715529788665000,"word_count":955},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_message.h":{"size":3493,"mtime_ns":1782715529788665000,"word_count":440},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_mode.h":{"size":1072,"mtime_ns":1785294272606414200,"word_count":157},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\span.cpp":{"size":36432,"mtime_ns":1784705330133259400,"word_count":3312},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\span.h":{"size":12886,"mtime_ns":1784705330133259400,"word_count":1435},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ssl_options.cpp":{"size":1347,"mtime_ns":1784705330133259400,"word_count":166},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ssl_options.h":{"size":6469,"mtime_ns":1784705330134449700,"word_count":876},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\stream.cpp":{"size":33218,"mtime_ns":1784705330134449700,"word_count":2867},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\stream.h":{"size":6795,"mtime_ns":1782715529790673900,"word_count":868},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\stream_creator.h":{"size":3536,"mtime_ns":1782715529790673900,"word_count":474},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\stream_impl.h":{"size":5478,"mtime_ns":1782715529790673900,"word_count":487},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\tcp_transport.cpp":{"size":3900,"mtime_ns":1782715529790673900,"word_count":390},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\tcp_transport.h":{"size":1731,"mtime_ns":1782715529791675800,"word_count":208},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\thrift_message.cpp":{"size":2959,"mtime_ns":1782715529791675800,"word_count":283},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\thrift_message.h":{"size":7593,"mtime_ns":1782715529791675800,"word_count":712},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\thrift_service.cpp":{"size":1638,"mtime_ns":1782715529791675800,"word_count":197},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\thrift_service.h":{"size":2600,"mtime_ns":1782715529791675800,"word_count":287},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\traceprintf.h":{"size":2542,"mtime_ns":1782715529792677800,"word_count":302},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\trackme.cpp":{"size":8954,"mtime_ns":1782715529792677800,"word_count":982},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\trackme.h":{"size":1346,"mtime_ns":1782715529792677800,"word_count":195},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\transport.h":{"size":2618,"mtime_ns":1782715529792677800,"word_count":295},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\transport_factory.cpp":{"size":2484,"mtime_ns":1785294381766461400,"word_count":278},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\transport_factory.h":{"size":1359,"mtime_ns":1782715529793680000,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ts.cpp":{"size":53090,"mtime_ns":1782715529793680000,"word_count":5555},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ts.h":{"size":64703,"mtime_ns":1782715529794682200,"word_count":9379},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\common\\common.h":{"size":5608,"mtime_ns":1785293755599452600,"word_count":603},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\common\\thread_lock.h":{"size":1657,"mtime_ns":1785293755599452600,"word_count":197},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_def.h":{"size":2277,"mtime_ns":1785293755599452600,"word_count":323},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_ipc.cpp":{"size":7563,"mtime_ns":1785293755599452600,"word_count":962},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_ipc.h":{"size":1307,"mtime_ns":1785293755599452600,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_mgr.cpp":{"size":7245,"mtime_ns":1785293755599452600,"word_count":775},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_mgr.h":{"size":1451,"mtime_ns":1785293755599452600,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_ubs.cpp":{"size":19562,"mtime_ns":1785293755599452600,"word_count":2140},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_ubs.h":{"size":1882,"mtime_ns":1785293755599452600,"word_count":220},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\timer\\timer_mgr.cpp":{"size":14721,"mtime_ns":1785293755599452600,"word_count":1443},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\timer\\timer_mgr.h":{"size":2101,"mtime_ns":1785293755599452600,"word_count":240},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_endpoint.cpp":{"size":34204,"mtime_ns":1785293755599452600,"word_count":3103},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_endpoint.h":{"size":7238,"mtime_ns":1785293755599452600,"word_count":759},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_helper.cpp":{"size":3868,"mtime_ns":1785293755599452600,"word_count":381},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_helper.h":{"size":1708,"mtime_ns":1785293755606667800,"word_count":206},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_ring.cpp":{"size":42898,"mtime_ns":1785293950765260500,"word_count":3975},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_ring.h":{"size":7193,"mtime_ns":1785293755607752900,"word_count":681},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_ring_manager.cpp":{"size":9591,"mtime_ns":1785293755608258400,"word_count":857},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_ring_manager.h":{"size":2587,"mtime_ns":1785293755608258400,"word_count":268},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubr_msg.h":{"size":1741,"mtime_ns":1785293755609038500,"word_count":216},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubr_trx.h":{"size":4405,"mtime_ns":1785293755609038500,"word_count":408},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubs_mem\\declare_shm_ubs.h":{"size":2308,"mtime_ns":1785293755609543700,"word_count":246},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubs_mem\\ubs_mem.h":{"size":9173,"mtime_ns":1785293755609543700,"word_count":1383},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubs_mem\\ubs_mem_def.h":{"size":5072,"mtime_ns":1785293755609543700,"word_count":590},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubs_mem\\ubshmem_stub.cpp":{"size":2727,"mtime_ns":1785293755610561700,"word_count":315},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm_transport.cpp":{"size":8514,"mtime_ns":1785293755610561700,"word_count":791},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm_transport.h":{"size":2500,"mtime_ns":1785293755610561700,"word_count":279},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\uri.cpp":{"size":15797,"mtime_ns":1784705330134449700,"word_count":1811},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\uri.h":{"size":10632,"mtime_ns":1782715529794682200,"word_count":1136},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp":{"size":22422,"mtime_ns":1785291503405746700,"word_count":2055},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_api.h":{"size":47786,"mtime_ns":1785227626464076200,"word_count":6750},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_opcode.h":{"size":10591,"mtime_ns":1785226861704155300,"word_count":1138},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h":{"size":54318,"mtime_ns":1785227626506547800,"word_count":6079},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp":{"size":58559,"mtime_ns":1785309099990290300,"word_count":5389},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h":{"size":13432,"mtime_ns":1785309036527955400,"word_count":1577},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp":{"size":11297,"mtime_ns":1785291857383725700,"word_count":1138},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.h":{"size":6762,"mtime_ns":1785291144209111300,"word_count":893},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp":{"size":24053,"mtime_ns":1785307850782229900,"word_count":2487},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.h":{"size":3392,"mtime_ns":1785290825559803600,"word_count":452},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma_transport.cpp":{"size":8389,"mtime_ns":1785291842937818600,"word_count":762},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma_transport.h":{"size":3163,"mtime_ns":1785290289314107500,"word_count":342},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\versioned_ref_with_id.h":{"size":25717,"mtime_ns":1782715529794682200,"word_count":2481},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\bthread.cpp":{"size":23702,"mtime_ns":1784705330135575500,"word_count":2259},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\bthread.h":{"size":21019,"mtime_ns":1782715529795684100,"word_count":2541},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\bthread_once.cpp":{"size":3308,"mtime_ns":1782715529795684100,"word_count":370},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\butex.cpp":{"size":28261,"mtime_ns":1784705330135575500,"word_count":2700},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\butex.h":{"size":3559,"mtime_ns":1782715529796686100,"word_count":511},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\comlog_initializer.h":{"size":1553,"mtime_ns":1782715529796686100,"word_count":193},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\condition_variable.cpp":{"size":5477,"mtime_ns":1782715529796686100,"word_count":563},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\condition_variable.h":{"size":4063,"mtime_ns":1782715529796686100,"word_count":368},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\context.cpp":{"size":26949,"mtime_ns":1782715529797688300,"word_count":3500},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\context.h":{"size":2804,"mtime_ns":1782715529797688300,"word_count":200},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\countdown_event.cpp":{"size":3602,"mtime_ns":1782715529797688300,"word_count":399},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\countdown_event.h":{"size":2073,"mtime_ns":1782715529797688300,"word_count":294},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\errno.cpp":{"size":1415,"mtime_ns":1782715529797688300,"word_count":198},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\errno.h":{"size":1360,"mtime_ns":1782715529798689900,"word_count":186},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\execution_queue.cpp":{"size":17967,"mtime_ns":1782715529798689900,"word_count":1676},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\execution_queue.h":{"size":9338,"mtime_ns":1782715529798689900,"word_count":1093},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\execution_queue_inl.h":{"size":20380,"mtime_ns":1782715529798689900,"word_count":1873},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\fd.cpp":{"size":18548,"mtime_ns":1784705330136577300,"word_count":1875},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\id.cpp":{"size":26122,"mtime_ns":1782715529799711900,"word_count":2572},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\id.h":{"size":9258,"mtime_ns":1782715529799711900,"word_count":1075},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\interrupt_pthread.cpp":{"size":1496,"mtime_ns":1782715529799711900,"word_count":206},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\interrupt_pthread.h":{"size":1266,"mtime_ns":1782715529799711900,"word_count":183},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\key.cpp":{"size":23604,"mtime_ns":1784705330136577300,"word_count":2190},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\list_of_abafree_id.h":{"size":11809,"mtime_ns":1782715529800712600,"word_count":1465},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\log.h":{"size":1115,"mtime_ns":1782715529800712600,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\mutex.cpp":{"size":53802,"mtime_ns":1785293755611582700,"word_count":4847},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\mutex.h":{"size":7591,"mtime_ns":1782715529801827900,"word_count":727},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\parking_lot.h":{"size":3311,"mtime_ns":1782715529801827900,"word_count":359},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\prime_offset.h":{"size":1305,"mtime_ns":1782715529801827900,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\processor.h":{"size":3070,"mtime_ns":1784705330137579800,"word_count":360},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\remote_task_queue.h":{"size":2542,"mtime_ns":1782715529802824700,"word_count":303},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\rwlock.cpp":{"size":25005,"mtime_ns":1784705330137579800,"word_count":2849},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\rwlock.h":{"size":5785,"mtime_ns":1782715529803327900,"word_count":556},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\semaphore.cpp":{"size":6658,"mtime_ns":1782715529803327900,"word_count":660},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\singleton_on_bthread_once.h":{"size":2153,"mtime_ns":1782715529803327900,"word_count":260},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\stack.cpp":{"size":6448,"mtime_ns":1782715529803327900,"word_count":623},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\stack.h":{"size":2889,"mtime_ns":1782715529804406100,"word_count":347},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\stack_inl.h":{"size":9315,"mtime_ns":1782715529804406100,"word_count":762},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\sys_futex.cpp":{"size":4443,"mtime_ns":1782715529804406100,"word_count":449},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\sys_futex.h":{"size":2366,"mtime_ns":1782715529804406100,"word_count":285},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_control.cpp":{"size":28696,"mtime_ns":1784705330138675100,"word_count":2751},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_control.h":{"size":8417,"mtime_ns":1784705330138675100,"word_count":777},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_group.cpp":{"size":46336,"mtime_ns":1785293755611582700,"word_count":4417},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_group.h":{"size":14228,"mtime_ns":1784705330139865100,"word_count":1544},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_group_inl.h":{"size":4432,"mtime_ns":1782715529806410800,"word_count":499},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_meta.h":{"size":5950,"mtime_ns":1784705330139865100,"word_count":676},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_tracer.cpp":{"size":18319,"mtime_ns":1784705330139865100,"word_count":1738},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_tracer.h":{"size":4068,"mtime_ns":1782715529806410800,"word_count":427},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\timer_thread.cpp":{"size":22777,"mtime_ns":1785293755612806000,"word_count":2485},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\timer_thread.h":{"size":4361,"mtime_ns":1785293755612806000,"word_count":577},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\types.h":{"size":11368,"mtime_ns":1784705330141287400,"word_count":1313},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\unstable.h":{"size":6344,"mtime_ns":1782715529807650700,"word_count":837},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\work_stealing_queue.h":{"size":5416,"mtime_ns":1782715529807650700,"word_count":611},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\arena.cpp":{"size":3048,"mtime_ns":1782715529807650700,"word_count":364},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\arena.h":{"size":2426,"mtime_ns":1782715529808907300,"word_count":292},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\at_exit.cc":{"size":2212,"mtime_ns":1782715529808907300,"word_count":254},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\at_exit.h":{"size":2456,"mtime_ns":1782715529808907300,"word_count":324},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomic_ref_count.h":{"size":3082,"mtime_ns":1782715529808907300,"word_count":404},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomic_sequence_num.h":{"size":1797,"mtime_ns":1782715529808907300,"word_count":219},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops.h":{"size":12927,"mtime_ns":1782715529808907300,"word_count":1394},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_arm64_gcc.h":{"size":9448,"mtime_ns":1782715529810076400,"word_count":943},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_arm_gcc.h":{"size":10770,"mtime_ns":1782715529810076400,"word_count":1216},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_atomicword_compat.h":{"size":3825,"mtime_ns":1782715529810076400,"word_count":330},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_gcc.h":{"size":3349,"mtime_ns":1782715529810076400,"word_count":336},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_loongarch64_gcc.h":{"size":7568,"mtime_ns":1782715529810076400,"word_count":706},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_mac.h":{"size":6006,"mtime_ns":1782715529811102600,"word_count":510},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_mips_gcc.h":{"size":5701,"mtime_ns":1782715529811102600,"word_count":608},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_riscv_gcc.h":{"size":6155,"mtime_ns":1782715529811102600,"word_count":603},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_tsan.h":{"size":7018,"mtime_ns":1782715529811102600,"word_count":487},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_x86_gcc.cc":{"size":3486,"mtime_ns":1782715529811102600,"word_count":492},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_x86_gcc.h":{"size":8769,"mtime_ns":1782715529812103000,"word_count":910},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_x86_msvc.h":{"size":6645,"mtime_ns":1782715529812103000,"word_count":591},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\auto_reset.h":{"size":1250,"mtime_ns":1782715529812103000,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base64.cc":{"size":1160,"mtime_ns":1782715529812103000,"word_count":126},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base64.h":{"size":744,"mtime_ns":1782715529812103000,"word_count":94},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base64url.cc":{"size":3783,"mtime_ns":1782715529812103000,"word_count":346},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base64url.h":{"size":1849,"mtime_ns":1782715529813104400,"word_count":205},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base_export.h":{"size":999,"mtime_ns":1782715529813104400,"word_count":88},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\basictypes.h":{"size":1602,"mtime_ns":1782715529813104400,"word_count":215},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\big_endian.cc":{"size":2122,"mtime_ns":1782715529813104400,"word_count":255},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\big_endian.h":{"size":3069,"mtime_ns":1782715529813104400,"word_count":417},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\binary_printer.cpp":{"size":5093,"mtime_ns":1782715529813104400,"word_count":582},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\binary_printer.h":{"size":2504,"mtime_ns":1782715529813104400,"word_count":291},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\bit_array.h":{"size":3436,"mtime_ns":1782715529814106200,"word_count":524},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\bits.h":{"size":1066,"mtime_ns":1782715529814106200,"word_count":182},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\build_config.h":{"size":6288,"mtime_ns":1782715529814106200,"word_count":734},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\cancelable_callback.h":{"size":8224,"mtime_ns":1782715529814106200,"word_count":872},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\class_name.cpp":{"size":2448,"mtime_ns":1782715529814106200,"word_count":349},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\class_name.h":{"size":2081,"mtime_ns":1782715529815114900,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\comlog_sink.cc":{"size":13823,"mtime_ns":1782715529815114900,"word_count":1256},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\comlog_sink.h":{"size":5341,"mtime_ns":1782715529815114900,"word_count":666},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\compat.h":{"size":2497,"mtime_ns":1782715529815114900,"word_count":281},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\compiler_specific.h":{"size":11289,"mtime_ns":1782715529815114900,"word_count":1352},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\bounded_queue.h":{"size":9425,"mtime_ns":1782715529816115400,"word_count":1241},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\case_ignored_flat_map.cpp":{"size":2382,"mtime_ns":1782715529816115400,"word_count":417},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\case_ignored_flat_map.h":{"size":3286,"mtime_ns":1784705330141789700,"word_count":413},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\doubly_buffered_data.h":{"size":20728,"mtime_ns":1782715529817117900,"word_count":2148},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\flat_map.h":{"size":31536,"mtime_ns":1782715529817117900,"word_count":2929},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\flat_map_inl.h":{"size":29471,"mtime_ns":1782715529817117900,"word_count":3107},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\hash_tables.h":{"size":8827,"mtime_ns":1782715529817117900,"word_count":908},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\linked_list.h":{"size":5777,"mtime_ns":1782715529818120400,"word_count":766},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\mpsc_queue.h":{"size":5588,"mtime_ns":1782715529818120400,"word_count":599},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\mru_cache.h":{"size":11306,"mtime_ns":1782715529818120400,"word_count":1333},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\optional.h":{"size":19157,"mtime_ns":1782715529818120400,"word_count":1944},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\pooled_map.h":{"size":9160,"mtime_ns":1782715529819122000,"word_count":1004},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\scoped_ptr_hash_map.h":{"size":4483,"mtime_ns":1782715529819122000,"word_count":485},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\small_map.h":{"size":20894,"mtime_ns":1782715529819122000,"word_count":2554},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\stack_container.h":{"size":10374,"mtime_ns":1782715529819122000,"word_count":1220},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\cpu.cc":{"size":8047,"mtime_ns":1782715529819122000,"word_count":895},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\cpu.h":{"size":2792,"mtime_ns":1782715529820122800,"word_count":365},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\crc32c.cc":{"size":33104,"mtime_ns":1784705330142448700,"word_count":3654},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\crc32c.h":{"size":1797,"mtime_ns":1782715529820122800,"word_count":281},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\address_annotations.h":{"size":1693,"mtime_ns":1782715529820122800,"word_count":134},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\alias.cc":{"size":492,"mtime_ns":1782715529820122800,"word_count":67},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\alias.h":{"size":619,"mtime_ns":1782715529821123900,"word_count":93},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\asan_invalid_access.cc":{"size":2835,"mtime_ns":1782715529821123900,"word_count":357},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\asan_invalid_access.h":{"size":1423,"mtime_ns":1782715529821123900,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\crash_logging.cc":{"size":6158,"mtime_ns":1782715529821123900,"word_count":600},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\crash_logging.h":{"size":4182,"mtime_ns":1782715529822127500,"word_count":513},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\debugger.cc":{"size":1139,"mtime_ns":1782715529822127500,"word_count":139},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\debugger.h":{"size":1783,"mtime_ns":1782715529822127500,"word_count":274},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\debugger_posix.cc":{"size":8101,"mtime_ns":1782715529822127500,"word_count":1047},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\dump_without_crashing.cc":{"size":769,"mtime_ns":1782715529822127500,"word_count":89},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\dump_without_crashing.h":{"size":809,"mtime_ns":1782715529823135200,"word_count":92},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\leak_annotations.h":{"size":2089,"mtime_ns":1784705330142448700,"word_count":224},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\leak_tracker.h":{"size":4035,"mtime_ns":1782715529823135200,"word_count":498},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\proc_maps_linux.cc":{"size":5528,"mtime_ns":1782715529823135200,"word_count":671},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\proc_maps_linux.h":{"size":3565,"mtime_ns":1782715529823135200,"word_count":540},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\stack_trace.cc":{"size":1115,"mtime_ns":1782715529823135200,"word_count":128},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\stack_trace.h":{"size":4437,"mtime_ns":1782715529824139500,"word_count":597},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\stack_trace_posix.cc":{"size":32045,"mtime_ns":1782715529824139500,"word_count":3553},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\details\\extended_endpoint.hpp":{"size":14034,"mtime_ns":1782715529824139500,"word_count":1447},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\endpoint.cpp":{"size":20710,"mtime_ns":1785293755612806000,"word_count":2299},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\endpoint.h":{"size":8982,"mtime_ns":1785293755614293400,"word_count":1187},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\environment.cc":{"size":7555,"mtime_ns":1782715529825141600,"word_count":774},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\environment.h":{"size":3068,"mtime_ns":1782715529825141600,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\errno.cpp":{"size":3879,"mtime_ns":1782715529826143300,"word_count":431},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\errno.h":{"size":3364,"mtime_ns":1782715529826143300,"word_count":435},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fast_rand.cpp":{"size":7116,"mtime_ns":1782715529826143300,"word_count":933},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fast_rand.h":{"size":2657,"mtime_ns":1782715529826143300,"word_count":353},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fd_guard.h":{"size":2146,"mtime_ns":1782715529826143300,"word_count":301},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fd_utility.cpp":{"size":3235,"mtime_ns":1782715529827144800,"word_count":409},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fd_utility.h":{"size":1804,"mtime_ns":1782715529827144800,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_descriptor_posix.h":{"size":1804,"mtime_ns":1782715529827144800,"word_count":222},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util.cc":{"size":7863,"mtime_ns":1782715529827144800,"word_count":829},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util.h":{"size":20985,"mtime_ns":1782715529827144800,"word_count":2746},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util_linux.cc":{"size":2405,"mtime_ns":1782715529828146600,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util_mac.mm":{"size":1381,"mtime_ns":1782715529828146600,"word_count":143},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util_posix.cc":{"size":30243,"mtime_ns":1782715529828146600,"word_count":3061},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\dir_reader_fallback.h":{"size":1142,"mtime_ns":1782715529828146600,"word_count":168},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\dir_reader_linux.h":{"size":2197,"mtime_ns":1782715529828146600,"word_count":248},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\dir_reader_posix.h":{"size":1341,"mtime_ns":1782715529829148400,"word_count":168},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\dir_reader_unix.h":{"size":2324,"mtime_ns":1782715529829148400,"word_count":300},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\fd_guard.h":{"size":1100,"mtime_ns":1782715529829148400,"word_count":164},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file.cc":{"size":3204,"mtime_ns":1782715529829148400,"word_count":244},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file.h":{"size":11460,"mtime_ns":1782715529829148400,"word_count":1630},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_enumerator.cc":{"size":605,"mtime_ns":1782715529830187700,"word_count":67},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_enumerator.h":{"size":5233,"mtime_ns":1782715529830187700,"word_count":651},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_enumerator_posix.cc":{"size":5440,"mtime_ns":1782715529830187700,"word_count":464},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_path.cc":{"size":57767,"mtime_ns":1782715529830187700,"word_count":6551},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_path.h":{"size":21763,"mtime_ns":1782715529831188700,"word_count":2933},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_path_constants.cc":{"size":855,"mtime_ns":1782715529831188700,"word_count":77},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_posix.cc":{"size":13581,"mtime_ns":1782715529831188700,"word_count":1287},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_watcher.cpp":{"size":2953,"mtime_ns":1782715529831188700,"word_count":347},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_watcher.h":{"size":2915,"mtime_ns":1782715529832189800,"word_count":392},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\memory_mapped_file.cc":{"size":1062,"mtime_ns":1782715529832189800,"word_count":113},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\memory_mapped_file.h":{"size":2223,"mtime_ns":1782715529832189800,"word_count":297},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\memory_mapped_file_posix.cc":{"size":1202,"mtime_ns":1782715529832189800,"word_count":123},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\scoped_file.cc":{"size":1029,"mtime_ns":1782715529832189800,"word_count":142},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\scoped_file.h":{"size":2928,"mtime_ns":1782715529833190600,"word_count":358},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\scoped_temp_dir.cc":{"size":1978,"mtime_ns":1782715529833190600,"word_count":209},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\scoped_temp_dir.h":{"size":2134,"mtime_ns":1782715529833190600,"word_count":278},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\temp_file.cpp":{"size":4487,"mtime_ns":1782715529833190600,"word_count":566},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\temp_file.h":{"size":2816,"mtime_ns":1782715529833190600,"word_count":388},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\find_cstr.cpp":{"size":1013,"mtime_ns":1782715529834192800,"word_count":153},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\find_cstr.h":{"size":6118,"mtime_ns":1784705330142448700,"word_count":654},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\float_util.h":{"size":784,"mtime_ns":1782715529834192800,"word_count":97},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\format_macros.h":{"size":2439,"mtime_ns":1782715529834192800,"word_count":321},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\gperftools_profiler.h":{"size":3070,"mtime_ns":1782715529835201400,"word_count":449},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\gtest_prod_util.h":{"size":2561,"mtime_ns":1782715529835201400,"word_count":321},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\guid.cc":{"size":744,"mtime_ns":1782715529835201400,"word_count":112},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\guid.h":{"size":1033,"mtime_ns":1782715529835201400,"word_count":133},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\guid_posix.cc":{"size":1044,"mtime_ns":1782715529835201400,"word_count":102},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\hash.cc":{"size":638,"mtime_ns":1782715529835201400,"word_count":88},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\hash.h":{"size":1169,"mtime_ns":1782715529835201400,"word_count":153},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\intrusive_ptr.hpp":{"size":8119,"mtime_ns":1782715529836203000,"word_count":924},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf.cpp":{"size":71043,"mtime_ns":1784705330142448700,"word_count":7761},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf.h":{"size":36126,"mtime_ns":1784705330142448700,"word_count":4641},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf_inl.h":{"size":18287,"mtime_ns":1784705330142448700,"word_count":1936},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf_profiler.cpp":{"size":10462,"mtime_ns":1782715529837204900,"word_count":1020},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf_profiler.h":{"size":5094,"mtime_ns":1782715529837204900,"word_count":490},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\lazy_instance.cc":{"size":2390,"mtime_ns":1782715529837204900,"word_count":270},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\lazy_instance.h":{"size":9810,"mtime_ns":1784705330142448700,"word_count":1145},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\location.cc":{"size":2793,"mtime_ns":1782715529838206200,"word_count":227},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\location.h":{"size":3623,"mtime_ns":1782715529838206200,"word_count":411},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\logging.cc":{"size":65539,"mtime_ns":1784705330146825100,"word_count":6553},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\logging.h":{"size":57596,"mtime_ns":1782715529839202800,"word_count":6043},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\bundle_locations.h":{"size":2488,"mtime_ns":1782715529839706300,"word_count":337},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\bundle_locations.mm":{"size":2467,"mtime_ns":1782715529839706300,"word_count":223},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\foundation_util.h":{"size":14117,"mtime_ns":1782715529839706300,"word_count":1549},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\foundation_util.mm":{"size":13591,"mtime_ns":1782715529839706300,"word_count":1271},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\scoped_cftyperef.h":{"size":2061,"mtime_ns":1782715529839706300,"word_count":240},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\scoped_mach_port.cc":{"size":1066,"mtime_ns":1782715529840706500,"word_count":123},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\scoped_mach_port.h":{"size":2080,"mtime_ns":1782715529840706500,"word_count":277},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\scoped_typeref.h":{"size":4109,"mtime_ns":1782715529840706500,"word_count":501},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\macros.h":{"size":20374,"mtime_ns":1782715529840706500,"word_count":2590},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\aligned_memory.cc":{"size":1639,"mtime_ns":1782715529840706500,"word_count":214},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\aligned_memory.h":{"size":4765,"mtime_ns":1782715529841707300,"word_count":456},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\linked_ptr.h":{"size":5711,"mtime_ns":1782715529841707300,"word_count":827},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\manual_constructor.h":{"size":2483,"mtime_ns":1782715529841707300,"word_count":306},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\raw_scoped_refptr_mismatch_checker.h":{"size":5256,"mtime_ns":1782715529841707300,"word_count":481},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\ref_counted.cc":{"size":1248,"mtime_ns":1782715529841707300,"word_count":117},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\ref_counted.h":{"size":8966,"mtime_ns":1782715529842707400,"word_count":1071},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\ref_counted_memory.cc":{"size":2556,"mtime_ns":1782715529842707400,"word_count":245},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\ref_counted_memory.h":{"size":4793,"mtime_ns":1782715529842707400,"word_count":543},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scope_guard.h":{"size":3524,"mtime_ns":1782715529842707400,"word_count":383},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scoped_open_process.h":{"size":1245,"mtime_ns":1782715529842707400,"word_count":147},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scoped_policy.h":{"size":709,"mtime_ns":1782715529842707400,"word_count":101},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scoped_ptr.h":{"size":23075,"mtime_ns":1782715529843707500,"word_count":3073},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scoped_vector.h":{"size":4602,"mtime_ns":1782715529843707500,"word_count":476},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\singleton.cc":{"size":1268,"mtime_ns":1782715529843707500,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\singleton.h":{"size":12199,"mtime_ns":1784705330146825100,"word_count":1611},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\singleton_objc.h":{"size":2425,"mtime_ns":1782715529843707500,"word_count":305},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\singleton_on_pthread_once.h":{"size":3001,"mtime_ns":1782715529846728700,"word_count":311},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\weak_ptr.cc":{"size":1370,"mtime_ns":1782715529846728700,"word_count":151},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\weak_ptr.h":{"size":11042,"mtime_ns":1782715529846728700,"word_count":1403},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\move.h":{"size":8886,"mtime_ns":1782715529847729300,"word_count":1396},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\numerics\\safe_conversions.h":{"size":2642,"mtime_ns":1782715529848729400,"word_count":296},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\numerics\\safe_conversions_impl.h":{"size":9470,"mtime_ns":1782715529848729400,"word_count":768},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\numerics\\safe_math.h":{"size":12887,"mtime_ns":1782715529848729400,"word_count":1282},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\numerics\\safe_math_impl.h":{"size":16995,"mtime_ns":1782715529848729400,"word_count":1724},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\object_pool.h":{"size":4417,"mtime_ns":1782715529848729400,"word_count":590},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\object_pool_inl.h":{"size":26005,"mtime_ns":1784705330146825100,"word_count":2227},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\observer_list.h":{"size":6657,"mtime_ns":1782715529849731200,"word_count":647},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\popen.cpp":{"size":5500,"mtime_ns":1782715529849731200,"word_count":636},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\popen.h":{"size":1244,"mtime_ns":1782715529849731200,"word_count":182},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\port.h":{"size":1751,"mtime_ns":1782715529849731200,"word_count":237},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\eintr_wrapper.h":{"size":1887,"mtime_ns":1782715529850733300,"word_count":258},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\file_descriptor_shuffle.cc":{"size":2973,"mtime_ns":1782715529850733300,"word_count":325},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\file_descriptor_shuffle.h":{"size":3254,"mtime_ns":1782715529850733300,"word_count":387},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\global_descriptors.cc":{"size":1450,"mtime_ns":1782715529850733300,"word_count":152},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\global_descriptors.h":{"size":2482,"mtime_ns":1782715529850733300,"word_count":358},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\process_util.cc":{"size":3338,"mtime_ns":1782715529851735400,"word_count":415},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\process_util.h":{"size":1539,"mtime_ns":1782715529851735400,"word_count":231},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\ptr_container.h":{"size":2221,"mtime_ns":1782715529851735400,"word_count":305},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\rand_util.cc":{"size":2189,"mtime_ns":1782715529851735400,"word_count":272},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\rand_util.h":{"size":2378,"mtime_ns":1782715529851735400,"word_count":297},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\rand_util_posix.cc":{"size":1584,"mtime_ns":1782715529851735400,"word_count":201},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\raw_pack.h":{"size":4021,"mtime_ns":1785293755614293400,"word_count":482},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\reader_writer.h":{"size":1893,"mtime_ns":1782715529852737700,"word_count":282},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\recordio.cc":{"size":14405,"mtime_ns":1782715529852737700,"word_count":1698},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\recordio.h":{"size":4691,"mtime_ns":1782715529852737700,"word_count":650},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\reloadable_flags.h":{"size":2799,"mtime_ns":1782715529853739200,"word_count":346},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\resource_pool.h":{"size":5846,"mtime_ns":1782715529853739200,"word_count":727},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\resource_pool_inl.h":{"size":25124,"mtime_ns":1782715529853739200,"word_count":2093},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\safe_strerror_posix.cc":{"size":4469,"mtime_ns":1782715529853739200,"word_count":656},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\safe_strerror_posix.h":{"size":1649,"mtime_ns":1782715529853739200,"word_count":247},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\scoped_clear_errno.h":{"size":784,"mtime_ns":1782715529854741100,"word_count":100},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\scoped_generic.h":{"size":6357,"mtime_ns":1782715529854741100,"word_count":851},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\scoped_lock.h":{"size":11167,"mtime_ns":1782715529854741100,"word_count":1022},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\scoped_observer.h":{"size":1616,"mtime_ns":1782715529854741100,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\sha1.h":{"size":885,"mtime_ns":1782715529854741100,"word_count":125},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\sha1_portable.cc":{"size":4646,"mtime_ns":1782715529854741100,"word_count":697},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\shared_object.h":{"size":2555,"mtime_ns":1782715529854741100,"word_count":308},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\single_iobuf.cpp":{"size":8366,"mtime_ns":1784705330146825100,"word_count":857},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\single_iobuf.h":{"size":4454,"mtime_ns":1782715529856244100,"word_count":571},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\single_threaded_pool.h":{"size":4862,"mtime_ns":1782715529856244100,"word_count":585},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\ssl_compat.h":{"size":21378,"mtime_ns":1782715529856244100,"word_count":1508},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\status.cpp":{"size":4437,"mtime_ns":1782715529856244100,"word_count":520},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\status.h":{"size":5358,"mtime_ns":1782715529856244100,"word_count":696},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\stl_util.h":{"size":9432,"mtime_ns":1782715529857250500,"word_count":1194},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_compare_rvv.cc":{"size":2563,"mtime_ns":1785293755614293400,"word_count":326},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_printf.cpp":{"size":5939,"mtime_ns":1782715529857250500,"word_count":778},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_printf.h":{"size":2219,"mtime_ns":1782715529857250500,"word_count":294},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_splitter.h":{"size":9553,"mtime_ns":1782715529857250500,"word_count":1123},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_splitter_inl.h":{"size":9321,"mtime_ns":1782715529857250500,"word_count":1151},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\latin1_string_conversions.cc":{"size":577,"mtime_ns":1782715529858251600,"word_count":66},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\latin1_string_conversions.h":{"size":1348,"mtime_ns":1782715529858251600,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\nullable_string16.cc":{"size":506,"mtime_ns":1782715529858251600,"word_count":62},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\nullable_string16.h":{"size":1352,"mtime_ns":1782715529858251600,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\safe_sprintf.cc":{"size":26967,"mtime_ns":1782715529859253200,"word_count":3888},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\safe_sprintf.h":{"size":18661,"mtime_ns":1782715529859253200,"word_count":2753},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string16.cc":{"size":1969,"mtime_ns":1782715529859253200,"word_count":281},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string16.h":{"size":6976,"mtime_ns":1782715529859253200,"word_count":962},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_number_conversions.cc":{"size":15979,"mtime_ns":1782715529859253200,"word_count":1810},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_number_conversions.h":{"size":6438,"mtime_ns":1782715529860255300,"word_count":813},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_piece.cc":{"size":13202,"mtime_ns":1785293755615552000,"word_count":1442},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_piece.h":{"size":20422,"mtime_ns":1785293755615552000,"word_count":2183},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_split.cc":{"size":9033,"mtime_ns":1782715529860255300,"word_count":794},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_split.h":{"size":5993,"mtime_ns":1782715529860255300,"word_count":545},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_tokenizer.h":{"size":7923,"mtime_ns":1782715529861279400,"word_count":993},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_util.cc":{"size":30387,"mtime_ns":1782715529861279400,"word_count":2937},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_util.h":{"size":24624,"mtime_ns":1782715529861279400,"word_count":2949},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_util_constants.cc":{"size":1831,"mtime_ns":1782715529861279400,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_util_posix.h":{"size":1531,"mtime_ns":1782715529862281700,"word_count":177},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\stringize_macros.h":{"size":1048,"mtime_ns":1782715529862281700,"word_count":137},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\stringprintf.cc":{"size":5770,"mtime_ns":1782715529862281700,"word_count":676},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\stringprintf.h":{"size":2210,"mtime_ns":1782715529862281700,"word_count":241},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\sys_string_conversions.h":{"size":3185,"mtime_ns":1782715529863283700,"word_count":334},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\sys_string_conversions_mac.mm":{"size":7264,"mtime_ns":1782715529863283700,"word_count":613},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\sys_string_conversions_posix.cc":{"size":4850,"mtime_ns":1782715529863283700,"word_count":631},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_offset_string_conversions.cc":{"size":10871,"mtime_ns":1782715529863283700,"word_count":1037},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_offset_string_conversions.h":{"size":5444,"mtime_ns":1782715529864285500,"word_count":643},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_string_conversion_utils.cc":{"size":5087,"mtime_ns":1782715529864285500,"word_count":508},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_string_conversion_utils.h":{"size":4423,"mtime_ns":1782715529864285500,"word_count":508},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_string_conversions.cc":{"size":5693,"mtime_ns":1782715529864285500,"word_count":622},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_string_conversions.h":{"size":2353,"mtime_ns":1782715529864285500,"word_count":253},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\cancellation_flag.cc":{"size":564,"mtime_ns":1782715529864285500,"word_count":62},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\cancellation_flag.h":{"size":1249,"mtime_ns":1782715529864285500,"word_count":147},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\condition_variable.h":{"size":4641,"mtime_ns":1782715529865788900,"word_count":692},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\condition_variable_posix.cc":{"size":2419,"mtime_ns":1782715529865788900,"word_count":209},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\lock.h":{"size":5309,"mtime_ns":1782715529865788900,"word_count":586},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\spin_wait.h":{"size":2104,"mtime_ns":1782715529865788900,"word_count":272},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\waitable_event.h":{"size":6860,"mtime_ns":1782715529866797200,"word_count":964},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\waitable_event_posix.cc":{"size":14093,"mtime_ns":1782715529866797200,"word_count":1493},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronous_event.h":{"size":7814,"mtime_ns":1782715529866797200,"word_count":969},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\sys_byteorder.h":{"size":3794,"mtime_ns":1782715529866797200,"word_count":481},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dmg_fp\\dmg_fp.h":{"size":1041,"mtime_ns":1782715529867798900,"word_count":164},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dmg_fp\\dtoa.cc":{"size":89560,"mtime_ns":1782715529868801800,"word_count":14724},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dmg_fp\\dtoa_wrapper.cc":{"size":1887,"mtime_ns":1782715529868801800,"word_count":260},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dmg_fp\\g_fmt.cc":{"size":2264,"mtime_ns":1782715529868801800,"word_count":382},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dynamic_annotations\\dynamic_annotations.c":{"size":9823,"mtime_ns":1782715529870828500,"word_count":1016},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dynamic_annotations\\dynamic_annotations.h":{"size":27624,"mtime_ns":1782715529870828500,"word_count":2627},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\icu\\icu_utf.cc":{"size":7987,"mtime_ns":1782715529871830500,"word_count":1151},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\icu\\icu_utf.h":{"size":11911,"mtime_ns":1782715529871830500,"word_count":1635},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64.cc":{"size":8299,"mtime_ns":1784705330146825100,"word_count":1295},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64.h":{"size":4760,"mtime_ns":1784705330146825100,"word_count":741},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64_data.h":{"size":30350,"mtime_ns":1782715529871830500,"word_count":2930},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64_rvv.cc":{"size":10526,"mtime_ns":1784705330146825100,"word_count":1337},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64_rvv.h":{"size":1506,"mtime_ns":1784705330146825100,"word_count":208},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\murmurhash3\\murmurhash3.cpp":{"size":19290,"mtime_ns":1782715529873335100,"word_count":2783},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\murmurhash3\\murmurhash3.h":{"size":4201,"mtime_ns":1782715529873335100,"word_count":506},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\allocators.h":{"size":10545,"mtime_ns":1782715529873335100,"word_count":1202},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\document.h":{"size":89538,"mtime_ns":1782715529874343000,"word_count":9645},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\encodedstream.h":{"size":9915,"mtime_ns":1782715529874343000,"word_count":1181},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\encodings.h":{"size":23559,"mtime_ns":1782715529874343000,"word_count":2343},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\error\\en.h":{"size":3754,"mtime_ns":1782715529874343000,"word_count":349},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\error\\error.h":{"size":5965,"mtime_ns":1782715529875345200,"word_count":638},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\filereadstream.h":{"size":2901,"mtime_ns":1782715529875345200,"word_count":350},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\filewritestream.h":{"size":2894,"mtime_ns":1782715529875345200,"word_count":341},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\biginteger.h":{"size":9148,"mtime_ns":1782715529875345200,"word_count":1296},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\diyfp.h":{"size":11546,"mtime_ns":1782715529876348100,"word_count":1112},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\dtoa.h":{"size":7010,"mtime_ns":1782715529876348100,"word_count":972},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\ieee754.h":{"size":3010,"mtime_ns":1782715529876348100,"word_count":390},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\itoa.h":{"size":10622,"mtime_ns":1782715529876348100,"word_count":1280},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\meta.h":{"size":6801,"mtime_ns":1782715529876348100,"word_count":728},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\pow10.h":{"size":3662,"mtime_ns":1782715529877362900,"word_count":308},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\stack.h":{"size":5807,"mtime_ns":1782715529877362900,"word_count":610},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\strfunc.h":{"size":1460,"mtime_ns":1782715529877362900,"word_count":205},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\strtod.h":{"size":8586,"mtime_ns":1782715529877362900,"word_count":1081},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\memorybuffer.h":{"size":2645,"mtime_ns":1782715529877362900,"word_count":323},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\memorystream.h":{"size":2544,"mtime_ns":1782715529877362900,"word_count":356},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\msinttypes\\inttypes.h":{"size":8688,"mtime_ns":1782715529878364600,"word_count":1094},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\msinttypes\\stdint.h":{"size":9627,"mtime_ns":1782715529878364600,"word_count":1230},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\optimized_writer.h":{"size":5290,"mtime_ns":1782715529878364600,"word_count":581},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\pointer.h":{"size":58174,"mtime_ns":1782715529878364600,"word_count":5832},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\prettywriter.h":{"size":7978,"mtime_ns":1782715529879366600,"word_count":751},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\rapidjson.h":{"size":23220,"mtime_ns":1782715529879366600,"word_count":2335},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\reader.h":{"size":65923,"mtime_ns":1782715529879366600,"word_count":5673},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\stringbuffer.h":{"size":3331,"mtime_ns":1782715529880368800,"word_count":375},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\writer.h":{"size":14157,"mtime_ns":1782715529880368800,"word_count":1483},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\format_description.txt":{"size":4498,"mtime_ns":1782715529882372300,"word_count":734},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\framing_format.txt":{"size":5174,"mtime_ns":1782715529882372300,"word_count":803},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-internal.h":{"size":5878,"mtime_ns":1782715529882372300,"word_count":785},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-sinksource.cc":{"size":3457,"mtime_ns":1782715529882372300,"word_count":447},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-sinksource.h":{"size":7505,"mtime_ns":1782715529882372300,"word_count":1085},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-stubs-internal.cc":{"size":1943,"mtime_ns":1782715529882372300,"word_count":288},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-stubs-internal.h":{"size":14919,"mtime_ns":1784705330146825100,"word_count":1936},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy.cc":{"size":60786,"mtime_ns":1784705330146825100,"word_count":7297},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy.h":{"size":9914,"mtime_ns":1782715529883374300,"word_count":1323},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\superfasthash\\superfasthash.c":{"size":3220,"mtime_ns":1782715529884376400,"word_count":477},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\config.h":{"size":294,"mtime_ns":1782715529884376400,"word_count":42},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\demangle.cc":{"size":39043,"mtime_ns":1782715529885378200,"word_count":4773},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\demangle.h":{"size":3657,"mtime_ns":1782715529885378200,"word_count":540},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\glog\\logging.h":{"size":185,"mtime_ns":1782715529885378200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\glog\\raw_logging.h":{"size":243,"mtime_ns":1782715529885378200,"word_count":40},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\symbolize.cc":{"size":34102,"mtime_ns":1784705330146825100,"word_count":4421},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\symbolize.h":{"size":6319,"mtime_ns":1782715529886379900,"word_count":881},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\utilities.h":{"size":340,"mtime_ns":1782715529886379900,"word_count":46},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\valgrind\\valgrind.h":{"size":287786,"mtime_ns":1782715529887381700,"word_count":21540},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_key.cpp":{"size":5446,"mtime_ns":1782715529887381700,"word_count":558},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_key.h":{"size":5959,"mtime_ns":1784705330146825100,"word_count":626},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_local.cpp":{"size":4880,"mtime_ns":1782715529888383600,"word_count":495},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_local.h":{"size":5937,"mtime_ns":1782715529888383600,"word_count":549},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_local_inl.h":{"size":1647,"mtime_ns":1782715529888383600,"word_count":217},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\non_thread_safe.h":{"size":2365,"mtime_ns":1782715529889385600,"word_count":314},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\non_thread_safe_impl.cc":{"size":582,"mtime_ns":1782715529889385600,"word_count":58},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\non_thread_safe_impl.h":{"size":1351,"mtime_ns":1782715529889385600,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread.h":{"size":6361,"mtime_ns":1782715529889385600,"word_count":782},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread_freebsd.cc":{"size":3229,"mtime_ns":1782715529889385600,"word_count":372},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread_linux.cc":{"size":4062,"mtime_ns":1782715529890382300,"word_count":493},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread_mac.mm":{"size":8395,"mtime_ns":1782715529890382300,"word_count":875},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread_posix.cc":{"size":7315,"mtime_ns":1782715529890886100,"word_count":593},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\simple_thread.cc":{"size":4752,"mtime_ns":1782715529890886100,"word_count":420},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\simple_thread.h":{"size":7361,"mtime_ns":1782715529890886100,"word_count":978},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_checker.h":{"size":2869,"mtime_ns":1782715529890886100,"word_count":406},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_checker_impl.cc":{"size":910,"mtime_ns":1782715529890886100,"word_count":83},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_checker_impl.h":{"size":1375,"mtime_ns":1782715529890886100,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_collision_warner.cc":{"size":2231,"mtime_ns":1782715529890886100,"word_count":228},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_collision_warner.h":{"size":7755,"mtime_ns":1782715529891887600,"word_count":935},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_id_name_manager.cc":{"size":3696,"mtime_ns":1782715529891887600,"word_count":274},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_id_name_manager.h":{"size":2126,"mtime_ns":1782715529891887600,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local.h":{"size":4360,"mtime_ns":1782715529891887600,"word_count":521},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local_posix.cc":{"size":982,"mtime_ns":1782715529891887600,"word_count":108},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local_storage.cc":{"size":11045,"mtime_ns":1782715529892897700,"word_count":1278},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local_storage.h":{"size":5450,"mtime_ns":1782715529892897700,"word_count":744},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local_storage_posix.cc":{"size":887,"mtime_ns":1782715529892897700,"word_count":89},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_restrictions.cc":{"size":2562,"mtime_ns":1782715529892897700,"word_count":244},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_restrictions.h":{"size":9190,"mtime_ns":1782715529892897700,"word_count":991},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\watchdog.cc":{"size":5995,"mtime_ns":1782715529893899300,"word_count":632},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\watchdog.h":{"size":3272,"mtime_ns":1782715529893899300,"word_count":413},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time.cpp":{"size":5219,"mtime_ns":1782715529893899300,"word_count":622},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time.h":{"size":14176,"mtime_ns":1782715529893899300,"word_count":1554},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\clock.cc":{"size":273,"mtime_ns":1782715529893899300,"word_count":42},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\clock.h":{"size":1201,"mtime_ns":1782715529894899900,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\default_clock.cc":{"size":351,"mtime_ns":1782715529894899900,"word_count":48},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\default_clock.h":{"size":652,"mtime_ns":1782715529894899900,"word_count":79},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\default_tick_clock.cc":{"size":383,"mtime_ns":1782715529894899900,"word_count":48},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\default_tick_clock.h":{"size":699,"mtime_ns":1782715529894899900,"word_count":79},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\tick_clock.cc":{"size":286,"mtime_ns":1782715529895901100,"word_count":42},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\tick_clock.h":{"size":1367,"mtime_ns":1782715529895901100,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\time.cc":{"size":7583,"mtime_ns":1782715529895901100,"word_count":753},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\time.h":{"size":27326,"mtime_ns":1782715529895901100,"word_count":3526},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\time_mac.cc":{"size":8850,"mtime_ns":1782715529895901100,"word_count":891},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\time_posix.cc":{"size":13764,"mtime_ns":1782715529896904200,"word_count":1535},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\type_traits.h":{"size":15510,"mtime_ns":1782715529896904200,"word_count":1912},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\unique_ptr.h":{"size":13530,"mtime_ns":1782715529896904200,"word_count":1274},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\unix_socket.cpp":{"size":2644,"mtime_ns":1782715529896904200,"word_count":324},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\unix_socket.h":{"size":1673,"mtime_ns":1782715529896904200,"word_count":247},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\version.cc":{"size":5610,"mtime_ns":1782715529897913000,"word_count":615},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\version.h":{"size":2518,"mtime_ns":1782715529897913000,"word_count":343},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\zero_copy_stream_as_streambuf.cpp":{"size":2229,"mtime_ns":1782715529897913000,"word_count":260},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\zero_copy_stream_as_streambuf.h":{"size":2036,"mtime_ns":1782715529897913000,"word_count":238},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\bvar.h":{"size":1159,"mtime_ns":1782715529897913000,"word_count":154},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\collector.cpp":{"size":17110,"mtime_ns":1785293755616548600,"word_count":1535},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\collector.h":{"size":6260,"mtime_ns":1785293755616548600,"word_count":809},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\default_variables.cpp":{"size":30954,"mtime_ns":1785293755616548600,"word_count":2808},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\agent_group.h":{"size":8091,"mtime_ns":1785293755617571900,"word_count":921},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\call_op_returning_void.h":{"size":1241,"mtime_ns":1782715529899916900,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\combiner.h":{"size":15522,"mtime_ns":1785293755618073600,"word_count":1580},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\is_atomical.h":{"size":1780,"mtime_ns":1782715529899916900,"word_count":213},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\percentile.cpp":{"size":5881,"mtime_ns":1785293755618575300,"word_count":660},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\percentile.h":{"size":23719,"mtime_ns":1785293755618575300,"word_count":2401},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\sampler.cpp":{"size":7522,"mtime_ns":1785293755618575300,"word_count":830},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\sampler.h":{"size":7614,"mtime_ns":1785293755619574000,"word_count":872},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\series.h":{"size":10845,"mtime_ns":1785293755620075700,"word_count":1324},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\gflag.cpp":{"size":3202,"mtime_ns":1785293755620075700,"word_count":358},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\gflag.h":{"size":2084,"mtime_ns":1782715529901945200,"word_count":278},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\latency_recorder.cpp":{"size":10609,"mtime_ns":1785293755620075700,"word_count":993},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\latency_recorder.h":{"size":6453,"mtime_ns":1782715529901945200,"word_count":634},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\multi_dimension.h":{"size":8847,"mtime_ns":1785293755621074000,"word_count":917},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\multi_dimension_inl.h":{"size":14457,"mtime_ns":1785293755621074000,"word_count":1383},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\mvariable.cpp":{"size":8913,"mtime_ns":1785293755622070600,"word_count":885},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\mvariable.h":{"size":4743,"mtime_ns":1785293755622070600,"word_count":556},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\passive_status.h":{"size":8942,"mtime_ns":1785293755622070600,"word_count":851},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\recorder.h":{"size":13464,"mtime_ns":1785293755623068300,"word_count":1491},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\reducer.h":{"size":18234,"mtime_ns":1785293755623068300,"word_count":1823},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\scoped_timer.h":{"size":2045,"mtime_ns":1782715529903945100,"word_count":265},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\status.h":{"size":7138,"mtime_ns":1785293755624064000,"word_count":713},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\utils\\lock_timer.h":{"size":14016,"mtime_ns":1785293755624064000,"word_count":1394},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\variable.cpp":{"size":35363,"mtime_ns":1785293755625178900,"word_count":3344},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\variable.h":{"size":9976,"mtime_ns":1785293755625178900,"word_count":1129},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\vector.h":{"size":3148,"mtime_ns":1782715529904945900,"word_count":442},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\window.h":{"size":12042,"mtime_ns":1785293755625178900,"word_count":1219},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\encode_decode.cpp":{"size":3910,"mtime_ns":1782715529905948200,"word_count":482},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\encode_decode.h":{"size":1849,"mtime_ns":1782715529905948200,"word_count":247},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\json_to_pb.cpp":{"size":34954,"mtime_ns":1784705330146825100,"word_count":2493},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\json_to_pb.h":{"size":4733,"mtime_ns":1782715529905948200,"word_count":488},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\pb_to_json.cpp":{"size":18719,"mtime_ns":1784705330146825100,"word_count":1428},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\pb_to_json.h":{"size":5192,"mtime_ns":1782715529905948200,"word_count":569},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\protobuf_map.cpp":{"size":1830,"mtime_ns":1782715529905948200,"word_count":222},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\protobuf_map.h":{"size":2057,"mtime_ns":1782715529907451600,"word_count":307},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\protobuf_type_resolver.cpp":{"size":1531,"mtime_ns":1782715529907451600,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\protobuf_type_resolver.h":{"size":2682,"mtime_ns":1782715529907451600,"word_count":248},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\rapidjson.h":{"size":1909,"mtime_ns":1782715529907451600,"word_count":201},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\zero_copy_stream_reader.h":{"size":2584,"mtime_ns":1782715529907451600,"word_count":299},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\zero_copy_stream_writer.h":{"size":3544,"mtime_ns":1782715529907451600,"word_count":404},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\field_type.cpp":{"size":2252,"mtime_ns":1782715529908464200,"word_count":268},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\field_type.h":{"size":4789,"mtime_ns":1782715529908464200,"word_count":622},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\generator.cpp":{"size":77766,"mtime_ns":1782715529908464200,"word_count":4784},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\mcpack2pb.cpp":{"size":2300,"mtime_ns":1782715529909466100,"word_count":268},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\mcpack2pb.h":{"size":6594,"mtime_ns":1782715529909466100,"word_count":671},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\parser-inl.h":{"size":8488,"mtime_ns":1782715529909466100,"word_count":898},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\parser.cpp":{"size":24038,"mtime_ns":1782715529909466100,"word_count":2193},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\parser.h":{"size":9284,"mtime_ns":1782715529910468300,"word_count":1085},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\serializer-inl.h":{"size":9279,"mtime_ns":1782715529910468300,"word_count":986},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\serializer.cpp":{"size":30491,"mtime_ns":1782715529910468300,"word_count":2679},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\serializer.h":{"size":10596,"mtime_ns":1782715529910468300,"word_count":1170},"C:\\workspace\\code\\opensource\\brpc\\test\\CMakeLists.txt":{"size":14753,"mtime_ns":1784705330153503600,"word_count":643},"C:\\workspace\\code\\opensource\\brpc\\test\\README_mysql_auth.md":{"size":3952,"mtime_ns":1784705330153503600,"word_count":504},"C:\\workspace\\code\\opensource\\brpc\\test\\abalist_unittest.cc":{"size":1310,"mtime_ns":1782715529911470300,"word_count":146},"C:\\workspace\\code\\opensource\\brpc\\test\\aligned_memory_unittest.cc":{"size":3660,"mtime_ns":1782715529912472500,"word_count":309},"C:\\workspace\\code\\opensource\\brpc\\test\\allocator_unittest.cc":{"size":16744,"mtime_ns":1782715529912472500,"word_count":1809},"C:\\workspace\\code\\opensource\\brpc\\test\\at_exit_unittest.cc":{"size":2270,"mtime_ns":1782715529913474100,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\test\\atomicops_unittest.cc":{"size":7806,"mtime_ns":1782715529913474100,"word_count":635},"C:\\workspace\\code\\opensource\\brpc\\test\\baidu_thread_local_unittest.cpp":{"size":5655,"mtime_ns":1782715529913474100,"word_count":570},"C:\\workspace\\code\\opensource\\brpc\\test\\baidu_time_unittest.cpp":{"size":6638,"mtime_ns":1782715529913474100,"word_count":654},"C:\\workspace\\code\\opensource\\brpc\\test\\barrier_closure_unittest.cc":{"size":961,"mtime_ns":1782715529913474100,"word_count":89},"C:\\workspace\\code\\opensource\\brpc\\test\\base64_unittest.cc":{"size":633,"mtime_ns":1782715529913474100,"word_count":74},"C:\\workspace\\code\\opensource\\brpc\\test\\base64url_unittest.cc":{"size":3654,"mtime_ns":1782715529913474100,"word_count":254},"C:\\workspace\\code\\opensource\\brpc\\test\\big_endian_unittest.cc":{"size":2901,"mtime_ns":1782715529914836200,"word_count":246},"C:\\workspace\\code\\opensource\\brpc\\test\\bits_unittest.cc":{"size":1428,"mtime_ns":1782715529914836200,"word_count":172},"C:\\workspace\\code\\opensource\\brpc\\test\\bounded_queue_unittest.cc":{"size":3243,"mtime_ns":1782715529914836200,"word_count":342},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_adaptive_class_unittest.cpp":{"size":2736,"mtime_ns":1784705330153503600,"word_count":245},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_alpn_protocol_unittest.cpp":{"size":4724,"mtime_ns":1784705330153503600,"word_count":417},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_auto_concurrency_limiter_unittest.cpp":{"size":7500,"mtime_ns":1782715529915837800,"word_count":697},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_block_pool_unittest.cpp":{"size":6736,"mtime_ns":1782715529915837800,"word_count":665},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_builtin_service_unittest.cpp":{"size":36793,"mtime_ns":1782715529915837800,"word_count":2488},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_channel_unittest.cpp":{"size":132015,"mtime_ns":1784705330153503600,"word_count":10738},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_circuit_breaker_unittest.cpp":{"size":11640,"mtime_ns":1782715529916839700,"word_count":874},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_controller_unittest.cpp":{"size":4580,"mtime_ns":1782715529916839700,"word_count":434},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_coroutine_unittest.cpp":{"size":6684,"mtime_ns":1782715529916839700,"word_count":624},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_couchbase_unittest.cpp":{"size":3738,"mtime_ns":1784705330153503600,"word_count":329},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_esp_protocol_unittest.cpp":{"size":5083,"mtime_ns":1782715529917840700,"word_count":423},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_event_dispatcher_unittest.cpp":{"size":15928,"mtime_ns":1784705330153503600,"word_count":1459},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_extension_unittest.cpp":{"size":2306,"mtime_ns":1782715529918840500,"word_count":252},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_grpc_protocol_unittest.cpp":{"size":9369,"mtime_ns":1782715529918840500,"word_count":753},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_h2_unsent_message_unittest.cpp":{"size":3630,"mtime_ns":1782715529918840500,"word_count":352},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_hpack_unittest.cpp":{"size":23559,"mtime_ns":1784705330157760700,"word_count":2163},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_http_message_unittest.cpp":{"size":31299,"mtime_ns":1782715529919841800,"word_count":1777},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_http_parser_unittest.cpp":{"size":4948,"mtime_ns":1782715529919841800,"word_count":500},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_http_rpc_protocol_unittest.cpp":{"size":99536,"mtime_ns":1785293755626676900,"word_count":6738},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_http_status_code_unittest.cpp":{"size":1569,"mtime_ns":1782715529920844400,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_hulu_pbrpc_protocol_unittest.cpp":{"size":12724,"mtime_ns":1782715529920844400,"word_count":815},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_input_messenger_unittest.cpp":{"size":6894,"mtime_ns":1784705330157760700,"word_count":744},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_interceptor_unittest.cpp":{"size":6854,"mtime_ns":1782715529920844400,"word_count":579},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_load_balancer_unittest.cpp":{"size":53908,"mtime_ns":1784705330157760700,"word_count":4880},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_memcache_unittest.cpp":{"size":10524,"mtime_ns":1785293755626676900,"word_count":923},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mongo_protocol_unittest.cpp":{"size":8873,"mtime_ns":1782715529921846500,"word_count":676},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_auth_handshake_unittest.cpp":{"size":54379,"mtime_ns":1784705330157760700,"word_count":5261},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_auth_packet_unittest.cpp":{"size":10509,"mtime_ns":1784705330157760700,"word_count":879},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_auth_scramble_unittest.cpp":{"size":22350,"mtime_ns":1784705330157760700,"word_count":1470},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_connection_type_unittest.cpp":{"size":14679,"mtime_ns":1784705330157760700,"word_count":1613},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_pool_concurrency_unittest.cpp":{"size":53799,"mtime_ns":1784705330157760700,"word_count":6002},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_prepared_integration_unittest.cpp":{"size":32549,"mtime_ns":1784705330157760700,"word_count":3294},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_reply_parse_unittest.cpp":{"size":5026,"mtime_ns":1784705330157760700,"word_count":534},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_txn_integration_unittest.cpp":{"size":25299,"mtime_ns":1784705330157760700,"word_count":2460},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_naming_service_filter_unittest.cpp":{"size":2586,"mtime_ns":1782715529922848600,"word_count":274},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_naming_service_unittest.cpp":{"size":31858,"mtime_ns":1782715529922848600,"word_count":1880},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_nova_pbrpc_protocol_unittest.cpp":{"size":9782,"mtime_ns":1782715529922848600,"word_count":692},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_p2c_ewma_load_balancer_unittest.cpp":{"size":16020,"mtime_ns":1784705330157760700,"word_count":1477},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_prometheus_metrics_service_unittest.cpp":{"size":1404,"mtime_ns":1782715529922848600,"word_count":167},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_prometheus_metrics_unittest.cpp":{"size":8185,"mtime_ns":1782715529922848600,"word_count":745},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_proto_unittest.cpp":{"size":3131,"mtime_ns":1784705330157760700,"word_count":269},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_protobuf_json_unittest.cpp":{"size":76859,"mtime_ns":1784705330157760700,"word_count":4334},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_public_pbrpc_protocol_unittest.cpp":{"size":12183,"mtime_ns":1782715529924351700,"word_count":793},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_rdma_unittest.cpp":{"size":103382,"mtime_ns":1785293755627679600,"word_count":7724},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_redis_cluster_unittest.cpp":{"size":59417,"mtime_ns":1784705330157760700,"word_count":3895},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_redis_unittest.cpp":{"size":63281,"mtime_ns":1784705330157760700,"word_count":4075},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_repeated_field_unittest.cpp":{"size":1383,"mtime_ns":1782715529925358800,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_rtmp_unittest.cpp":{"size":40654,"mtime_ns":1784705330157760700,"word_count":3112},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_server_unittest.cpp":{"size":84165,"mtime_ns":1782715529926360700,"word_count":4995},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_snappy_compress_unittest.cpp":{"size":10036,"mtime_ns":1782715529926360700,"word_count":896},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_socket_map_unittest.cpp":{"size":6172,"mtime_ns":1782715529926360700,"word_count":600},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_socket_unittest.cpp":{"size":67787,"mtime_ns":1785293755627679600,"word_count":5237},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_sofa_pbrpc_protocol_unittest.cpp":{"size":12607,"mtime_ns":1782715529927864000,"word_count":812},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_ssl_unittest.cpp":{"size":19310,"mtime_ns":1784705330157760700,"word_count":1483},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_streaming_rpc_unittest.cpp":{"size":44273,"mtime_ns":1784705330157760700,"word_count":3510},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_timeout_concurrency_limiter_unittest.cpp":{"size":5679,"mtime_ns":1782715529927864000,"word_count":373},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_ubring_unittest.cpp":{"size":6316,"mtime_ns":1785293755628813700,"word_count":532},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_uri_unittest.cpp":{"size":18106,"mtime_ns":1784705330157760700,"word_count":1087},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_urma_unittest.cpp":{"size":19452,"mtime_ns":1785291668488166100,"word_count":1625},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_butex_multi_tag_unittest.cpp":{"size":5547,"mtime_ns":1782715529928872200,"word_count":444},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_butex_unittest.cpp":{"size":14700,"mtime_ns":1782715529928872200,"word_count":1407},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_cond_bug_unittest.cpp":{"size":4874,"mtime_ns":1782715529928872200,"word_count":511},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_cond_unittest.cpp":{"size":14794,"mtime_ns":1782715529928872200,"word_count":1353},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_countdown_event_unittest.cpp":{"size":2235,"mtime_ns":1782715529928872200,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_dispatcher_unittest.cpp":{"size":9610,"mtime_ns":1784705330157760700,"word_count":1102},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_execution_queue_unittest.cpp":{"size":31467,"mtime_ns":1782715529929874200,"word_count":2722},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_fd_unittest.cpp":{"size":19879,"mtime_ns":1784705330157760700,"word_count":1955},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_futex_unittest.cpp":{"size":6456,"mtime_ns":1782715529930898000,"word_count":714},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_id_unittest.cpp":{"size":20686,"mtime_ns":1782715529930898000,"word_count":1805},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_key_unittest.cpp":{"size":20005,"mtime_ns":1784705330157760700,"word_count":1740},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_list_unittest.cpp":{"size":2132,"mtime_ns":1782715529930898000,"word_count":229},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_mutex_unittest.cpp":{"size":11687,"mtime_ns":1784705330157760700,"word_count":1065},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_once_unittest.cpp":{"size":4104,"mtime_ns":1782715529930898000,"word_count":387},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_ping_pong_unittest.cpp":{"size":7404,"mtime_ns":1782715529930898000,"word_count":722},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_priority_queue_unittest.cpp":{"size":7594,"mtime_ns":1784705330157760700,"word_count":740},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_rwlock_unittest.cpp":{"size":23476,"mtime_ns":1784705330170590100,"word_count":2307},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_sched_yield_unittest.cpp":{"size":1892,"mtime_ns":1782715529932399600,"word_count":247},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_semaphore_unittest.cpp":{"size":6096,"mtime_ns":1782715529932399600,"word_count":640},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_setconcurrency_unittest.cpp":{"size":7837,"mtime_ns":1782715529932399600,"word_count":702},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_timer_thread_unittest.cpp":{"size":14450,"mtime_ns":1785293755628813700,"word_count":1435},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_unittest.cpp":{"size":21734,"mtime_ns":1784705330170590100,"word_count":2149},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_work_stealing_queue_unittest.cpp":{"size":4213,"mtime_ns":1782715529933404200,"word_count":435},"C:\\workspace\\code\\opensource\\brpc\\test\\butil_unittest_main.cpp":{"size":1572,"mtime_ns":1782715529933404200,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_agent_group_unittest.cpp":{"size":5291,"mtime_ns":1782715529933404200,"word_count":536},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_file_dumper_unittest.cpp":{"size":1443,"mtime_ns":1782715529934404300,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_lock_timer_unittest.cpp":{"size":8457,"mtime_ns":1782715529934404300,"word_count":771},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_multi_dimension_unittest.cpp":{"size":25849,"mtime_ns":1782715529934404300,"word_count":1934},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_mvariable_unittest.cpp":{"size":8122,"mtime_ns":1782715529934404300,"word_count":549},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_percentile_unittest.cpp":{"size":6862,"mtime_ns":1784705330170590100,"word_count":807},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_recorder_unittest.cpp":{"size":8874,"mtime_ns":1782715529935406400,"word_count":841},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_reducer_unittest.cpp":{"size":11341,"mtime_ns":1782715529935406400,"word_count":1108},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_sampler_unittest.cpp":{"size":4436,"mtime_ns":1782715529935406400,"word_count":467},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_status_unittest.cpp":{"size":6799,"mtime_ns":1782715529935406400,"word_count":507},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_variable_unittest.cpp":{"size":14747,"mtime_ns":1782715529935406400,"word_count":987},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_window_unittest.cpp":{"size":3412,"mtime_ns":1782715529936408700,"word_count":305},"C:\\workspace\\code\\opensource\\brpc\\test\\cacheline_unittest.cpp":{"size":1500,"mtime_ns":1782715529936408700,"word_count":194},"C:\\workspace\\code\\opensource\\brpc\\test\\callback_helpers_unittest.cc":{"size":1519,"mtime_ns":1782715529936408700,"word_count":133},"C:\\workspace\\code\\opensource\\brpc\\test\\callback_list_unittest.cc":{"size":8799,"mtime_ns":1782715529936408700,"word_count":784},"C:\\workspace\\code\\opensource\\brpc\\test\\callback_unittest.cc":{"size":5027,"mtime_ns":1782715529936408700,"word_count":436},"C:\\workspace\\code\\opensource\\brpc\\test\\cancelable_callback_unittest.cc":{"size":4625,"mtime_ns":1782715529936408700,"word_count":416},"C:\\workspace\\code\\opensource\\brpc\\test\\cancellation_flag_unittest.cc":{"size":839,"mtime_ns":1782715529937410800,"word_count":78},"C:\\workspace\\code\\opensource\\brpc\\test\\class_name_unittest.cpp":{"size":2415,"mtime_ns":1782715529937410800,"word_count":214},"C:\\workspace\\code\\opensource\\brpc\\test\\condition_variable_unittest.cc":{"size":25085,"mtime_ns":1782715529938412700,"word_count":2345},"C:\\workspace\\code\\opensource\\brpc\\test\\cpu_unittest.cc":{"size":2645,"mtime_ns":1782715529938412700,"word_count":352},"C:\\workspace\\code\\opensource\\brpc\\test\\crash_logging_unittest.cc":{"size":5867,"mtime_ns":1782715529938412700,"word_count":485},"C:\\workspace\\code\\opensource\\brpc\\test\\crc32c_unittest.cc":{"size":2187,"mtime_ns":1782715529938412700,"word_count":280},"C:\\workspace\\code\\opensource\\brpc\\test\\dir_reader_posix_unittest.cc":{"size":2164,"mtime_ns":1782715529938412700,"word_count":227},"C:\\workspace\\code\\opensource\\brpc\\test\\endpoint_unittest.cpp":{"size":21490,"mtime_ns":1782715529939432400,"word_count":1644},"C:\\workspace\\code\\opensource\\brpc\\test\\environment_unittest.cc":{"size":4451,"mtime_ns":1782715529939432400,"word_count":420},"C:\\workspace\\code\\opensource\\brpc\\test\\errno_unittest.cpp":{"size":2011,"mtime_ns":1782715529939432400,"word_count":235},"C:\\workspace\\code\\opensource\\brpc\\test\\fd_guard_unittest.cpp":{"size":2368,"mtime_ns":1782715529939432400,"word_count":267},"C:\\workspace\\code\\opensource\\brpc\\test\\file_descriptor_shuffle_unittest.cc":{"size":9046,"mtime_ns":1782715529939432400,"word_count":661},"C:\\workspace\\code\\opensource\\brpc\\test\\file_path_unittest.cc":{"size":58872,"mtime_ns":1782715529940434400,"word_count":5644},"C:\\workspace\\code\\opensource\\brpc\\test\\file_unittest.cc":{"size":16750,"mtime_ns":1782715529940434400,"word_count":1250},"C:\\workspace\\code\\opensource\\brpc\\test\\file_util_unittest.cc":{"size":96617,"mtime_ns":1782715529941430900,"word_count":6949},"C:\\workspace\\code\\opensource\\brpc\\test\\file_watcher_unittest.cpp":{"size":2616,"mtime_ns":1782715529941430900,"word_count":287},"C:\\workspace\\code\\opensource\\brpc\\test\\find_cstr_unittest.cpp":{"size":3032,"mtime_ns":1782715529941430900,"word_count":352},"C:\\workspace\\code\\opensource\\brpc\\test\\flat_map_unittest.cpp":{"size":51930,"mtime_ns":1784705330170590100,"word_count":4712},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_amf.cpp":{"size":2863,"mtime_ns":1782715529941934700,"word_count":302},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_baidu_rpc.cpp":{"size":1407,"mtime_ns":1784705330170590100,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_butil.cpp":{"size":1590,"mtime_ns":1782715529941934700,"word_count":190},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_butil_seed_corpus\\base64_decoded.txt":{"size":18,"mtime_ns":1782715529942937200,"word_count":1},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_butil_seed_corpus\\base64_encoded.txt":{"size":13,"mtime_ns":1782715529942937200,"word_count":2},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_common.h":{"size":1700,"mtime_ns":1784705330170590100,"word_count":219},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_couchbase.cpp":{"size":1413,"mtime_ns":1784705330173026300,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_esp.cpp":{"size":1405,"mtime_ns":1784705330173026300,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_hpack.cpp":{"size":1347,"mtime_ns":1782715529943939700,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_http.cpp":{"size":1484,"mtime_ns":1782715529944941600,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_http_parser.cpp":{"size":4199,"mtime_ns":1782715529944941600,"word_count":397},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_hulu.cpp":{"size":1413,"mtime_ns":1784705330173835200,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_json.cpp":{"size":1296,"mtime_ns":1782715529944941600,"word_count":171},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_json_seed_corpus\\info1.json":{"size":61,"mtime_ns":1782715529945943600,"word_count":4},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_json_seed_corpus\\info2.json":{"size":46,"mtime_ns":1782715529945943600,"word_count":6},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_json_seed_corpus\\info3.json":{"size":302,"mtime_ns":1782715529945943600,"word_count":6},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_memcache.cpp":{"size":1418,"mtime_ns":1784705330173835200,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_mongo.cpp":{"size":1405,"mtime_ns":1784705330173835200,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_redis.cpp":{"size":1549,"mtime_ns":1782715529945943600,"word_count":186},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_shead.cpp":{"size":1506,"mtime_ns":1784705330173835200,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_sofa.cpp":{"size":1502,"mtime_ns":1784705330173835200,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_streaming.cpp":{"size":1417,"mtime_ns":1784705330173835200,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_thrift.cpp":{"size":1285,"mtime_ns":1782715529946945400,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_uri.cpp":{"size":1632,"mtime_ns":1782715529946945400,"word_count":201},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\oss-fuzz.sh":{"size":2502,"mtime_ns":1782715529947947400,"word_count":245},"C:\\workspace\\code\\opensource\\brpc\\test\\gperftools_helper.h":{"size":1339,"mtime_ns":1782715529947947400,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\test\\guid_unittest.cc":{"size":1279,"mtime_ns":1782715529947947400,"word_count":133},"C:\\workspace\\code\\opensource\\brpc\\test\\hash_tables_unittest.cc":{"size":1802,"mtime_ns":1782715529948949300,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\test\\hash_unittest.cc":{"size":2386,"mtime_ns":1782715529948949300,"word_count":326},"C:\\workspace\\code\\opensource\\brpc\\test\\iobuf_unittest.cpp":{"size":74501,"mtime_ns":1784705330173835200,"word_count":6526},"C:\\workspace\\code\\opensource\\brpc\\test\\lazy_instance_unittest.cc":{"size":4738,"mtime_ns":1782715529949951100,"word_count":415},"C:\\workspace\\code\\opensource\\brpc\\test\\leak_tracker_unittest.cc":{"size":3019,"mtime_ns":1782715529949951100,"word_count":250},"C:\\workspace\\code\\opensource\\brpc\\test\\linked_list_unittest.cc":{"size":6967,"mtime_ns":1782715529949951100,"word_count":642},"C:\\workspace\\code\\opensource\\brpc\\test\\linked_ptr_unittest.cc":{"size":2467,"mtime_ns":1782715529950953000,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\test\\lock_unittest.cc":{"size":5262,"mtime_ns":1782715529950953000,"word_count":490},"C:\\workspace\\code\\opensource\\brpc\\test\\logging_unittest.cc":{"size":21587,"mtime_ns":1782715529950953000,"word_count":1892},"C:\\workspace\\code\\opensource\\brpc\\test\\memory_unittest.cc":{"size":13900,"mtime_ns":1782715529950953000,"word_count":1433},"C:\\workspace\\code\\opensource\\brpc\\test\\memory_unittest_mac.h":{"size":1046,"mtime_ns":1782715529950953000,"word_count":120},"C:\\workspace\\code\\opensource\\brpc\\test\\mpsc_queue_unittest.cc":{"size":3503,"mtime_ns":1782715529951955100,"word_count":311},"C:\\workspace\\code\\opensource\\brpc\\test\\mru_cache_unittest.cc":{"size":7710,"mtime_ns":1782715529951955100,"word_count":720},"C:\\workspace\\code\\opensource\\brpc\\test\\multiprocess_func_list.h":{"size":2676,"mtime_ns":1782715529951955100,"word_count":331},"C:\\workspace\\code\\opensource\\brpc\\test\\non_thread_safe_unittest.cc":{"size":4966,"mtime_ns":1782715529951955100,"word_count":396},"C:\\workspace\\code\\opensource\\brpc\\test\\nullable_string16_unittest.cc":{"size":971,"mtime_ns":1782715529951955100,"word_count":87},"C:\\workspace\\code\\opensource\\brpc\\test\\object_pool_unittest.cpp":{"size":9933,"mtime_ns":1784705330173835200,"word_count":1042},"C:\\workspace\\code\\opensource\\brpc\\test\\observer_list_unittest.cc":{"size":4642,"mtime_ns":1782715529952957100,"word_count":440},"C:\\workspace\\code\\opensource\\brpc\\test\\optional_unittest.cpp":{"size":8879,"mtime_ns":1782715529952957100,"word_count":650},"C:\\workspace\\code\\opensource\\brpc\\test\\platform_thread_unittest.cc":{"size":3660,"mtime_ns":1782715529952957100,"word_count":339},"C:\\workspace\\code\\opensource\\brpc\\test\\popen_unittest.cpp":{"size":4904,"mtime_ns":1782715529952957100,"word_count":485},"C:\\workspace\\code\\opensource\\brpc\\test\\proc_maps_linux_unittest.cc":{"size":11805,"mtime_ns":1782715529953959100,"word_count":959},"C:\\workspace\\code\\opensource\\brpc\\test\\rand_util_unittest.cc":{"size":8513,"mtime_ns":1782715529953959100,"word_count":888},"C:\\workspace\\code\\opensource\\brpc\\test\\recordio_unittest.cpp":{"size":10419,"mtime_ns":1782715529953959100,"word_count":843},"C:\\workspace\\code\\opensource\\brpc\\test\\ref_counted_memory_unittest.cc":{"size":2542,"mtime_ns":1782715529953959100,"word_count":189},"C:\\workspace\\code\\opensource\\brpc\\test\\ref_counted_unittest.cc":{"size":2386,"mtime_ns":1782715529953959100,"word_count":215},"C:\\workspace\\code\\opensource\\brpc\\test\\resource_pool_unittest.cpp":{"size":11407,"mtime_ns":1782715529954988300,"word_count":1188},"C:\\workspace\\code\\opensource\\brpc\\test\\run_tests.sh":{"size":2230,"mtime_ns":1784705330173835200,"word_count":311},"C:\\workspace\\code\\opensource\\brpc\\test\\safe_numerics_unittest.cc":{"size":25655,"mtime_ns":1782715529954988300,"word_count":1607},"C:\\workspace\\code\\opensource\\brpc\\test\\safe_sprintf_unittest.cc":{"size":30664,"mtime_ns":1782715529954988300,"word_count":2890},"C:\\workspace\\code\\opensource\\brpc\\test\\scope_guard_unittest.cpp":{"size":1555,"mtime_ns":1782715529954988300,"word_count":195},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_clear_errno_unittest.cc":{"size":601,"mtime_ns":1782715529955990600,"word_count":75},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_generic_unittest.cc":{"size":3681,"mtime_ns":1782715529955990600,"word_count":366},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_locale.cc":{"size":626,"mtime_ns":1782715529955990600,"word_count":71},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_locale.h":{"size":686,"mtime_ns":1782715529955990600,"word_count":78},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_lock_unittest.cpp":{"size":3265,"mtime_ns":1782715529955990600,"word_count":264},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_ptr_unittest.cc":{"size":17589,"mtime_ns":1782715529955990600,"word_count":1337},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_temp_dir_unittest.cc":{"size":3675,"mtime_ns":1782715529955990600,"word_count":266},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_vector_unittest.cc":{"size":11410,"mtime_ns":1782715529956992900,"word_count":760},"C:\\workspace\\code\\opensource\\brpc\\test\\security_unittest.cc":{"size":11482,"mtime_ns":1782715529956992900,"word_count":1230},"C:\\workspace\\code\\opensource\\brpc\\test\\sha1_unittest.cc":{"size":3915,"mtime_ns":1782715529956992900,"word_count":394},"C:\\workspace\\code\\opensource\\brpc\\test\\shared_memory_unittest.cc":{"size":22907,"mtime_ns":1782715529956992900,"word_count":2281},"C:\\workspace\\code\\opensource\\brpc\\test\\simple_thread_unittest.cc":{"size":4574,"mtime_ns":1782715529956992900,"word_count":425},"C:\\workspace\\code\\opensource\\brpc\\test\\singleton_unittest.cc":{"size":7877,"mtime_ns":1782715529956992900,"word_count":648},"C:\\workspace\\code\\opensource\\brpc\\test\\small_map_unittest.cc":{"size":12402,"mtime_ns":1782715529956992900,"word_count":1119},"C:\\workspace\\code\\opensource\\brpc\\test\\stack_container_unittest.cc":{"size":4719,"mtime_ns":1782715529958496600,"word_count":472},"C:\\workspace\\code\\opensource\\brpc\\test\\stack_trace_unittest.cc":{"size":9512,"mtime_ns":1782715529958496600,"word_count":911},"C:\\workspace\\code\\opensource\\brpc\\test\\status_unittest.cpp":{"size":9050,"mtime_ns":1782715529958496600,"word_count":614},"C:\\workspace\\code\\opensource\\brpc\\test\\stl_util_unittest.cc":{"size":5243,"mtime_ns":1782715529958496600,"word_count":376},"C:\\workspace\\code\\opensource\\brpc\\test\\string16_unittest.cc":{"size":1796,"mtime_ns":1782715529959497000,"word_count":183},"C:\\workspace\\code\\opensource\\brpc\\test\\string_number_conversions_unittest.cc":{"size":26086,"mtime_ns":1782715529959497000,"word_count":2625},"C:\\workspace\\code\\opensource\\brpc\\test\\string_piece_unittest.cc":{"size":24344,"mtime_ns":1782715529960001700,"word_count":1579},"C:\\workspace\\code\\opensource\\brpc\\test\\string_printf_unittest.cpp":{"size":1904,"mtime_ns":1782715529960001700,"word_count":233},"C:\\workspace\\code\\opensource\\brpc\\test\\string_split_unittest.cc":{"size":13477,"mtime_ns":1782715529960001700,"word_count":951},"C:\\workspace\\code\\opensource\\brpc\\test\\string_splitter_unittest.cpp":{"size":12106,"mtime_ns":1782715529960001700,"word_count":950},"C:\\workspace\\code\\opensource\\brpc\\test\\string_tokenizer_unittest.cc":{"size":5711,"mtime_ns":1782715529960001700,"word_count":375},"C:\\workspace\\code\\opensource\\brpc\\test\\string_util_unittest.cc":{"size":44118,"mtime_ns":1782715529961004100,"word_count":3566},"C:\\workspace\\code\\opensource\\brpc\\test\\stringize_macros_unittest.cc":{"size":1080,"mtime_ns":1782715529961004100,"word_count":71},"C:\\workspace\\code\\opensource\\brpc\\test\\stringprintf_unittest.cc":{"size":4996,"mtime_ns":1782715529961004100,"word_count":568},"C:\\workspace\\code\\opensource\\brpc\\test\\synchronous_event_unittest.cpp":{"size":2141,"mtime_ns":1782715529961004100,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\test\\sys_info_unittest.cc":{"size":5882,"mtime_ns":1782715529962006400,"word_count":392},"C:\\workspace\\code\\opensource\\brpc\\test\\sys_string_conversions_unittest.cc":{"size":6700,"mtime_ns":1782715529962006400,"word_count":597},"C:\\workspace\\code\\opensource\\brpc\\test\\temp_file_unittest.cpp":{"size":4152,"mtime_ns":1782715529962006400,"word_count":429},"C:\\workspace\\code\\opensource\\brpc\\test\\test_file_util_linux.cc":{"size":691,"mtime_ns":1782715529962006400,"word_count":80},"C:\\workspace\\code\\opensource\\brpc\\test\\test_switches.cc":{"size":2631,"mtime_ns":1782715529962006400,"word_count":310},"C:\\workspace\\code\\opensource\\brpc\\test\\test_switches.h":{"size":1195,"mtime_ns":1782715529962006400,"word_count":131},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_checker_unittest.cc":{"size":5423,"mtime_ns":1782715529963008200,"word_count":436},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_collision_warner_unittest.cc":{"size":10068,"mtime_ns":1782715529963008200,"word_count":787},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_id_name_manager_unittest.cc":{"size":1402,"mtime_ns":1782715529963008200,"word_count":95},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_key_unittest.cpp":{"size":16371,"mtime_ns":1784705330173835200,"word_count":1483},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_local_storage_unittest.cc":{"size":4152,"mtime_ns":1782715529963008200,"word_count":437},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_local_unittest.cc":{"size":4135,"mtime_ns":1782715529964008900,"word_count":360},"C:\\workspace\\code\\opensource\\brpc\\test\\time_unittest.cc":{"size":28121,"mtime_ns":1782715529964008900,"word_count":2309},"C:\\workspace\\code\\opensource\\brpc\\test\\type_traits_unittest.cc":{"size":11310,"mtime_ns":1782715529964008900,"word_count":576},"C:\\workspace\\code\\opensource\\brpc\\test\\unique_ptr_unittest.cpp":{"size":1865,"mtime_ns":1782715529964008900,"word_count":227},"C:\\workspace\\code\\opensource\\brpc\\test\\utf_offset_string_conversions_unittest.cc":{"size":12026,"mtime_ns":1782715529965009200,"word_count":1100},"C:\\workspace\\code\\opensource\\brpc\\test\\utf_string_conversions_unittest.cc":{"size":7628,"mtime_ns":1782715529965009200,"word_count":659},"C:\\workspace\\code\\opensource\\brpc\\test\\version_unittest.cc":{"size":3651,"mtime_ns":1782715529965009200,"word_count":396},"C:\\workspace\\code\\opensource\\brpc\\test\\waitable_event_unittest.cc":{"size":2721,"mtime_ns":1782715529966009100,"word_count":206},"C:\\workspace\\code\\opensource\\brpc\\test\\watchdog_unittest.cc":{"size":4692,"mtime_ns":1782715529966009100,"word_count":426},"C:\\workspace\\code\\opensource\\brpc\\test\\weak_ptr_unittest.cc":{"size":3808,"mtime_ns":1782715529966009100,"word_count":344},"C:\\workspace\\code\\opensource\\brpc\\tools\\CMakeLists.txt":{"size":1021,"mtime_ns":1782715529966009100,"word_count":135},"C:\\workspace\\code\\opensource\\brpc\\tools\\add_syntax_equal_proto2_to_all.sh":{"size":1184,"mtime_ns":1782715529966009100,"word_count":177},"C:\\workspace\\code\\opensource\\brpc\\tools\\gdb_bthread_stack.py":{"size":12719,"mtime_ns":1782715529967008800,"word_count":1001},"C:\\workspace\\code\\opensource\\brpc\\tools\\get_brpc_revision.sh":{"size":1252,"mtime_ns":1782715529967008800,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\tools\\lldb_bthread_stack.py":{"size":14247,"mtime_ns":1782715529967008800,"word_count":1169},"C:\\workspace\\code\\opensource\\brpc\\tools\\parallel_http\\CMakeLists.txt":{"size":1001,"mtime_ns":1784705330173835200,"word_count":139},"C:\\workspace\\code\\opensource\\brpc\\tools\\parallel_http\\parallel_http.cpp":{"size":8144,"mtime_ns":1782715529968008700,"word_count":767},"C:\\workspace\\code\\opensource\\brpc\\tools\\print_gcc_version.sh":{"size":1732,"mtime_ns":1782715529970011300,"word_count":252},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\CMakeLists.txt":{"size":1066,"mtime_ns":1784705330173835200,"word_count":143},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\client.py":{"size":1117,"mtime_ns":1782715529970011300,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\info_thread.cpp":{"size":4893,"mtime_ns":1782715529971028400,"word_count":420},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\info_thread.h":{"size":1605,"mtime_ns":1782715529971028400,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\json_loader.cpp":{"size":7471,"mtime_ns":1782715529971028400,"word_count":709},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\json_loader.h":{"size":2277,"mtime_ns":1782715529971028400,"word_count":241},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\pb_util.cpp":{"size":2832,"mtime_ns":1782715529971028400,"word_count":264},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\pb_util.h":{"size":1857,"mtime_ns":1782715529972029700,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\rpc_press.cpp":{"size":5659,"mtime_ns":1784705330173835200,"word_count":585},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\rpc_press_impl.cpp":{"size":10566,"mtime_ns":1782715529972029700,"word_count":963},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\rpc_press_impl.h":{"size":5077,"mtime_ns":1782715529972029700,"word_count":455},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_replay\\CMakeLists.txt":{"size":1070,"mtime_ns":1784705330173835200,"word_count":143},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_replay\\info_thread.cpp":{"size":4884,"mtime_ns":1782715529973032100,"word_count":419},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_replay\\info_thread.h":{"size":1595,"mtime_ns":1782715529973032100,"word_count":187},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_replay\\rpc_replay.cpp":{"size":11866,"mtime_ns":1782715529973032100,"word_count":1057},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_view\\CMakeLists.txt":{"size":1151,"mtime_ns":1784705330173835200,"word_count":147},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_view\\rpc_view.cpp":{"size":7678,"mtime_ns":1782715529974034200,"word_count":681},"C:\\workspace\\code\\opensource\\brpc\\tools\\trackme_server\\CMakeLists.txt":{"size":1005,"mtime_ns":1784705330173835200,"word_count":139},"C:\\workspace\\code\\opensource\\brpc\\tools\\trackme_server\\trackme_server.cpp":{"size":9718,"mtime_ns":1782715529974034200,"word_count":1007},"C:\\workspace\\code\\opensource\\brpc\\tools\\wireshark_baidu_std.lua":{"size":11418,"mtime_ns":1782715529974034200,"word_count":1117}} \ No newline at end of file diff --git a/graphify-out/cost.json b/graphify-out/cost.json new file mode 100644 index 0000000000..033f93e02a --- /dev/null +++ b/graphify-out/cost.json @@ -0,0 +1,12 @@ +{ + "runs": [ + { + "date": "2026-07-29T07:43:39.832238+00:00", + "input_tokens": 0, + "output_tokens": 0, + "files": 10 + } + ], + "total_input_tokens": 0, + "total_output_tokens": 0 +} \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html new file mode 100644 index 0000000000..a981402ced --- /dev/null +++ b/graphify-out/graph.html @@ -0,0 +1,320 @@ + + + + +graphify - graphify-out\graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/graphify-out/graph.json b/graphify-out/graph.json new file mode 100644 index 0000000000..02d0aa3161 --- /dev/null +++ b/graphify-out/graph.json @@ -0,0 +1,21342 @@ +{ + "directed": false, + "multigraph": false, + "graph": {}, + "nodes": [ + { + "label": "mock_urma.cpp", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L1", + "_origin": "ast", + "id": "mock_urma", + "community": 15, + "norm_label": "mock_urma.cpp" + }, + { + "label": "JfcState", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L54", + "_origin": "ast", + "id": "mock_urma_jfcstate", + "community": 14, + "norm_label": "jfcstate" + }, + { + "label": "mutex", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_mutex", + "community": 14, + "norm_label": "mutex" + }, + { + "label": "mutex", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L55", + "_origin": "ast", + "id": "mock_urma_jfcstate_mutex", + "community": 14, + "norm_label": "mutex" + }, + { + "label": "deque", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "deque", + "community": 14, + "norm_label": "deque" + }, + { + "label": "urma_cr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_cr_t", + "community": 14, + "norm_label": "urma_cr_t" + }, + { + "label": "completions", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L56", + "_origin": "ast", + "id": "mock_urma_jfcstate_completions", + "community": 14, + "norm_label": "completions" + }, + { + "label": "event_pending", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L57", + "_origin": "ast", + "id": "mock_urma_jfcstate_event_pending", + "community": 14, + "norm_label": "event_pending" + }, + { + "label": "PendingRecv", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L60", + "_origin": "ast", + "id": "mock_urma_pendingrecv", + "community": 50, + "norm_label": "pendingrecv" + }, + { + "label": "addr", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L61", + "_origin": "ast", + "id": "mock_urma_pendingrecv_addr", + "community": 50, + "norm_label": "addr" + }, + { + "label": "len", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L62", + "_origin": "ast", + "id": "mock_urma_pendingrecv_len", + "community": 50, + "norm_label": "len" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L63", + "_origin": "ast", + "id": "mock_urma_pendingrecv_user_ctx", + "community": 50, + "norm_label": "user_ctx" + }, + { + "label": "PushCompletion()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L83", + "_origin": "ast", + "id": "mock_urma_pushcompletion", + "community": 14, + "norm_label": "pushcompletion()" + }, + { + "label": "urma_jfc_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_jfc_t", + "community": 14, + "norm_label": "urma_jfc_t" + }, + { + "label": "urma_init()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L122", + "_origin": "ast", + "id": "mock_urma_urma_init", + "community": 12, + "norm_label": "urma_init()" + }, + { + "label": "urma_status_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_status_t", + "community": 12, + "norm_label": "urma_status_t" + }, + { + "label": "urma_init_attr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_init_attr_t", + "community": 12, + "norm_label": "urma_init_attr_t" + }, + { + "label": "urma_uninit()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L131", + "_origin": "ast", + "id": "mock_urma_urma_uninit", + "community": 4, + "norm_label": "urma_uninit()" + }, + { + "label": "urma_get_device_list()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L155", + "_origin": "ast", + "id": "mock_urma_urma_get_device_list", + "community": 15, + "norm_label": "urma_get_device_list()" + }, + { + "label": "urma_device_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_device_t", + "community": 15, + "norm_label": "urma_device_t" + }, + { + "label": "urma_get_device_by_name()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L195", + "_origin": "ast", + "id": "mock_urma_urma_get_device_by_name", + "community": 15, + "norm_label": "urma_get_device_by_name()" + }, + { + "label": "urma_free_device_list()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L233", + "_origin": "ast", + "id": "mock_urma_urma_free_device_list", + "community": 15, + "norm_label": "urma_free_device_list()" + }, + { + "label": "urma_query_device()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L239", + "_origin": "ast", + "id": "mock_urma_urma_query_device", + "community": 15, + "norm_label": "urma_query_device()" + }, + { + "label": "urma_device_attr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_device_attr_t", + "community": 15, + "norm_label": "urma_device_attr_t" + }, + { + "label": "urma_get_eid_list()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L252", + "_origin": "ast", + "id": "mock_urma_urma_get_eid_list", + "community": 15, + "norm_label": "urma_get_eid_list()" + }, + { + "label": "urma_eid_info_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_eid_info_t", + "community": 15, + "norm_label": "urma_eid_info_t" + }, + { + "label": "urma_free_eid_list()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L262", + "_origin": "ast", + "id": "mock_urma_urma_free_eid_list", + "community": 15, + "norm_label": "urma_free_eid_list()" + }, + { + "label": "urma_create_context()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L268", + "_origin": "ast", + "id": "mock_urma_urma_create_context", + "community": 15, + "norm_label": "urma_create_context()" + }, + { + "label": "urma_context_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_context_t", + "community": 11, + "norm_label": "urma_context_t" + }, + { + "label": "urma_delete_context()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L280", + "_origin": "ast", + "id": "mock_urma_urma_delete_context", + "community": 4, + "norm_label": "urma_delete_context()" + }, + { + "label": "urma_create_jfce()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L290", + "_origin": "ast", + "id": "mock_urma_urma_create_jfce", + "community": 11, + "norm_label": "urma_create_jfce()" + }, + { + "label": "urma_jfce_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_jfce_t", + "community": 11, + "norm_label": "urma_jfce_t" + }, + { + "label": "urma_delete_jfce()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L308", + "_origin": "ast", + "id": "mock_urma_urma_delete_jfce", + "community": 11, + "norm_label": "urma_delete_jfce()" + }, + { + "label": "urma_create_jfc()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L319", + "_origin": "ast", + "id": "mock_urma_urma_create_jfc", + "community": 11, + "norm_label": "urma_create_jfc()" + }, + { + "label": "urma_jfc_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_jfc_cfg_t", + "community": 11, + "norm_label": "urma_jfc_cfg_t" + }, + { + "label": "urma_delete_jfc()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L337", + "_origin": "ast", + "id": "mock_urma_urma_delete_jfc", + "community": 12, + "norm_label": "urma_delete_jfc()" + }, + { + "label": "urma_create_jfr()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L348", + "_origin": "ast", + "id": "mock_urma_urma_create_jfr", + "community": 11, + "norm_label": "urma_create_jfr()" + }, + { + "label": "urma_jfr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_jfr_t", + "community": 45, + "norm_label": "urma_jfr_t" + }, + { + "label": "urma_jfr_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_jfr_cfg_t", + "community": 11, + "norm_label": "urma_jfr_cfg_t" + }, + { + "label": "urma_delete_jfr()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L364", + "_origin": "ast", + "id": "mock_urma_urma_delete_jfr", + "community": 45, + "norm_label": "urma_delete_jfr()" + }, + { + "label": "urma_register_seg()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L376", + "_origin": "ast", + "id": "mock_urma_urma_register_seg", + "community": 4, + "norm_label": "urma_register_seg()" + }, + { + "label": "urma_target_seg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_target_seg_t", + "community": 36, + "norm_label": "urma_target_seg_t" + }, + { + "label": "urma_seg_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_seg_cfg_t", + "community": 4, + "norm_label": "urma_seg_cfg_t" + }, + { + "label": "urma_unregister_seg()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L392", + "_origin": "ast", + "id": "mock_urma_urma_unregister_seg", + "community": 4, + "norm_label": "urma_unregister_seg()" + }, + { + "label": "urma_import_seg()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L402", + "_origin": "ast", + "id": "mock_urma_urma_import_seg", + "community": 36, + "norm_label": "urma_import_seg()" + }, + { + "label": "urma_seg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_seg_t", + "community": 36, + "norm_label": "urma_seg_t" + }, + { + "label": "urma_token_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_token_t", + "community": 36, + "norm_label": "urma_token_t" + }, + { + "label": "urma_import_seg_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_import_seg_flag_t", + "community": 36, + "norm_label": "urma_import_seg_flag_t" + }, + { + "label": "urma_unimport_seg()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L417", + "_origin": "ast", + "id": "mock_urma_urma_unimport_seg", + "community": 36, + "norm_label": "urma_unimport_seg()" + }, + { + "label": "urma_get_async_event()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L427", + "_origin": "ast", + "id": "mock_urma_urma_get_async_event", + "community": 15, + "norm_label": "urma_get_async_event()" + }, + { + "label": "urma_async_event_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_async_event_t", + "community": 15, + "norm_label": "urma_async_event_t" + }, + { + "label": "urma_ack_async_event()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L439", + "_origin": "ast", + "id": "mock_urma_urma_ack_async_event", + "community": 15, + "norm_label": "urma_ack_async_event()" + }, + { + "label": "urma_create_jetty()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L441", + "_origin": "ast", + "id": "mock_urma_urma_create_jetty", + "community": 11, + "norm_label": "urma_create_jetty()" + }, + { + "label": "urma_jetty_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_jetty_t", + "community": 12, + "norm_label": "urma_jetty_t" + }, + { + "label": "urma_jetty_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_jetty_cfg_t", + "community": 11, + "norm_label": "urma_jetty_cfg_t" + }, + { + "label": "urma_delete_jetty()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L458", + "_origin": "ast", + "id": "mock_urma_urma_delete_jetty", + "community": 12, + "norm_label": "urma_delete_jetty()" + }, + { + "label": "urma_unbind_jetty()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L469", + "_origin": "ast", + "id": "mock_urma_urma_unbind_jetty", + "community": 12, + "norm_label": "urma_unbind_jetty()" + }, + { + "label": "urma_import_jetty()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L478", + "_origin": "ast", + "id": "mock_urma_urma_import_jetty", + "community": 36, + "norm_label": "urma_import_jetty()" + }, + { + "label": "urma_target_jetty_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "mock_urma_cpp_urma_target_jetty_t", + "community": 12, + "norm_label": "urma_target_jetty_t" + }, + { + "label": "urma_rjetty_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_rjetty_t", + "community": 36, + "norm_label": "urma_rjetty_t" + }, + { + "label": "urma_unimport_jetty()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L493", + "_origin": "ast", + "id": "mock_urma_urma_unimport_jetty", + "community": 12, + "norm_label": "urma_unimport_jetty()" + }, + { + "label": "urma_bind_jetty()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L503", + "_origin": "ast", + "id": "mock_urma_urma_bind_jetty", + "community": 12, + "norm_label": "urma_bind_jetty()" + }, + { + "label": "urma_modify_jetty()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L514", + "_origin": "ast", + "id": "mock_urma_urma_modify_jetty", + "community": 12, + "norm_label": "urma_modify_jetty()" + }, + { + "label": "urma_jetty_attr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_attr_t", + "community": 12, + "norm_label": "urma_jetty_attr_t" + }, + { + "label": "urma_post_jetty_send_wr()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L522", + "_origin": "ast", + "id": "mock_urma_urma_post_jetty_send_wr", + "community": 12, + "norm_label": "urma_post_jetty_send_wr()" + }, + { + "label": "urma_jfs_wr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfs_wr_t", + "community": 12, + "norm_label": "urma_jfs_wr_t" + }, + { + "label": "urma_post_jfr_wr()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L605", + "_origin": "ast", + "id": "mock_urma_urma_post_jfr_wr", + "community": 45, + "norm_label": "urma_post_jfr_wr()" + }, + { + "label": "urma_jfr_wr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfr_wr_t", + "community": 45, + "norm_label": "urma_jfr_wr_t" + }, + { + "label": "urma_poll_jfc()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L627", + "_origin": "ast", + "id": "mock_urma_urma_poll_jfc", + "community": 14, + "norm_label": "urma_poll_jfc()" + }, + { + "label": "urma_rearm_jfc()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L647", + "_origin": "ast", + "id": "mock_urma_urma_rearm_jfc", + "community": 14, + "norm_label": "urma_rearm_jfc()" + }, + { + "label": "urma_wait_jfc()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L651", + "_origin": "ast", + "id": "mock_urma_urma_wait_jfc", + "community": 51, + "norm_label": "urma_wait_jfc()" + }, + { + "label": "urma_ack_jfc()", + "file_type": "code", + "source_file": "mock_urma.cpp", + "source_location": "L674", + "_origin": "ast", + "id": "mock_urma_urma_ack_jfc", + "community": 14, + "norm_label": "urma_ack_jfc()" + }, + { + "label": "urma_api.h", + "file_type": "code", + "source_file": "sdk/urma/urma_api.h", + "source_location": "L1", + "_origin": "ast", + "id": "sdk_urma_urma_api", + "community": 0, + "norm_label": "urma_api.h" + }, + { + "label": "urma_opcode.h", + "file_type": "code", + "source_file": "sdk/urma/urma_opcode.h", + "source_location": "L1", + "_origin": "ast", + "id": "sdk_urma_urma_opcode", + "community": 10, + "norm_label": "urma_opcode.h" + }, + { + "label": "urma_types.h", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1", + "_origin": "ast", + "id": "sdk_urma_urma_types", + "community": 10, + "norm_label": "urma_types.h" + }, + { + "label": "urma_init_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L85", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_init_attr", + "community": 57, + "norm_label": "urma_init_attr" + }, + { + "label": "token", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L86", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_init_attr_token", + "community": 57, + "norm_label": "token" + }, + { + "label": "uasid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L87", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_init_attr_uasid", + "community": 57, + "norm_label": "uasid" + }, + { + "label": "urma_ref", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L152", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ref", + "community": 10, + "norm_label": "urma_ref" + }, + { + "label": "urma_port_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L160", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_port_attr", + "community": 3, + "norm_label": "urma_port_attr" + }, + { + "label": "urma_mtu_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_mtu_t", + "community": 3, + "norm_label": "urma_mtu_t" + }, + { + "label": "max_mtu", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L161", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_port_attr_max_mtu", + "community": 3, + "norm_label": "max_mtu" + }, + { + "label": "urma_port_state_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_port_state_t", + "community": 3, + "norm_label": "urma_port_state_t" + }, + { + "label": "state", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L162", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_port_attr_state", + "community": 3, + "norm_label": "state" + }, + { + "label": "urma_link_width_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_link_width_t", + "community": 3, + "norm_label": "urma_link_width_t" + }, + { + "label": "active_width", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L163", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_port_attr_active_width", + "community": 3, + "norm_label": "active_width" + }, + { + "label": "urma_speed_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_speed_t", + "community": 3, + "norm_label": "urma_speed_t" + }, + { + "label": "active_speed", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L164", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_port_attr_active_speed", + "community": 3, + "norm_label": "active_speed" + }, + { + "label": "active_mtu", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L165", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_port_attr_active_mtu", + "community": 3, + "norm_label": "active_mtu" + }, + { + "label": "urma_sl_info", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L178", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sl_info", + "community": 58, + "norm_label": "urma_sl_info" + }, + { + "label": "SL", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L179", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sl_info_sl", + "community": 58, + "norm_label": "sl" + }, + { + "label": "tp_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L180", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sl_info_tp_type", + "community": 58, + "norm_label": "tp_type" + }, + { + "label": "urma_device_cap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L254", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap", + "community": 2, + "norm_label": "urma_device_cap" + }, + { + "label": "urma_device_feature_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_device_feature_t", + "community": 2, + "norm_label": "urma_device_feature_t" + }, + { + "label": "feature", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L255", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_feature", + "community": 2, + "norm_label": "feature" + }, + { + "label": "max_jfc", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L256", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfc", + "community": 2, + "norm_label": "max_jfc" + }, + { + "label": "max_jfs", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L257", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfs", + "community": 2, + "norm_label": "max_jfs" + }, + { + "label": "max_jfr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L258", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfr", + "community": 2, + "norm_label": "max_jfr" + }, + { + "label": "max_jetty", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L259", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jetty", + "community": 2, + "norm_label": "max_jetty" + }, + { + "label": "max_jetty_grp", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L260", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jetty_grp", + "community": 2, + "norm_label": "max_jetty_grp" + }, + { + "label": "max_jetty_in_jetty_grp", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L261", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jetty_in_jetty_grp", + "community": 2, + "norm_label": "max_jetty_in_jetty_grp" + }, + { + "label": "max_jfc_depth", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L262", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfc_depth", + "community": 2, + "norm_label": "max_jfc_depth" + }, + { + "label": "max_jfs_depth", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L263", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfs_depth", + "community": 2, + "norm_label": "max_jfs_depth" + }, + { + "label": "max_jfr_depth", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L264", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfr_depth", + "community": 2, + "norm_label": "max_jfr_depth" + }, + { + "label": "max_jfs_inline_len", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L265", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfs_inline_len", + "community": 2, + "norm_label": "max_jfs_inline_len" + }, + { + "label": "max_jfs_sge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L266", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfs_sge", + "community": 2, + "norm_label": "max_jfs_sge" + }, + { + "label": "max_jfs_rsge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L267", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfs_rsge", + "community": 2, + "norm_label": "max_jfs_rsge" + }, + { + "label": "max_jfr_sge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L268", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_jfr_sge", + "community": 2, + "norm_label": "max_jfr_sge" + }, + { + "label": "max_msg_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L269", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_msg_size", + "community": 2, + "norm_label": "max_msg_size" + }, + { + "label": "max_read_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L270", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_read_size", + "community": 2, + "norm_label": "max_read_size" + }, + { + "label": "max_write_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L271", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_write_size", + "community": 2, + "norm_label": "max_write_size" + }, + { + "label": "max_cas_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L272", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_cas_size", + "community": 2, + "norm_label": "max_cas_size" + }, + { + "label": "max_swap_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L273", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_swap_size", + "community": 2, + "norm_label": "max_swap_size" + }, + { + "label": "max_fetch_and_add_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L274", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_add_size", + "community": 2, + "norm_label": "max_fetch_and_add_size" + }, + { + "label": "max_fetch_and_sub_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L275", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_sub_size", + "community": 2, + "norm_label": "max_fetch_and_sub_size" + }, + { + "label": "max_fetch_and_and_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L276", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_and_size", + "community": 2, + "norm_label": "max_fetch_and_and_size" + }, + { + "label": "max_fetch_and_or_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L277", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_or_size", + "community": 2, + "norm_label": "max_fetch_and_or_size" + }, + { + "label": "max_fetch_and_xor_size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L278", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_xor_size", + "community": 2, + "norm_label": "max_fetch_and_xor_size" + }, + { + "label": "urma_atomic_feature_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_atomic_feature_t", + "community": 2, + "norm_label": "urma_atomic_feature_t" + }, + { + "label": "atomic_feat", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L279", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_atomic_feat", + "community": 2, + "norm_label": "atomic_feat" + }, + { + "label": "trans_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L280", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_trans_mode", + "community": 2, + "norm_label": "trans_mode" + }, + { + "label": "congestion_ctrl_alg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L281", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_congestion_ctrl_alg", + "community": 2, + "norm_label": "congestion_ctrl_alg" + }, + { + "label": "ceq_cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L282", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_ceq_cnt", + "community": 2, + "norm_label": "ceq_cnt" + }, + { + "label": "max_tp_in_tpg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L283", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_tp_in_tpg", + "community": 2, + "norm_label": "max_tp_in_tpg" + }, + { + "label": "max_eid_cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L284", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_eid_cnt", + "community": 2, + "norm_label": "max_eid_cnt" + }, + { + "label": "page_size_cap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L285", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_page_size_cap", + "community": 2, + "norm_label": "page_size_cap" + }, + { + "label": "max_oor_cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L286", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_oor_cnt", + "community": 2, + "norm_label": "max_oor_cnt" + }, + { + "label": "mn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L287", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_mn", + "community": 2, + "norm_label": "mn" + }, + { + "label": "max_netaddr_cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L288", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_max_netaddr_cnt", + "community": 2, + "norm_label": "max_netaddr_cnt" + }, + { + "label": "urma_order_type_cap_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_order_type_cap_t", + "community": 2, + "norm_label": "urma_order_type_cap_t" + }, + { + "label": "rm_order_cap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L289", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_rm_order_cap", + "community": 2, + "norm_label": "rm_order_cap" + }, + { + "label": "rc_order_cap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L290", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_rc_order_cap", + "community": 2, + "norm_label": "rc_order_cap" + }, + { + "label": "urma_tp_type_cap_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_tp_type_cap_t", + "community": 2, + "norm_label": "urma_tp_type_cap_t" + }, + { + "label": "rm_tp_cap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L291", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_rm_tp_cap", + "community": 2, + "norm_label": "rm_tp_cap" + }, + { + "label": "rc_tp_cap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L292", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_rc_tp_cap", + "community": 2, + "norm_label": "rc_tp_cap" + }, + { + "label": "um_tp_cap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L293", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_um_tp_cap", + "community": 2, + "norm_label": "um_tp_cap" + }, + { + "label": "urma_tp_feature_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_tp_feature_t", + "community": 2, + "norm_label": "urma_tp_feature_t" + }, + { + "label": "tp_feature", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L294", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_tp_feature", + "community": 2, + "norm_label": "tp_feature" + }, + { + "label": "priority_info", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L295", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_cap_priority_info", + "community": 2, + "norm_label": "priority_info" + }, + { + "label": "urma_guid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L298", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_guid", + "community": 10, + "norm_label": "urma_guid" + }, + { + "label": "raw", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L299", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_guid_raw", + "community": 10, + "norm_label": "raw" + }, + { + "label": "urma_device_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L302", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_attr", + "community": 31, + "norm_label": "urma_device_attr" + }, + { + "label": "urma_guid_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_guid_t", + "community": 31, + "norm_label": "urma_guid_t" + }, + { + "label": "guid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L303", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_attr_guid", + "community": 31, + "norm_label": "guid" + }, + { + "label": "urma_device_cap_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_device_cap_t", + "community": 31, + "norm_label": "urma_device_cap_t" + }, + { + "label": "dev_cap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L304", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_attr_dev_cap", + "community": 31, + "norm_label": "dev_cap" + }, + { + "label": "port_cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L305", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_attr_port_cnt", + "community": 31, + "norm_label": "port_cnt" + }, + { + "label": "port_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L306", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_attr_port_attr", + "community": 31, + "norm_label": "port_attr" + }, + { + "label": "reserved_jetty_id_min", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L307", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_min", + "community": 31, + "norm_label": "reserved_jetty_id_min" + }, + { + "label": "reserved_jetty_id_max", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L308", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_max", + "community": 31, + "norm_label": "reserved_jetty_id_max" + }, + { + "label": "urma_token", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L312", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_token", + "community": 10, + "norm_label": "urma_token" + }, + { + "label": "token", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L313", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_token_token", + "community": 10, + "norm_label": "token" + }, + { + "label": "urma_sysfs_dev", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L316", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sysfs_dev", + "community": 10, + "norm_label": "urma_sysfs_dev" + }, + { + "label": "urma_ops", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L318", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ops", + "community": 10, + "norm_label": "urma_ops" + }, + { + "label": "urma_provider_ops", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L319", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_provider_ops", + "community": 10, + "norm_label": "urma_provider_ops" + }, + { + "label": "urma_cc_entry", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L358", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cc_entry", + "community": 46, + "norm_label": "urma_cc_entry" + }, + { + "label": "urma_tp_cc_alg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_tp_cc_alg_t", + "community": 46, + "norm_label": "urma_tp_cc_alg_t" + }, + { + "label": "alg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L359", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cc_entry_alg", + "community": 46, + "norm_label": "alg" + }, + { + "label": "cc_pattern_idx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L360", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cc_entry_cc_pattern_idx", + "community": 46, + "norm_label": "cc_pattern_idx" + }, + { + "label": "cc_priority", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L361", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cc_entry_cc_priority", + "community": 46, + "norm_label": "cc_priority" + }, + { + "label": "urma_device", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L364", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device", + "community": 3, + "norm_label": "urma_device" + }, + { + "label": "name", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L365", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_name", + "community": 3, + "norm_label": "name" + }, + { + "label": "path", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L367", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_path", + "community": 3, + "norm_label": "path" + }, + { + "label": "urma_transport_type_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_transport_type_t", + "community": 3, + "norm_label": "urma_transport_type_t" + }, + { + "label": "type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L368", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_type", + "community": 3, + "norm_label": "type" + }, + { + "label": "ops", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L369", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_ops", + "community": 3, + "norm_label": "ops" + }, + { + "label": "sysfs_dev", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L370", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_device_sysfs_dev", + "community": 3, + "norm_label": "sysfs_dev" + }, + { + "label": "urma_context", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L383", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context", + "community": 7, + "norm_label": "urma_context" + }, + { + "label": "dev", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L384", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_dev", + "community": 7, + "norm_label": "dev" + }, + { + "label": "ops", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L385", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_ops", + "community": 7, + "norm_label": "ops" + }, + { + "label": "dev_fd", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L386", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_dev_fd", + "community": 7, + "norm_label": "dev_fd" + }, + { + "label": "async_fd", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L387", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_async_fd", + "community": 7, + "norm_label": "async_fd" + }, + { + "label": "pthread_mutex_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "pthread_mutex_t", + "community": 19, + "norm_label": "pthread_mutex_t" + }, + { + "label": "mutex", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L388", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_mutex", + "community": 7, + "norm_label": "mutex" + }, + { + "label": "urma_eid_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_eid_t", + "community": 7, + "norm_label": "urma_eid_t" + }, + { + "label": "eid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L389", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_eid", + "community": 7, + "norm_label": "eid" + }, + { + "label": "eid_index", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L390", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_eid_index", + "community": 7, + "norm_label": "eid_index" + }, + { + "label": "uasid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L391", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_uasid", + "community": 7, + "norm_label": "uasid" + }, + { + "label": "ref", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L392", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_ref", + "community": 7, + "norm_label": "ref" + }, + { + "label": "urma_context_aggr_mode_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_context_aggr_mode_t", + "community": 7, + "norm_label": "urma_context_aggr_mode_t" + }, + { + "label": "aggr_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L393", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_context_aggr_mode", + "community": 7, + "norm_label": "aggr_mode" + }, + { + "label": "urma_eid_info", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L396", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_eid_info", + "community": 7, + "norm_label": "urma_eid_info" + }, + { + "label": "eid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L397", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_eid_info_eid", + "community": 7, + "norm_label": "eid" + }, + { + "label": "eid_index", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L398", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_eid_info_eid_index", + "community": 7, + "norm_label": "eid_index" + }, + { + "label": "urma_jfce_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L401", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfce_cfg", + "community": 10, + "norm_label": "urma_jfce_cfg" + }, + { + "label": "depth", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L402", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfce_cfg_depth", + "community": 10, + "norm_label": "depth" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L403", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfce_cfg_user_ctx", + "community": 10, + "norm_label": "user_ctx" + }, + { + "label": "urma_jfce", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L406", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfce", + "community": 29, + "norm_label": "urma_jfce" + }, + { + "label": "urma_context_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_context_t", + "community": 29, + "norm_label": "urma_context_t" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L407", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfce_urma_ctx", + "community": 29, + "norm_label": "urma_ctx" + }, + { + "label": "fd", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L408", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfce_fd", + "community": 29, + "norm_label": "fd" + }, + { + "label": "ref", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L409", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfce_ref", + "community": 29, + "norm_label": "ref" + }, + { + "label": "urma_jfc_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L423", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_cfg", + "community": 37, + "norm_label": "urma_jfc_cfg" + }, + { + "label": "depth", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L424", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_cfg_depth", + "community": 37, + "norm_label": "depth" + }, + { + "label": "urma_jfc_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfc_flag_t", + "community": 37, + "norm_label": "urma_jfc_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L425", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_cfg_flag", + "community": 37, + "norm_label": "flag" + }, + { + "label": "ceqn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L426", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_cfg_ceqn", + "community": 37, + "norm_label": "ceqn" + }, + { + "label": "urma_jfce_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_jfce_t", + "community": 37, + "norm_label": "urma_jfce_t" + }, + { + "label": "jfce", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L428", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_cfg_jfce", + "community": 37, + "norm_label": "jfce" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L429", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_cfg_user_ctx", + "community": 37, + "norm_label": "user_ctx" + }, + { + "label": "urma_jfc_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L437", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_attr", + "community": 53, + "norm_label": "urma_jfc_attr" + }, + { + "label": "mask", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L438", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_attr_mask", + "community": 53, + "norm_label": "mask" + }, + { + "label": "moderate_count", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L439", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_attr_moderate_count", + "community": 53, + "norm_label": "moderate_count" + }, + { + "label": "moderate_period", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L440", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_attr_moderate_period", + "community": 53, + "norm_label": "moderate_period" + }, + { + "label": "urma_jetty_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L443", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_id", + "community": 7, + "norm_label": "urma_jetty_id" + }, + { + "label": "eid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L444", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_id_eid", + "community": 7, + "norm_label": "eid" + }, + { + "label": "uasid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L445", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_id_uasid", + "community": 7, + "norm_label": "uasid" + }, + { + "label": "id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L446", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_id_id", + "community": 7, + "norm_label": "id" + }, + { + "label": "urma_jfc_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L467", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt", + "community": 24, + "norm_label": "urma_jfc_opt" + }, + { + "label": "jfc_opt_mask", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L468", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_jfc_opt_mask", + "community": 24, + "norm_label": "jfc_opt_mask" + }, + { + "label": "is_actived", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L470", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_is_actived", + "community": 24, + "norm_label": "is_actived" + }, + { + "label": "urma_jfc_cqe_base_addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L471", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_cqe_base_addr", + "community": 24, + "norm_label": "urma_jfc_cqe_base_addr" + }, + { + "label": "urma_jfc_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L472", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_id", + "community": 24, + "norm_label": "urma_jfc_id" + }, + { + "label": "urma_jfc_db_addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L473", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_addr", + "community": 24, + "norm_label": "urma_jfc_db_addr" + }, + { + "label": "urma_jfc_db_status", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L474", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_status", + "community": 24, + "norm_label": "urma_jfc_db_status" + }, + { + "label": "urma_jfc_pi", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L475", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi", + "community": 24, + "norm_label": "urma_jfc_pi" + }, + { + "label": "urma_jfc_pi_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L476", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi_type", + "community": 24, + "norm_label": "urma_jfc_pi_type" + }, + { + "label": "urma_jfc_ci", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L477", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_ci", + "community": 24, + "norm_label": "urma_jfc_ci" + }, + { + "label": "reserved", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L478", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_opt_reserved", + "community": 24, + "norm_label": "reserved" + }, + { + "label": "urma_jfc", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L481", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc", + "community": 17, + "norm_label": "urma_jfc" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L482", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_urma_ctx", + "community": 17, + "norm_label": "urma_ctx" + }, + { + "label": "urma_jfc_id_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfc_id_t", + "community": 17, + "norm_label": "urma_jfc_id_t" + }, + { + "label": "jfc_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L483", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_jfc_id", + "community": 17, + "norm_label": "jfc_id" + }, + { + "label": "urma_jfc_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_jfc_cfg_t", + "community": 17, + "norm_label": "urma_jfc_cfg_t" + }, + { + "label": "jfc_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L484", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_jfc_cfg", + "community": 17, + "norm_label": "jfc_cfg" + }, + { + "label": "handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L485", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_handle", + "community": 17, + "norm_label": "handle" + }, + { + "label": "event_mutex", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L486", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_event_mutex", + "community": 17, + "norm_label": "event_mutex" + }, + { + "label": "pthread_cond_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "pthread_cond_t", + "community": 23, + "norm_label": "pthread_cond_t" + }, + { + "label": "event_cond", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L487", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_event_cond", + "community": 17, + "norm_label": "event_cond" + }, + { + "label": "comp_events_acked", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L488", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_comp_events_acked", + "community": 17, + "norm_label": "comp_events_acked" + }, + { + "label": "async_events_acked", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L489", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_async_events_acked", + "community": 17, + "norm_label": "async_events_acked" + }, + { + "label": "urma_jfc_opt_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfc_opt_t", + "community": 17, + "norm_label": "urma_jfc_opt_t" + }, + { + "label": "urma_jfc_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L490", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfc_urma_jfc_opt", + "community": 17, + "norm_label": "urma_jfc_opt" + }, + { + "label": "urma_jfs_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L534", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt", + "community": 26, + "norm_label": "urma_jfs_opt" + }, + { + "label": "jfs_opt_mask", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L535", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_jfs_opt_mask", + "community": 26, + "norm_label": "jfs_opt_mask" + }, + { + "label": "is_actived", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L537", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_is_actived", + "community": 26, + "norm_label": "is_actived" + }, + { + "label": "urma_jfs_sqe_base_addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L538", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_sqe_base_addr", + "community": 26, + "norm_label": "urma_jfs_sqe_base_addr" + }, + { + "label": "urma_jfs_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L539", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_id", + "community": 26, + "norm_label": "urma_jfs_id" + }, + { + "label": "urma_jfs_db_addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L540", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_addr", + "community": 26, + "norm_label": "urma_jfs_db_addr" + }, + { + "label": "urma_jfs_db_status", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L541", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_status", + "community": 26, + "norm_label": "urma_jfs_db_status" + }, + { + "label": "urma_jfs_pi", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L542", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi", + "community": 26, + "norm_label": "urma_jfs_pi" + }, + { + "label": "urma_jfs_pi_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L543", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi_type", + "community": 26, + "norm_label": "urma_jfs_pi_type" + }, + { + "label": "urma_jfs_ci", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L544", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_ci", + "community": 26, + "norm_label": "urma_jfs_ci" + }, + { + "label": "reserved", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L545", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_opt_reserved", + "community": 26, + "norm_label": "reserved" + }, + { + "label": "urma_jfs_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L548", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg", + "community": 8, + "norm_label": "urma_jfs_cfg" + }, + { + "label": "depth", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L549", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_depth", + "community": 8, + "norm_label": "depth" + }, + { + "label": "urma_jfs_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfs_flag_t", + "community": 8, + "norm_label": "urma_jfs_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L550", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_flag", + "community": 8, + "norm_label": "flag" + }, + { + "label": "urma_transport_mode_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_transport_mode_t", + "community": 40, + "norm_label": "urma_transport_mode_t" + }, + { + "label": "trans_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L551", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_trans_mode", + "community": 8, + "norm_label": "trans_mode" + }, + { + "label": "priority", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L552", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_priority", + "community": 8, + "norm_label": "priority" + }, + { + "label": "max_sge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L554", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_max_sge", + "community": 8, + "norm_label": "max_sge" + }, + { + "label": "max_rsge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L555", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_max_rsge", + "community": 8, + "norm_label": "max_rsge" + }, + { + "label": "max_inline_data", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L556", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_max_inline_data", + "community": 8, + "norm_label": "max_inline_data" + }, + { + "label": "rnr_retry", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L558", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_rnr_retry", + "community": 8, + "norm_label": "rnr_retry" + }, + { + "label": "err_timeout", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L562", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_err_timeout", + "community": 8, + "norm_label": "err_timeout" + }, + { + "label": "urma_jfc_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_jfc_t", + "community": 8, + "norm_label": "urma_jfc_t" + }, + { + "label": "jfc", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L564", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_jfc", + "community": 8, + "norm_label": "jfc" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L565", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_cfg_user_ctx", + "community": 8, + "norm_label": "user_ctx" + }, + { + "label": "urma_jfs", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L568", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs", + "community": 23, + "norm_label": "urma_jfs" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L569", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_urma_ctx", + "community": 23, + "norm_label": "urma_ctx" + }, + { + "label": "urma_jfs_id_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfs_id_t", + "community": 23, + "norm_label": "urma_jfs_id_t" + }, + { + "label": "jfs_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L570", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_jfs_id", + "community": 23, + "norm_label": "jfs_id" + }, + { + "label": "urma_jfs_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfs_cfg_t", + "community": 32, + "norm_label": "urma_jfs_cfg_t" + }, + { + "label": "jfs_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L571", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_jfs_cfg", + "community": 23, + "norm_label": "jfs_cfg" + }, + { + "label": "handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L572", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_handle", + "community": 23, + "norm_label": "handle" + }, + { + "label": "event_mutex", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L573", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_event_mutex", + "community": 23, + "norm_label": "event_mutex" + }, + { + "label": "event_cond", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L574", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_event_cond", + "community": 23, + "norm_label": "event_cond" + }, + { + "label": "async_events_acked", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L575", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_async_events_acked", + "community": 23, + "norm_label": "async_events_acked" + }, + { + "label": "urma_jfs_opt_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfs_opt_t", + "community": 48, + "norm_label": "urma_jfs_opt_t" + }, + { + "label": "urma_jfs_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L576", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_urma_jfs_opt", + "community": 23, + "norm_label": "urma_jfs_opt" + }, + { + "label": "urma_jfs_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L585", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_attr", + "community": 54, + "norm_label": "urma_jfs_attr" + }, + { + "label": "mask", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L586", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_attr_mask", + "community": 54, + "norm_label": "mask" + }, + { + "label": "urma_jfs_state_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfs_state_t", + "community": 54, + "norm_label": "urma_jfs_state_t" + }, + { + "label": "state", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L587", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_attr_state", + "community": 54, + "norm_label": "state" + }, + { + "label": "urma_jfr_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L625", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt", + "community": 25, + "norm_label": "urma_jfr_opt" + }, + { + "label": "jfr_opt_mask", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L626", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_jfr_opt_mask", + "community": 25, + "norm_label": "jfr_opt_mask" + }, + { + "label": "is_actived", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L628", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_is_actived", + "community": 25, + "norm_label": "is_actived" + }, + { + "label": "urma_jfr_rqe_base_addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L629", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_rqe_base_addr", + "community": 25, + "norm_label": "urma_jfr_rqe_base_addr" + }, + { + "label": "urma_jfr_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L630", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_id", + "community": 25, + "norm_label": "urma_jfr_id" + }, + { + "label": "urma_jfr_db_addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L631", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_addr", + "community": 25, + "norm_label": "urma_jfr_db_addr" + }, + { + "label": "urma_jfr_db_status", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L632", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_status", + "community": 25, + "norm_label": "urma_jfr_db_status" + }, + { + "label": "urma_jfr_pi", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L633", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi", + "community": 25, + "norm_label": "urma_jfr_pi" + }, + { + "label": "urma_jfr_pi_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L634", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi_type", + "community": 25, + "norm_label": "urma_jfr_pi_type" + }, + { + "label": "urma_jfr_ci", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L635", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_ci", + "community": 25, + "norm_label": "urma_jfr_ci" + }, + { + "label": "reserved", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L636", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_opt_reserved", + "community": 25, + "norm_label": "reserved" + }, + { + "label": "urma_jfr_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L639", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg", + "community": 8, + "norm_label": "urma_jfr_cfg" + }, + { + "label": "id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L640", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_id", + "community": 8, + "norm_label": "id" + }, + { + "label": "depth", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L642", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_depth", + "community": 8, + "norm_label": "depth" + }, + { + "label": "urma_jfr_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfr_flag_t", + "community": 8, + "norm_label": "urma_jfr_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L643", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_flag", + "community": 8, + "norm_label": "flag" + }, + { + "label": "trans_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L644", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_trans_mode", + "community": 8, + "norm_label": "trans_mode" + }, + { + "label": "max_sge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L645", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_max_sge", + "community": 8, + "norm_label": "max_sge" + }, + { + "label": "min_rnr_timer", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L646", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_min_rnr_timer", + "community": 8, + "norm_label": "min_rnr_timer" + }, + { + "label": "jfc", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L648", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_jfc", + "community": 8, + "norm_label": "jfc" + }, + { + "label": "urma_token_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_token_t", + "community": 5, + "norm_label": "urma_token_t" + }, + { + "label": "token_value", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L649", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_token_value", + "community": 8, + "norm_label": "token_value" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L650", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_cfg_user_ctx", + "community": 8, + "norm_label": "user_ctx" + }, + { + "label": "urma_jfr_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L658", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_attr", + "community": 49, + "norm_label": "urma_jfr_attr" + }, + { + "label": "mask", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L659", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_attr_mask", + "community": 49, + "norm_label": "mask" + }, + { + "label": "rx_threshold", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L660", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_attr_rx_threshold", + "community": 49, + "norm_label": "rx_threshold" + }, + { + "label": "urma_jfr_state_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfr_state_t", + "community": 49, + "norm_label": "urma_jfr_state_t" + }, + { + "label": "state", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L661", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_attr_state", + "community": 49, + "norm_label": "state" + }, + { + "label": "urma_jfr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L664", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr", + "community": 19, + "norm_label": "urma_jfr" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L665", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_urma_ctx", + "community": 19, + "norm_label": "urma_ctx" + }, + { + "label": "urma_jfr_id_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfr_id_t", + "community": 38, + "norm_label": "urma_jfr_id_t" + }, + { + "label": "jfr_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L666", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_jfr_id", + "community": 19, + "norm_label": "jfr_id" + }, + { + "label": "urma_jfr_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_jfr_cfg_t", + "community": 19, + "norm_label": "urma_jfr_cfg_t" + }, + { + "label": "jfr_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L667", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_jfr_cfg", + "community": 19, + "norm_label": "jfr_cfg" + }, + { + "label": "handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L668", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_handle", + "community": 19, + "norm_label": "handle" + }, + { + "label": "event_mutex", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L669", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_event_mutex", + "community": 19, + "norm_label": "event_mutex" + }, + { + "label": "event_cond", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L670", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_event_cond", + "community": 19, + "norm_label": "event_cond" + }, + { + "label": "async_events_acked", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L671", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_async_events_acked", + "community": 19, + "norm_label": "async_events_acked" + }, + { + "label": "urma_jfr_opt_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfr_opt_t", + "community": 19, + "norm_label": "urma_jfr_opt_t" + }, + { + "label": "urma_jfr_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L672", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_urma_jfr_opt", + "community": 19, + "norm_label": "urma_jfr_opt" + }, + { + "label": "urma_rjfr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L702", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjfr", + "community": 38, + "norm_label": "urma_rjfr" + }, + { + "label": "jfr_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L703", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjfr_jfr_id", + "community": 38, + "norm_label": "jfr_id" + }, + { + "label": "trans_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L704", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjfr_trans_mode", + "community": 38, + "norm_label": "trans_mode" + }, + { + "label": "urma_import_jetty_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_import_jetty_flag_t", + "community": 38, + "norm_label": "urma_import_jetty_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L705", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjfr_flag", + "community": 38, + "norm_label": "flag" + }, + { + "label": "urma_tp_type_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_tp_type_t", + "community": 38, + "norm_label": "urma_tp_type_t" + }, + { + "label": "tp_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L706", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjfr_tp_type", + "community": 38, + "norm_label": "tp_type" + }, + { + "label": "urma_tp", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L709", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp", + "community": 10, + "norm_label": "urma_tp" + }, + { + "label": "tpn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L710", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_tpn", + "community": 10, + "norm_label": "tpn" + }, + { + "label": "urma_jetty_grp", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L724", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp", + "community": 21, + "norm_label": "urma_jetty_grp" + }, + { + "label": "urma_jetty_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L726", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_cfg", + "community": 32, + "norm_label": "urma_jetty_cfg" + }, + { + "label": "id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L727", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_cfg_id", + "community": 32, + "norm_label": "id" + }, + { + "label": "urma_jetty_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_flag_t", + "community": 32, + "norm_label": "urma_jetty_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L728", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_cfg_flag", + "community": 32, + "norm_label": "flag" + }, + { + "label": "jfs_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L731", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_cfg_jfs_cfg", + "community": 32, + "norm_label": "jfs_cfg" + }, + { + "label": "urma_jetty_grp_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_grp_t", + "community": 32, + "norm_label": "urma_jetty_grp_t" + }, + { + "label": "jetty_grp", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L741", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_cfg_jetty_grp", + "community": 32, + "norm_label": "jetty_grp" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L742", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_cfg_user_ctx", + "community": 32, + "norm_label": "user_ctx" + }, + { + "label": "urma_rjetty", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L756", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjetty", + "community": 34, + "norm_label": "urma_rjetty" + }, + { + "label": "urma_jetty_id_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_id_t", + "community": 34, + "norm_label": "urma_jetty_id_t" + }, + { + "label": "jetty_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L757", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjetty_jetty_id", + "community": 34, + "norm_label": "jetty_id" + }, + { + "label": "trans_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L758", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjetty_trans_mode", + "community": 34, + "norm_label": "trans_mode" + }, + { + "label": "urma_jetty_grp_policy_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_grp_policy_t", + "community": 33, + "norm_label": "urma_jetty_grp_policy_t" + }, + { + "label": "policy", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L759", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjetty_policy", + "community": 34, + "norm_label": "policy" + }, + { + "label": "urma_target_type_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_target_type_t", + "community": 34, + "norm_label": "urma_target_type_t" + }, + { + "label": "type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L760", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjetty_type", + "community": 34, + "norm_label": "type" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L761", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjetty_flag", + "community": 34, + "norm_label": "flag" + }, + { + "label": "tp_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L762", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rjetty_tp_type", + "community": 34, + "norm_label": "tp_type" + }, + { + "label": "urma_target_jetty", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L765", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty", + "community": 27, + "norm_label": "urma_target_jetty" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L766", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_urma_ctx", + "community": 27, + "norm_label": "urma_ctx" + }, + { + "label": "id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L767", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_id", + "community": 27, + "norm_label": "id" + }, + { + "label": "handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L768", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_handle", + "community": 27, + "norm_label": "handle" + }, + { + "label": "trans_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L769", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_trans_mode", + "community": 27, + "norm_label": "trans_mode" + }, + { + "label": "urma_tp_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_tp_t", + "community": 27, + "norm_label": "urma_tp_t" + }, + { + "label": "tp", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L770", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_tp", + "community": 27, + "norm_label": "tp" + }, + { + "label": "type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L771", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_type", + "community": 27, + "norm_label": "type" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L772", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_flag", + "community": 27, + "norm_label": "flag" + }, + { + "label": "policy", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L773", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_policy", + "community": 27, + "norm_label": "policy" + }, + { + "label": "tp_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L774", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_jetty_tp_type", + "community": 27, + "norm_label": "tp_type" + }, + { + "label": "urma_jetty_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L782", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_attr", + "community": 47, + "norm_label": "urma_jetty_attr" + }, + { + "label": "mask", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L783", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_attr_mask", + "community": 47, + "norm_label": "mask" + }, + { + "label": "rx_threshold", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L784", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_attr_rx_threshold", + "community": 47, + "norm_label": "rx_threshold" + }, + { + "label": "urma_jetty_state_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_state_t", + "community": 47, + "norm_label": "urma_jetty_state_t" + }, + { + "label": "state", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L785", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_attr_state", + "community": 47, + "norm_label": "state" + }, + { + "label": "urma_jetty_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L788", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_opt", + "community": 48, + "norm_label": "urma_jetty_opt" + }, + { + "label": "is_actived", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L789", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_opt_is_actived", + "community": 48, + "norm_label": "is_actived" + }, + { + "label": "jfs_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L790", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_opt_jfs_opt", + "community": 48, + "norm_label": "jfs_opt" + }, + { + "label": "reserved", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L791", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_opt_reserved", + "community": 48, + "norm_label": "reserved" + }, + { + "label": "urma_jetty", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L794", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty", + "community": 20, + "norm_label": "urma_jetty" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L795", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_urma_ctx", + "community": 20, + "norm_label": "urma_ctx" + }, + { + "label": "jetty_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L796", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_jetty_id", + "community": 20, + "norm_label": "jetty_id" + }, + { + "label": "urma_target_jetty_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_target_jetty_t", + "community": 30, + "norm_label": "urma_target_jetty_t" + }, + { + "label": "remote_jetty", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L797", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_remote_jetty", + "community": 20, + "norm_label": "remote_jetty" + }, + { + "label": "urma_jetty_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_jetty_cfg_t", + "community": 20, + "norm_label": "urma_jetty_cfg_t" + }, + { + "label": "jetty_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L799", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_jetty_cfg", + "community": 20, + "norm_label": "jetty_cfg" + }, + { + "label": "handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L800", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_handle", + "community": 20, + "norm_label": "handle" + }, + { + "label": "event_mutex", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L801", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_event_mutex", + "community": 20, + "norm_label": "event_mutex" + }, + { + "label": "event_cond", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L802", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_event_cond", + "community": 20, + "norm_label": "event_cond" + }, + { + "label": "async_events_acked", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L803", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_async_events_acked", + "community": 20, + "norm_label": "async_events_acked" + }, + { + "label": "urma_jetty_opt_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_opt_t", + "community": 20, + "norm_label": "urma_jetty_opt_t" + }, + { + "label": "urma_jetty_opt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L804", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_urma_jetty_opt", + "community": 20, + "norm_label": "urma_jetty_opt" + }, + { + "label": "urma_notifier", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L807", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_notifier", + "community": 29, + "norm_label": "urma_notifier" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L808", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_notifier_urma_ctx", + "community": 29, + "norm_label": "urma_ctx" + }, + { + "label": "fd", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L809", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_notifier_fd", + "community": 29, + "norm_label": "fd" + }, + { + "label": "incomplete_tjetty_list", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L810", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_notifier_incomplete_tjetty_list", + "community": 29, + "norm_label": "incomplete_tjetty_list" + }, + { + "label": "urma_notify", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L818", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_notify", + "community": 42, + "norm_label": "urma_notify" + }, + { + "label": "urma_notify_type_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_notify_type_t", + "community": 42, + "norm_label": "urma_notify_type_t" + }, + { + "label": "type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L819", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_notify_type", + "community": 42, + "norm_label": "type" + }, + { + "label": "urma_status_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_status_t", + "community": 42, + "norm_label": "urma_status_t" + }, + { + "label": "status", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L820", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_notify_status", + "community": 42, + "norm_label": "status" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L821", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_notify_user_ctx", + "community": 42, + "norm_label": "user_ctx" + }, + { + "label": "urma_jetty_grp_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L840", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "community": 33, + "norm_label": "urma_jetty_grp_cfg" + }, + { + "label": "name", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L841", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_name", + "community": 33, + "norm_label": "name" + }, + { + "label": "urma_jetty_grp_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_grp_flag_t", + "community": 33, + "norm_label": "urma_jetty_grp_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L842", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_flag", + "community": 33, + "norm_label": "flag" + }, + { + "label": "token_value", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L843", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_token_value", + "community": 33, + "norm_label": "token_value" + }, + { + "label": "id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L844", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_id", + "community": 33, + "norm_label": "id" + }, + { + "label": "policy", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L846", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_policy", + "community": 33, + "norm_label": "policy" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L847", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_user_ctx", + "community": 33, + "norm_label": "user_ctx" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L851", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_urma_ctx", + "community": 21, + "norm_label": "urma_ctx" + }, + { + "label": "jetty_grp_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L852", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_jetty_grp_id", + "community": 21, + "norm_label": "jetty_grp_id" + }, + { + "label": "urma_jetty_grp_cfg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jetty_grp_cfg_t", + "community": 21, + "norm_label": "urma_jetty_grp_cfg_t" + }, + { + "label": "jetty_cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L854", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_jetty_cnt", + "community": 21, + "norm_label": "jetty_cnt" + }, + { + "label": "urma_jetty_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_jetty_t", + "community": 21, + "norm_label": "urma_jetty_t" + }, + { + "label": "jetty_list", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L855", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_jetty_list", + "community": 21, + "norm_label": "jetty_list" + }, + { + "label": "list_mutex", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L856", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_list_mutex", + "community": 21, + "norm_label": "list_mutex" + }, + { + "label": "handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L857", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_handle", + "community": 21, + "norm_label": "handle" + }, + { + "label": "event_mutex", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L858", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_event_mutex", + "community": 21, + "norm_label": "event_mutex" + }, + { + "label": "event_cond", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L859", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_event_cond", + "community": 21, + "norm_label": "event_cond" + }, + { + "label": "async_events_acked", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L860", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jetty_grp_async_events_acked", + "community": 21, + "norm_label": "async_events_acked" + }, + { + "label": "urma_ubva", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L864", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ubva", + "community": 7, + "norm_label": "urma_ubva" + }, + { + "label": "eid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L865", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ubva_eid", + "community": 7, + "norm_label": "eid" + }, + { + "label": "uasid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L866", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ubva_uasid", + "community": 7, + "norm_label": "uasid" + }, + { + "label": "va", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L867", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ubva_va", + "community": 7, + "norm_label": "va" + }, + { + "label": "urma_token_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L946", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_token_id", + "community": 39, + "norm_label": "urma_token_id" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L947", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_token_id_urma_ctx", + "community": 39, + "norm_label": "urma_ctx" + }, + { + "label": "token_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L948", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_token_id_token_id", + "community": 39, + "norm_label": "token_id" + }, + { + "label": "handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L949", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_token_id_handle", + "community": 39, + "norm_label": "handle" + }, + { + "label": "urma_ref_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_ref_t", + "community": 39, + "norm_label": "urma_ref_t" + }, + { + "label": "ref", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L950", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_token_id_ref", + "community": 39, + "norm_label": "ref" + }, + { + "label": "urma_token_id_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_token_id_flag_t", + "community": 39, + "norm_label": "urma_token_id_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L951", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_token_id_flag", + "community": 39, + "norm_label": "flag" + }, + { + "label": "urma_seg_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L954", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_cfg", + "community": 5, + "norm_label": "urma_seg_cfg" + }, + { + "label": "va", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L955", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_cfg_va", + "community": 5, + "norm_label": "va" + }, + { + "label": "len", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L956", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_cfg_len", + "community": 5, + "norm_label": "len" + }, + { + "label": "urma_token_id_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_token_id_t", + "community": 5, + "norm_label": "urma_token_id_t" + }, + { + "label": "token_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L957", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_cfg_token_id", + "community": 5, + "norm_label": "token_id" + }, + { + "label": "token_value", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L958", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_cfg_token_value", + "community": 5, + "norm_label": "token_value" + }, + { + "label": "urma_reg_seg_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_reg_seg_flag_t", + "community": 5, + "norm_label": "urma_reg_seg_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L959", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_cfg_flag", + "community": 5, + "norm_label": "flag" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L960", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_cfg_user_ctx", + "community": 5, + "norm_label": "user_ctx" + }, + { + "label": "iova", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L961", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_cfg_iova", + "community": 5, + "norm_label": "iova" + }, + { + "label": "urma_seg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L964", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg", + "community": 5, + "norm_label": "urma_seg" + }, + { + "label": "urma_ubva_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_ubva_t", + "community": 5, + "norm_label": "urma_ubva_t" + }, + { + "label": "ubva", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L965", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_ubva", + "community": 5, + "norm_label": "ubva" + }, + { + "label": "len", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L966", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_len", + "community": 5, + "norm_label": "len" + }, + { + "label": "urma_seg_attr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_seg_attr_t", + "community": 5, + "norm_label": "urma_seg_attr_t" + }, + { + "label": "attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L967", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_attr", + "community": 5, + "norm_label": "attr" + }, + { + "label": "token_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L968", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_token_id", + "community": 5, + "norm_label": "token_id" + }, + { + "label": "urma_target_seg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L971", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_seg", + "community": 5, + "norm_label": "urma_target_seg" + }, + { + "label": "urma_seg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_seg_t", + "community": 5, + "norm_label": "urma_seg_t" + }, + { + "label": "seg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L972", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_seg_seg", + "community": 5, + "norm_label": "seg" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L973", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_seg_user_ctx", + "community": 5, + "norm_label": "user_ctx" + }, + { + "label": "mva", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L974", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_seg_mva", + "community": 5, + "norm_label": "mva" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L975", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_seg_urma_ctx", + "community": 5, + "norm_label": "urma_ctx" + }, + { + "label": "token_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L976", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_seg_token_id", + "community": 5, + "norm_label": "token_id" + }, + { + "label": "handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L977", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_seg_handle", + "community": 5, + "norm_label": "handle" + }, + { + "label": "urma_user_ctl_in", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L980", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_ctl_in", + "community": 55, + "norm_label": "urma_user_ctl_in" + }, + { + "label": "addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L981", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_ctl_in_addr", + "community": 55, + "norm_label": "addr" + }, + { + "label": "len", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L982", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_ctl_in_len", + "community": 55, + "norm_label": "len" + }, + { + "label": "opcode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L987", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_ctl_in_opcode", + "community": 55, + "norm_label": "opcode" + }, + { + "label": "urma_user_ctl_out", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L990", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_ctl_out", + "community": 56, + "norm_label": "urma_user_ctl_out" + }, + { + "label": "addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L991", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_ctl_out_addr", + "community": 56, + "norm_label": "addr" + }, + { + "label": "len", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L992", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_ctl_out_len", + "community": 56, + "norm_label": "len" + }, + { + "label": "reserved", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L993", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_ctl_out_reserved", + "community": 56, + "norm_label": "reserved" + }, + { + "label": "urma_user_target_seg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L996", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_target_seg", + "community": 5, + "norm_label": "urma_user_target_seg" + }, + { + "label": "attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L997", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_target_seg_attr", + "community": 5, + "norm_label": "attr" + }, + { + "label": "token_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L998", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_target_seg_token_id", + "community": 5, + "norm_label": "token_id" + }, + { + "label": "token_value", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L999", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_user_target_seg_token_value", + "community": 5, + "norm_label": "token_value" + }, + { + "label": "urma_sge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1002", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sge", + "community": 6, + "norm_label": "urma_sge" + }, + { + "label": "addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1003", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sge_addr", + "community": 6, + "norm_label": "addr" + }, + { + "label": "len", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1004", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sge_len", + "community": 6, + "norm_label": "len" + }, + { + "label": "urma_target_seg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_target_seg_t", + "community": 6, + "norm_label": "urma_target_seg_t" + }, + { + "label": "tseg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1010", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sge_tseg", + "community": 6, + "norm_label": "tseg" + }, + { + "label": "urma_user_tseg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_user_tseg_t", + "community": 6, + "norm_label": "urma_user_tseg_t" + }, + { + "label": "user_tseg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1011", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sge_user_tseg", + "community": 6, + "norm_label": "user_tseg" + }, + { + "label": "urma_sg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1014", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sg", + "community": 28, + "norm_label": "urma_sg" + }, + { + "label": "urma_sge_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sdk_urma_urma_types_h_urma_sge_t", + "community": 28, + "norm_label": "urma_sge_t" + }, + { + "label": "sge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1015", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sg_sge", + "community": 28, + "norm_label": "sge" + }, + { + "label": "num_sge", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1016", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_sg_num_sge", + "community": 28, + "norm_label": "num_sge" + }, + { + "label": "urma_rw_wr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1053", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rw_wr", + "community": 6, + "norm_label": "urma_rw_wr" + }, + { + "label": "urma_sg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_sg_t", + "community": 6, + "norm_label": "urma_sg_t" + }, + { + "label": "src", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1054", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rw_wr_src", + "community": 6, + "norm_label": "src" + }, + { + "label": "dst", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1056", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rw_wr_dst", + "community": 6, + "norm_label": "dst" + }, + { + "label": "target_hint", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1058", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rw_wr_target_hint", + "community": 6, + "norm_label": "target_hint" + }, + { + "label": "notify_data", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1059", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_rw_wr_notify_data", + "community": 6, + "norm_label": "notify_data" + }, + { + "label": "urma_send_wr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1062", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_send_wr", + "community": 6, + "norm_label": "urma_send_wr" + }, + { + "label": "src", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1063", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_send_wr_src", + "community": 6, + "norm_label": "src" + }, + { + "label": "target_hint", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1064", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_send_wr_target_hint", + "community": 6, + "norm_label": "target_hint" + }, + { + "label": "imm_data", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1065", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_send_wr_imm_data", + "community": 6, + "norm_label": "imm_data" + }, + { + "label": "tseg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1066", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_send_wr_tseg", + "community": 6, + "norm_label": "tseg" + }, + { + "label": "urma_cas_wr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1069", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cas_wr", + "community": 28, + "norm_label": "urma_cas_wr" + }, + { + "label": "dst", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1070", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cas_wr_dst", + "community": 28, + "norm_label": "dst" + }, + { + "label": "src", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1071", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cas_wr_src", + "community": 28, + "norm_label": "src" + }, + { + "label": "urma_faa_wr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1082", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_faa_wr", + "community": 28, + "norm_label": "urma_faa_wr" + }, + { + "label": "dst", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1083", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_faa_wr_dst", + "community": 28, + "norm_label": "dst" + }, + { + "label": "src", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1084", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_faa_wr_src", + "community": 28, + "norm_label": "src" + }, + { + "label": "urma_jfs_wr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1091", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_wr", + "community": 30, + "norm_label": "urma_jfs_wr" + }, + { + "label": "urma_opcode_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_opcode_t", + "community": 30, + "norm_label": "urma_opcode_t" + }, + { + "label": "opcode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1092", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_wr_opcode", + "community": 30, + "norm_label": "opcode" + }, + { + "label": "urma_jfs_wr_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_jfs_wr_flag_t", + "community": 30, + "norm_label": "urma_jfs_wr_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1093", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_wr_flag", + "community": 30, + "norm_label": "flag" + }, + { + "label": "tjetty", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1094", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_wr_tjetty", + "community": 30, + "norm_label": "tjetty" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1095", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_wr_user_ctx", + "community": 30, + "norm_label": "user_ctx" + }, + { + "label": "next", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1102", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfs_wr_next", + "community": 30, + "norm_label": "next" + }, + { + "label": "urma_jfr_wr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1105", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_wr", + "community": 6, + "norm_label": "urma_jfr_wr" + }, + { + "label": "src", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1106", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_wr_src", + "community": 6, + "norm_label": "src" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1107", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_wr_user_ctx", + "community": 6, + "norm_label": "user_ctx" + }, + { + "label": "next", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1108", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_wr_next", + "community": 6, + "norm_label": "next" + }, + { + "label": "urma_cr_token", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1122", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_token", + "community": 5, + "norm_label": "urma_cr_token" + }, + { + "label": "token_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1123", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_token_token_id", + "community": 5, + "norm_label": "token_id" + }, + { + "label": "token_value", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1124", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_token_token_value", + "community": 5, + "norm_label": "token_value" + }, + { + "label": "urma_cr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1127", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr", + "community": 18, + "norm_label": "urma_cr" + }, + { + "label": "urma_cr_status_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_cr_status_t", + "community": 18, + "norm_label": "urma_cr_status_t" + }, + { + "label": "status", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1128", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_status", + "community": 18, + "norm_label": "status" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1129", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_user_ctx", + "community": 18, + "norm_label": "user_ctx" + }, + { + "label": "urma_cr_opcode_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_cr_opcode_t", + "community": 18, + "norm_label": "urma_cr_opcode_t" + }, + { + "label": "opcode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1130", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_opcode", + "community": 18, + "norm_label": "opcode" + }, + { + "label": "urma_cr_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_cr_flag_t", + "community": 18, + "norm_label": "urma_cr_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1131", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_flag", + "community": 18, + "norm_label": "flag" + }, + { + "label": "completion_len", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1132", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_completion_len", + "community": 18, + "norm_label": "completion_len" + }, + { + "label": "local_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1134", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_local_id", + "community": 18, + "norm_label": "local_id" + }, + { + "label": "remote_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1135", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_remote_id", + "community": 18, + "norm_label": "remote_id" + }, + { + "label": "tpn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1141", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_tpn", + "community": 18, + "norm_label": "tpn" + }, + { + "label": "user_data", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1142", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_cr_user_data", + "community": 18, + "norm_label": "user_data" + }, + { + "label": "urma_async_event", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1145", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_async_event", + "community": 44, + "norm_label": "urma_async_event" + }, + { + "label": "urma_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1147", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_async_event_urma_ctx", + "community": 44, + "norm_label": "urma_ctx" + }, + { + "label": "element", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1156", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_async_event_element", + "community": 44, + "norm_label": "element" + }, + { + "label": "urma_async_event_type_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_async_event_type_t", + "community": 44, + "norm_label": "urma_async_event_type_t" + }, + { + "label": "event_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1157", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_async_event_event_type", + "community": 44, + "norm_label": "event_type" + }, + { + "label": "priv", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1158", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_async_event_priv", + "community": 44, + "norm_label": "priv" + }, + { + "label": "urma_ur", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1184", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur", + "community": 16, + "norm_label": "urma_ur" + }, + { + "label": "name", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1185", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_name", + "community": 16, + "norm_label": "name" + }, + { + "label": "size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1186", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_size", + "community": 16, + "norm_label": "size" + }, + { + "label": "urma_ur_attr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_ur_attr_t", + "community": 16, + "norm_label": "urma_ur_attr_t" + }, + { + "label": "attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1187", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_attr", + "community": 16, + "norm_label": "attr" + }, + { + "label": "token", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1188", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_token", + "community": 16, + "norm_label": "token" + }, + { + "label": "user_ctx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1189", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_user_ctx", + "community": 16, + "norm_label": "user_ctx" + }, + { + "label": "urma_target_ur", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1193", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_ur", + "community": 6, + "norm_label": "urma_target_ur" + }, + { + "label": "name", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1194", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_ur_name", + "community": 6, + "norm_label": "name" + }, + { + "label": "size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1195", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_ur_size", + "community": 6, + "norm_label": "size" + }, + { + "label": "urma_import_ur_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_import_ur_flag_t", + "community": 6, + "norm_label": "urma_import_ur_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1196", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_ur_flag", + "community": 6, + "norm_label": "flag" + }, + { + "label": "tseg_list", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1197", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_ur_tseg_list", + "community": 6, + "norm_label": "tseg_list" + }, + { + "label": "cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1198", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_target_ur_cnt", + "community": 6, + "norm_label": "cnt" + }, + { + "label": "urma_seg_info", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1201", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_info", + "community": 5, + "norm_label": "urma_seg_info" + }, + { + "label": "seg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1202", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_info_seg", + "community": 5, + "norm_label": "seg" + }, + { + "label": "idx_in_ur", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1203", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_seg_info_idx_in_ur", + "community": 5, + "norm_label": "idx_in_ur" + }, + { + "label": "urma_ur_info", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1207", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_info", + "community": 16, + "norm_label": "urma_ur_info" + }, + { + "label": "name", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1208", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_info_name", + "community": 16, + "norm_label": "name" + }, + { + "label": "size", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1209", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_info_size", + "community": 16, + "norm_label": "size" + }, + { + "label": "attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1210", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_info_attr", + "community": 16, + "norm_label": "attr" + }, + { + "label": "cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1211", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_info_cnt", + "community": 16, + "norm_label": "cnt" + }, + { + "label": "urma_seg_info_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_seg_info_t", + "community": 16, + "norm_label": "urma_seg_info_t" + }, + { + "label": "seg_list", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1212", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_ur_info_seg_list", + "community": 16, + "norm_label": "seg_list" + }, + { + "label": "urma_jfr_info", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1215", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_info", + "community": 7, + "norm_label": "urma_jfr_info" + }, + { + "label": "name", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1216", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_info_name", + "community": 7, + "norm_label": "name" + }, + { + "label": "eid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1217", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_info_eid", + "community": 7, + "norm_label": "eid" + }, + { + "label": "uasid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1218", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_info_uasid", + "community": 7, + "norm_label": "uasid" + }, + { + "label": "id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1219", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_jfr_info_id", + "community": 7, + "norm_label": "id" + }, + { + "label": "urma_tp_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1238", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_cfg", + "community": 35, + "norm_label": "urma_tp_cfg" + }, + { + "label": "urma_tp_cfg_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_tp_cfg_flag_t", + "community": 35, + "norm_label": "urma_tp_cfg_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1239", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_cfg_flag", + "community": 35, + "norm_label": "flag" + }, + { + "label": "trans_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1241", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_cfg_trans_mode", + "community": 35, + "norm_label": "trans_mode" + }, + { + "label": "retry_num", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1242", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_cfg_retry_num", + "community": 35, + "norm_label": "retry_num" + }, + { + "label": "retry_factor", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1243", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_cfg_retry_factor", + "community": 35, + "norm_label": "retry_factor" + }, + { + "label": "ack_timeout", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1244", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_cfg_ack_timeout", + "community": 35, + "norm_label": "ack_timeout" + }, + { + "label": "dscp", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1245", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_cfg_dscp", + "community": 35, + "norm_label": "dscp" + }, + { + "label": "oor_cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1246", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_cfg_oor_cnt", + "community": 35, + "norm_label": "oor_cnt" + }, + { + "label": "urma_net_addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1295", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_net_addr", + "community": 41, + "norm_label": "urma_net_addr" + }, + { + "label": "sa_family_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "sa_family_t", + "community": 41, + "norm_label": "sa_family_t" + }, + { + "label": "sin_family", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1296", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_net_addr_sin_family", + "community": 41, + "norm_label": "sin_family" + }, + { + "label": "vlan", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1301", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_net_addr_vlan", + "community": 41, + "norm_label": "vlan" + }, + { + "label": "mac", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1302", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_net_addr_mac", + "community": 41, + "norm_label": "mac" + }, + { + "label": "prefix_len", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1303", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_net_addr_prefix_len", + "community": 41, + "norm_label": "prefix_len" + }, + { + "label": "urma_net_addr_info", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1306", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_net_addr_info", + "community": 3, + "norm_label": "urma_net_addr_info" + }, + { + "label": "urma_net_addr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_net_addr_t", + "community": 3, + "norm_label": "urma_net_addr_t" + }, + { + "label": "netaddr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1307", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_net_addr_info_netaddr", + "community": 3, + "norm_label": "netaddr" + }, + { + "label": "index", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1308", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_net_addr_info_index", + "community": 3, + "norm_label": "index" + }, + { + "label": "urma_tp_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1311", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr", + "community": 3, + "norm_label": "urma_tp_attr" + }, + { + "label": "urma_tp_mod_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_tp_mod_flag_t", + "community": 3, + "norm_label": "urma_tp_mod_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1312", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_flag", + "community": 3, + "norm_label": "flag" + }, + { + "label": "peer_tpn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1313", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_peer_tpn", + "community": 3, + "norm_label": "peer_tpn" + }, + { + "label": "urma_tp_state_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_tp_state_t", + "community": 3, + "norm_label": "urma_tp_state_t" + }, + { + "label": "state", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1314", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_state", + "community": 3, + "norm_label": "state" + }, + { + "label": "tx_psn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1315", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_tx_psn", + "community": 3, + "norm_label": "tx_psn" + }, + { + "label": "rx_psn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1316", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_rx_psn", + "community": 3, + "norm_label": "rx_psn" + }, + { + "label": "mtu", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1317", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_mtu", + "community": 3, + "norm_label": "mtu" + }, + { + "label": "cc_pattern_idx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1318", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_cc_pattern_idx", + "community": 3, + "norm_label": "cc_pattern_idx" + }, + { + "label": "oos_cnt", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1319", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_oos_cnt", + "community": 3, + "norm_label": "oos_cnt" + }, + { + "label": "local_net_addr_idx", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1320", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_local_net_addr_idx", + "community": 3, + "norm_label": "local_net_addr_idx" + }, + { + "label": "peer_net_addr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1321", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_peer_net_addr", + "community": 3, + "norm_label": "peer_net_addr" + }, + { + "label": "data_udp_start", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1322", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_data_udp_start", + "community": 3, + "norm_label": "data_udp_start" + }, + { + "label": "ack_udp_start", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1323", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_ack_udp_start", + "community": 3, + "norm_label": "ack_udp_start" + }, + { + "label": "udp_range", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1324", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_udp_range", + "community": 3, + "norm_label": "udp_range" + }, + { + "label": "hop_limit", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1325", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_hop_limit", + "community": 3, + "norm_label": "hop_limit" + }, + { + "label": "flow_label", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1326", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_flow_label", + "community": 3, + "norm_label": "flow_label" + }, + { + "label": "port_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1327", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_port_id", + "community": 3, + "norm_label": "port_id" + }, + { + "label": "mn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1328", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_mn", + "community": 3, + "norm_label": "mn" + }, + { + "label": "peer_trans_type", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1329", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_peer_trans_type", + "community": 3, + "norm_label": "peer_trans_type" + }, + { + "label": "urma_get_tp_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1347", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_get_tp_cfg", + "community": 40, + "norm_label": "urma_get_tp_cfg" + }, + { + "label": "urma_get_tp_cfg_flag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_get_tp_cfg_flag_t", + "community": 40, + "norm_label": "urma_get_tp_cfg_flag_t" + }, + { + "label": "flag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1348", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_get_tp_cfg_flag", + "community": 40, + "norm_label": "flag" + }, + { + "label": "trans_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1349", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_get_tp_cfg_trans_mode", + "community": 40, + "norm_label": "trans_mode" + }, + { + "label": "local_eid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1350", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_get_tp_cfg_local_eid", + "community": 40, + "norm_label": "local_eid" + }, + { + "label": "peer_eid", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1351", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_get_tp_cfg_peer_eid", + "community": 40, + "norm_label": "peer_eid" + }, + { + "label": "urma_tp_info", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1354", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_info", + "community": 10, + "norm_label": "urma_tp_info" + }, + { + "label": "tp_handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1355", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_info_tp_handle", + "community": 10, + "norm_label": "tp_handle" + }, + { + "label": "urma_active_tp_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1358", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_attr", + "community": 52, + "norm_label": "urma_active_tp_attr" + }, + { + "label": "tx_psn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1359", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_attr_tx_psn", + "community": 52, + "norm_label": "tx_psn" + }, + { + "label": "rx_psn", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1360", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_attr_rx_psn", + "community": 52, + "norm_label": "rx_psn" + }, + { + "label": "reserved", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1361", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_attr_reserved", + "community": 52, + "norm_label": "reserved" + }, + { + "label": "urma_active_tp_cfg", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1364", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_cfg", + "community": 43, + "norm_label": "urma_active_tp_cfg" + }, + { + "label": "tp_handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1365", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_cfg_tp_handle", + "community": 43, + "norm_label": "tp_handle" + }, + { + "label": "peer_tp_handle", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1366", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_cfg_peer_tp_handle", + "community": 43, + "norm_label": "peer_tp_handle" + }, + { + "label": "tag", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1367", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_cfg_tag", + "community": 43, + "norm_label": "tag" + }, + { + "label": "urma_active_tp_attr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_active_tp_attr_t", + "community": 43, + "norm_label": "urma_active_tp_attr_t" + }, + { + "label": "tp_attr", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1368", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_active_tp_cfg_tp_attr", + "community": 43, + "norm_label": "tp_attr" + }, + { + "label": "urma_tp_attr_value", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1376", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value", + "community": 9, + "norm_label": "urma_tp_attr_value" + }, + { + "label": "retry_times_init", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1377", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_retry_times_init", + "community": 9, + "norm_label": "retry_times_init" + }, + { + "label": "at", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1378", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_at", + "community": 9, + "norm_label": "at" + }, + { + "label": "sip", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1379", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_sip", + "community": 9, + "norm_label": "sip" + }, + { + "label": "dip", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1380", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_dip", + "community": 9, + "norm_label": "dip" + }, + { + "label": "sma", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1381", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_sma", + "community": 9, + "norm_label": "sma" + }, + { + "label": "dma", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1382", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_dma", + "community": 9, + "norm_label": "dma" + }, + { + "label": "vlan_id", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1383", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_vlan_id", + "community": 9, + "norm_label": "vlan_id" + }, + { + "label": "vlan_en", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1384", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_vlan_en", + "community": 9, + "norm_label": "vlan_en" + }, + { + "label": "dscp", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1385", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_dscp", + "community": 9, + "norm_label": "dscp" + }, + { + "label": "at_times", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1386", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_at_times", + "community": 9, + "norm_label": "at_times" + }, + { + "label": "sl", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1387", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_sl", + "community": 9, + "norm_label": "sl" + }, + { + "label": "ttl", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1388", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_ttl", + "community": 9, + "norm_label": "ttl" + }, + { + "label": "ack_udp_srcport", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1389", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_ack_udp_srcport", + "community": 9, + "norm_label": "ack_udp_srcport" + }, + { + "label": "data_udp_srcport", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1390", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_data_udp_srcport", + "community": 9, + "norm_label": "data_udp_srcport" + }, + { + "label": "udp_srcport_range", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1391", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_udp_srcport_range", + "community": 9, + "norm_label": "udp_srcport_range" + }, + { + "label": "spray_en", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1392", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_spray_en", + "community": 9, + "norm_label": "spray_en" + }, + { + "label": "udp_global_en", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1393", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_udp_global_en", + "community": 9, + "norm_label": "udp_global_en" + }, + { + "label": "reserve_0", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1394", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_reserve_0", + "community": 9, + "norm_label": "reserve_0" + }, + { + "label": "sl_bitmap", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1395", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_sl_bitmap", + "community": 9, + "norm_label": "sl_bitmap" + }, + { + "label": "dscp_config_mode", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1396", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_dscp_config_mode", + "community": 9, + "norm_label": "dscp_config_mode" + }, + { + "label": "reserve_1", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1397", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_reserve_1", + "community": 9, + "norm_label": "reserve_1" + }, + { + "label": "reserved", + "file_type": "code", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1398", + "_origin": "ast", + "id": "sdk_urma_urma_types_urma_tp_attr_value_reserved", + "community": 9, + "norm_label": "reserved" + }, + { + "label": "urma_endpoint.cpp", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1", + "_origin": "ast", + "id": "urma_endpoint_cpp_urma_endpoint", + "community": 0, + "norm_label": "urma_endpoint.cpp" + }, + { + "label": "PreparedJetty", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L82", + "_origin": "ast", + "id": "urma_endpoint_preparedjetty", + "community": 13, + "norm_label": "preparedjetty" + }, + { + "label": "res", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L83", + "_origin": "ast", + "id": "urma_endpoint_preparedjetty_res", + "community": 13, + "norm_label": "res" + }, + { + "label": "PreparedJettyCount()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L89", + "_origin": "ast", + "id": "urma_endpoint_preparedjettycount", + "community": 11, + "norm_label": "preparedjettycount()" + }, + { + "label": "UrmaEndpoint::UrmaEndpoint()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L138", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_urmaendpoint", + "community": 0, + "norm_label": "urmaendpoint::urmaendpoint()" + }, + { + "label": "Socket", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "socket", + "community": 0, + "norm_label": "socket" + }, + { + "label": "UrmaEndpoint::Reset()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L159", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_reset", + "community": 0, + "norm_label": "urmaendpoint::reset()" + }, + { + "label": "UrmaEndpoint::ReadFromFd()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L188", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_readfromfd", + "community": 0, + "norm_label": "urmaendpoint::readfromfd()" + }, + { + "label": "UrmaEndpoint::PushBackToReadBuf()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L215", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_pushbacktoreadbuf", + "community": 0, + "norm_label": "urmaendpoint::pushbacktoreadbuf()" + }, + { + "label": "UrmaEndpoint::WriteToFd()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L219", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_writetofd", + "community": 0, + "norm_label": "urmaendpoint::writetofd()" + }, + { + "label": "UrmaEndpoint::MakeLocalParsedHello()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L239", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_makelocalparsedhello", + "community": 0, + "norm_label": "urmaendpoint::makelocalparsedhello()" + }, + { + "label": "ParsedHello", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_cpp_parsedhello", + "community": 0, + "norm_label": "parsedhello" + }, + { + "label": "UrmaEndpoint::FillLocalHelloV2()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L261", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_filllocalhellov2", + "community": 1, + "norm_label": "urmaendpoint::filllocalhellov2()" + }, + { + "label": "UrmaEndpoint::FillLocalHelloV3()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L282", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_filllocalhellov3", + "community": 0, + "norm_label": "urmaendpoint::filllocalhellov3()" + }, + { + "label": "UrmaHello", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urmahello", + "community": 0, + "norm_label": "urmahello" + }, + { + "label": "UrmaEndpoint::WriteHelloV3()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L298", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_writehellov3", + "community": 0, + "norm_label": "urmaendpoint::writehellov3()" + }, + { + "label": "IOBuf", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "iobuf", + "community": 0, + "norm_label": "iobuf" + }, + { + "label": "UrmaEndpoint::ReadAndParseHelloV3()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L327", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_readandparsehellov3", + "community": 1, + "norm_label": "urmaendpoint::readandparsehellov3()" + }, + { + "label": "UrmaEndpoint::AllocateResources()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L360", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_allocateresources", + "community": 11, + "norm_label": "urmaendpoint::allocateresources()" + }, + { + "label": "UrmaEndpoint::DeallocateResources()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L462", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_deallocateresources", + "community": 0, + "norm_label": "urmaendpoint::deallocateresources()" + }, + { + "label": "UrmaEndpoint::ImportPeer()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L494", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_importpeer", + "community": 0, + "norm_label": "urmaendpoint::importpeer()" + }, + { + "label": "UrmaIOBuf", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L546", + "_origin": "ast", + "id": "urma_endpoint_urmaiobuf", + "community": 0, + "norm_label": "urmaiobuf" + }, + { + "label": ".cut_into_sglist()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L556", + "_origin": "ast", + "id": "urma_endpoint_urmaiobuf_cut_into_sglist", + "community": 0, + "norm_label": ".cut_into_sglist()" + }, + { + "label": "urma_sge_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_cpp_urma_sge_t", + "community": 0, + "norm_label": "urma_sge_t" + }, + { + "label": "UrmaEndpoint::CutFromIOBufList()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L590", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_cutfromiobuflist", + "community": 0, + "norm_label": "urmaendpoint::cutfromiobuflist()" + }, + { + "label": "UrmaEndpoint::IsWritable()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L664", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_iswritable", + "community": 0, + "norm_label": "urmaendpoint::iswritable()" + }, + { + "label": "UrmaEndpoint::DoPostRecv()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L673", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_dopostrecv", + "community": 45, + "norm_label": "urmaendpoint::dopostrecv()" + }, + { + "label": "UrmaEndpoint::PostRecv()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L687", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_postrecv", + "community": 0, + "norm_label": "urmaendpoint::postrecv()" + }, + { + "label": "UrmaEndpoint::SendImm()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L727", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_sendimm", + "community": 12, + "norm_label": "urmaendpoint::sendimm()" + }, + { + "label": "UrmaEndpoint::SendAck()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L751", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_sendack", + "community": 0, + "norm_label": "urmaendpoint::sendack()" + }, + { + "label": "UrmaEndpoint::HandleCompletion()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L761", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_handlecompletion", + "community": 0, + "norm_label": "urmaendpoint::handlecompletion()" + }, + { + "label": "urma_cr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_cpp_urma_cr_t", + "community": 0, + "norm_label": "urma_cr_t" + }, + { + "label": "UrmaEndpoint::PollCq()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L847", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_pollcq", + "community": 14, + "norm_label": "urmaendpoint::pollcq()" + }, + { + "label": "UrmaEndpoint::ApplyRemoteHello()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L930", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_applyremotehello", + "community": 0, + "norm_label": "urmaendpoint::applyremotehello()" + }, + { + "label": "UrmaEndpoint::OnNewDataFromTcp()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L953", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_onnewdatafromtcp", + "community": 0, + "norm_label": "urmaendpoint::onnewdatafromtcp()" + }, + { + "label": "UrmaEndpoint::TryReadOnTcp()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1010", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_tryreadontcp", + "community": 0, + "norm_label": "urmaendpoint::tryreadontcp()" + }, + { + "label": "TryReadOnTcpDuringUrmaEst()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1016", + "_origin": "ast", + "id": "urma_endpoint_tryreadontcpduringurmaest", + "community": 0, + "norm_label": "tryreadontcpduringurmaest()" + }, + { + "label": "UrmaEndpoint::FallbackToTcp()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1042", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_fallbacktotcp", + "community": 0, + "norm_label": "urmaendpoint::fallbacktotcp()" + }, + { + "label": "UrmaEndpoint::FailHandshake()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1051", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_failhandshake", + "community": 0, + "norm_label": "urmaendpoint::failhandshake()" + }, + { + "label": "UrmaEndpoint::ProcessHandshakeAtClient()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1072", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_processhandshakeatclient", + "community": 0, + "norm_label": "urmaendpoint::processhandshakeatclient()" + }, + { + "label": "UrmaEndpoint::ProcessHandshakeAtServer()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1144", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_processhandshakeatserver", + "community": 1, + "norm_label": "urmaendpoint::processhandshakeatserver()" + }, + { + "label": "UrmaEndpoint::GetStateStr()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1293", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_getstatestr", + "community": 0, + "norm_label": "urmaendpoint::getstatestr()" + }, + { + "label": "string", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_cpp_string", + "community": 0, + "norm_label": "string" + }, + { + "label": "UrmaEndpoint::DebugInfo()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1313", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_debuginfo", + "community": 0, + "norm_label": "urmaendpoint::debuginfo()" + }, + { + "label": "ostream", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "ostream", + "community": 0, + "norm_label": "ostream" + }, + { + "label": "StringPiece", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "stringpiece", + "community": 0, + "norm_label": "stringpiece" + }, + { + "label": "UrmaEndpoint::WaitCqEvent()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1322", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_waitcqevent", + "community": 51, + "norm_label": "urmaendpoint::waitcqevent()" + }, + { + "label": "SocketUniquePtr", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "socketuniqueptr", + "community": 51, + "norm_label": "socketuniqueptr" + }, + { + "label": "urma_jfc_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_cpp_urma_jfc_t", + "community": 51, + "norm_label": "urma_jfc_t" + }, + { + "label": "UrmaEndpoint::ReqNotifyCq()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1353", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_reqnotifycq", + "community": 14, + "norm_label": "urmaendpoint::reqnotifycq()" + }, + { + "label": "UrmaEndpoint::PollingModeInitialize()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1368", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_pollingmodeinitialize", + "community": 0, + "norm_label": "urmaendpoint::pollingmodeinitialize()" + }, + { + "label": "bthread_tag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_cpp_bthread_tag_t", + "community": 0, + "norm_label": "bthread_tag_t" + }, + { + "label": "function", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_cpp_function", + "community": 0, + "norm_label": "function" + }, + { + "label": "UrmaEndpoint::PollingModeRelease()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1462", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_pollingmoderelease", + "community": 0, + "norm_label": "urmaendpoint::pollingmoderelease()" + }, + { + "label": "UrmaEndpoint::PollerAddCqSid()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1476", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_polleraddcqsid", + "community": 0, + "norm_label": "urmaendpoint::polleraddcqsid()" + }, + { + "label": "UrmaEndpoint::PollerRemoveCqSid()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1492", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_pollerremovecqsid", + "community": 0, + "norm_label": "urmaendpoint::pollerremovecqsid()" + }, + { + "label": "UrmaEndpoint::GlobalInitialize()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1505", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_globalinitialize", + "community": 11, + "norm_label": "urmaendpoint::globalinitialize()" + }, + { + "label": "UrmaEndpoint::GlobalRelease()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1566", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_globalrelease", + "community": 0, + "norm_label": "urmaendpoint::globalrelease()" + }, + { + "label": "UrmaEndpoint::BringUpJetty()", + "file_type": "code", + "source_file": "urma_endpoint.cpp", + "source_location": "L1581", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint_bringupjetty", + "community": 0, + "norm_label": "urmaendpoint::bringupjetty()" + }, + { + "label": "urma_endpoint.h", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L1", + "_origin": "ast", + "id": "urma_endpoint_h_urma_endpoint", + "community": 0, + "norm_label": "urma_endpoint.h" + }, + { + "label": "UrmaTransport", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L42", + "_origin": "ast", + "id": "urma_endpoint_urmatransport", + "community": 0, + "norm_label": "urmatransport" + }, + { + "label": "UrmaHandshake", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L46", + "_origin": "ast", + "id": "urma_endpoint_urmahandshake", + "community": 0, + "norm_label": "urmahandshake" + }, + { + "label": "ParsedHello", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L47", + "_origin": "ast", + "id": "urma_endpoint_parsedhello", + "community": 0, + "norm_label": "parsedhello" + }, + { + "label": "UrmaConnect", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L56", + "_origin": "ast", + "id": "urma_endpoint_urmaconnect", + "community": 0, + "norm_label": "urmaconnect" + }, + { + "label": "AppConnect", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "appconnect", + "community": 0, + "norm_label": "appconnect" + }, + { + "label": "StartConnect", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L59", + "_origin": "ast", + "id": "urma_endpoint_urmaconnect_startconnect", + "community": 0, + "norm_label": "startconnect" + }, + { + "label": "StopConnect", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L61", + "_origin": "ast", + "id": "urma_endpoint_urmaconnect_stopconnect", + "community": 0, + "norm_label": "stopconnect" + }, + { + "label": "Run", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L70", + "_origin": "ast", + "id": "urma_endpoint_urmaconnect_run", + "community": 0, + "norm_label": "run" + }, + { + "label": "_data", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L72", + "_origin": "ast", + "id": "urma_endpoint_urmaconnect_data", + "community": 0, + "norm_label": "_data" + }, + { + "label": "_error", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L73", + "_origin": "ast", + "id": "urma_endpoint_urmaconnect_error", + "community": 0, + "norm_label": "_error" + }, + { + "label": "UrmaResource", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L81", + "_origin": "ast", + "id": "urma_endpoint_urmaresource", + "community": 13, + "norm_label": "urmaresource" + }, + { + "label": "next", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L82", + "_origin": "ast", + "id": "urma_endpoint_urmaresource_next", + "community": 13, + "norm_label": "next" + }, + { + "label": "urma_jfc_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_h_urma_jfc_t", + "community": 13, + "norm_label": "urma_jfc_t" + }, + { + "label": "jfc", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L84", + "_origin": "ast", + "id": "urma_endpoint_urmaresource_jfc", + "community": 13, + "norm_label": "jfc" + }, + { + "label": "urma_jfce_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_h_urma_jfce_t", + "community": 13, + "norm_label": "urma_jfce_t" + }, + { + "label": "jfce", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L85", + "_origin": "ast", + "id": "urma_endpoint_urmaresource_jfce", + "community": 13, + "norm_label": "jfce" + }, + { + "label": "urma_jfr_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_h_urma_jfr_t", + "community": 13, + "norm_label": "urma_jfr_t" + }, + { + "label": "jfr", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L86", + "_origin": "ast", + "id": "urma_endpoint_urmaresource_jfr", + "community": 13, + "norm_label": "jfr" + }, + { + "label": "urma_jetty_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_h_urma_jetty_t", + "community": 13, + "norm_label": "urma_jetty_t" + }, + { + "label": "jetty", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L87", + "_origin": "ast", + "id": "urma_endpoint_urmaresource_jetty", + "community": 13, + "norm_label": "jetty" + }, + { + "label": "urma_target_jetty_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_h_urma_target_jetty_t", + "community": 13, + "norm_label": "urma_target_jetty_t" + }, + { + "label": "remote_jetty", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L89", + "_origin": "ast", + "id": "urma_endpoint_urmaresource_remote_jetty", + "community": 13, + "norm_label": "remote_jetty" + }, + { + "label": "urma_target_seg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_endpoint_h_urma_target_seg_t", + "community": 13, + "norm_label": "urma_target_seg_t" + }, + { + "label": "remote_seg", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L90", + "_origin": "ast", + "id": "urma_endpoint_urmaresource_remote_seg", + "community": 13, + "norm_label": "remote_seg" + }, + { + "label": ".UrmaResource()", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L92", + "_origin": "ast", + "id": "urma_endpoint_urmaresource_urmaresource", + "community": 12, + "norm_label": ".urmaresource()" + }, + { + "label": "UrmaEndpoint()", + "file_type": "code", + "source_file": "urma_endpoint.h", + "source_location": "L100", + "_origin": "ast", + "id": "urma_endpoint_urmaendpoint", + "community": 0, + "norm_label": "urmaendpoint()" + }, + { + "label": "urma_handshake.cpp", + "file_type": "code", + "source_file": "urma_handshake.cpp", + "source_location": "L1", + "_origin": "ast", + "id": "urma_handshake_cpp_urma_handshake", + "community": 1, + "norm_label": "urma_handshake.cpp" + }, + { + "label": "ValidHello()", + "file_type": "code", + "source_file": "urma_handshake.cpp", + "source_location": "L127", + "_origin": "ast", + "id": "urma_handshake_validhello", + "community": 1, + "norm_label": "validhello()" + }, + { + "label": "ParsedHello", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_handshake_cpp_parsedhello", + "community": 1, + "norm_label": "parsedhello" + }, + { + "label": "ReadBodyAndNegotiate()", + "file_type": "code", + "source_file": "urma_handshake.cpp", + "source_location": "L141", + "_origin": "ast", + "id": "urma_handshake_readbodyandnegotiate", + "community": 1, + "norm_label": "readbodyandnegotiate()" + }, + { + "label": "DrainBytes()", + "file_type": "code", + "source_file": "urma_handshake.cpp", + "source_location": "L173", + "_origin": "ast", + "id": "urma_handshake_drainbytes", + "community": 1, + "norm_label": "drainbytes()" + }, + { + "label": "CreateClientHandshake()", + "file_type": "code", + "source_file": "urma_handshake.cpp", + "source_location": "L274", + "_origin": "ast", + "id": "urma_handshake_createclienthandshake", + "community": 1, + "norm_label": "createclienthandshake()" + }, + { + "label": "UrmaHandshake", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urmahandshake", + "community": 1, + "norm_label": "urmahandshake" + }, + { + "label": "CreateServerHandshakeByMagic()", + "file_type": "code", + "source_file": "urma_handshake.cpp", + "source_location": "L282", + "_origin": "ast", + "id": "urma_handshake_createserverhandshakebymagic", + "community": 1, + "norm_label": "createserverhandshakebymagic()" + }, + { + "label": "urma_handshake.h", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L1", + "_origin": "ast", + "id": "urma_handshake_h_urma_handshake", + "community": 1, + "norm_label": "urma_handshake.h" + }, + { + "label": "UrmaEndpoint", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L32", + "_origin": "ast", + "id": "urma_handshake_urmaendpoint", + "community": 1, + "norm_label": "urmaendpoint" + }, + { + "label": "ParsedHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L38", + "_origin": "ast", + "id": "urma_handshake_parsedhello", + "community": 22, + "norm_label": "parsedhello" + }, + { + "label": "buffer_size", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L39", + "_origin": "ast", + "id": "urma_handshake_parsedhello_buffer_size", + "community": 22, + "norm_label": "buffer_size" + }, + { + "label": "recv_buffer_cnt", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L40", + "_origin": "ast", + "id": "urma_handshake_parsedhello_recv_buffer_cnt", + "community": 22, + "norm_label": "recv_buffer_cnt" + }, + { + "label": "jetty_id", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L41", + "_origin": "ast", + "id": "urma_handshake_parsedhello_jetty_id", + "community": 22, + "norm_label": "jetty_id" + }, + { + "label": "eid", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L42", + "_origin": "ast", + "id": "urma_handshake_parsedhello_eid", + "community": 22, + "norm_label": "eid" + }, + { + "label": "uasid", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L43", + "_origin": "ast", + "id": "urma_handshake_parsedhello_uasid", + "community": 22, + "norm_label": "uasid" + }, + { + "label": "tp_type", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L44", + "_origin": "ast", + "id": "urma_handshake_parsedhello_tp_type", + "community": 22, + "norm_label": "tp_type" + }, + { + "label": "seg_eid", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L47", + "_origin": "ast", + "id": "urma_handshake_parsedhello_seg_eid", + "community": 22, + "norm_label": "seg_eid" + }, + { + "label": "seg_uasid", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L48", + "_origin": "ast", + "id": "urma_handshake_parsedhello_seg_uasid", + "community": 22, + "norm_label": "seg_uasid" + }, + { + "label": "seg_va", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L49", + "_origin": "ast", + "id": "urma_handshake_parsedhello_seg_va", + "community": 22, + "norm_label": "seg_va" + }, + { + "label": "seg_len", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L50", + "_origin": "ast", + "id": "urma_handshake_parsedhello_seg_len", + "community": 22, + "norm_label": "seg_len" + }, + { + "label": "seg_token_id", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L51", + "_origin": "ast", + "id": "urma_handshake_parsedhello_seg_token_id", + "community": 22, + "norm_label": "seg_token_id" + }, + { + "label": "HelloMessage", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L73", + "_origin": "ast", + "id": "urma_handshake_hellomessage", + "community": 1, + "norm_label": "hellomessage" + }, + { + "label": "msg_len", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L74", + "_origin": "ast", + "id": "urma_handshake_hellomessage_msg_len", + "community": 1, + "norm_label": "msg_len" + }, + { + "label": "hello_ver", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L75", + "_origin": "ast", + "id": "urma_handshake_hellomessage_hello_ver", + "community": 1, + "norm_label": "hello_ver" + }, + { + "label": "impl_ver", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L76", + "_origin": "ast", + "id": "urma_handshake_hellomessage_impl_ver", + "community": 1, + "norm_label": "impl_ver" + }, + { + "label": "buffer_size", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L77", + "_origin": "ast", + "id": "urma_handshake_hellomessage_buffer_size", + "community": 1, + "norm_label": "buffer_size" + }, + { + "label": "recv_buffer_cnt", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L78", + "_origin": "ast", + "id": "urma_handshake_hellomessage_recv_buffer_cnt", + "community": 1, + "norm_label": "recv_buffer_cnt" + }, + { + "label": "jetty_id", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L79", + "_origin": "ast", + "id": "urma_handshake_hellomessage_jetty_id", + "community": 1, + "norm_label": "jetty_id" + }, + { + "label": "eid", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L80", + "_origin": "ast", + "id": "urma_handshake_hellomessage_eid", + "community": 1, + "norm_label": "eid" + }, + { + "label": "uasid", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L81", + "_origin": "ast", + "id": "urma_handshake_hellomessage_uasid", + "community": 1, + "norm_label": "uasid" + }, + { + "label": "tp_type", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L82", + "_origin": "ast", + "id": "urma_handshake_hellomessage_tp_type", + "community": 1, + "norm_label": "tp_type" + }, + { + "label": "pad", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L83", + "_origin": "ast", + "id": "urma_handshake_hellomessage_pad", + "community": 1, + "norm_label": "pad" + }, + { + "label": "seg_eid", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L84", + "_origin": "ast", + "id": "urma_handshake_hellomessage_seg_eid", + "community": 1, + "norm_label": "seg_eid" + }, + { + "label": "seg_uasid", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L85", + "_origin": "ast", + "id": "urma_handshake_hellomessage_seg_uasid", + "community": 1, + "norm_label": "seg_uasid" + }, + { + "label": "seg_va", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L86", + "_origin": "ast", + "id": "urma_handshake_hellomessage_seg_va", + "community": 1, + "norm_label": "seg_va" + }, + { + "label": "seg_len", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L87", + "_origin": "ast", + "id": "urma_handshake_hellomessage_seg_len", + "community": 1, + "norm_label": "seg_len" + }, + { + "label": "seg_token_id", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L88", + "_origin": "ast", + "id": "urma_handshake_hellomessage_seg_token_id", + "community": 1, + "norm_label": "seg_token_id" + }, + { + "label": "Serialize", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L90", + "_origin": "ast", + "id": "urma_handshake_hellomessage_serialize", + "community": 1, + "norm_label": "serialize" + }, + { + "label": "Deserialize", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L91", + "_origin": "ast", + "id": "urma_handshake_hellomessage_deserialize", + "community": 1, + "norm_label": "deserialize" + }, + { + "label": "UrmaHandshake", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L97", + "_origin": "ast", + "id": "urma_handshake_urmahandshake", + "community": 1, + "norm_label": "urmahandshake" + }, + { + "label": ".~UrmaHandshake()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L99", + "_origin": "ast", + "id": "urma_handshake_urmahandshake_urmahandshake", + "community": 1, + "norm_label": ".~urmahandshake()" + }, + { + "label": "ProtocolVersion", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L100", + "_origin": "ast", + "id": "urma_handshake_urmahandshake_protocolversion", + "community": 1, + "norm_label": "protocolversion" + }, + { + "label": "SendLocalHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L104", + "_origin": "ast", + "id": "urma_handshake_urmahandshake_sendlocalhello", + "community": 1, + "norm_label": "sendlocalhello" + }, + { + "label": "ReceiveAndParseRemoteHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L110", + "_origin": "ast", + "id": "urma_handshake_urmahandshake_receiveandparseremotehello", + "community": 1, + "norm_label": "receiveandparseremotehello" + }, + { + "label": "UrmaHandshakeClientV2", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L114", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv2", + "community": 1, + "norm_label": "urmahandshakeclientv2" + }, + { + "label": ".UrmaHandshakeClientV2()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L116", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", + "community": 1, + "norm_label": ".urmahandshakeclientv2()" + }, + { + "label": ".ProtocolVersion()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L117", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv2_protocolversion", + "community": 1, + "norm_label": ".protocolversion()" + }, + { + "label": "SendLocalHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L118", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv2_sendlocalhello", + "community": 1, + "norm_label": "sendlocalhello" + }, + { + "label": "ReceiveAndParseRemoteHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L119", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", + "community": 1, + "norm_label": "receiveandparseremotehello" + }, + { + "label": "_ep", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L121", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv2_ep", + "community": 1, + "norm_label": "_ep" + }, + { + "label": "UrmaHandshakeServerV2", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L124", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv2", + "community": 1, + "norm_label": "urmahandshakeserverv2" + }, + { + "label": ".UrmaHandshakeServerV2()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L126", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", + "community": 1, + "norm_label": ".urmahandshakeserverv2()" + }, + { + "label": ".ProtocolVersion()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L127", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv2_protocolversion", + "community": 1, + "norm_label": ".protocolversion()" + }, + { + "label": "SendLocalHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L128", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv2_sendlocalhello", + "community": 1, + "norm_label": "sendlocalhello" + }, + { + "label": "ReceiveAndParseRemoteHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L129", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", + "community": 1, + "norm_label": "receiveandparseremotehello" + }, + { + "label": "_ep", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L131", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv2_ep", + "community": 1, + "norm_label": "_ep" + }, + { + "label": "UrmaHandshakeClientV3", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L135", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv3", + "community": 1, + "norm_label": "urmahandshakeclientv3" + }, + { + "label": ".UrmaHandshakeClientV3()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L137", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", + "community": 1, + "norm_label": ".urmahandshakeclientv3()" + }, + { + "label": ".ProtocolVersion()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L138", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv3_protocolversion", + "community": 1, + "norm_label": ".protocolversion()" + }, + { + "label": "SendLocalHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L139", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv3_sendlocalhello", + "community": 1, + "norm_label": "sendlocalhello" + }, + { + "label": "ReceiveAndParseRemoteHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L140", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", + "community": 1, + "norm_label": "receiveandparseremotehello" + }, + { + "label": "_ep", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L142", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeclientv3_ep", + "community": 1, + "norm_label": "_ep" + }, + { + "label": "UrmaHandshakeServerV3", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L145", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv3", + "community": 1, + "norm_label": "urmahandshakeserverv3" + }, + { + "label": ".UrmaHandshakeServerV3()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L147", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", + "community": 1, + "norm_label": ".urmahandshakeserverv3()" + }, + { + "label": ".ProtocolVersion()", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L148", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv3_protocolversion", + "community": 1, + "norm_label": ".protocolversion()" + }, + { + "label": "SendLocalHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L149", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv3_sendlocalhello", + "community": 1, + "norm_label": "sendlocalhello" + }, + { + "label": "ReceiveAndParseRemoteHello", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L150", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", + "community": 1, + "norm_label": "receiveandparseremotehello" + }, + { + "label": "_ep", + "file_type": "code", + "source_file": "urma_handshake.h", + "source_location": "L152", + "_origin": "ast", + "id": "urma_handshake_urmahandshakeserverv3_ep", + "community": 1, + "norm_label": "_ep" + }, + { + "label": "urma_helper.cpp", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L1", + "_origin": "ast", + "id": "urma_helper_cpp_urma_helper", + "community": 4, + "norm_label": "urma_helper.cpp" + }, + { + "label": "UserSeg", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L139", + "_origin": "ast", + "id": "urma_helper_userseg", + "community": 4, + "norm_label": "userseg" + }, + { + "label": "urma_target_seg_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_helper_cpp_urma_target_seg_t", + "community": 4, + "norm_label": "urma_target_seg_t" + }, + { + "label": "tseg", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L140", + "_origin": "ast", + "id": "urma_helper_userseg_tseg", + "community": 4, + "norm_label": "tseg" + }, + { + "label": "base", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L141", + "_origin": "ast", + "id": "urma_helper_userseg_base", + "community": 4, + "norm_label": "base" + }, + { + "label": "len", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L142", + "_origin": "ast", + "id": "urma_helper_userseg_len", + "community": 4, + "norm_label": "len" + }, + { + "label": "PageSize()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L155", + "_origin": "ast", + "id": "urma_helper_pagesize", + "community": 4, + "norm_label": "pagesize()" + }, + { + "label": "AlignUp()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L160", + "_origin": "ast", + "id": "urma_helper_alignup", + "community": 4, + "norm_label": "alignup()" + }, + { + "label": "BufferPool", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L174", + "_origin": "ast", + "id": "urma_helper_bufferpool", + "community": 4, + "norm_label": "bufferpool" + }, + { + "label": "Mutex", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_helper_cpp_mutex", + "community": 4, + "norm_label": "mutex" + }, + { + "label": "mutexes", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L175", + "_origin": "ast", + "id": "urma_helper_bufferpool_mutexes", + "community": 4, + "norm_label": "mutexes" + }, + { + "label": "vector", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "vector", + "community": 4, + "norm_label": "vector" + }, + { + "label": "free_lists", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L176", + "_origin": "ast", + "id": "urma_helper_bufferpool_free_lists", + "community": 4, + "norm_label": "free_lists" + }, + { + "label": "in_use", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L177", + "_origin": "ast", + "id": "urma_helper_bufferpool_in_use", + "community": 4, + "norm_label": "in_use" + }, + { + "label": "atomic", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "atomic", + "community": 4, + "norm_label": "atomic" + }, + { + "label": "outstanding", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L178", + "_origin": "ast", + "id": "urma_helper_bufferpool_outstanding", + "community": 4, + "norm_label": "outstanding" + }, + { + "label": ".buffer_count()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L180", + "_origin": "ast", + "id": "urma_helper_bufferpool_buffer_count", + "community": 4, + "norm_label": ".buffer_count()" + }, + { + "label": "ShardFor()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L186", + "_origin": "ast", + "id": "urma_helper_shardfor", + "community": 4, + "norm_label": "shardfor()" + }, + { + "label": "PreferredShard()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L193", + "_origin": "ast", + "id": "urma_helper_preferredshard", + "community": 4, + "norm_label": "preferredshard()" + }, + { + "label": "PoolAllocate()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L200", + "_origin": "ast", + "id": "urma_helper_poolallocate", + "community": 4, + "norm_label": "poolallocate()" + }, + { + "label": "PoolDeallocate()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L227", + "_origin": "ast", + "id": "urma_helper_pooldeallocate", + "community": 4, + "norm_label": "pooldeallocate()" + }, + { + "label": "InitPool()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L259", + "_origin": "ast", + "id": "urma_helper_initpool", + "community": 4, + "norm_label": "initpool()" + }, + { + "label": "GetPoolSegFor()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L313", + "_origin": "ast", + "id": "urma_helper_getpoolsegfor", + "community": 0, + "norm_label": "getpoolsegfor()" + }, + { + "label": "GlobalRelease()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L324", + "_origin": "ast", + "id": "urma_helper_globalrelease", + "community": 4, + "norm_label": "globalrelease()" + }, + { + "label": "GlobalUrmaInitializeImpl()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L372", + "_origin": "ast", + "id": "urma_helper_globalurmainitializeimpl", + "community": 4, + "norm_label": "globalurmainitializeimpl()" + }, + { + "label": "GlobalUrmaInitializeOrDie()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L521", + "_origin": "ast", + "id": "urma_helper_globalurmainitializeordie", + "community": 4, + "norm_label": "globalurmainitializeordie()" + }, + { + "label": "IsUrmaAvailable()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L540", + "_origin": "ast", + "id": "urma_helper_isurmaavailable", + "community": 0, + "norm_label": "isurmaavailable()" + }, + { + "label": "GlobalDisableUrma()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L544", + "_origin": "ast", + "id": "urma_helper_globaldisableurma", + "community": 4, + "norm_label": "globaldisableurma()" + }, + { + "label": "SupportedByUrma()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L548", + "_origin": "ast", + "id": "urma_helper_supportedbyurma", + "community": 4, + "norm_label": "supportedbyurma()" + }, + { + "label": "string", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_helper_cpp_string", + "community": 4, + "norm_label": "string" + }, + { + "label": "GetUrmaContext()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L552", + "_origin": "ast", + "id": "urma_helper_geturmacontext", + "community": 11, + "norm_label": "geturmacontext()" + }, + { + "label": "urma_context_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_helper_cpp_urma_context_t", + "community": 11, + "norm_label": "urma_context_t" + }, + { + "label": "GetUrmaMaxSge()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L553", + "_origin": "ast", + "id": "urma_helper_geturmamaxsge", + "community": 11, + "norm_label": "geturmamaxsge()" + }, + { + "label": "GetUrmaRecvBlockSize()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L554", + "_origin": "ast", + "id": "urma_helper_geturmarecvblocksize", + "community": 0, + "norm_label": "geturmarecvblocksize()" + }, + { + "label": "InitPollingModeWithTag()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L560", + "_origin": "ast", + "id": "urma_helper_initpollingmodewithtag", + "community": 4, + "norm_label": "initpollingmodewithtag()" + }, + { + "label": "bthread_tag_t", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_helper_cpp_bthread_tag_t", + "community": 4, + "norm_label": "bthread_tag_t" + }, + { + "label": "function", + "file_type": "code", + "source_file": "", + "source_location": "", + "_origin": "ast", + "id": "urma_helper_cpp_function", + "community": 4, + "norm_label": "function" + }, + { + "label": "ReleasePollingModeWithTag()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L570", + "_origin": "ast", + "id": "urma_helper_releasepollingmodewithtag", + "community": 4, + "norm_label": "releasepollingmodewithtag()" + }, + { + "label": "RegisterMemoryForUrma()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L578", + "_origin": "ast", + "id": "urma_helper_registermemoryforurma", + "community": 4, + "norm_label": "registermemoryforurma()" + }, + { + "label": "DeregisterMemoryForUrma()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L613", + "_origin": "ast", + "id": "urma_helper_deregistermemoryforurma", + "community": 4, + "norm_label": "deregistermemoryforurma()" + }, + { + "label": "GetSegHandle()", + "file_type": "code", + "source_file": "urma_helper.cpp", + "source_location": "L622", + "_origin": "ast", + "id": "urma_helper_getseghandle", + "community": 4, + "norm_label": "getseghandle()" + }, + { + "label": "urma_helper.h", + "file_type": "code", + "source_file": "urma_helper.h", + "source_location": "L1", + "_origin": "ast", + "id": "urma_helper_h_urma_helper", + "community": 0, + "norm_label": "urma_helper.h" + } + ], + "links": [ + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L41", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "atomic", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L44", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "deque", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L46", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_cpp_mutex", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L54", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_jfcstate", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L60", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_pendingrecv", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L83", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_pushcompletion", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L439", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_ack_async_event", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L674", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_ack_jfc", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L503", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_bind_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L268", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_create_context", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L441", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_create_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L319", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_create_jfc", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L290", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_create_jfce", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L348", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_create_jfr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L280", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_delete_context", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L458", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_delete_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L337", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_delete_jfc", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L308", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_delete_jfce", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L364", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_delete_jfr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L233", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_free_device_list", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L262", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_free_eid_list", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L427", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_get_async_event", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L195", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_get_device_by_name", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L155", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_get_device_list", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L252", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_get_eid_list", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L478", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_import_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L402", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_import_seg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L122", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_init", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L514", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_modify_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L627", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_poll_jfc", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L522", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_post_jetty_send_wr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L605", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_post_jfr_wr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L239", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_query_device", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L647", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_rearm_jfc", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L376", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_register_seg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L469", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_unbind_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L493", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_unimport_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L417", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_unimport_seg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L131", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_uninit", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L392", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_unregister_seg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L651", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "mock_urma_urma_wait_jfc", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L38", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "sdk_urma_urma_api", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L50", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma", + "target": "vector", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L56", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "mock_urma_jfcstate", + "target": "deque", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L55", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "mock_urma_jfcstate", + "target": "mock_urma_cpp_mutex", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L56", + "weight": 1.0, + "context": "generic_arg", + "_origin": "ast", + "source": "mock_urma_jfcstate", + "target": "mock_urma_cpp_urma_cr_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L56", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "mock_urma_jfcstate", + "target": "mock_urma_jfcstate_completions", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L57", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "mock_urma_jfcstate", + "target": "mock_urma_jfcstate_event_pending", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L55", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "mock_urma_jfcstate", + "target": "mock_urma_jfcstate_mutex", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L83", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_pushcompletion", + "target": "mock_urma_jfcstate", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L83", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_pushcompletion", + "target": "mock_urma_cpp_urma_cr_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L627", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_poll_jfc", + "target": "mock_urma_cpp_urma_cr_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L61", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "mock_urma_pendingrecv", + "target": "mock_urma_pendingrecv_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L62", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "mock_urma_pendingrecv", + "target": "mock_urma_pendingrecv_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L63", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "mock_urma_pendingrecv", + "target": "mock_urma_pendingrecv_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L83", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_pushcompletion", + "target": "mock_urma_cpp_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L543", + "weight": 1.0, + "_origin": "ast", + "source": "mock_urma_urma_post_jetty_send_wr", + "target": "mock_urma_pushcompletion", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L674", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_ack_jfc", + "target": "mock_urma_cpp_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L319", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jfc", + "target": "mock_urma_cpp_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L337", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_jfc", + "target": "mock_urma_cpp_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L627", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_poll_jfc", + "target": "mock_urma_cpp_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L647", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_rearm_jfc", + "target": "mock_urma_cpp_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L651", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_wait_jfc", + "target": "mock_urma_cpp_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L122", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_init", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L122", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_init", + "target": "urma_init_attr_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L387", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "mock_urma_urma_init" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L503", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_bind_jetty", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L280", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_context", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L458", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_jetty", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L337", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_jfc", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L308", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_jfce", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L364", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_jfr", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L427", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_get_async_event", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L514", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_modify_jetty", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L522", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_post_jetty_send_wr", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L605", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_post_jfr_wr", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L239", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_query_device", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L647", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_rearm_jfc", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L469", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_unbind_jetty", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L493", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_unimport_jetty", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L417", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_unimport_seg", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L131", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_uninit", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L392", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_unregister_seg", + "target": "mock_urma_cpp_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L359", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalrelease", + "target": "mock_urma_urma_uninit" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L155", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_get_device_list", + "target": "urma_device_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L405", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "mock_urma_urma_get_device_list" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L268", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_create_context", + "target": "urma_device_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L233", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_free_device_list", + "target": "urma_device_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L195", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_get_device_by_name", + "target": "urma_device_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L252", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_get_eid_list", + "target": "urma_device_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L239", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_query_device", + "target": "urma_device_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L408", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "mock_urma_urma_free_device_list" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L239", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_query_device", + "target": "urma_device_attr_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L427", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "mock_urma_urma_query_device" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L252", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_get_eid_list", + "target": "urma_eid_info_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L434", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "mock_urma_urma_get_eid_list" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L262", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_free_eid_list", + "target": "urma_eid_info_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L437", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "mock_urma_urma_free_eid_list" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L268", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_create_context", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L442", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "mock_urma_urma_create_context" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L441", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jetty", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L319", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jfc", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L290", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jfce", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L348", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jfr", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L280", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_context", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L427", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_get_async_event", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L478", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_import_jetty", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L402", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_import_seg", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L376", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_register_seg", + "target": "mock_urma_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L355", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalrelease", + "target": "mock_urma_urma_delete_context" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L290", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jfce", + "target": "mock_urma_cpp_urma_jfce_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L385", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_allocateresources", + "target": "mock_urma_urma_create_jfce" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1525", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_globalinitialize", + "target": "mock_urma_urma_create_jfce" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L308", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_jfce", + "target": "mock_urma_cpp_urma_jfce_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L651", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_wait_jfc", + "target": "mock_urma_cpp_urma_jfce_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L131", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaresource_urmaresource", + "target": "mock_urma_urma_delete_jfce" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L319", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jfc", + "target": "mock_urma_cpp_urma_jfc_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L396", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_allocateresources", + "target": "mock_urma_urma_create_jfc" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1534", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_globalinitialize", + "target": "mock_urma_urma_create_jfc" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L130", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaresource_urmaresource", + "target": "mock_urma_urma_delete_jfc" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L348", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jfr", + "target": "mock_urma_cpp_urma_jfr_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L348", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jfr", + "target": "mock_urma_cpp_urma_jfr_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L405", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_allocateresources", + "target": "mock_urma_urma_create_jfr" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1542", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_globalinitialize", + "target": "mock_urma_urma_create_jfr" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L364", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_jfr", + "target": "mock_urma_cpp_urma_jfr_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L605", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_post_jfr_wr", + "target": "mock_urma_cpp_urma_jfr_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L129", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaresource_urmaresource", + "target": "mock_urma_urma_delete_jfr" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L376", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_register_seg", + "target": "mock_urma_cpp_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L376", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_register_seg", + "target": "urma_seg_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L290", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_initpool", + "target": "mock_urma_urma_register_seg" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L595", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_registermemoryforurma", + "target": "mock_urma_urma_register_seg" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L402", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_import_seg", + "target": "mock_urma_cpp_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L417", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_unimport_seg", + "target": "mock_urma_cpp_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L392", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_unregister_seg", + "target": "mock_urma_cpp_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L618", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_deregistermemoryforurma", + "target": "mock_urma_urma_unregister_seg" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L340", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalrelease", + "target": "mock_urma_urma_unregister_seg" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_helper.cpp", + "source_location": "L607", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_registermemoryforurma", + "target": "mock_urma_urma_unregister_seg" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L402", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_import_seg", + "target": "mock_urma_cpp_urma_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L402", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_import_seg", + "target": "mock_urma_cpp_urma_token_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L402", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_import_seg", + "target": "urma_import_seg_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L512", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_importpeer", + "target": "mock_urma_urma_import_seg" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L478", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_import_jetty", + "target": "mock_urma_cpp_urma_token_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L127", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaresource_urmaresource", + "target": "mock_urma_urma_unimport_seg" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L427", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_get_async_event", + "target": "urma_async_event_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L439", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_ack_async_event", + "target": "urma_async_event_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L441", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jetty", + "target": "mock_urma_cpp_urma_jetty_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L441", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_create_jetty", + "target": "mock_urma_cpp_urma_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L420", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_allocateresources", + "target": "mock_urma_urma_create_jetty" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1556", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_globalinitialize", + "target": "mock_urma_urma_create_jetty" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L503", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_bind_jetty", + "target": "mock_urma_cpp_urma_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L458", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_delete_jetty", + "target": "mock_urma_cpp_urma_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L514", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_modify_jetty", + "target": "mock_urma_cpp_urma_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L522", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_post_jetty_send_wr", + "target": "mock_urma_cpp_urma_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L469", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_unbind_jetty", + "target": "mock_urma_cpp_urma_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L128", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaresource_urmaresource", + "target": "mock_urma_urma_delete_jetty" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L478", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "mock_urma_urma_import_jetty", + "target": "mock_urma_cpp_urma_target_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L478", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_import_jetty", + "target": "urma_rjetty_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L532", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_importpeer", + "target": "mock_urma_urma_import_jetty" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L503", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_bind_jetty", + "target": "mock_urma_cpp_urma_target_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L493", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_unimport_jetty", + "target": "mock_urma_cpp_urma_target_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L126", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaresource_urmaresource", + "target": "mock_urma_urma_unimport_jetty" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L514", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_modify_jetty", + "target": "urma_jetty_attr_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L522", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_post_jetty_send_wr", + "target": "urma_jfs_wr_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L642", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", + "target": "mock_urma_urma_post_jetty_send_wr" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L743", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_sendimm", + "target": "mock_urma_urma_post_jetty_send_wr" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "mock_urma.cpp", + "source_location": "L605", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "mock_urma_urma_post_jfr_wr", + "target": "urma_jfr_wr_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L681", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_dopostrecv", + "target": "mock_urma_urma_post_jfr_wr" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L868", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_pollcq", + "target": "mock_urma_urma_poll_jfc" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1358", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_reqnotifycq", + "target": "mock_urma_urma_rearm_jfc" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1329", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_waitcqevent", + "target": "mock_urma_urma_wait_jfc" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L896", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_pollcq", + "target": "mock_urma_urma_ack_jfc" + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_api.h", + "source_location": "L16", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_api", + "target": "sdk_urma_urma_types", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L46", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "sdk_urma_urma_api", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L35", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "sdk_urma_urma_api", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L44", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "sdk_urma_urma_api", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.h", + "source_location": "L31", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_h_urma_helper", + "target": "sdk_urma_urma_api", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L26", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_opcode", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L23", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "atomic", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1358", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_active_tp_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1364", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_active_tp_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1145", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_async_event", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1069", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_cas_wr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L358", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_cc_entry", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L383", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_context", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1127", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_cr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1122", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_cr_token", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L364", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_device", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L302", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_device_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L254", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_device_cap", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L396", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_eid_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1082", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_faa_wr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1347", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_get_tp_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L298", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_guid", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L85", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_init_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L794", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L782", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jetty_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L726", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jetty_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L724", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jetty_grp", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L840", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L443", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jetty_id", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L788", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jetty_opt", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L481", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfc", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L437", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfc_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L423", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfc_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L467", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfc_opt", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L406", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfce", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L401", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfce_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L664", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L658", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfr_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L639", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfr_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1215", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfr_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L625", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfr_opt", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1105", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfr_wr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L568", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfs", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L585", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfs_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L548", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfs_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L534", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfs_opt", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1091", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_jfs_wr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1295", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_net_addr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1306", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_net_addr_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L807", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_notifier", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L818", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_notify", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L318", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_ops", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L160", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_port_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L319", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_provider_ops", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L152", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_ref", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L756", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_rjetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L702", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_rjfr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1053", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_rw_wr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L964", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_seg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L954", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_seg_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1201", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_seg_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1062", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_send_wr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1014", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_sg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1002", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_sge", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L178", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_sl_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L316", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_sysfs_dev", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L765", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_target_jetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L971", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_target_seg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1193", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_target_ur", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L312", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_token", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L946", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_token_id", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L709", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_tp", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1311", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_tp_attr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1376", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_tp_attr_value", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1238", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_tp_cfg", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1354", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_tp_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L864", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_ubva", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1184", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_ur", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1207", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_ur_info", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L980", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_user_ctl_in", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L990", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_user_ctl_out", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L996", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "sdk_urma_urma_types_urma_user_target_seg", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L18", + "weight": 1.0, + "_origin": "ast", + "source": "sdk_urma_urma_types", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L36", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "sdk_urma_urma_types", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L27", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "sdk_urma_urma_types", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L45", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "sdk_urma_urma_types", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.h", + "source_location": "L32", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_h_urma_helper", + "target": "sdk_urma_urma_types", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L86", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_init_attr", + "target": "sdk_urma_urma_types_urma_init_attr_token", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L87", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_init_attr", + "target": "sdk_urma_urma_types_urma_init_attr_uasid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L165", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "sdk_urma_urma_types_urma_port_attr_active_mtu", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L164", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "sdk_urma_urma_types_urma_port_attr_active_speed", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L163", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "sdk_urma_urma_types_urma_port_attr_active_width", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L161", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "sdk_urma_urma_types_urma_port_attr_max_mtu", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L162", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "sdk_urma_urma_types_urma_port_attr_state", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L163", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "urma_link_width_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L161", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "urma_mtu_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L162", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "urma_port_state_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L164", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_port_attr", + "target": "urma_speed_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1317", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "urma_mtu_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L179", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sl_info", + "target": "sdk_urma_urma_types_urma_sl_info_sl", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L180", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sl_info", + "target": "sdk_urma_urma_types_urma_sl_info_tp_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L279", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_atomic_feat", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L282", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_ceq_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L281", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_congestion_ctrl_alg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L255", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_feature", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L272", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_cas_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L284", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_eid_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L274", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_add_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L276", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_and_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L277", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_or_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L275", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_sub_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L278", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_xor_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L259", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jetty", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L260", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jetty_grp", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L261", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jetty_in_jetty_grp", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L256", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfc", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L262", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfc_depth", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L258", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L264", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfr_depth", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L268", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfr_sge", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L257", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfs", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L263", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfs_depth", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L265", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfs_inline_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L267", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfs_rsge", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L266", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_jfs_sge", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L269", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_msg_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L288", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_netaddr_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L286", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_oor_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L270", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_read_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L273", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_swap_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L283", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_tp_in_tpg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L271", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_max_write_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L287", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_mn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L285", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_page_size_cap", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L295", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_priority_info", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L290", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_rc_order_cap", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L292", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_rc_tp_cap", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L289", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_rm_order_cap", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L291", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_rm_tp_cap", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L294", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_tp_feature", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L280", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_trans_mode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L293", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "sdk_urma_urma_types_urma_device_cap_um_tp_cap", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L279", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "urma_atomic_feature_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L255", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "urma_device_feature_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L289", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "urma_order_type_cap_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L294", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "urma_tp_feature_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L291", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_cap", + "target": "urma_tp_type_cap_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L299", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_guid", + "target": "sdk_urma_urma_types_urma_guid_raw", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L304", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_attr", + "target": "sdk_urma_urma_types_urma_device_attr_dev_cap", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L303", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_attr", + "target": "sdk_urma_urma_types_urma_device_attr_guid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L306", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_attr", + "target": "sdk_urma_urma_types_urma_device_attr_port_attr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L305", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_attr", + "target": "sdk_urma_urma_types_urma_device_attr_port_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L308", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_attr", + "target": "sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_max", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L307", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_attr", + "target": "sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_min", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L304", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_attr", + "target": "urma_device_cap_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L303", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device_attr", + "target": "urma_guid_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L313", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token", + "target": "sdk_urma_urma_types_urma_token_token", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L359", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cc_entry", + "target": "sdk_urma_urma_types_urma_cc_entry_alg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L360", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cc_entry", + "target": "sdk_urma_urma_types_urma_cc_entry_cc_pattern_idx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L361", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cc_entry", + "target": "sdk_urma_urma_types_urma_cc_entry_cc_priority", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L359", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cc_entry", + "target": "urma_tp_cc_alg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L365", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device", + "target": "sdk_urma_urma_types_urma_device_name", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L369", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device", + "target": "sdk_urma_urma_types_urma_device_ops", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L367", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device", + "target": "sdk_urma_urma_types_urma_device_path", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L370", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device", + "target": "sdk_urma_urma_types_urma_device_sysfs_dev", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L368", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device", + "target": "sdk_urma_urma_types_urma_device_type", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L368", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_device", + "target": "urma_transport_type_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1329", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "urma_transport_type_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L388", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "pthread_mutex_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L393", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_aggr_mode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L387", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_async_fd", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L384", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_dev", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L386", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_dev_fd", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L389", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L390", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_eid_index", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L388", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_mutex", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L385", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_ops", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L392", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_ref", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L391", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "sdk_urma_urma_types_urma_context_uasid", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L393", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "urma_context_aggr_mode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L389", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_context", + "target": "urma_eid_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L801", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "pthread_mutex_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L856", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "pthread_mutex_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L486", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "pthread_mutex_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L669", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "pthread_mutex_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L573", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "pthread_mutex_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L397", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_eid_info", + "target": "urma_eid_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1350", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_get_tp_cfg", + "target": "urma_eid_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L444", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_id", + "target": "urma_eid_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1217", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_info", + "target": "urma_eid_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L865", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ubva", + "target": "urma_eid_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L397", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_eid_info", + "target": "sdk_urma_urma_types_urma_eid_info_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L398", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_eid_info", + "target": "sdk_urma_urma_types_urma_eid_info_eid_index", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L402", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfce_cfg", + "target": "sdk_urma_urma_types_urma_jfce_cfg_depth", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L403", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfce_cfg", + "target": "sdk_urma_urma_types_urma_jfce_cfg_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L407", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfce", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L408", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfce", + "target": "sdk_urma_urma_types_urma_jfce_fd", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L409", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfce", + "target": "sdk_urma_urma_types_urma_jfce_ref", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L407", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfce", + "target": "sdk_urma_urma_types_urma_jfce_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1147", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_async_event", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L795", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L851", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L482", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L665", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L569", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L808", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notifier", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L766", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L975", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L947", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token_id", + "target": "sdk_urma_urma_types_h_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L428", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_cfg", + "target": "sdk_urma_urma_types_h_urma_jfce_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L426", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_cfg", + "target": "sdk_urma_urma_types_urma_jfc_cfg_ceqn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L424", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_cfg", + "target": "sdk_urma_urma_types_urma_jfc_cfg_depth", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L425", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_cfg", + "target": "sdk_urma_urma_types_urma_jfc_cfg_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L428", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_cfg", + "target": "sdk_urma_urma_types_urma_jfc_cfg_jfce", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L429", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_cfg", + "target": "sdk_urma_urma_types_urma_jfc_cfg_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L425", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_cfg", + "target": "urma_jfc_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L438", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_attr", + "target": "sdk_urma_urma_types_urma_jfc_attr_mask", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L439", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_attr", + "target": "sdk_urma_urma_types_urma_jfc_attr_moderate_count", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L440", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_attr", + "target": "sdk_urma_urma_types_urma_jfc_attr_moderate_period", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L444", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_id", + "target": "sdk_urma_urma_types_urma_jetty_id_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L446", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_id", + "target": "sdk_urma_urma_types_urma_jetty_id_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L445", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_id", + "target": "sdk_urma_urma_types_urma_jetty_id_uasid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L470", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_is_actived", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L468", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_jfc_opt_mask", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L478", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_reserved", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L477", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_ci", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L471", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_cqe_base_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L473", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L474", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_status", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L472", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L475", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L476", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc_opt", + "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi_type", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L487", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "pthread_cond_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L484", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_h_urma_jfc_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L489", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_async_events_acked", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L488", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_comp_events_acked", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L487", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_event_cond", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L486", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_event_mutex", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L485", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L484", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_jfc_cfg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L483", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_jfc_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L482", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L490", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "sdk_urma_urma_types_urma_jfc_urma_jfc_opt", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L483", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "urma_jfc_id_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L490", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfc", + "target": "urma_jfc_opt_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L802", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "pthread_cond_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L859", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "pthread_cond_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L670", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "pthread_cond_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L574", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "pthread_cond_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L537", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_is_actived", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L535", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_jfs_opt_mask", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L545", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_reserved", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L544", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_ci", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L540", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L541", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_status", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L539", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L542", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L543", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L538", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_opt", + "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_sqe_base_addr", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L564", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_h_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L549", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_depth", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L562", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_err_timeout", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L550", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L564", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_jfc", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L556", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_max_inline_data", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L555", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_max_rsge", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L554", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_max_sge", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L552", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_priority", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L558", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_rnr_retry", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L551", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_trans_mode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L565", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "sdk_urma_urma_types_urma_jfs_cfg_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L550", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "urma_jfs_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L551", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_cfg", + "target": "urma_transport_mode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1349", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_get_tp_cfg", + "target": "urma_transport_mode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L644", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "urma_transport_mode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L758", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "urma_transport_mode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L704", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjfr", + "target": "urma_transport_mode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L769", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "urma_transport_mode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1241", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "urma_transport_mode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L648", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_h_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L575", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_urma_jfs_async_events_acked", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L574", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_urma_jfs_event_cond", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L573", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_urma_jfs_event_mutex", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L572", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_urma_jfs_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L571", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_urma_jfs_jfs_cfg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L570", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_urma_jfs_jfs_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L569", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_urma_jfs_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L576", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "sdk_urma_urma_types_urma_jfs_urma_jfs_opt", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L571", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "urma_jfs_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L570", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "urma_jfs_id_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L576", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs", + "target": "urma_jfs_opt_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L731", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_cfg", + "target": "urma_jfs_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L790", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_opt", + "target": "urma_jfs_opt_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L586", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_attr", + "target": "sdk_urma_urma_types_urma_jfs_attr_mask", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L587", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_attr", + "target": "sdk_urma_urma_types_urma_jfs_attr_state", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L587", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_attr", + "target": "urma_jfs_state_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L628", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_is_actived", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L626", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_jfr_opt_mask", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L636", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_reserved", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L635", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_ci", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L631", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L632", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_status", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L630", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L633", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L634", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L629", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_opt", + "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_rqe_base_addr", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L649", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_h_urma_token_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L642", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_depth", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L643", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L640", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L648", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_jfc", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L645", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_max_sge", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L646", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_min_rnr_timer", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L649", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_token_value", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L644", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_trans_mode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L650", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "sdk_urma_urma_types_urma_jfr_cfg_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L643", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_cfg", + "target": "urma_jfr_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1124", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr_token", + "target": "sdk_urma_urma_types_h_urma_token_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L843", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "sdk_urma_urma_types_h_urma_token_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L958", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "sdk_urma_urma_types_h_urma_token_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L999", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_target_seg", + "target": "sdk_urma_urma_types_h_urma_token_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L659", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_attr", + "target": "sdk_urma_urma_types_urma_jfr_attr_mask", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L660", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_attr", + "target": "sdk_urma_urma_types_urma_jfr_attr_rx_threshold", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L661", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_attr", + "target": "sdk_urma_urma_types_urma_jfr_attr_state", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L661", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_attr", + "target": "urma_jfr_state_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L667", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_h_urma_jfr_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L671", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_urma_jfr_async_events_acked", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L670", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_urma_jfr_event_cond", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L669", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_urma_jfr_event_mutex", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L668", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_urma_jfr_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L667", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_urma_jfr_jfr_cfg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L666", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_urma_jfr_jfr_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L665", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_urma_jfr_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L672", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "sdk_urma_urma_types_urma_jfr_urma_jfr_opt", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L666", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "urma_jfr_id_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L672", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr", + "target": "urma_jfr_opt_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L703", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjfr", + "target": "urma_jfr_id_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L705", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjfr", + "target": "sdk_urma_urma_types_urma_rjfr_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L703", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjfr", + "target": "sdk_urma_urma_types_urma_rjfr_jfr_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L706", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjfr", + "target": "sdk_urma_urma_types_urma_rjfr_tp_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L704", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjfr", + "target": "sdk_urma_urma_types_urma_rjfr_trans_mode", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L705", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjfr", + "target": "urma_import_jetty_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L706", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjfr", + "target": "urma_tp_type_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L761", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "urma_import_jetty_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L772", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "urma_import_jetty_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L762", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "urma_tp_type_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L774", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "urma_tp_type_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L710", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp", + "target": "sdk_urma_urma_types_urma_tp_tpn", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L855", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_h_urma_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L860", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_async_events_acked", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L853", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L859", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_event_cond", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L858", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_event_mutex", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L857", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L854", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_jetty_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L852", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_jetty_grp_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L855", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_jetty_list", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L856", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_list_mutex", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L851", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "sdk_urma_urma_types_urma_jetty_grp_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L853", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "urma_jetty_grp_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L852", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp", + "target": "urma_jetty_id_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L728", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_cfg", + "target": "sdk_urma_urma_types_urma_jetty_cfg_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L727", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_cfg", + "target": "sdk_urma_urma_types_urma_jetty_cfg_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L741", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_cfg", + "target": "sdk_urma_urma_types_urma_jetty_cfg_jetty_grp", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L731", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_cfg", + "target": "sdk_urma_urma_types_urma_jetty_cfg_jfs_cfg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L742", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_cfg", + "target": "sdk_urma_urma_types_urma_jetty_cfg_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L728", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_cfg", + "target": "urma_jetty_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L741", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_cfg", + "target": "urma_jetty_grp_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L761", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "sdk_urma_urma_types_urma_rjetty_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L757", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "sdk_urma_urma_types_urma_rjetty_jetty_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L759", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "sdk_urma_urma_types_urma_rjetty_policy", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L762", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "sdk_urma_urma_types_urma_rjetty_tp_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L758", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "sdk_urma_urma_types_urma_rjetty_trans_mode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L760", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "sdk_urma_urma_types_urma_rjetty_type", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L759", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "urma_jetty_grp_policy_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L757", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "urma_jetty_id_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L760", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rjetty", + "target": "urma_target_type_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1135", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "urma_jetty_id_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L796", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "urma_jetty_id_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L767", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "urma_jetty_id_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L846", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "urma_jetty_grp_policy_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L773", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "urma_jetty_grp_policy_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L771", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "urma_target_type_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L772", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L768", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L767", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L773", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_policy", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L770", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_tp", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L774", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_tp_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L769", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_trans_mode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L771", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L766", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "sdk_urma_urma_types_urma_target_jetty_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L770", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_jetty", + "target": "urma_tp_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L783", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_attr", + "target": "sdk_urma_urma_types_urma_jetty_attr_mask", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L784", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_attr", + "target": "sdk_urma_urma_types_urma_jetty_attr_rx_threshold", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L785", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_attr", + "target": "sdk_urma_urma_types_urma_jetty_attr_state", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L785", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_attr", + "target": "urma_jetty_state_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L789", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_opt", + "target": "sdk_urma_urma_types_urma_jetty_opt_is_actived", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L790", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_opt", + "target": "sdk_urma_urma_types_urma_jetty_opt_jfs_opt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L791", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_opt", + "target": "sdk_urma_urma_types_urma_jetty_opt_reserved", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L799", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_h_urma_jetty_cfg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L797", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_h_urma_target_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L803", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_async_events_acked", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L802", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_event_cond", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L801", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_event_mutex", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L800", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L799", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_jetty_cfg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L796", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_jetty_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L797", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_remote_jetty", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L795", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L804", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "sdk_urma_urma_types_urma_jetty_urma_jetty_opt", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L804", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty", + "target": "urma_jetty_opt_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1094", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_wr", + "target": "sdk_urma_urma_types_h_urma_target_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L809", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notifier", + "target": "sdk_urma_urma_types_urma_notifier_fd", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L810", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notifier", + "target": "sdk_urma_urma_types_urma_notifier_incomplete_tjetty_list", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L808", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notifier", + "target": "sdk_urma_urma_types_urma_notifier_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L820", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notify", + "target": "sdk_urma_urma_types_h_urma_status_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L820", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notify", + "target": "sdk_urma_urma_types_urma_notify_status", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L819", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notify", + "target": "sdk_urma_urma_types_urma_notify_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L821", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notify", + "target": "sdk_urma_urma_types_urma_notify_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L819", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_notify", + "target": "urma_notify_type_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L842", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L844", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L841", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_name", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L846", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_policy", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L843", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_token_value", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L847", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L842", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", + "target": "urma_jetty_grp_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L865", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ubva", + "target": "sdk_urma_urma_types_urma_ubva_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L866", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ubva", + "target": "sdk_urma_urma_types_urma_ubva_uasid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L867", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ubva", + "target": "sdk_urma_urma_types_urma_ubva_va", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L951", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token_id", + "target": "sdk_urma_urma_types_urma_token_id_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L949", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token_id", + "target": "sdk_urma_urma_types_urma_token_id_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L950", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token_id", + "target": "sdk_urma_urma_types_urma_token_id_ref", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L948", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token_id", + "target": "sdk_urma_urma_types_urma_token_id_token_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L947", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token_id", + "target": "sdk_urma_urma_types_urma_token_id_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L950", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token_id", + "target": "urma_ref_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L951", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_token_id", + "target": "urma_token_id_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L959", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "sdk_urma_urma_types_urma_seg_cfg_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L961", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "sdk_urma_urma_types_urma_seg_cfg_iova", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L956", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "sdk_urma_urma_types_urma_seg_cfg_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L957", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "sdk_urma_urma_types_urma_seg_cfg_token_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L958", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "sdk_urma_urma_types_urma_seg_cfg_token_value", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L960", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "sdk_urma_urma_types_urma_seg_cfg_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L955", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "sdk_urma_urma_types_urma_seg_cfg_va", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L959", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "urma_reg_seg_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L957", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_cfg", + "target": "urma_token_id_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L976", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "urma_token_id_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L967", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg", + "target": "sdk_urma_urma_types_urma_seg_attr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L966", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg", + "target": "sdk_urma_urma_types_urma_seg_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L968", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg", + "target": "sdk_urma_urma_types_urma_seg_token_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L965", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg", + "target": "sdk_urma_urma_types_urma_seg_ubva", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L967", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg", + "target": "urma_seg_attr_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L965", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg", + "target": "urma_ubva_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L997", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_target_seg", + "target": "urma_seg_attr_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L972", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "sdk_urma_urma_types_h_urma_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L977", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "sdk_urma_urma_types_urma_target_seg_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L974", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "sdk_urma_urma_types_urma_target_seg_mva", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L972", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "sdk_urma_urma_types_urma_target_seg_seg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L976", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "sdk_urma_urma_types_urma_target_seg_token_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L975", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "sdk_urma_urma_types_urma_target_seg_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L973", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_seg", + "target": "sdk_urma_urma_types_urma_target_seg_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1202", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_info", + "target": "sdk_urma_urma_types_h_urma_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L981", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_ctl_in", + "target": "sdk_urma_urma_types_urma_user_ctl_in_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L982", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_ctl_in", + "target": "sdk_urma_urma_types_urma_user_ctl_in_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L987", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_ctl_in", + "target": "sdk_urma_urma_types_urma_user_ctl_in_opcode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L991", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_ctl_out", + "target": "sdk_urma_urma_types_urma_user_ctl_out_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L992", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_ctl_out", + "target": "sdk_urma_urma_types_urma_user_ctl_out_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L993", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_ctl_out", + "target": "sdk_urma_urma_types_urma_user_ctl_out_reserved", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L997", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_target_seg", + "target": "sdk_urma_urma_types_urma_user_target_seg_attr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L998", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_target_seg", + "target": "sdk_urma_urma_types_urma_user_target_seg_token_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L999", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_user_target_seg", + "target": "sdk_urma_urma_types_urma_user_target_seg_token_value", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1010", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sge", + "target": "sdk_urma_urma_types_h_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1003", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sge", + "target": "sdk_urma_urma_types_urma_sge_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1004", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sge", + "target": "sdk_urma_urma_types_urma_sge_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1010", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sge", + "target": "sdk_urma_urma_types_urma_sge_tseg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1011", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sge", + "target": "sdk_urma_urma_types_urma_sge_user_tseg", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1011", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sge", + "target": "urma_user_tseg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1066", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_send_wr", + "target": "sdk_urma_urma_types_h_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1197", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_ur", + "target": "sdk_urma_urma_types_h_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1015", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sg", + "target": "sdk_urma_urma_types_h_urma_sge_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1016", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sg", + "target": "sdk_urma_urma_types_urma_sg_num_sge", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1015", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_sg", + "target": "sdk_urma_urma_types_urma_sg_sge", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1070", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cas_wr", + "target": "sdk_urma_urma_types_h_urma_sge_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1083", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_faa_wr", + "target": "sdk_urma_urma_types_h_urma_sge_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1056", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rw_wr", + "target": "sdk_urma_urma_types_urma_rw_wr_dst", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1059", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rw_wr", + "target": "sdk_urma_urma_types_urma_rw_wr_notify_data", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1054", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rw_wr", + "target": "sdk_urma_urma_types_urma_rw_wr_src", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1058", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rw_wr", + "target": "sdk_urma_urma_types_urma_rw_wr_target_hint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1054", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_rw_wr", + "target": "urma_sg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1106", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_wr", + "target": "urma_sg_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1063", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_send_wr", + "target": "urma_sg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1065", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_send_wr", + "target": "sdk_urma_urma_types_urma_send_wr_imm_data", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1063", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_send_wr", + "target": "sdk_urma_urma_types_urma_send_wr_src", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1064", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_send_wr", + "target": "sdk_urma_urma_types_urma_send_wr_target_hint", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1066", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_send_wr", + "target": "sdk_urma_urma_types_urma_send_wr_tseg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1070", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cas_wr", + "target": "sdk_urma_urma_types_urma_cas_wr_dst", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1071", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cas_wr", + "target": "sdk_urma_urma_types_urma_cas_wr_src", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1083", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_faa_wr", + "target": "sdk_urma_urma_types_urma_faa_wr_dst", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1084", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_faa_wr", + "target": "sdk_urma_urma_types_urma_faa_wr_src", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1093", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_wr", + "target": "sdk_urma_urma_types_urma_jfs_wr_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1102", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_wr", + "target": "sdk_urma_urma_types_urma_jfs_wr_next", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1092", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_wr", + "target": "sdk_urma_urma_types_urma_jfs_wr_opcode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1094", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_wr", + "target": "sdk_urma_urma_types_urma_jfs_wr_tjetty", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1095", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_wr", + "target": "sdk_urma_urma_types_urma_jfs_wr_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1093", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_wr", + "target": "urma_jfs_wr_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1092", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfs_wr", + "target": "urma_opcode_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1108", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_wr", + "target": "sdk_urma_urma_types_urma_jfr_wr_next", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1106", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_wr", + "target": "sdk_urma_urma_types_urma_jfr_wr_src", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1107", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_wr", + "target": "sdk_urma_urma_types_urma_jfr_wr_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1123", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr_token", + "target": "sdk_urma_urma_types_urma_cr_token_token_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1124", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr_token", + "target": "sdk_urma_urma_types_urma_cr_token_token_value", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1132", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_completion_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1131", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1134", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_local_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1130", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_opcode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1135", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_remote_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1128", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_status", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1141", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_tpn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1129", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1142", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "sdk_urma_urma_types_urma_cr_user_data", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1131", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "urma_cr_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1130", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "urma_cr_opcode_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1128", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_cr", + "target": "urma_cr_status_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1156", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_async_event", + "target": "sdk_urma_urma_types_urma_async_event_element", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1157", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_async_event", + "target": "sdk_urma_urma_types_urma_async_event_event_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1158", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_async_event", + "target": "sdk_urma_urma_types_urma_async_event_priv", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1147", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_async_event", + "target": "sdk_urma_urma_types_urma_async_event_urma_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1157", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_async_event", + "target": "urma_async_event_type_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1187", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur", + "target": "sdk_urma_urma_types_urma_ur_attr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1185", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur", + "target": "sdk_urma_urma_types_urma_ur_name", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1186", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur", + "target": "sdk_urma_urma_types_urma_ur_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1188", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur", + "target": "sdk_urma_urma_types_urma_ur_token", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1189", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur", + "target": "sdk_urma_urma_types_urma_ur_user_ctx", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1187", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur", + "target": "urma_ur_attr_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1210", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur_info", + "target": "urma_ur_attr_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1198", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_ur", + "target": "sdk_urma_urma_types_urma_target_ur_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1196", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_ur", + "target": "sdk_urma_urma_types_urma_target_ur_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1194", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_ur", + "target": "sdk_urma_urma_types_urma_target_ur_name", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1195", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_ur", + "target": "sdk_urma_urma_types_urma_target_ur_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1197", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_ur", + "target": "sdk_urma_urma_types_urma_target_ur_tseg_list", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1196", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_target_ur", + "target": "urma_import_ur_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1203", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_info", + "target": "sdk_urma_urma_types_urma_seg_info_idx_in_ur", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1202", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_seg_info", + "target": "sdk_urma_urma_types_urma_seg_info_seg", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1210", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur_info", + "target": "sdk_urma_urma_types_urma_ur_info_attr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1211", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur_info", + "target": "sdk_urma_urma_types_urma_ur_info_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1208", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur_info", + "target": "sdk_urma_urma_types_urma_ur_info_name", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1212", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur_info", + "target": "sdk_urma_urma_types_urma_ur_info_seg_list", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1209", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur_info", + "target": "sdk_urma_urma_types_urma_ur_info_size", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1212", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_ur_info", + "target": "urma_seg_info_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1217", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_info", + "target": "sdk_urma_urma_types_urma_jfr_info_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1219", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_info", + "target": "sdk_urma_urma_types_urma_jfr_info_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1216", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_info", + "target": "sdk_urma_urma_types_urma_jfr_info_name", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1218", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_jfr_info", + "target": "sdk_urma_urma_types_urma_jfr_info_uasid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1244", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "sdk_urma_urma_types_urma_tp_cfg_ack_timeout", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1245", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "sdk_urma_urma_types_urma_tp_cfg_dscp", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1239", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "sdk_urma_urma_types_urma_tp_cfg_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1246", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "sdk_urma_urma_types_urma_tp_cfg_oor_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1243", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "sdk_urma_urma_types_urma_tp_cfg_retry_factor", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1242", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "sdk_urma_urma_types_urma_tp_cfg_retry_num", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1241", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "sdk_urma_urma_types_urma_tp_cfg_trans_mode", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1239", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_cfg", + "target": "urma_tp_cfg_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1296", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_net_addr", + "target": "sa_family_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1302", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_net_addr", + "target": "sdk_urma_urma_types_urma_net_addr_mac", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1303", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_net_addr", + "target": "sdk_urma_urma_types_urma_net_addr_prefix_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1296", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_net_addr", + "target": "sdk_urma_urma_types_urma_net_addr_sin_family", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1301", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_net_addr", + "target": "sdk_urma_urma_types_urma_net_addr_vlan", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1308", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_net_addr_info", + "target": "sdk_urma_urma_types_urma_net_addr_info_index", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1307", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_net_addr_info", + "target": "sdk_urma_urma_types_urma_net_addr_info_netaddr", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1307", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_net_addr_info", + "target": "urma_net_addr_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1321", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "urma_net_addr_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1323", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_ack_udp_start", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1318", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_cc_pattern_idx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1322", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_data_udp_start", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1312", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1326", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_flow_label", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1325", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_hop_limit", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1320", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_local_net_addr_idx", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1328", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_mn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1317", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_mtu", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1319", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_oos_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1321", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_peer_net_addr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1313", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_peer_tpn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1329", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_peer_trans_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1327", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_port_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1316", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_rx_psn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1314", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_state", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1315", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_tx_psn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1324", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "sdk_urma_urma_types_urma_tp_attr_udp_range", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1312", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "urma_tp_mod_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1314", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr", + "target": "urma_tp_state_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1348", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_get_tp_cfg", + "target": "sdk_urma_urma_types_urma_get_tp_cfg_flag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1350", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_get_tp_cfg", + "target": "sdk_urma_urma_types_urma_get_tp_cfg_local_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1351", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_get_tp_cfg", + "target": "sdk_urma_urma_types_urma_get_tp_cfg_peer_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1349", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_get_tp_cfg", + "target": "sdk_urma_urma_types_urma_get_tp_cfg_trans_mode", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1348", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_get_tp_cfg", + "target": "urma_get_tp_cfg_flag_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1355", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_info", + "target": "sdk_urma_urma_types_urma_tp_info_tp_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1361", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_active_tp_attr", + "target": "sdk_urma_urma_types_urma_active_tp_attr_reserved", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1360", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_active_tp_attr", + "target": "sdk_urma_urma_types_urma_active_tp_attr_rx_psn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1359", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_active_tp_attr", + "target": "sdk_urma_urma_types_urma_active_tp_attr_tx_psn", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1366", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_active_tp_cfg", + "target": "sdk_urma_urma_types_urma_active_tp_cfg_peer_tp_handle", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1367", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_active_tp_cfg", + "target": "sdk_urma_urma_types_urma_active_tp_cfg_tag", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1368", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_active_tp_cfg", + "target": "sdk_urma_urma_types_urma_active_tp_cfg_tp_attr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1365", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_active_tp_cfg", + "target": "sdk_urma_urma_types_urma_active_tp_cfg_tp_handle", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1368", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_active_tp_cfg", + "target": "urma_active_tp_attr_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1389", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_ack_udp_srcport", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1378", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_at", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1386", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_at_times", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1390", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_data_udp_srcport", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1380", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_dip", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1382", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_dma", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1385", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_dscp", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1396", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_dscp_config_mode", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1394", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_reserve_0", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1397", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_reserve_1", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1398", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_reserved", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1377", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_retry_times_init", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1379", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_sip", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1387", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_sl", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1395", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_sl_bitmap", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1381", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_sma", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1392", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_spray_en", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1388", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_ttl", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1393", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_udp_global_en", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1391", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_udp_srcport_range", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1384", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_vlan_en", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "sdk/urma/urma_types.h", + "source_location": "L1383", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "sdk_urma_urma_types_urma_tp_attr_value", + "target": "sdk_urma_urma_types_urma_tp_attr_value_vlan_id", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L36", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "iobuf", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L45", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L26", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_cpp_string", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L18", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_h_urma_endpoint", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L82", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_preparedjetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L89", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_preparedjettycount", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1016", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_tryreadontcpduringurmaest", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1281", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaconnect_run", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1240", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaconnect_startconnect", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1279", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaconnect_stopconnect", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L360", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_allocateresources", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L930", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_applyremotehello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1581", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_bringupjetty", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L590", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_cutfromiobuflist", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L462", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_deallocateresources", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1313", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_debuginfo", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L673", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_dopostrecv", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1051", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_failhandshake", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1042", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_fallbacktotcp", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L261", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_filllocalhellov2", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L282", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_filllocalhellov3", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1293", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_getstatestr", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1505", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_globalinitialize", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1566", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_globalrelease", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L761", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_handlecompletion", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L494", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_importpeer", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L664", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_iswritable", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L239", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_makelocalparsedhello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L953", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_onnewdatafromtcp", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L847", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_pollcq", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1476", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_polleraddcqsid", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1492", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_pollerremovecqsid", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1368", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_pollingmodeinitialize", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1462", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_pollingmoderelease", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L687", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_postrecv", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1072", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_processhandshakeatclient", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1144", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_processhandshakeatserver", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L215", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_pushbacktoreadbuf", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L327", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_readandparsehellov3", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L188", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_readfromfd", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1353", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_reqnotifycq", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L159", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_reset", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L751", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_sendack", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L727", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_sendimm", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1010", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_tryreadontcp", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L138", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1322", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_waitcqevent", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L298", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_writehellov3", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L219", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaendpoint_writetofd", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L546", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaiobuf", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L125", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_endpoint_urmaresource_urmaresource", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L48", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_handshake_h_urma_handshake", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L50", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "urma_helper_h_urma_helper", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L29", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_cpp_urma_endpoint", + "target": "vector", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L83", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_preparedjetty", + "target": "urma_endpoint_preparedjetty_res", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L83", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_preparedjetty", + "target": "urma_endpoint_urmaresource", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1521", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_globalinitialize", + "target": "urma_endpoint_preparedjettycount", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L138", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_urmaendpoint", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L31", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1016", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_tryreadontcpduringurmaest", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1240", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaconnect_startconnect", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1279", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaconnect_stopconnect", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L953", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_onnewdatafromtcp", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L847", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_pollcq", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L33", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "socket", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L312", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_writetofd", + "target": "iobuf", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L239", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_makelocalparsedhello", + "target": "urma_endpoint_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L251", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_makelocalparsedhello", + "target": "urma_helper_getpoolsegfor" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L241", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_makelocalparsedhello", + "target": "urma_helper_geturmarecvblocksize" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L930", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_applyremotehello", + "target": "urma_endpoint_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L494", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_importpeer", + "target": "urma_endpoint_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L327", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_readandparsehellov3", + "target": "urma_endpoint_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L261", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_filllocalhellov2", + "target": "urma_handshake_hellomessage", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L282", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_filllocalhellov3", + "target": "urmahello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L298", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_writehellov3", + "target": "urmahello", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L26", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "iobuf", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L590", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", + "target": "iobuf", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L546", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaiobuf", + "target": "iobuf", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L556", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaiobuf_cut_into_sglist", + "target": "iobuf", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L29", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "iobuf", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L38", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "iobuf", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L351", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_readandparsehellov3", + "target": "urma_handshake_validhello" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L362", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_allocateresources", + "target": "urma_helper_geturmacontext" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L414", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_allocateresources", + "target": "urma_helper_geturmamaxsge" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L495", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_importpeer", + "target": "urma_helper_geturmacontext" + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L556", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaiobuf", + "target": "urma_endpoint_urmaiobuf_cut_into_sglist", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L622", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", + "target": "urma_endpoint_urmaiobuf_cut_into_sglist", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L556", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaiobuf_cut_into_sglist", + "target": "urma_endpoint_cpp_urma_sge_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L564", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaiobuf_cut_into_sglist", + "target": "urma_helper_getpoolsegfor" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L595", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", + "target": "urma_helper_geturmamaxsge" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L617", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", + "target": "urma_helper_geturmarecvblocksize" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L674", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_dopostrecv", + "target": "urma_helper_getpoolsegfor" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L689", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_postrecv", + "target": "urma_helper_geturmarecvblocksize" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L761", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_handlecompletion", + "target": "urma_endpoint_cpp_urma_cr_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L828", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_handlecompletion", + "target": "urma_helper_geturmarecvblocksize" + }, + { + "relation": "references", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L856", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_pollcq", + "target": "urma_handshake_urmaendpoint" + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1003", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_onnewdatafromtcp", + "target": "urma_endpoint_tryreadontcpduringurmaest", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L971", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_onnewdatafromtcp", + "target": "urma_helper_isurmaavailable" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1042", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_fallbacktotcp", + "target": "urma_endpoint_urmatransport", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1051", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_failhandshake", + "target": "urma_endpoint_urmatransport", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1080", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_processhandshakeatclient", + "target": "urma_handshake_urmaendpoint" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1079", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_processhandshakeatclient", + "target": "urma_helper_isurmaavailable" + }, + { + "relation": "references", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1153", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_processhandshakeatserver", + "target": "urma_handshake_urmaendpoint" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1293", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_getstatestr", + "target": "urma_endpoint_cpp_string", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1313", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_debuginfo", + "target": "ostream", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1313", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_debuginfo", + "target": "stringpiece", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1322", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_waitcqevent", + "target": "socketuniqueptr", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1322", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_waitcqevent", + "target": "urma_endpoint_cpp_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1368", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_pollingmodeinitialize", + "target": "urma_endpoint_cpp_bthread_tag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1368", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_pollingmodeinitialize", + "target": "urma_endpoint_cpp_function", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.cpp", + "source_location": "L1462", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_pollingmoderelease", + "target": "urma_endpoint_cpp_bthread_tag_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1519", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_globalinitialize", + "target": "urma_helper_geturmacontext" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1550", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaendpoint_globalinitialize", + "target": "urma_helper_geturmamaxsge" + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L47", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "urma_endpoint_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L56", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "urma_endpoint_urmaconnect", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L100", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "urma_endpoint_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L46", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "urma_endpoint_urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L81", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "urma_endpoint_urmaresource", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L42", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "urma_endpoint_urmatransport", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L37", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "urma_handshake_h_urma_handshake", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L23", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_h_urma_endpoint", + "target": "vector", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L34", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_endpoint_h_urma_endpoint", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L46", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_endpoint_h_urma_endpoint", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L56", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaconnect", + "target": "appconnect", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L72", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaconnect", + "target": "urma_endpoint_urmaconnect_data", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L73", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaconnect", + "target": "urma_endpoint_urmaconnect_error", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L70", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaconnect", + "target": "urma_endpoint_urmaconnect_run", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L59", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaconnect", + "target": "urma_endpoint_urmaconnect_startconnect", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L61", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaconnect", + "target": "urma_endpoint_urmaconnect_stopconnect", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1251", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaconnect_startconnect", + "target": "urma_endpoint_urmaconnect_run" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_endpoint.cpp", + "source_location": "L1254", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaconnect_startconnect", + "target": "urma_helper_isurmaavailable" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L87", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_h_urma_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L84", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_h_urma_jfc_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L85", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_h_urma_jfce_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L86", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_h_urma_jfr_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L89", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_h_urma_target_jetty_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L90", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_h_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L87", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_urmaresource_jetty", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L84", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_urmaresource_jfc", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L85", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_urmaresource_jfce", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L86", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_urmaresource_jfr", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L82", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_urmaresource_next", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L89", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_urmaresource_remote_jetty", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L90", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_urmaresource_remote_seg", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_endpoint.h", + "source_location": "L92", + "weight": 1.0, + "_origin": "ast", + "source": "urma_endpoint_urmaresource", + "target": "urma_endpoint_urmaresource_urmaresource", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L274", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_createclienthandshake", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L282", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_createserverhandshakebymagic", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L173", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_drainbytes", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L18", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_h_urma_handshake", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L91", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_hellomessage_deserialize", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L72", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_hellomessage_serialize", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L141", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_readbodyandnegotiate", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L196", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L187", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_urmahandshakeclientv2_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L246", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L240", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_urmahandshakeclientv3_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L210", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L215", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_urmahandshakeserverv2_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L258", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L263", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_urmahandshakeserverv3_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L127", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_handshake_validhello", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L35", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_cpp_urma_handshake", + "target": "urma_helper_h_urma_helper", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L163", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_readbodyandnegotiate", + "target": "urma_handshake_validhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L127", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_validhello", + "target": "urma_handshake_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L141", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_readbodyandnegotiate", + "target": "urma_handshake_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L196", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", + "target": "urma_handshake_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L246", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", + "target": "urma_handshake_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L210", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", + "target": "urma_handshake_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L258", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", + "target": "urma_handshake_cpp_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L166", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_readbodyandnegotiate", + "target": "urma_handshake_drainbytes", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_handshake.cpp", + "source_location": "L146", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_readbodyandnegotiate", + "target": "urma_handshake_hellomessage_deserialize" + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L141", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_readbodyandnegotiate", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L207", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", + "target": "urma_handshake_readbodyandnegotiate", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L212", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", + "target": "urma_handshake_readbodyandnegotiate", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L173", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_drainbytes", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L274", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_createclienthandshake", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L274", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "urma_handshake_createclienthandshake", + "target": "urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L282", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "urma_handshake_createserverhandshakebymagic", + "target": "urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.cpp", + "source_location": "L282", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_createserverhandshakebymagic", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L73", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "urma_handshake_hellomessage", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L38", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "urma_handshake_parsedhello", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L32", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L97", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "urma_handshake_urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L114", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "urma_handshake_urmahandshakeclientv2", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L135", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "urma_handshake_urmahandshakeclientv3", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L124", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "urma_handshake_urmahandshakeserverv2", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L145", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_h_urma_handshake", + "target": "urma_handshake_urmahandshakeserverv3", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L121", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L116", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L142", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L137", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L131", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L126", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L152", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L147", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", + "target": "urma_handshake_urmaendpoint", + "confidence_score": 1.0 + }, + { + "relation": "references", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "urma_helper.cpp", + "source_location": "L338", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalrelease", + "target": "urma_handshake_urmaendpoint" + }, + { + "relation": "references", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "urma_helper.cpp", + "source_location": "L500", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "urma_handshake_urmaendpoint" + }, + { + "relation": "references", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "urma_helper.cpp", + "source_location": "L565", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_initpollingmodewithtag", + "target": "urma_handshake_urmaendpoint" + }, + { + "relation": "references", + "context": "call", + "confidence": "EXTRACTED", + "confidence_score": 1.0, + "source_file": "urma_helper.cpp", + "source_location": "L571", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_releasepollingmodewithtag", + "target": "urma_handshake_urmaendpoint" + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L39", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_buffer_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L42", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L41", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_jetty_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L40", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_recv_buffer_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L47", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_seg_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L50", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_seg_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L51", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_seg_token_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L48", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_seg_uasid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L49", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_seg_va", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L44", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_tp_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L43", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_parsedhello", + "target": "urma_handshake_parsedhello_uasid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L77", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_buffer_size", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L91", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_deserialize", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L80", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L75", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_hello_ver", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L76", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_impl_ver", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L79", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_jetty_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L74", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_msg_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L83", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_pad", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L78", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_recv_buffer_cnt", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L84", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_seg_eid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L87", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_seg_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L88", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_seg_token_id", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L85", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_seg_uasid", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L86", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_seg_va", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L90", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_serialize", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L82", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_tp_type", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L81", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_hellomessage", + "target": "urma_handshake_hellomessage_uasid", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_handshake.cpp", + "source_location": "L192", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2_sendlocalhello", + "target": "urma_handshake_hellomessage_serialize" + }, + { + "relation": "calls", + "context": "call", + "confidence": "INFERRED", + "confidence_score": 0.8, + "source_file": "urma_handshake.cpp", + "source_location": "L230", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2_sendlocalhello", + "target": "urma_handshake_hellomessage_serialize" + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L100", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshake", + "target": "urma_handshake_urmahandshake_protocolversion", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L110", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshake", + "target": "urma_handshake_urmahandshake_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L104", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshake", + "target": "urma_handshake_urmahandshake_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L99", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshake", + "target": "urma_handshake_urmahandshake_urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L114", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2", + "target": "urma_handshake_urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L135", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3", + "target": "urma_handshake_urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L124", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2", + "target": "urma_handshake_urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "inherits", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L145", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3", + "target": "urma_handshake_urmahandshake", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L121", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2", + "target": "urma_handshake_urmahandshakeclientv2_ep", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L117", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2", + "target": "urma_handshake_urmahandshakeclientv2_protocolversion", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L119", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2", + "target": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L118", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2", + "target": "urma_handshake_urmahandshakeclientv2_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L116", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv2", + "target": "urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L131", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2", + "target": "urma_handshake_urmahandshakeserverv2_ep", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L127", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2", + "target": "urma_handshake_urmahandshakeserverv2_protocolversion", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L129", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2", + "target": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L128", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2", + "target": "urma_handshake_urmahandshakeserverv2_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L126", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv2", + "target": "urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L142", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3", + "target": "urma_handshake_urmahandshakeclientv3_ep", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L138", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3", + "target": "urma_handshake_urmahandshakeclientv3_protocolversion", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L140", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3", + "target": "urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L139", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3", + "target": "urma_handshake_urmahandshakeclientv3_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L137", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeclientv3", + "target": "urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L152", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3", + "target": "urma_handshake_urmahandshakeserverv3_ep", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L148", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3", + "target": "urma_handshake_urmahandshakeserverv3_protocolversion", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L150", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3", + "target": "urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L149", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3", + "target": "urma_handshake_urmahandshakeserverv3_sendlocalhello", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_handshake.h", + "source_location": "L147", + "weight": 1.0, + "_origin": "ast", + "source": "urma_handshake_urmahandshakeserverv3", + "target": "urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L29", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "atomic", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L160", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_alignup", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L174", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_bufferpool", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L25", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_cpp_string", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L613", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_deregistermemoryforurma", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L313", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_getpoolsegfor", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L622", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_getseghandle", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L552", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_geturmacontext", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L553", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_geturmamaxsge", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L554", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_geturmarecvblocksize", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L544", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_globaldisableurma", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L324", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_globalrelease", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L372", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_globalurmainitializeimpl", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L521", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_globalurmainitializeordie", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L18", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_h_urma_helper", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L560", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_initpollingmodewithtag", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L259", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_initpool", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L540", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_isurmaavailable", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L155", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_pagesize", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L200", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_poolallocate", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L227", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_pooldeallocate", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L193", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_preferredshard", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L578", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_registermemoryforurma", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L570", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_releasepollingmodewithtag", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L186", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_shardfor", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L548", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_supportedbyurma", + "confidence_score": 1.0 + }, + { + "relation": "contains", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L139", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "urma_helper_userseg", + "confidence_score": 1.0 + }, + { + "relation": "imports", + "context": "import", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L32", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_cpp_urma_helper", + "target": "vector", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L140", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_userseg", + "target": "urma_helper_cpp_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L141", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_userseg", + "target": "urma_helper_userseg_base", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L142", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_userseg", + "target": "urma_helper_userseg_len", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L140", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_userseg", + "target": "urma_helper_userseg_tseg", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L313", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "urma_helper_getpoolsegfor", + "target": "urma_helper_cpp_urma_target_seg_t", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L264", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_initpool", + "target": "urma_helper_pagesize", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L265", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_initpool", + "target": "urma_helper_alignup", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L178", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_bufferpool", + "target": "atomic", + "confidence_score": 1.0 + }, + { + "relation": "method", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L180", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_bufferpool", + "target": "urma_helper_bufferpool_buffer_count", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L176", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_bufferpool", + "target": "urma_helper_bufferpool_free_lists", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L177", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_bufferpool", + "target": "urma_helper_bufferpool_in_use", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L175", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_bufferpool", + "target": "urma_helper_bufferpool_mutexes", + "confidence_score": 1.0 + }, + { + "relation": "defines", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L178", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_bufferpool", + "target": "urma_helper_bufferpool_outstanding", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L175", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_bufferpool", + "target": "urma_helper_cpp_mutex", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L176", + "weight": 1.0, + "context": "field", + "_origin": "ast", + "source": "urma_helper_bufferpool", + "target": "vector", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L514", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "urma_helper_bufferpool_buffer_count", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L261", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_initpool", + "target": "urma_helper_bufferpool_buffer_count", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L242", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_pooldeallocate", + "target": "urma_helper_shardfor", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L209", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_poolallocate", + "target": "urma_helper_preferredshard", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L485", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "urma_helper_initpool", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L529", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeordie", + "target": "urma_helper_globalrelease", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L414", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeimpl", + "target": "urma_helper_cpp_string", + "confidence_score": 1.0 + }, + { + "relation": "calls", + "context": "call", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L527", + "weight": 1.0, + "_origin": "ast", + "source": "urma_helper_globalurmainitializeordie", + "target": "urma_helper_globalurmainitializeimpl", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L548", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_helper_supportedbyurma", + "target": "urma_helper_cpp_string", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L552", + "weight": 1.0, + "context": "return_type", + "_origin": "ast", + "source": "urma_helper_geturmacontext", + "target": "urma_helper_cpp_urma_context_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L560", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_helper_initpollingmodewithtag", + "target": "urma_helper_cpp_bthread_tag_t", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L560", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_helper_initpollingmodewithtag", + "target": "urma_helper_cpp_function", + "confidence_score": 1.0 + }, + { + "relation": "references", + "confidence": "EXTRACTED", + "source_file": "urma_helper.cpp", + "source_location": "L570", + "weight": 1.0, + "context": "parameter_type", + "_origin": "ast", + "source": "urma_helper_releasepollingmodewithtag", + "target": "urma_helper_cpp_bthread_tag_t", + "confidence_score": 1.0 + } + ], + "hyperedges": [], + "built_at_commit": "170c03dafa7d8e4e625b158ec4069a9a58f28f64" +} \ No newline at end of file diff --git a/graphify-out/manifest.json b/graphify-out/manifest.json new file mode 100644 index 0000000000..3014a6540a --- /dev/null +++ b/graphify-out/manifest.json @@ -0,0 +1,52 @@ +{ + "mock_urma.cpp": { + "mtime": 1785291503.4057467, + "ast_hash": "807946403b95d9ffeba42b3f5ebfd7c7", + "semantic_hash": "807946403b95d9ffeba42b3f5ebfd7c7" + }, + "sdk/urma/urma_api.h": { + "mtime": 1785227626.4640763, + "ast_hash": "863fa78e87e6c2cf060e57aba182b5ec", + "semantic_hash": "863fa78e87e6c2cf060e57aba182b5ec" + }, + "sdk/urma/urma_opcode.h": { + "mtime": 1785226861.7041552, + "ast_hash": "4d3ccd0716c7d37af65185809ca9deba", + "semantic_hash": "4d3ccd0716c7d37af65185809ca9deba" + }, + "sdk/urma/urma_types.h": { + "mtime": 1785227626.5065477, + "ast_hash": "5670d4c6bf1dcfe06d470f713aba6ac0", + "semantic_hash": "5670d4c6bf1dcfe06d470f713aba6ac0" + }, + "urma_endpoint.cpp": { + "mtime": 1785309099.9902904, + "ast_hash": "cd2c96ab882dc8e8a535dc70add2ef81", + "semantic_hash": "cd2c96ab882dc8e8a535dc70add2ef81" + }, + "urma_endpoint.h": { + "mtime": 1785309036.5279553, + "ast_hash": "a6ac6cfe89074744f21ac1d0d3369077", + "semantic_hash": "a6ac6cfe89074744f21ac1d0d3369077" + }, + "urma_handshake.cpp": { + "mtime": 1785291857.3837256, + "ast_hash": "eb7077067c00151dbe2879894cf68e85", + "semantic_hash": "eb7077067c00151dbe2879894cf68e85" + }, + "urma_handshake.h": { + "mtime": 1785291144.2091112, + "ast_hash": "5ed41efa6c47b34afbeacf646d4c4752", + "semantic_hash": "5ed41efa6c47b34afbeacf646d4c4752" + }, + "urma_helper.cpp": { + "mtime": 1785307850.78223, + "ast_hash": "c50ea7e6c9e5a1585fe836d0ac6a3f46", + "semantic_hash": "c50ea7e6c9e5a1585fe836d0ac6a3f46" + }, + "urma_helper.h": { + "mtime": 1785290825.5598035, + "ast_hash": "f2c8cf5ed5743992b36e4be9e28750bf", + "semantic_hash": "f2c8cf5ed5743992b36e4be9e28750bf" + } +} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31.json new file mode 100644 index 0000000000..dc93d7be43 --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_opcode_h", "label": "urma_opcode.h", "file_type": "code", "source_file": "sdk/urma/urma_opcode.h", "source_location": "L1"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_opcode_h", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_opcode.h", "source_location": "L14", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422.json new file mode 100644 index 0000000000..ebff288857 --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "label": "urma_helper.h", "file_type": "code", "source_file": "urma_helper.h", "source_location": "L1"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "cstddef", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L21", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "cstdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "functional", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L24", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L32", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54.json new file mode 100644 index 0000000000..4bfad372ec --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "label": "urma_handshake.cpp", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "label": "HelloMessage::Serialize()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L72", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "label": "HelloMessage::Deserialize()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L91", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_validhello", "label": "ValidHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L127", "_callable": true}, {"id": "parsedhello", "label": "ParsedHello", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "label": "ReadBodyAndNegotiate()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L141", "_callable": true}, {"id": "urmaendpoint", "label": "UrmaEndpoint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "label": "DrainBytes()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L173", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "label": "UrmaHandshakeClientV2::SendLocalHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L187", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "label": "UrmaHandshakeClientV2::ReceiveAndParseRemoteHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L196", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "label": "UrmaHandshakeServerV2::ReceiveAndParseRemoteHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L210", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "label": "UrmaHandshakeServerV2::SendLocalHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L215", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "label": "UrmaHandshakeClientV3::SendLocalHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L240", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "label": "UrmaHandshakeClientV3::ReceiveAndParseRemoteHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L246", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "label": "UrmaHandshakeServerV3::ReceiveAndParseRemoteHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L258", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "label": "UrmaHandshakeServerV3::SendLocalHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L263", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createclienthandshake", "label": "CreateClientHandshake()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L274", "_callable": true}, {"id": "urmahandshake", "label": "UrmaHandshake", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "label": "CreateServerHandshakeByMagic()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L282", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L18", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "algorithm", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "cstring", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "limits", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L24", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "gflags", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L28", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "iobuf", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L29", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L30", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "sys_byteorder", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L33", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_endpoint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L34", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_helper", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L35", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L36", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_transport", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L37", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L72", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L91", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_validhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L127", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_validhello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L127", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L141", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "target": "urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L141", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L141", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L173", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "target": "urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L173", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L187", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L196", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L196", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L210", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L210", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L215", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L240", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L246", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L246", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L258", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L258", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L263", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createclienthandshake", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L274", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createclienthandshake", "target": "urmahandshake", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L274", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createclienthandshake", "target": "urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L274", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L282", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "target": "urmahandshake", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L282", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "target": "urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L282", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_validhello", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L163", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L166", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L207", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L212", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L74", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L75", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L76", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L77", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L78", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L79", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L80", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L81", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "memset", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L83", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L84", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L85", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet64", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L86", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet64", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L87", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L88", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L93", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L94", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L95", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L96", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L97", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L98", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L99", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L100", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L103", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L104", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost64", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L105", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost64", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L106", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L107", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L144", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "callee": "Deserialize", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L146", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L155", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L158", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L177", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "callee": "FillLocalHelloV2", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L189", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L191", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "callee": "Serialize", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L192", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "callee": "WriteToFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L193", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L200", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "callee": "memcmp", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L201", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "callee": "PushBackToReadBuf", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L204", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "FillLocalHelloV2", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L217", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "get", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L218", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "load", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L219", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L229", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "Serialize", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L230", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "WriteToFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L231", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "callee": "FillLocalHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L242", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "callee": "WriteHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L243", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L250", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "callee": "memcmp", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L251", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "callee": "PushBackToReadBuf", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L252", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "callee": "ReadAndParseHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L255", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "callee": "ReadAndParseHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L260", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "callee": "FillLocalHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L265", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "callee": "WriteHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L267", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "callee": "memcmp", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L284", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "callee": "memcmp", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L287", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp", "table": {"p": "ParsedHello", "m": "HelloMessage", "msg": "UrmaHello"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e.json new file mode 100644 index 0000000000..9e5c46ae91 --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "label": "urma_helper.cpp", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "label": "UserSeg", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L139", "_callable": true}, {"id": "urma_target_seg_t", "label": "urma_target_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_tseg", "label": "tseg", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L140"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_base", "label": "base", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L141"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_len", "label": "len", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L142"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pagesize", "label": "PageSize()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L155", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_alignup", "label": "AlignUp()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L160", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "label": "BufferPool", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L174", "_callable": true}, {"id": "mutex", "label": "Mutex", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_mutexes", "label": "mutexes", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L175"}, {"id": "vector", "label": "vector", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_free_lists", "label": "free_lists", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L176"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_in_use", "label": "in_use", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L177"}, {"id": "atomic", "label": "atomic", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_outstanding", "label": "outstanding", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L178"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "label": ".buffer_count()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L180", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_shardfor", "label": "ShardFor()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L186", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_preferredshard", "label": "PreferredShard()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L193", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "label": "PoolAllocate()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L200", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "label": "PoolDeallocate()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L227", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "label": "InitPool()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L259", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getpoolsegfor", "label": "GetPoolSegFor()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L313", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "label": "GlobalRelease()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L324", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "label": "GlobalUrmaInitializeImpl()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L372", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "label": "GlobalUrmaInitializeOrDie()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L521", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_isurmaavailable", "label": "IsUrmaAvailable()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L540", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globaldisableurma", "label": "GlobalDisableUrma()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L544", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_supportedbyurma", "label": "SupportedByUrma()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L548", "_callable": true}, {"id": "string", "label": "string", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmacontext", "label": "GetUrmaContext()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L552", "_callable": true}, {"id": "urma_context_t", "label": "urma_context_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmamaxsge", "label": "GetUrmaMaxSge()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L553", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmarecvblocksize", "label": "GetUrmaRecvBlockSize()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L554", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "label": "InitPollingModeWithTag()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L560", "_callable": true}, {"id": "bthread_tag_t", "label": "bthread_tag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "function", "label": "function", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_releasepollingmodewithtag", "label": "ReleasePollingModeWithTag()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L570", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "label": "RegisterMemoryForUrma()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L578", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "label": "DeregisterMemoryForUrma()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L613", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "label": "GetSegHandle()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L622", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "urma_helper", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L18", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L24", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L25", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "atomic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L29", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "new", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L30", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "utility", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "vector", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L32", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "gflags", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L34", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L36", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "flat_map", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L37", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "iobuf", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L39", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "macros", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L40", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "scoped_lock", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L41", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "lock", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L42", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L44", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L45", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "urma_endpoint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L46", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L139", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L140", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_tseg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L140", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_base", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L141", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L142", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pagesize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L155", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_alignup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L160", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L174", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "mutex", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L175", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_mutexes", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L175", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "vector", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L176", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_free_lists", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L176", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "vector", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L177", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_in_use", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L177", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "atomic", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L178", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_outstanding", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L178", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L180", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_shardfor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L186", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_preferredshard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L193", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L200", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L227", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L259", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getpoolsegfor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L313", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getpoolsegfor", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L313", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L324", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L372", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L521", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_isurmaavailable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L540", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globaldisableurma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L544", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_supportedbyurma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L548", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_supportedbyurma", "target": "string", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L548", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmacontext", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L552", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmacontext", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L552", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmamaxsge", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L553", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmarecvblocksize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L554", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "target": "bthread_tag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_releasepollingmodewithtag", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L570", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_releasepollingmodewithtag", "target": "bthread_tag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L570", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L578", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L613", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L622", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "cstdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L653", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L655", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L660", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_preferredshard", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L209", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_shardfor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L242", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L261", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pagesize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L264", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_alignup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L265", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "target": "string", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L414", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L485", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L514", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L527", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L529", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pagesize", "callee": "sysconf", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L156", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "callee": "size", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L181", "receiver": "in_use", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_preferredshard", "callee": "pthread_self", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L196", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L201", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "g_mem_alloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L202", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "malloc", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L202", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "g_mem_alloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L207", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "malloc", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L207", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L212", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "empty", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L214", "receiver": "fl", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "back", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L215", "receiver": "fl", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "pop_back", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L216", "receiver": "fl", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "size", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L219", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L220", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L223", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "g_mem_alloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L224", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "malloc", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L224", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L228", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "g_mem_dealloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L229", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "free", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L230", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "g_mem_dealloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L238", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "free", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L239", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L243", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "size", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L245", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L247", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "push_back", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L252", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "load", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L253", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "fetch_sub", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L254", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "mmap", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L267", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "PLOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L270", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "urma_register_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L290", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "PLOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L292", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "munmap", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L293", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "assign", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L297", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "push_back", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L300", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L303", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L325", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "SetDefaultBlockSize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L335", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "GlobalRelease", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L338", "receiver": "UrmaEndpoint", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "urma_unregister_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L340", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "munmap", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L344", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "urma_delete_context", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L355", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "urma_uninit", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L359", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L361", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L373", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L374", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L381", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_init", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L387", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L390", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L398", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_get_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L405", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L407", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L408", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "empty", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L413", "receiver": "FLAGS_urma_device", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L420", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L421", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_query_device", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L427", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L428", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L429", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_get_eid_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L434", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L436", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_eid_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L437", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L438", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_create_context", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L442", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_eid_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L443", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L444", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L447", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L457", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "init", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L471", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L472", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "assign", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L481", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "reserve", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L483", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L486", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "GetDefaultBlockSize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L495", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "SetDefaultBlockSize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L498", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "GlobalInitialize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L500", "receiver": "UrmaEndpoint", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L501", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L505", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L511", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "load", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L523", "receiver": "g_init_once", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "compare_exchange_strong", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L524", "receiver": "g_init_once", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L526", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L528", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L531", "receiver": "g_init_once", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "load", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L534", "receiver": "g_init_once", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_isurmaavailable", "callee": "load", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L541", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globaldisableurma", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L545", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L564", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "PollingModeInitialize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L565", "receiver": "UrmaEndpoint", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "move", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L566", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "move", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L566", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "move", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L567", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_releasepollingmodewithtag", "callee": "PollingModeRelease", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L571", "receiver": "UrmaEndpoint", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L579", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "urma_register_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L595", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "PLOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L597", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L600", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "insert", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L605", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L606", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "urma_unregister_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L607", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L614", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L615", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "seek", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L616", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "urma_unregister_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L618", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "erase", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L619", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L633", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "callee": "begin", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L635", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "callee": "end", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L635", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L661", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "exit", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L662", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp", "table": {"us": "UserSeg"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0.json new file mode 100644 index 0000000000..5dc5ce90e5 --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "label": "mock_urma.cpp", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "label": "JfcState", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L54", "_callable": true}, {"id": "mutex", "label": "mutex", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_mutex", "label": "mutex", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L55"}, {"id": "deque", "label": "deque", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_cr_t", "label": "urma_cr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_completions", "label": "completions", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L56"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_event_pending", "label": "event_pending", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L57"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "label": "PendingRecv", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L60", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_addr", "label": "addr", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L61"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_len", "label": "len", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L62"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L63"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "label": "PushCompletion()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L83", "_callable": true}, {"id": "urma_jfc_t", "label": "urma_jfc_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_init", "label": "urma_init()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L122", "_callable": true}, {"id": "urma_status_t", "label": "urma_status_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_init_attr_t", "label": "urma_init_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "label": "urma_uninit()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L131", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "label": "urma_get_device_list()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L155", "_callable": true}, {"id": "urma_device_t", "label": "urma_device_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "label": "urma_get_device_by_name()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L195", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_device_list", "label": "urma_free_device_list()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L233", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "label": "urma_query_device()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L239", "_callable": true}, {"id": "urma_device_attr_t", "label": "urma_device_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "label": "urma_get_eid_list()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L252", "_callable": true}, {"id": "urma_eid_info_t", "label": "urma_eid_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_eid_list", "label": "urma_free_eid_list()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L262", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_context", "label": "urma_create_context()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L268", "_callable": true}, {"id": "urma_context_t", "label": "urma_context_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "label": "urma_delete_context()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L280", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "label": "urma_create_jfce()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L290", "_callable": true}, {"id": "urma_jfce_t", "label": "urma_jfce_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "label": "urma_delete_jfce()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L308", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "label": "urma_create_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L319", "_callable": true}, {"id": "urma_jfc_cfg_t", "label": "urma_jfc_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "label": "urma_delete_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L337", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "label": "urma_create_jfr()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L348", "_callable": true}, {"id": "urma_jfr_t", "label": "urma_jfr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_jfr_cfg_t", "label": "urma_jfr_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "label": "urma_delete_jfr()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L364", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "label": "urma_register_seg()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L376", "_callable": true}, {"id": "urma_target_seg_t", "label": "urma_target_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_seg_cfg_t", "label": "urma_seg_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "label": "urma_unregister_seg()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L392", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "label": "urma_import_seg()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L402", "_callable": true}, {"id": "urma_seg_t", "label": "urma_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_token_t", "label": "urma_token_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_import_seg_flag_t", "label": "urma_import_seg_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "label": "urma_unimport_seg()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L417", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "label": "urma_get_async_event()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L427", "_callable": true}, {"id": "urma_async_event_t", "label": "urma_async_event_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_async_event", "label": "urma_ack_async_event()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L439", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "label": "urma_create_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L441", "_callable": true}, {"id": "urma_jetty_t", "label": "urma_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_jetty_cfg_t", "label": "urma_jetty_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "label": "urma_delete_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L458", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "label": "urma_unbind_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L469", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "label": "urma_import_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L478", "_callable": true}, {"id": "urma_target_jetty_t", "label": "urma_target_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_rjetty_t", "label": "urma_rjetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "label": "urma_unimport_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L493", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "label": "urma_bind_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L503", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "label": "urma_modify_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L514", "_callable": true}, {"id": "urma_jetty_attr_t", "label": "urma_jetty_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "label": "urma_post_jetty_send_wr()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L522", "_callable": true}, {"id": "urma_jfs_wr_t", "label": "urma_jfs_wr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "label": "urma_post_jfr_wr()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L605", "_callable": true}, {"id": "urma_jfr_wr_t", "label": "urma_jfr_wr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "label": "urma_poll_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L627", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_rearm_jfc", "label": "urma_rearm_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L647", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "label": "urma_wait_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L651", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_jfc", "label": "urma_ack_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L674", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "algorithm", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L40", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "atomic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L41", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "cerrno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L42", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "cstring", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L43", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "deque", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L44", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "map", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L45", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "mutex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L46", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "shared_mutex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L47", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "eventfd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L48", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L49", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "vector", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L50", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L54", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "mutex", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L55", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L55", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "deque", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L56", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "urma_cr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L56", "weight": 1.0, "context": "generic_arg"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_completions", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L56", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_event_pending", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L57", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L60", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L61", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L62", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L63", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L83", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L83", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L83", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "target": "urma_cr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L83", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_init", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L122", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_init", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L122", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_init", "target": "urma_init_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L122", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L131", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L131", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L155", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L155", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L195", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L195", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_device_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L233", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_device_list", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L233", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L239", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L239", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L239", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "target": "urma_device_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L239", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L252", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "target": "urma_eid_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L252", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L252", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_eid_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L262", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_eid_list", "target": "urma_eid_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L262", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_context", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L268", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_context", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L268", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_context", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L268", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L280", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L280", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L280", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L290", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L290", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L290", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L308", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L308", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L308", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L319", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L319", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L319", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "target": "urma_jfc_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L319", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L337", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L337", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L337", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L348", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "target": "urma_jfr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L348", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L348", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "target": "urma_jfr_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L348", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L364", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L364", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "target": "urma_jfr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L364", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L376", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L376", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L376", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "target": "urma_seg_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L376", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L392", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L392", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L392", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_import_seg_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L417", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L417", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L417", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L427", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L427", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L427", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "target": "urma_async_event_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L427", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_async_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L439", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_async_event", "target": "urma_async_event_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L439", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L441", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L441", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L441", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "target": "urma_jetty_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L441", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L458", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L458", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L458", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L469", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L469", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L469", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "target": "urma_rjetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L493", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L493", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L493", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L503", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L503", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L503", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L503", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L514", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L514", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L514", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "target": "urma_jetty_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L514", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "urma_jfs_wr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "urma_jfs_wr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "target": "urma_jfr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "target": "urma_jfr_wr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "target": "urma_jfr_wr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L627", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L627", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "target": "urma_cr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L627", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_rearm_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L647", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_rearm_jfc", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L647", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_rearm_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L647", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L651", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L651", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L651", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L674", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L674", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L543", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "callee": "push_back", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L88", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "callee": "write", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L97", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L137", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L138", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L139", "receiver": "jfce_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L143", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L144", "receiver": "jfr_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L145", "receiver": "jfr_jfc_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L146", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L147", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L148", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L149", "receiver": "jetty_id_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L150", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "store", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L151", "receiver": "next_jetty_id", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L162", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L163", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L164", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L165", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L177", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "strcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L179", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "strcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L180", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "push_back", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L184", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L186", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L187", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L188", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L201", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "strcmp", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L203", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L215", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "strcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L217", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "strcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L218", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "push_back", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L222", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "strcmp", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L225", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L229", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "callee": "memcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L248", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "callee": "memcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L258", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L282", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L282", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L285", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L292", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L292", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "callee": "eventfd", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L299", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L310", "receiver": "jfce_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L310", "receiver": "jfce_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L313", "receiver": "jfce_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "callee": "close", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L314", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L321", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L321", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "callee": "memset", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L325", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L339", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L339", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L343", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L350", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L350", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L366", "receiver": "jfr_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L366", "receiver": "jfr_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L369", "receiver": "jfr_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L370", "receiver": "jfr_jfc_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L371", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L378", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L378", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "callee": "memset", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L382", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L394", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L394", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L397", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L407", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L407", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L419", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L419", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L422", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L433", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L433", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L443", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L443", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "callee": "memset", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L447", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "callee": "fetch_add", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L450", "receiver": "next_jetty_id", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L460", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L460", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L463", "receiver": "jetty_id_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L464", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L471", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L471", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L483", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L483", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L495", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L495", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L498", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L506", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L506", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L507", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L507", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L516", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L516", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L525", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L527", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L528", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L529", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L530", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "unlock", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L535", "receiver": "read_lock", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L552", "receiver": "jetty_id_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L553", "receiver": "jetty_id_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L558", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L559", "receiver": "jfr_jfc_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L560", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L560", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L561", "receiver": "jfr_jfc_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "front", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L564", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "pop_front", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L565", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "memcpy", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L574", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L582", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L583", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L608", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L609", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "callee": "push_back", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L618", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L631", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L632", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L637", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "front", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L638", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "pop_front", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L639", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L641", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "callee": "read", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L658", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp", "table": {"remote_state": "JfcState", "recv": "PendingRecv", "local_state": "JfcState", "state": "JfcState"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca.json new file mode 100644 index 0000000000..9ccaeb8d17 --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "label": "urma_types.h", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr", "label": "urma_init_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L85", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr_token", "label": "token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L86"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L87"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ref", "label": "urma_ref", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L152", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "label": "urma_port_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L160", "_callable": true}, {"id": "urma_mtu_t", "label": "urma_mtu_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_max_mtu", "label": "max_mtu", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L161"}, {"id": "urma_port_state_t", "label": "urma_port_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L162"}, {"id": "urma_link_width_t", "label": "urma_link_width_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_width", "label": "active_width", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L163"}, {"id": "urma_speed_t", "label": "urma_speed_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_speed", "label": "active_speed", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L164"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_mtu", "label": "active_mtu", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L165"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info", "label": "urma_sl_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L178", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info_sl", "label": "SL", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L179"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info_tp_type", "label": "tp_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L180"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "label": "urma_device_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L254", "_callable": true}, {"id": "urma_device_feature_t", "label": "urma_device_feature_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_feature", "label": "feature", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L255"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfc", "label": "max_jfc", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L256"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs", "label": "max_jfs", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L257"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr", "label": "max_jfr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L258"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty", "label": "max_jetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L259"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty_grp", "label": "max_jetty_grp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L260"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty_in_jetty_grp", "label": "max_jetty_in_jetty_grp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L261"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfc_depth", "label": "max_jfc_depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L262"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_depth", "label": "max_jfs_depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L263"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr_depth", "label": "max_jfr_depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L264"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_inline_len", "label": "max_jfs_inline_len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L265"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_sge", "label": "max_jfs_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L266"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_rsge", "label": "max_jfs_rsge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L267"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr_sge", "label": "max_jfr_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L268"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_msg_size", "label": "max_msg_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L269"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_read_size", "label": "max_read_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L270"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_write_size", "label": "max_write_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L271"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_cas_size", "label": "max_cas_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L272"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_swap_size", "label": "max_swap_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L273"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_add_size", "label": "max_fetch_and_add_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L274"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_sub_size", "label": "max_fetch_and_sub_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L275"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_and_size", "label": "max_fetch_and_and_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L276"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_or_size", "label": "max_fetch_and_or_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L277"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_xor_size", "label": "max_fetch_and_xor_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L278"}, {"id": "urma_atomic_feature_t", "label": "urma_atomic_feature_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_atomic_feat", "label": "atomic_feat", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L279"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L280"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_congestion_ctrl_alg", "label": "congestion_ctrl_alg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L281"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_ceq_cnt", "label": "ceq_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L282"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_tp_in_tpg", "label": "max_tp_in_tpg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L283"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_eid_cnt", "label": "max_eid_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L284"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_page_size_cap", "label": "page_size_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L285"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_oor_cnt", "label": "max_oor_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L286"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_mn", "label": "mn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L287"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_netaddr_cnt", "label": "max_netaddr_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L288"}, {"id": "urma_order_type_cap_t", "label": "urma_order_type_cap_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rm_order_cap", "label": "rm_order_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L289"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rc_order_cap", "label": "rc_order_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L290"}, {"id": "urma_tp_type_cap_t", "label": "urma_tp_type_cap_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rm_tp_cap", "label": "rm_tp_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L291"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rc_tp_cap", "label": "rc_tp_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L292"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_um_tp_cap", "label": "um_tp_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L293"}, {"id": "urma_tp_feature_t", "label": "urma_tp_feature_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_tp_feature", "label": "tp_feature", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L294"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_priority_info", "label": "priority_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L295"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid", "label": "urma_guid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L298", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid_raw", "label": "raw", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L299"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "label": "urma_device_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L302", "_callable": true}, {"id": "urma_guid_t", "label": "urma_guid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_guid", "label": "guid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L303"}, {"id": "urma_device_cap_t", "label": "urma_device_cap_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_dev_cap", "label": "dev_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L304"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_port_cnt", "label": "port_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L305"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_port_attr", "label": "port_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L306"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_min", "label": "reserved_jetty_id_min", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L307"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_max", "label": "reserved_jetty_id_max", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L308"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token", "label": "urma_token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L312", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_token", "label": "token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L313"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sysfs_dev", "label": "urma_sysfs_dev", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L316", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ops", "label": "urma_ops", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L318", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_provider_ops", "label": "urma_provider_ops", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L319", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "label": "urma_cc_entry", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L358", "_callable": true}, {"id": "urma_tp_cc_alg_t", "label": "urma_tp_cc_alg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_alg", "label": "alg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L359"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_cc_pattern_idx", "label": "cc_pattern_idx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L360"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_cc_priority", "label": "cc_priority", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L361"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "label": "urma_device", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L364", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L365"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_path", "label": "path", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L367"}, {"id": "urma_transport_type_t", "label": "urma_transport_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_type", "label": "type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L368"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_ops", "label": "ops", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L369"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_sysfs_dev", "label": "sysfs_dev", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L370"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "label": "urma_context", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L383", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_dev", "label": "dev", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L384"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_ops", "label": "ops", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L385"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_dev_fd", "label": "dev_fd", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L386"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_async_fd", "label": "async_fd", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L387"}, {"id": "pthread_mutex_t", "label": "pthread_mutex_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_mutex", "label": "mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L388"}, {"id": "urma_eid_t", "label": "urma_eid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L389"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_eid_index", "label": "eid_index", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L390"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L391"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_ref", "label": "ref", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L392"}, {"id": "urma_context_aggr_mode_t", "label": "urma_context_aggr_mode_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_aggr_mode", "label": "aggr_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L393"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "label": "urma_eid_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L396", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L397"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info_eid_index", "label": "eid_index", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L398"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg", "label": "urma_jfce_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L401", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg_depth", "label": "depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L402"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L403"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "label": "urma_jfce", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L406", "_callable": true}, {"id": "urma_context_t", "label": "urma_context_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L407"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_fd", "label": "fd", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L408"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_ref", "label": "ref", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L409"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "label": "urma_jfc_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L423", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_depth", "label": "depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L424"}, {"id": "urma_jfc_flag_t", "label": "urma_jfc_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L425"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_ceqn", "label": "ceqn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L426"}, {"id": "urma_jfce_t", "label": "urma_jfce_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_jfce", "label": "jfce", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L428"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L429"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "label": "urma_jfc_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L437", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_mask", "label": "mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L438"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_moderate_count", "label": "moderate_count", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L439"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_moderate_period", "label": "moderate_period", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L440"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "label": "urma_jetty_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L443", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L444"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L445"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L446"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "label": "urma_jfc_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L467", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_jfc_opt_mask", "label": "jfc_opt_mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L468"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_is_actived", "label": "is_actived", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L470"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_cqe_base_addr", "label": "urma_jfc_cqe_base_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L471"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_id", "label": "urma_jfc_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L472"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_addr", "label": "urma_jfc_db_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L473"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_status", "label": "urma_jfc_db_status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L474"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi", "label": "urma_jfc_pi", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L475"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi_type", "label": "urma_jfc_pi_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L476"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_ci", "label": "urma_jfc_ci", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L477"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L478"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "label": "urma_jfc", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L481", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L482"}, {"id": "urma_jfc_id_t", "label": "urma_jfc_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_jfc_id", "label": "jfc_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L483"}, {"id": "urma_jfc_cfg_t", "label": "urma_jfc_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_jfc_cfg", "label": "jfc_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L484"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L485"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L486"}, {"id": "pthread_cond_t", "label": "pthread_cond_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L487"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_comp_events_acked", "label": "comp_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L488"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L489"}, {"id": "urma_jfc_opt_t", "label": "urma_jfc_opt_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_urma_jfc_opt", "label": "urma_jfc_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L490"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "label": "urma_jfs_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L534", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_jfs_opt_mask", "label": "jfs_opt_mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L535"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_is_actived", "label": "is_actived", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L537"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_sqe_base_addr", "label": "urma_jfs_sqe_base_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L538"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_id", "label": "urma_jfs_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L539"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_addr", "label": "urma_jfs_db_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L540"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_status", "label": "urma_jfs_db_status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L541"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi", "label": "urma_jfs_pi", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L542"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi_type", "label": "urma_jfs_pi_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L543"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_ci", "label": "urma_jfs_ci", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L544"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L545"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "label": "urma_jfs_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L548", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_depth", "label": "depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L549"}, {"id": "urma_jfs_flag_t", "label": "urma_jfs_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L550"}, {"id": "urma_transport_mode_t", "label": "urma_transport_mode_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L551"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_priority", "label": "priority", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L552"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_sge", "label": "max_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L554"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_rsge", "label": "max_rsge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L555"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_inline_data", "label": "max_inline_data", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L556"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_rnr_retry", "label": "rnr_retry", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L558"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_err_timeout", "label": "err_timeout", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L562"}, {"id": "urma_jfc_t", "label": "urma_jfc_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_jfc", "label": "jfc", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L564"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L565"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "label": "urma_jfs", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L568", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L569"}, {"id": "urma_jfs_id_t", "label": "urma_jfs_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_jfs_id", "label": "jfs_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L570"}, {"id": "urma_jfs_cfg_t", "label": "urma_jfs_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_jfs_cfg", "label": "jfs_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L571"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L572"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L573"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L574"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L575"}, {"id": "urma_jfs_opt_t", "label": "urma_jfs_opt_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_urma_jfs_opt", "label": "urma_jfs_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L576"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "label": "urma_jfs_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L585", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr_mask", "label": "mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L586"}, {"id": "urma_jfs_state_t", "label": "urma_jfs_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L587"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "label": "urma_jfr_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L625", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_jfr_opt_mask", "label": "jfr_opt_mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L626"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_is_actived", "label": "is_actived", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L628"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_rqe_base_addr", "label": "urma_jfr_rqe_base_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L629"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_id", "label": "urma_jfr_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L630"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_addr", "label": "urma_jfr_db_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L631"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_status", "label": "urma_jfr_db_status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L632"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi", "label": "urma_jfr_pi", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L633"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi_type", "label": "urma_jfr_pi_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L634"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_ci", "label": "urma_jfr_ci", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L635"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L636"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "label": "urma_jfr_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L639", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L640"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_depth", "label": "depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L642"}, {"id": "urma_jfr_flag_t", "label": "urma_jfr_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L643"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L644"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_max_sge", "label": "max_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L645"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_min_rnr_timer", "label": "min_rnr_timer", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L646"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_jfc", "label": "jfc", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L648"}, {"id": "urma_token_t", "label": "urma_token_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L649"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L650"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "label": "urma_jfr_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L658", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_mask", "label": "mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L659"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_rx_threshold", "label": "rx_threshold", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L660"}, {"id": "urma_jfr_state_t", "label": "urma_jfr_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L661"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "label": "urma_jfr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L664", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L665"}, {"id": "urma_jfr_id_t", "label": "urma_jfr_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_jfr_id", "label": "jfr_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L666"}, {"id": "urma_jfr_cfg_t", "label": "urma_jfr_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_jfr_cfg", "label": "jfr_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L667"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L668"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L669"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L670"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L671"}, {"id": "urma_jfr_opt_t", "label": "urma_jfr_opt_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_urma_jfr_opt", "label": "urma_jfr_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L672"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "label": "urma_rjfr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L702", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_jfr_id", "label": "jfr_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L703"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L704"}, {"id": "urma_import_jetty_flag_t", "label": "urma_import_jetty_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L705"}, {"id": "urma_tp_type_t", "label": "urma_tp_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_tp_type", "label": "tp_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L706"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp", "label": "urma_tp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L709", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_tpn", "label": "tpn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L710"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "label": "urma_jetty_grp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L724", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "label": "urma_jetty_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L726", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L727"}, {"id": "urma_jetty_flag_t", "label": "urma_jetty_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L728"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_jfs_cfg", "label": "jfs_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L731"}, {"id": "urma_jetty_grp_t", "label": "urma_jetty_grp_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_jetty_grp", "label": "jetty_grp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L741"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L742"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "label": "urma_rjetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L756", "_callable": true}, {"id": "urma_jetty_id_t", "label": "urma_jetty_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_jetty_id", "label": "jetty_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L757"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L758"}, {"id": "urma_jetty_grp_policy_t", "label": "urma_jetty_grp_policy_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_policy", "label": "policy", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L759"}, {"id": "urma_target_type_t", "label": "urma_target_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_type", "label": "type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L760"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L761"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_tp_type", "label": "tp_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L762"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "label": "urma_target_jetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L765", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L766"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L767"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L768"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L769"}, {"id": "urma_tp_t", "label": "urma_tp_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_tp", "label": "tp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L770"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_type", "label": "type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L771"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L772"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_policy", "label": "policy", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L773"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_tp_type", "label": "tp_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L774"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "label": "urma_jetty_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L782", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_mask", "label": "mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L783"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_rx_threshold", "label": "rx_threshold", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L784"}, {"id": "urma_jetty_state_t", "label": "urma_jetty_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L785"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "label": "urma_jetty_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L788", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_is_actived", "label": "is_actived", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L789"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_jfs_opt", "label": "jfs_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L790"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L791"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "label": "urma_jetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L794", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L795"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_jetty_id", "label": "jetty_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L796"}, {"id": "urma_target_jetty_t", "label": "urma_target_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_remote_jetty", "label": "remote_jetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L797"}, {"id": "urma_jetty_cfg_t", "label": "urma_jetty_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_jetty_cfg", "label": "jetty_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L799"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L800"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L801"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L802"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L803"}, {"id": "urma_jetty_opt_t", "label": "urma_jetty_opt_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_urma_jetty_opt", "label": "urma_jetty_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L804"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "label": "urma_notifier", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L807", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L808"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_fd", "label": "fd", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L809"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_incomplete_tjetty_list", "label": "incomplete_tjetty_list", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L810"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "label": "urma_notify", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L818", "_callable": true}, {"id": "urma_notify_type_t", "label": "urma_notify_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_type", "label": "type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L819"}, {"id": "urma_status_t", "label": "urma_status_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_status", "label": "status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L820"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L821"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "label": "urma_jetty_grp_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L840", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L841"}, {"id": "urma_jetty_grp_flag_t", "label": "urma_jetty_grp_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L842"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L843"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L844"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_policy", "label": "policy", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L846"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L847"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L851"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_grp_id", "label": "jetty_grp_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L852"}, {"id": "urma_jetty_grp_cfg_t", "label": "urma_jetty_grp_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_cnt", "label": "jetty_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L854"}, {"id": "urma_jetty_t", "label": "urma_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_list", "label": "jetty_list", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L855"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_list_mutex", "label": "list_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L856"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L857"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L858"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L859"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L860"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "label": "urma_ubva", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L864", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L865"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L866"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_va", "label": "va", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L867"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "label": "urma_token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L946", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L947"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L948"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L949"}, {"id": "urma_ref_t", "label": "urma_ref_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_ref", "label": "ref", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L950"}, {"id": "urma_token_id_flag_t", "label": "urma_token_id_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L951"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "label": "urma_seg_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L954", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_va", "label": "va", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L955"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L956"}, {"id": "urma_token_id_t", "label": "urma_token_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L957"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L958"}, {"id": "urma_reg_seg_flag_t", "label": "urma_reg_seg_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L959"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L960"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_iova", "label": "iova", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L961"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "label": "urma_seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L964", "_callable": true}, {"id": "urma_ubva_t", "label": "urma_ubva_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_ubva", "label": "ubva", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L965"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L966"}, {"id": "urma_seg_attr_t", "label": "urma_seg_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_attr", "label": "attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L967"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L968"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "label": "urma_target_seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L971", "_callable": true}, {"id": "urma_seg_t", "label": "urma_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_seg", "label": "seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L972"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L973"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_mva", "label": "mva", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L974"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L975"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L976"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L977"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "label": "urma_user_ctl_in", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L980", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_addr", "label": "addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L981"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L982"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_opcode", "label": "opcode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L987"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "label": "urma_user_ctl_out", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L990", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_addr", "label": "addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L991"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L992"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L993"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "label": "urma_user_target_seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L996", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_attr", "label": "attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L997"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L998"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L999"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "label": "urma_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1002", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_addr", "label": "addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1003"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1004"}, {"id": "urma_target_seg_t", "label": "urma_target_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_tseg", "label": "tseg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1010"}, {"id": "urma_user_tseg_t", "label": "urma_user_tseg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_user_tseg", "label": "user_tseg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1011"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "label": "urma_sg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1014", "_callable": true}, {"id": "urma_sge_t", "label": "urma_sge_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg_sge", "label": "sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1015"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg_num_sge", "label": "num_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1016"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "label": "urma_rw_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1053", "_callable": true}, {"id": "urma_sg_t", "label": "urma_sg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1054"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_dst", "label": "dst", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1056"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_target_hint", "label": "target_hint", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1058"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_notify_data", "label": "notify_data", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1059"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "label": "urma_send_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1062", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1063"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_target_hint", "label": "target_hint", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1064"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_imm_data", "label": "imm_data", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1065"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_tseg", "label": "tseg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1066"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "label": "urma_cas_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1069", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr_dst", "label": "dst", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1070"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1071"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "label": "urma_faa_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1082", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr_dst", "label": "dst", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1083"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1084"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "label": "urma_jfs_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1091", "_callable": true}, {"id": "urma_opcode_t", "label": "urma_opcode_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_opcode", "label": "opcode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1092"}, {"id": "urma_jfs_wr_flag_t", "label": "urma_jfs_wr_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1093"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_tjetty", "label": "tjetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1094"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1095"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_next", "label": "next", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1102"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "label": "urma_jfr_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1105", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1106"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1107"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_next", "label": "next", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1108"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "label": "urma_cr_token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1122", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1123"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1124"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "label": "urma_cr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1127", "_callable": true}, {"id": "urma_cr_status_t", "label": "urma_cr_status_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_status", "label": "status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1128"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1129"}, {"id": "urma_cr_opcode_t", "label": "urma_cr_opcode_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_opcode", "label": "opcode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1130"}, {"id": "urma_cr_flag_t", "label": "urma_cr_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1131"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_completion_len", "label": "completion_len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1132"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_local_id", "label": "local_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1134"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_remote_id", "label": "remote_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1135"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_tpn", "label": "tpn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1141"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_user_data", "label": "user_data", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1142"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "label": "urma_async_event", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1145", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1147"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_element", "label": "element", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1156"}, {"id": "urma_async_event_type_t", "label": "urma_async_event_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_event_type", "label": "event_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1157"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_priv", "label": "priv", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1158"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "label": "urma_ur", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1184", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1185"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_size", "label": "size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1186"}, {"id": "urma_ur_attr_t", "label": "urma_ur_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_attr", "label": "attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1187"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_token", "label": "token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1188"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1189"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "label": "urma_target_ur", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1193", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1194"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_size", "label": "size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1195"}, {"id": "urma_import_ur_flag_t", "label": "urma_import_ur_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1196"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_tseg_list", "label": "tseg_list", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1197"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_cnt", "label": "cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1198"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "label": "urma_seg_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1201", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info_seg", "label": "seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1202"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info_idx_in_ur", "label": "idx_in_ur", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1203"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "label": "urma_ur_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1207", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1208"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_size", "label": "size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1209"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_attr", "label": "attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1210"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_cnt", "label": "cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1211"}, {"id": "urma_seg_info_t", "label": "urma_seg_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_seg_list", "label": "seg_list", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1212"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "label": "urma_jfr_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1215", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1216"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1217"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1218"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1219"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "label": "urma_tp_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1238", "_callable": true}, {"id": "urma_tp_cfg_flag_t", "label": "urma_tp_cfg_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1239"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1241"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_retry_num", "label": "retry_num", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1242"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_retry_factor", "label": "retry_factor", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1243"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_ack_timeout", "label": "ack_timeout", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1244"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_dscp", "label": "dscp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1245"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_oor_cnt", "label": "oor_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1246"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "label": "urma_net_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1295", "_callable": true}, {"id": "sa_family_t", "label": "sa_family_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_sin_family", "label": "sin_family", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1296"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_vlan", "label": "vlan", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1301"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_mac", "label": "mac", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1302"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_prefix_len", "label": "prefix_len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1303"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "label": "urma_net_addr_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1306", "_callable": true}, {"id": "urma_net_addr_t", "label": "urma_net_addr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info_netaddr", "label": "netaddr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1307"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info_index", "label": "index", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1308"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "label": "urma_tp_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1311", "_callable": true}, {"id": "urma_tp_mod_flag_t", "label": "urma_tp_mod_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1312"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_tpn", "label": "peer_tpn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1313"}, {"id": "urma_tp_state_t", "label": "urma_tp_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1314"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_tx_psn", "label": "tx_psn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1315"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_rx_psn", "label": "rx_psn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1316"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_mtu", "label": "mtu", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1317"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_cc_pattern_idx", "label": "cc_pattern_idx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1318"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_oos_cnt", "label": "oos_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1319"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_local_net_addr_idx", "label": "local_net_addr_idx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1320"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_net_addr", "label": "peer_net_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1321"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_data_udp_start", "label": "data_udp_start", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1322"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_ack_udp_start", "label": "ack_udp_start", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1323"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_udp_range", "label": "udp_range", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1324"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_hop_limit", "label": "hop_limit", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1325"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_flow_label", "label": "flow_label", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1326"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_port_id", "label": "port_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1327"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_mn", "label": "mn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1328"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_trans_type", "label": "peer_trans_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1329"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "label": "urma_get_tp_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1347", "_callable": true}, {"id": "urma_get_tp_cfg_flag_t", "label": "urma_get_tp_cfg_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1348"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1349"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_local_eid", "label": "local_eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1350"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_peer_eid", "label": "peer_eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1351"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info", "label": "urma_tp_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1354", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info_tp_handle", "label": "tp_handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1355"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "label": "urma_active_tp_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1358", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_tx_psn", "label": "tx_psn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1359"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_rx_psn", "label": "rx_psn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1360"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1361"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "label": "urma_active_tp_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1364", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tp_handle", "label": "tp_handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1365"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_peer_tp_handle", "label": "peer_tp_handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1366"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tag", "label": "tag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1367"}, {"id": "urma_active_tp_attr_t", "label": "urma_active_tp_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tp_attr", "label": "tp_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1368"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "label": "urma_tp_attr_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1376", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_retry_times_init", "label": "retry_times_init", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1377"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_at", "label": "at", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1378"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sip", "label": "sip", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1379"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dip", "label": "dip", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1380"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sma", "label": "sma", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1381"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dma", "label": "dma", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1382"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_vlan_id", "label": "vlan_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1383"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_vlan_en", "label": "vlan_en", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1384"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dscp", "label": "dscp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1385"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_at_times", "label": "at_times", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1386"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sl", "label": "sl", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1387"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_ttl", "label": "ttl", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1388"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_ack_udp_srcport", "label": "ack_udp_srcport", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1389"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_data_udp_srcport", "label": "data_udp_srcport", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1390"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_udp_srcport_range", "label": "udp_srcport_range", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1391"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_spray_en", "label": "spray_en", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1392"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_udp_global_en", "label": "udp_global_en", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1393"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserve_0", "label": "reserve_0", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1394"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sl_bitmap", "label": "sl_bitmap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1395"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dscp_config_mode", "label": "dscp_config_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1396"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserve_1", "label": "reserve_1", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1397"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1398"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "inet", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L14", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L15", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L16", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L17", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L18", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "stdatomic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L21", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "atomic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "urma_opcode", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L85", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr_token", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L86", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L87", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ref", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L152", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L160", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_mtu_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L161", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_max_mtu", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L161", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_port_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L162", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L162", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_link_width_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L163", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_width", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L163", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_speed_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L164", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_speed", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L164", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_mtu_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L165", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_mtu", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L165", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L178", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info_sl", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L179", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L180", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L254", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_device_feature_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L255", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_feature", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L255", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfc", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L256", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L257", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L258", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L259", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty_grp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L260", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty_in_jetty_grp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L261", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfc_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L262", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L263", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L264", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_inline_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L265", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L266", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_rsge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L267", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L268", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_msg_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L269", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_read_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L270", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_write_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L271", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_cas_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L272", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_swap_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L273", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_add_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L274", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_sub_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L275", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_and_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L276", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_or_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L277", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_xor_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L278", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_atomic_feature_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L279", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_atomic_feat", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L279", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L280", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_congestion_ctrl_alg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L281", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_ceq_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L282", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_tp_in_tpg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L283", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_eid_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L284", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_page_size_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L285", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_oor_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L286", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_mn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L287", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_netaddr_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L288", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_order_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L289", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rm_order_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L289", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_order_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L290", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rc_order_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L290", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_tp_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L291", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rm_tp_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L291", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_tp_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L292", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rc_tp_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L292", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_tp_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L293", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_um_tp_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L293", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_tp_feature_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L294", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_tp_feature", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L294", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_priority_info", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L295", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L298", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid_raw", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L299", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L302", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "urma_guid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L303", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_guid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L303", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "urma_device_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L304", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_dev_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L304", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_port_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L305", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_port_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L306", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_min", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L307", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_max", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L308", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L312", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_token", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L313", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sysfs_dev", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L316", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ref", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L317", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L318", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_provider_ops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L319", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L358", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "target": "urma_tp_cc_alg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L359", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_alg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L359", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_cc_pattern_idx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L360", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_cc_priority", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L361", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L364", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L365", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_path", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L367", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "urma_transport_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L368", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L368", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_ops", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L369", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_sysfs_dev", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L370", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L383", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_dev", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L384", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_ops", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L385", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_dev_fd", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L386", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_async_fd", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L387", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L388", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L388", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L389", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L389", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_eid_index", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L390", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L391", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_ref", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L392", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "urma_context_aggr_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L393", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_aggr_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L393", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L396", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L397", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L397", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info_eid_index", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L398", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L401", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L402", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L403", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L406", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L407", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L407", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_fd", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L408", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_ref", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L409", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L423", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L424", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "urma_jfc_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L425", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L425", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_ceqn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L426", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L428", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_jfce", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L428", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L429", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L437", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L438", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_moderate_count", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L439", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_moderate_period", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L440", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L443", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L444", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L444", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L445", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L446", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L449", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L450", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L451", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L467", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_jfc_opt_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L468", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_is_actived", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L470", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_cqe_base_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L471", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L472", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L473", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L474", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L475", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L476", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_ci", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L477", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L478", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L481", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L482", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L482", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "urma_jfc_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L483", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_jfc_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L483", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "urma_jfc_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L484", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_jfc_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L484", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L485", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L486", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L486", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L487", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L487", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_comp_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L488", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L489", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "urma_jfc_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L490", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_urma_jfc_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L490", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L534", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_jfs_opt_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L535", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_is_actived", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L537", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_sqe_base_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L538", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L539", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L540", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L541", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L542", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L543", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_ci", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L544", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L545", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L548", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L549", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "urma_jfs_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L550", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L550", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L551", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L551", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_priority", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L552", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L554", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_rsge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L555", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_inline_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L556", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_rnr_retry", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L558", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_err_timeout", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L562", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L564", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_jfc", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L564", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L565", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L568", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L569", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L569", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "urma_jfs_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L570", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_jfs_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L570", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "urma_jfs_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L571", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_jfs_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L571", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L572", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L573", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L573", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L574", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L574", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L575", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "urma_jfs_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L576", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_urma_jfs_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L576", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L585", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L586", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "target": "urma_jfs_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L587", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L587", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L625", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_jfr_opt_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L626", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_is_actived", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L628", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_rqe_base_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L629", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L630", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L631", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L632", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L633", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L634", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_ci", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L635", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L636", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L639", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L640", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L642", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "urma_jfr_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L643", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L643", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L644", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L644", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_max_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L645", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_min_rnr_timer", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L646", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L648", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_jfc", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L648", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L649", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L649", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L650", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L658", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L659", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_rx_threshold", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L660", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "target": "urma_jfr_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L661", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L661", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L664", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L665", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L665", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "urma_jfr_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L666", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_jfr_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L666", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "urma_jfr_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L667", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_jfr_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L667", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L668", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L669", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L669", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L670", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L670", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L671", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "urma_jfr_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L672", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_urma_jfr_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L672", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L702", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "urma_jfr_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L703", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_jfr_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L703", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L704", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L704", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "urma_import_jetty_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L705", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L705", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "urma_tp_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L706", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L706", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L709", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_tpn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L710", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L724", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L726", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L727", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "urma_jetty_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L728", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L728", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "urma_jfs_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L731", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_jfs_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L731", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "urma_jetty_grp_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L741", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_jetty_grp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L741", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L742", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L756", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L757", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L757", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L758", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L758", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_jetty_grp_policy_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L759", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_policy", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L759", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_target_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L760", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L760", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_import_jetty_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L761", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L761", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_tp_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L762", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L762", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L765", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L766", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L766", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L767", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L767", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L768", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L769", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L769", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_tp_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L770", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_tp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L770", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_target_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L771", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L771", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_import_jetty_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L772", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L772", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_jetty_grp_policy_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L773", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_policy", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L773", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_tp_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L774", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L774", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L782", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L783", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_rx_threshold", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L784", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "target": "urma_jetty_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L785", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L785", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L788", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_is_actived", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L789", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "target": "urma_jfs_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L790", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_jfs_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L790", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L791", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L794", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L795", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L795", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L796", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L796", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L797", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_remote_jetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L797", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_jetty_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L799", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_jetty_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L799", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L800", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L801", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L801", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L802", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L802", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L803", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_jetty_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L804", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_urma_jetty_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L804", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L807", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L808", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L808", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_fd", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L809", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_incomplete_tjetty_list", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L810", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L818", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "urma_notify_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L819", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L819", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L820", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L820", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L821", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L840", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L841", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "urma_jetty_grp_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L842", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L842", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L843", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L843", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L844", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "urma_jetty_grp_policy_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L846", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_policy", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L846", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L847", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L850", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L851", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L851", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L852", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_grp_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L852", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "urma_jetty_grp_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L853", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L853", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L854", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L855", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_list", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L855", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L856", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_list_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L856", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L857", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L858", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L858", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L859", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L859", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L860", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L864", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L865", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L865", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L866", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_va", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L867", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L946", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L947", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L947", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L948", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L949", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "urma_ref_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L950", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_ref", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L950", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "urma_token_id_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L951", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L951", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L954", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_va", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L955", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L956", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "urma_token_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L957", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L957", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L958", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L958", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "urma_reg_seg_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L959", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L959", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L960", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_iova", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L961", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L964", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "urma_ubva_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L965", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_ubva", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L965", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L966", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "urma_seg_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L967", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L967", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L968", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L971", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "urma_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L972", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_seg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L972", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L973", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_mva", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L974", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L975", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L975", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "urma_token_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L976", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L976", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L977", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L980", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L981", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L982", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_opcode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L987", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L990", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L991", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L992", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L993", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L996", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "urma_seg_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L997", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L997", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L998", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L999", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L999", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1002", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1003", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1004", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1010", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_tseg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1010", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "urma_user_tseg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1011", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_user_tseg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1011", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1014", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1015", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1015", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg_num_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1016", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1053", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "urma_sg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1054", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1054", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "urma_sg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1056", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_dst", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1056", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_target_hint", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1058", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_notify_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1059", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1062", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "urma_sg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1063", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1063", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_target_hint", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1064", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_imm_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1065", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1066", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_tseg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1066", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1069", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1070", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr_dst", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1070", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1071", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1071", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1082", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1083", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr_dst", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1083", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1084", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1084", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1091", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "urma_opcode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1092", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_opcode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1092", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "urma_jfs_wr_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1093", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1093", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1094", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_tjetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1094", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1095", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_next", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1102", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1105", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "target": "urma_sg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1106", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1106", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1107", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_next", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1108", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1122", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1123", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1124", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1124", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1127", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "urma_cr_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1128", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1128", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1129", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "urma_cr_opcode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1130", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_opcode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1130", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "urma_cr_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1131", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1131", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_completion_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1132", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_local_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1134", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1135", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_remote_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1135", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_tpn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1141", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_user_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1142", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1145", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1147", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1147", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_element", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1156", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "urma_async_event_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1157", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_event_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1157", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_priv", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1158", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1184", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1185", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1186", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "urma_ur_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1187", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1187", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_token", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1188", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1189", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1193", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1194", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1195", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "urma_import_ur_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1196", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1196", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1197", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_tseg_list", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1197", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1198", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1201", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "target": "urma_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1202", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info_seg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1202", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info_idx_in_ur", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1203", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1207", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1208", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1209", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "urma_ur_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1210", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1210", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1211", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "urma_seg_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1212", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_seg_list", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1212", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1215", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1216", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1217", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1217", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1218", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1219", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1238", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "urma_tp_cfg_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1239", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1239", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1241", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1241", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_retry_num", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1242", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_retry_factor", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1243", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_ack_timeout", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1244", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_dscp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1245", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_oor_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1246", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1295", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "sa_family_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1296", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_sin_family", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1296", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_vlan", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1301", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_mac", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1302", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_prefix_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1303", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1306", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "target": "urma_net_addr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1307", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info_netaddr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1307", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info_index", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1308", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1311", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_tp_mod_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1312", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1312", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_tpn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1313", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_tp_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1314", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1314", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_tx_psn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1315", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_rx_psn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1316", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_mtu_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1317", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_mtu", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1317", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_cc_pattern_idx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1318", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_oos_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1319", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_local_net_addr_idx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1320", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_net_addr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1321", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_net_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1321", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_data_udp_start", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1322", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_ack_udp_start", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1323", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_udp_range", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1324", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_hop_limit", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1325", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_flow_label", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1326", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_port_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1327", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_mn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1328", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_transport_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1329", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_trans_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1329", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1347", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "urma_get_tp_cfg_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1348", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1348", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1349", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1349", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1350", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_local_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1350", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1351", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_peer_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1351", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1354", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info_tp_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1355", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1358", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_tx_psn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1359", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_rx_psn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1360", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1361", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1364", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tp_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1365", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_peer_tp_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1366", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1367", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "urma_active_tp_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1368", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tp_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1368", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1371", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1372", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1373", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1376", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_retry_times_init", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1377", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_at", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1378", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sip", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1379", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dip", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1380", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sma", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1381", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dma", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1382", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_vlan_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1383", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_vlan_en", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1384", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dscp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1385", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_at_times", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1386", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sl", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1387", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_ttl", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1388", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_ack_udp_srcport", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1389", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_data_udp_srcport", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1390", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_udp_srcport_range", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1391", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_spray_en", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1392", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_udp_global_en", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1393", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserve_0", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1394", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sl_bitmap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1395", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dscp_config_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1396", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserve_1", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1397", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1398", "weight": 1.0, "context": "field"}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed.json new file mode 100644 index 0000000000..0ffde6c745 --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "label": "urma_endpoint.h", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmatransport", "label": "UrmaTransport", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L42", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmahandshake", "label": "UrmaHandshake", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L46", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_parsedhello", "label": "ParsedHello", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L47", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "label": "UrmaConnect", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L56", "_callable": true}, {"id": "appconnect", "label": "AppConnect", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "label": "StartConnect", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L59"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "label": "StopConnect", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L61"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "label": "Run", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L70"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_data", "label": "_data", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L72"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_error", "label": "_error", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L73"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "label": "UrmaResource", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L81", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_next", "label": "next", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L82"}, {"id": "urma_jfc_t", "label": "urma_jfc_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfc", "label": "jfc", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L84"}, {"id": "urma_jfce_t", "label": "urma_jfce_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfce", "label": "jfce", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L85"}, {"id": "urma_jfr_t", "label": "urma_jfr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfr", "label": "jfr", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L86"}, {"id": "urma_jetty_t", "label": "urma_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jetty", "label": "jetty", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L87"}, {"id": "urma_target_jetty_t", "label": "urma_target_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_remote_jetty", "label": "remote_jetty", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L89"}, {"id": "urma_target_seg_t", "label": "urma_target_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_remote_seg", "label": "remote_seg", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L90"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "label": ".UrmaResource()", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L92", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint", "label": "UrmaEndpoint()", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L100", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "cstdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L21", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "functional", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "vector", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L25", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "iobuf", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "macros", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "mpsc_queue", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L28", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L29", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L35", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L36", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L37", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmatransport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L42", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmahandshake", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L46", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_parsedhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L47", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L56", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "appconnect", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L56", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L59", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L61", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L70", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L72", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_error", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L73", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L81", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_next", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L82", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L84", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfc", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L84", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L85", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfce", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L85", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_jfr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L86", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L86", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L87", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L87", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L89", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_remote_jetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L89", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L90", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_remote_seg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L90", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L92", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L100", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L344", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint", "callee": "DISALLOW_COPY_AND_ASSIGN", "is_member_call": false, "source_file": "urma_endpoint.h", "source_location": "L334", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h", "table": {"_rbuf": "IOBuf>", "_sbuf": "IOBuf>", "_cq_sid": "SocketId", "_resource": "UrmaResource", "_socket": "Socket"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1.json new file mode 100644 index 0000000000..52450abd22 --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "label": "urma_handshake.h", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "label": "UrmaEndpoint", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L32", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "label": "ParsedHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L38", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_buffer_size", "label": "buffer_size", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L39"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_recv_buffer_cnt", "label": "recv_buffer_cnt", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L40"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_jetty_id", "label": "jetty_id", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L41"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_eid", "label": "eid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L42"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_uasid", "label": "uasid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L43"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_tp_type", "label": "tp_type", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L44"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_eid", "label": "seg_eid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L47"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_uasid", "label": "seg_uasid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L48"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_va", "label": "seg_va", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L49"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_len", "label": "seg_len", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L50"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_token_id", "label": "seg_token_id", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L51"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "label": "HelloMessage", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L73", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_msg_len", "label": "msg_len", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L74"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_hello_ver", "label": "hello_ver", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L75"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_impl_ver", "label": "impl_ver", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L76"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_buffer_size", "label": "buffer_size", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L77"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_recv_buffer_cnt", "label": "recv_buffer_cnt", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L78"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_jetty_id", "label": "jetty_id", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L79"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_eid", "label": "eid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L80"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_uasid", "label": "uasid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L81"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_tp_type", "label": "tp_type", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L82"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_pad", "label": "pad", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L83"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_eid", "label": "seg_eid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L84"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_uasid", "label": "seg_uasid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L85"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_va", "label": "seg_va", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L86"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_len", "label": "seg_len", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L87"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_token_id", "label": "seg_token_id", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L88"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "label": "Serialize", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L90"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "label": "Deserialize", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L91"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "label": "UrmaHandshake", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L97", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_urmahandshake", "label": ".~UrmaHandshake()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L99", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_protocolversion", "label": "ProtocolVersion", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L100"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L104"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L110"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "label": "UrmaHandshakeClientV2", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L114", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", "label": ".UrmaHandshakeClientV2()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L116", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_protocolversion", "label": ".ProtocolVersion()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L117", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L118"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L119"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_ep", "label": "_ep", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L121"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "label": "UrmaHandshakeServerV2", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L124", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", "label": ".UrmaHandshakeServerV2()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L126", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_protocolversion", "label": ".ProtocolVersion()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L127", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L128"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L129"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_ep", "label": "_ep", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L131"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "label": "UrmaHandshakeClientV3", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L135", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", "label": ".UrmaHandshakeClientV3()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L137", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_protocolversion", "label": ".ProtocolVersion()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L138", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L139"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L140"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_ep", "label": "_ep", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L142"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "label": "UrmaHandshakeServerV3", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L145", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", "label": ".UrmaHandshakeServerV3()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L147", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_protocolversion", "label": ".ProtocolVersion()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L148", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L149"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L150"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_ep", "label": "_ep", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L152"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "cstdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L21", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "cstring", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L32", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_buffer_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L39", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_recv_buffer_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L40", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L41", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L42", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L43", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L44", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L47", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L48", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_va", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L49", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L50", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L51", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L73", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_msg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L74", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_hello_ver", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L75", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_impl_ver", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L76", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_buffer_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L77", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_recv_buffer_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L78", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L79", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L80", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L81", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L82", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_pad", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L83", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L84", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L85", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_va", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L86", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L87", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L88", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L90", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L91", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L97", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_urmahandshake", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L99", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_protocolversion", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L100", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L104", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L110", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L114", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L114", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L116", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L116", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_protocolversion", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L117", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L118", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L119", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L121", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_ep", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L121", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L124", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L124", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L126", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L126", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_protocolversion", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L127", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L128", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L129", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L131", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_ep", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L131", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L135", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L135", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L137", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L137", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_protocolversion", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L138", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L139", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L140", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L142", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_ep", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L142", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L145", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L145", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L147", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L147", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_protocolversion", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L148", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L149", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L150", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L152", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_ep", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L152", "weight": 1.0, "context": "field"}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833.json new file mode 100644 index 0000000000..3373b3214b --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "label": "urma_endpoint.cpp", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty", "label": "PreparedJetty", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L82", "_callable": true}, {"id": "urmaresource", "label": "UrmaResource", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty_res", "label": "res", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L83"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "label": "PreparedJettyCount()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L89", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "label": "UrmaResource::~UrmaResource()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L125", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "label": "UrmaEndpoint::UrmaEndpoint()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L138", "_callable": true}, {"id": "socket", "label": "Socket", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "label": "UrmaEndpoint::Reset()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L159", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "label": "UrmaEndpoint::ReadFromFd()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L188", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pushbacktoreadbuf", "label": "UrmaEndpoint::PushBackToReadBuf()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L215", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "label": "UrmaEndpoint::WriteToFd()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L219", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "label": "UrmaEndpoint::MakeLocalParsedHello()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L239", "_callable": true}, {"id": "parsedhello", "label": "ParsedHello", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "label": "UrmaEndpoint::FillLocalHelloV2()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L261", "_callable": true}, {"id": "hellomessage", "label": "HelloMessage", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "label": "UrmaEndpoint::FillLocalHelloV3()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L282", "_callable": true}, {"id": "urmahello", "label": "UrmaHello", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "label": "UrmaEndpoint::WriteHelloV3()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L298", "_callable": true}, {"id": "iobuf", "label": "IOBuf", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "label": "UrmaEndpoint::ReadAndParseHelloV3()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L327", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "label": "UrmaEndpoint::AllocateResources()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L360", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "label": "UrmaEndpoint::DeallocateResources()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L462", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "label": "UrmaEndpoint::ImportPeer()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L494", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf", "label": "UrmaIOBuf", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L546", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "label": ".cut_into_sglist()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L556", "_callable": true}, {"id": "urma_sge_t", "label": "urma_sge_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "label": "UrmaEndpoint::CutFromIOBufList()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L590", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_iswritable", "label": "UrmaEndpoint::IsWritable()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L664", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_dopostrecv", "label": "UrmaEndpoint::DoPostRecv()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L673", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "label": "UrmaEndpoint::PostRecv()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L687", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "label": "UrmaEndpoint::SendImm()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L727", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "label": "UrmaEndpoint::SendAck()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L751", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "label": "UrmaEndpoint::HandleCompletion()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L761", "_callable": true}, {"id": "urma_cr_t", "label": "urma_cr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "label": "UrmaEndpoint::PollCq()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L847", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "label": "UrmaEndpoint::ApplyRemoteHello()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L930", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "label": "UrmaEndpoint::OnNewDataFromTcp()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L953", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_tryreadontcp", "label": "UrmaEndpoint::TryReadOnTcp()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1010", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "label": "TryReadOnTcpDuringUrmaEst()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1016", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "label": "UrmaEndpoint::FallbackToTcp()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1042", "_callable": true}, {"id": "urmatransport", "label": "UrmaTransport", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "label": "UrmaEndpoint::FailHandshake()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1051", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "label": "UrmaEndpoint::ProcessHandshakeAtClient()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1072", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "label": "UrmaEndpoint::ProcessHandshakeAtServer()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1144", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "label": "UrmaConnect::StartConnect()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1240", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "label": "UrmaConnect::StopConnect()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1279", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "label": "UrmaConnect::Run()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1281", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_getstatestr", "label": "UrmaEndpoint::GetStateStr()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1293", "_callable": true}, {"id": "string", "label": "string", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "label": "UrmaEndpoint::DebugInfo()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1313", "_callable": true}, {"id": "ostream", "label": "ostream", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "stringpiece", "label": "StringPiece", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "label": "UrmaEndpoint::WaitCqEvent()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1322", "_callable": true}, {"id": "socketuniqueptr", "label": "SocketUniquePtr", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "urma_jfc_t", "label": "urma_jfc_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "label": "UrmaEndpoint::ReqNotifyCq()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1353", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "label": "UrmaEndpoint::PollingModeInitialize()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "_callable": true}, {"id": "bthread_tag_t", "label": "bthread_tag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "function", "label": "function", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "label": "UrmaEndpoint::PollingModeRelease()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1462", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "label": "UrmaEndpoint::PollerAddCqSid()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1476", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "label": "UrmaEndpoint::PollerRemoveCqSid()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1492", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "label": "UrmaEndpoint::GlobalInitialize()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1505", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "label": "UrmaEndpoint::GlobalRelease()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1566", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_bringupjetty", "label": "UrmaEndpoint::BringUpJetty()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1581", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_endpoint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L18", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "algorithm", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "cstring", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "iostream", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L24", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "memory", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L25", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "unordered_set", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "utility", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L28", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "vector", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L29", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "resource", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L30", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "gflags", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L33", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L35", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "iobuf", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L36", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L37", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "macros", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "sys_byteorder", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L39", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L40", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "bthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L41", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "butex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L42", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "input_messenger", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L44", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L45", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L46", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_endpoint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L47", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L48", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L49", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_helper", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L50", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_transport", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L51", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L82", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty", "target": "urmaresource", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L83", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty_res", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L83", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L89", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L125", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L138", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L138", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L151", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L159", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L188", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pushbacktoreadbuf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L215", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L219", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L239", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L239", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L261", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "target": "hellomessage", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L261", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L282", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "target": "urmahello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L282", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L298", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "target": "urmahello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L298", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L312", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "target": "iobuf", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L312", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L327", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L327", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L360", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L462", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L494", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L494", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L546", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf", "target": "iobuf", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L546", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L556", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L556", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "target": "iobuf", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L556", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L590", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "target": "iobuf", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L590", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_iswritable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L664", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_dopostrecv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L673", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L687", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L727", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L751", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L761", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "target": "urma_cr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L761", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L847", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L847", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L930", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L930", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L953", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L953", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_tryreadontcp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1010", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1016", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1016", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1042", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "target": "urmatransport", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1042", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1051", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "target": "urmatransport", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1051", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1072", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1144", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1240", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1240", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1279", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1279", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1281", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_getstatestr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1293", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_getstatestr", "target": "string", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1293", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1313", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "target": "ostream", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1313", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "target": "stringpiece", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1313", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1322", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "target": "socketuniqueptr", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1322", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1322", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1353", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "target": "bthread_tag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1462", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "target": "bthread_tag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1462", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1476", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1492", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1505", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1566", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_bringupjetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1581", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L622", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1003", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1521", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "callee": "getrlimit", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L97", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L113", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_unimport_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L126", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_unimport_seg", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L127", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_delete_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L128", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_delete_jfr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L129", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_delete_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L130", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_delete_jfce", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L131", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "callee": "butex_create_checked>", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L147", "receiver": "bthread", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L148", "receiver": "_read_butex", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "callee": "DeallocateResources", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L152", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "callee": "butex_destroy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L154", "receiver": "bthread", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "DeallocateResources", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L160", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L166", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L167", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L168", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L177", "receiver": "_sbuf", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L178", "receiver": "_rbuf", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L179", "receiver": "_rbuf_data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L180", "receiver": "_read_butex", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L192", "receiver": "_read_butex", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "milliseconds_from_now", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L193", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L194", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "read", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L195", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "butex_wait", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L198", "receiver": "bthread", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pushbacktoreadbuf", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L216", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "milliseconds_from_now", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L223", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L224", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "write", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L225", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "WaitEpollOut", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L228", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "callee": "GetUrmaRecvBlockSize", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L241", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L246", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "callee": "GetPoolSegFor", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L251", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L253", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "callee": "MakeLocalParsedHello", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L267", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L272", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L275", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "MakeLocalParsedHello", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L284", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_buffer_size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L285", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_recv_buffer_cnt", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L286", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_jetty_id", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L287", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L288", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_uasid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L289", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_tp_type", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L290", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L291", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_uasid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L292", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_va", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L293", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_len", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L294", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_token_id", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L295", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L300", "receiver": "packet", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "SerializeToString", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L302", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L303", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L306", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L306", "receiver": "body", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L307", "receiver": "packet", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L308", "receiver": "packet", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "WriteToFd", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L309", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L314", "receiver": "data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "milliseconds_from_now", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L315", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L316", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "cut_into_file_descriptor", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L317", "receiver": "data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "WaitEpollOut", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L320", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "ReadFromFd", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L330", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L331", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "ReadFromFd", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L334", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "ParseFromArray", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L336", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "data", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L336", "receiver": "body", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L336", "receiver": "body", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L339", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L339", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L339", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L339", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "buffer_size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L340", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "recv_buffer_cnt", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L341", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "jetty_id", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L342", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L343", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "data", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L343", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L343", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "uasid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L344", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "tp_type", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L345", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L346", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "data", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L346", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L346", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_uasid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L347", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_va", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L348", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_len", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L349", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_token_id", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L350", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "ValidHello", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L351", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "GetUrmaContext", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L362", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L371", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "urma_create_jfce", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L385", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L388", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "urma_create_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L396", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L397", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "urma_create_jfr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L405", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L406", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "GetUrmaMaxSge", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L414", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "urma_create_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L420", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L421", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "resize", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L424", "receiver": "_sbuf", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "resize", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L425", "receiver": "_rbuf", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "resize", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L426", "receiver": "_rbuf_data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L431", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "ReqNotifyCq", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L435", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "keytable_pool", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L440", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "Create", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L443", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L444", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "keytable_pool", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L451", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "Create", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L453", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L454", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PollerAddCqSid", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L457", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "PollerRemoveCqSid", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L466", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "Address", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L472", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L473", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "RemoveConsumer", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L474", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L478", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "GetUrmaContext", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L495", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L502", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "urma_import_seg", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L512", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L514", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L520", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "urma_import_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L532", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L534", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "_ref_num", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L560", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "_ref_at", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L561", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "fetch1", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L562", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "GetPoolSegFor", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L564", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "get_first_data_meta", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L567", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "cutn", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L582", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "GetUrmaMaxSge", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L595", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "alloca", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L599", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L605", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L606", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "GetUrmaRecvBlockSize", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L617", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L621", "receiver": "data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "memset", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L631", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "exchange", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L633", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "urma_post_jetty_send_wr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L642", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L644", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L645", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "GetUrmaMaxSge", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L647", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L652", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L655", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "fetch_sub", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L657", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "fetch_sub", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L658", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_iswritable", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L665", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_iswritable", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L666", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_dopostrecv", "callee": "GetPoolSegFor", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L674", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_dopostrecv", "callee": "urma_post_jfr_wr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L681", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "GetUrmaRecvBlockSize", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L689", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L691", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "Next", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L696", "receiver": "zcis", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "DoPostRecv", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L702", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L705", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "Next", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L711", "receiver": "zcos", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "DoPostRecv", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L718", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "callee": "memset", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L735", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "callee": "urma_post_jetty_send_wr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L743", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L744", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L753", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "callee": "SendImm", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L756", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "callee": "exchange", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L756", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L763", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L771", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L773", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "SendAck", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L782", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L787", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "subtle::MemoryBarrier", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L790", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L791", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L792", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "WakeAsEpollOut", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L794", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L801", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L807", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L810", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "compare_exchange_weak", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L814", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L820", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "WakeAsEpollOut", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L821", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L824", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "GetUrmaRecvBlockSize", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L828", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L829", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "cutn", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L838", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L840", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "PostRecv", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L842", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "SendAck", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L843", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "user", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L848", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "Address", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L851", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "Failed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L852", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "WaitCqEvent", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L856", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "min", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L866", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "urma_poll_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L868", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L874", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L876", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "Failed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L878", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "HandleCompletion", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L882", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "urma_ack_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L896", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "ReqNotifyCq", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L897", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "Failed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L902", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L903", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "cpuwide_time_us", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L908", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "gettimeofday_us", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L909", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "user", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L910", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "ProcessNewMessage", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L913", "receiver": "messenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L913", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L915", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L918", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L920", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L921", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "callee": "min", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L934", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L942", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L944", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L954", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "OnNewMessages", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L961", "receiver": "InputMessenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L967", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "CreatedByConnect", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L969", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "IsUrmaAvailable", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L971", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "OnNewMessages", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L974", "receiver": "InputMessenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "ReAddress", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L978", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "bthread_attr_set_name", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L982", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "bthread_start_background", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L983", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L986", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "release", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L988", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L996", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "butex_wake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L997", "receiver": "bthread", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "OnNewMessages", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1000", "receiver": "InputMessenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "MoreReadEvents", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1006", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_tryreadontcp", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1011", "receiver": "_state", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_tryreadontcp", "callee": "OnNewMessages", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1012", "receiver": "InputMessenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "read", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1020", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1020", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1024", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "berror", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1025", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "MoreReadEvents", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1028", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "SetEOF", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1032", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1035", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1044", "receiver": "_state", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "callee": "DeallocateResources", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1045", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "callee": "TryReadOnTcp", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1047", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1053", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "GetStateStr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1053", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1054", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "berror", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1056", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1058", "receiver": "_state", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "DeallocateResources", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1059", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1061", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1065", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1075", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1076", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1077", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1078", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "IsUrmaAvailable", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1079", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1080", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "AllocateResources", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1084", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1085", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "PostRecv", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1089", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1090", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1093", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1094", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "ProtocolVersion", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1097", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "SendLocalHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1098", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1100", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1103", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1104", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "ReceiveAndParseRemoteHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1108", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1110", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1114", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1117", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1118", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "ApplyRemoteHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1119", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "ImportPeer", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1121", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1123", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1126", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1127", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1130", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "WriteToFd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1131", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1133", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1138", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1140", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1147", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1148", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1149", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1150", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1153", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1155", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "PushBackToReadBuf", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1161", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1162", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ProtocolVersion", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1165", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ReceiveAndParseRemoteHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1168", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1170", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1174", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1177", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1178", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "AllocateResources", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1180", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1182", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "PostRecv", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1185", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1187", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1190", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1191", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ApplyRemoteHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1192", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ImportPeer", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1194", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1196", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1199", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1200", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "SendLocalHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1202", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1204", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1207", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1208", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1211", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1213", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1216", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1219", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1222", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1227", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1229", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1231", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "Address", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1243", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1249", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "Run", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1251", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "IsUrmaAvailable", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1254", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "Run", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1260", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "bthread_attr_set_name", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1265", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "bthread_start_background", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1266", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "Run", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1271", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "release", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1275", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "callee": "cb", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1285", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_getstatestr", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1294", "receiver": "_state", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "callee": "GetStateStr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1314", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1317", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1318", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "urma_wait_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1329", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1335", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1336", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1337", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "berror", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1338", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1343", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1343", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1345", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1348", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1349", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "callee": "urma_rearm_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1358", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1361", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1362", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "callee": "berror", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1362", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1374", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1375", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "compare_exchange_strong", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1381", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "init_fn", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1396", "receiver": "poller", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1398", "receiver": "running", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "Dequeue", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1399", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "emplace", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1401", "receiver": "cq_sids", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "erase", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1403", "receiver": "cq_sids", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "Address", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1408", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "PollCq", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1409", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1409", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "callback", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1413", "receiver": "poller", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1415", "receiver": "cq_sids", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_yield", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1416", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "release_fn", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1420", "receiver": "poller", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1426", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1433", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_join", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1435", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_attr_set_name", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1445", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_start_background", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1446", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1447", "receiver": "args", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1449", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_join", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1451", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "release", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1457", "receiver": "args", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1463", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1467", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "callee": "bthread_join", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1470", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1477", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "bthread_self_tag", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1480", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1481", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1485", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "fmix32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1487", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1487", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "Enqueue", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1488", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1493", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1494", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1498", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "fmix32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1500", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1500", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "Enqueue", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1501", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1508", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1510", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "vector", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1516", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "GetUrmaContext", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1519", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "urma_create_jfce", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1525", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "urma_create_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1534", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "urma_create_jfr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1542", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "GetUrmaMaxSge", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1550", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "urma_create_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1556", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1562", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1568", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1576", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "callee": "PollingModeRelease", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1577", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp", "table": {"p": "ParsedHello", "packet": "IOBuf", "msg": "UrmaHello", "options": "SocketOptions", "next": "UrmaResource", "s": "SocketUniquePtr", "r": "BlockRef", "to": "IOBuf", "zcos": "IOBufAsZeroCopyOutputStream", "zcis": "IOBufAsZeroCopyOutputStream", "last_msg": "InputMessageClosure", "state": "State", "ep": "UrmaEndpoint", "remote": "ParsedHello", "guard": "RunGuard"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804.json new file mode 100644 index 0000000000..fa3caa7fdb --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804.json @@ -0,0 +1 @@ +{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_api_h", "label": "urma_api.h", "file_type": "code", "source_file": "sdk/urma/urma_api.h", "source_location": "L1"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_api_h", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_api.h", "source_location": "L13", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_api_h", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_api.h", "source_location": "L14", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_api_h", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_api.h", "source_location": "L16", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/stat-index.json b/src/brpc/urma/graphify-out/cache/stat-index.json new file mode 100644 index 0000000000..6e429df537 --- /dev/null +++ b/src/brpc/urma/graphify-out/cache/stat-index.json @@ -0,0 +1 @@ +{"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp":{"size":22422,"mtime_ns":1785291503405746700,"word_count":2055,"hashes":{"mock_urma.cpp":"608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_api.h":{"size":47786,"mtime_ns":1785227626464076200,"word_count":6750,"hashes":{"sdk/urma/urma_api.h":"f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_opcode.h":{"size":10591,"mtime_ns":1785226861704155300,"word_count":1138,"hashes":{"sdk/urma/urma_opcode.h":"01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h":{"size":54318,"mtime_ns":1785227626506547800,"word_count":6079,"hashes":{"sdk/urma/urma_types.h":"6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp":{"size":58559,"mtime_ns":1785309099990290300,"word_count":5389,"hashes":{"urma_endpoint.cpp":"bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h":{"size":13432,"mtime_ns":1785309036527955400,"word_count":1577,"hashes":{"urma_endpoint.h":"7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp":{"size":11297,"mtime_ns":1785291857383725700,"word_count":1138,"hashes":{"urma_handshake.cpp":"3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.h":{"size":6762,"mtime_ns":1785291144209111300,"word_count":893,"hashes":{"urma_handshake.h":"9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp":{"size":24053,"mtime_ns":1785307850782229900,"word_count":2487,"hashes":{"urma_helper.cpp":"5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.h":{"size":3392,"mtime_ns":1785290825559803600,"word_count":452,"hashes":{"urma_helper.h":"1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422"}}} \ No newline at end of file diff --git a/src/brpc/urma/urma_bonding.h b/src/brpc/urma/urma_bonding.h new file mode 100644 index 0000000000..6e2e4a884f --- /dev/null +++ b/src/brpc/urma/urma_bonding.h @@ -0,0 +1,35 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +#ifndef BRPC_URMA_URMA_BONDING_H +#define BRPC_URMA_URMA_BONDING_H + +// urma_ubagg.h is a provider-private extension and is not shipped by every +// URMA SDK (including brpc's bundled mock SDK). Keep the dependency optional +// so non-bonding devices and mock builds continue to work. +#if defined(__has_include) +#if __has_include("urma/urma_ubagg.h") +#include "urma/urma_ubagg.h" +#define BRPC_URMA_HAS_BONDING_EXT 1 +#endif +#endif + +#ifndef BRPC_URMA_HAS_BONDING_EXT +#define BRPC_URMA_HAS_BONDING_EXT 0 +#endif + +#endif // BRPC_URMA_URMA_BONDING_H diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 3545707902..1c3aad0ffa 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -20,6 +20,7 @@ #if BRPC_WITH_URMA #include +#include #include #include #include @@ -44,6 +45,7 @@ #include "brpc/input_messenger.h" #include "brpc/socket.h" #include "urma/urma_api.h" +#include "brpc/urma/urma_bonding.h" #include "brpc/urma/urma_endpoint.h" #include "brpc/urma/urma_handshake.h" #include "brpc/urma/urma_handshake.pb.h" @@ -529,9 +531,48 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { remote.tp_type = static_cast(peer.tp_type); urma_token_t token{}; + errno = 0; _resource->remote_jetty = urma_import_jetty(ctx, &remote, &token); + const int plain_import_errno = errno; + bool used_bonding_extension = false; + if (!_resource->remote_jetty && IsUrmaBondingDevice() && + remote.trans_mode == URMA_TM_RM) { +#if BRPC_URMA_HAS_BONDING_EXT + LOG(WARNING) << "Plain urma_import_jetty failed: errno=" + << plain_import_errno + << ", retrying with bonding extension"; + bondp_rjetty_t bonding_remote{}; + bonding_remote.base = remote; + bonding_remote.base.flag.bs.has_drv_ext = 1; + bonding_remote.jetty = _resource->jetty; + errno = 0; + _resource->remote_jetty = + urma_import_jetty(ctx, &bonding_remote.base, &token); + used_bonding_extension = true; + if (_resource->remote_jetty) { + LOG(INFO) << "URMA bonding remote jetty import succeeded" + << " remote_jetty_id=" << peer.jetty_id; + } +#else + LOG(ERROR) << "Bonding remote jetty import requires provider header " + "urma/urma_ubagg.h"; + errno = ENOTSUP; +#endif + } if (!_resource->remote_jetty) { - PLOG(ERROR) << "urma_import_jetty failed"; + if (errno == 0) { + errno = plain_import_errno != 0 ? plain_import_errno : EIO; + } + char remote_eid[URMA_EID_STR_LEN + 1] = {}; + std::snprintf(remote_eid, sizeof(remote_eid), EID_FMT, + EID_RAW_ARGS(peer.eid)); + PLOG(ERROR) << "urma_import_jetty failed" + << " remote_eid=" << remote_eid + << " remote_uasid=" << peer.uasid + << " remote_jetty_id=" << peer.jetty_id + << " trans_mode=" << remote.trans_mode + << " tp_type=" << remote.tp_type + << " bonding_extension=" << used_bonding_extension; return -1; } return 0; diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 0ebf847a68..410d3ba2e0 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -43,6 +43,7 @@ #include "urma/urma_api.h" #include "urma/urma_types.h" +#include "brpc/urma/urma_bonding.h" #include "brpc/urma/urma_endpoint.h" DECLARE_int32(task_group_ntags); @@ -82,6 +83,11 @@ DEFINE_string(urma_device, "", "The name of the URMA device to use. Empty means the first one."); DEFINE_int32(urma_max_sge, 0, "Max SGEs per WR. 0 means the device maximum."); +DEFINE_int32(urma_bonding_mode, 0, + "Bonding mode for bonding devices: 0=standalone, " + "1=active-backup, 2=balance."); +DEFINE_int32(urma_bonding_level, 0, + "Bonding level for bonding devices: 0=IODIE, 1=port."); DEFINE_int32(urma_prepared_jetty_cnt, 8, "Requested number of pre-allocated Jetty+CQ sets for fast " "connect; capped automatically according to RLIMIT_NOFILE"); @@ -122,6 +128,7 @@ static urma_context_t* g_context = nullptr; static urma_device_attr_t g_device_attr{}; static int g_max_sge = 1; static size_t g_recv_block_size = 8 * 1024; +static bool g_is_bonding_device = false; // urma_init/urma_uninit manage process-global liburma state. Only uninitialize // it when this helper performed the successful initialization; URMA_EEXIST // means another component owns that state. @@ -161,6 +168,57 @@ size_t AlignUp(size_t v, size_t align) { return (v + align - 1) / align * align; } +bool ConfigureBondingMode(const std::string& device_name) { + if (device_name.compare(0, 7, "bonding") != 0) { + return true; + } + g_is_bonding_device = true; + +#if BRPC_URMA_HAS_BONDING_EXT + if (FLAGS_urma_bonding_mode < 0 || + FLAGS_urma_bonding_mode >= BONDP_BONDING_MODE_MAX || + FLAGS_urma_bonding_level < 0 || + FLAGS_urma_bonding_level >= BONDP_BONDING_LEVEL_MAX) { + LOG(ERROR) << "Invalid URMA bonding configuration: mode=" + << FLAGS_urma_bonding_mode + << " level=" << FLAGS_urma_bonding_level; + errno = EINVAL; + return false; + } + + bondp_set_bonding_mode_in_t bond_in{}; + bond_in.bonding_mode = + static_cast(FLAGS_urma_bonding_mode); + bond_in.bonding_level = + static_cast(FLAGS_urma_bonding_level); + + urma_user_ctl_in_t ctl_in{}; + ctl_in.addr = reinterpret_cast(&bond_in); + ctl_in.len = static_cast(sizeof(bond_in)); + ctl_in.opcode = BONDP_USER_CTL_SET_BONDING_MODE; + urma_user_ctl_out_t ctl_out{}; + const urma_status_t status = urma_user_ctl(g_context, &ctl_in, &ctl_out); + if (status != URMA_SUCCESS) { + LOG(ERROR) << "urma_user_ctl(SET_BONDING_MODE) failed: status=" + << status << " device=" << device_name + << " mode=" << FLAGS_urma_bonding_mode + << " level=" << FLAGS_urma_bonding_level + << ". It must run before segment/JFC/JFR creation"; + errno = status > 0 ? status : EIO; + return false; + } + LOG(INFO) << "URMA bonding mode configured: device=" << device_name + << " mode=" << FLAGS_urma_bonding_mode + << " level=" << FLAGS_urma_bonding_level; + return true; +#else + LOG(ERROR) << "URMA bonding device " << device_name + << " requires provider header urma/urma_ubagg.h"; + errno = ENOTSUP; + return false; +#endif +} + } // namespace // ============================================================================ @@ -355,6 +413,7 @@ static void GlobalRelease() { urma_delete_context(g_context); g_context = nullptr; } + g_is_bonding_device = false; if (g_owns_urma_init) { const urma_status_t status = urma_uninit(); if (status != URMA_SUCCESS) { @@ -447,6 +506,11 @@ static bool GlobalUrmaInitializeImpl() { LOG(ERROR) << "Fail to urma_create_context"; return false; } + // The bonding provider only accepts SET_BONDING_MODE while the context + // has no dependent resource. This must precede register_seg/JFC/JFR. + if (!ConfigureBondingMode(device_name)) { + return false; + } uint32_t device_max_sge = g_device_attr.dev_cap.max_jfs_sge; if (device_max_sge == 0) { device_max_sge = 1; } // urma_jfs_cfg_t::max_sge is uint8_t. @@ -550,6 +614,7 @@ bool SupportedByUrma(std::string protocol) { } urma_context_t* GetUrmaContext() { return g_context; } +bool IsUrmaBondingDevice() { return g_is_bonding_device; } int GetUrmaMaxSge() { return g_max_sge; } size_t GetUrmaRecvBlockSize() { return g_recv_block_size; } diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index d5c9ecd1f0..166ccf0e9a 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -67,6 +67,9 @@ uint64_t GetSegHandle(void* buf); // device / EID). Returns NULL if URMA is not initialized. urma_context_t* GetUrmaContext(); +// Return true when the selected URMA device is a bonding provider device. +bool IsUrmaBondingDevice(); + // If the URMA environment is available. bool IsUrmaAvailable(); From 22f9122ae914f4d22149c70c4909afbcbf29e770 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 16:32:18 +0800 Subject: [PATCH 25/45] fix --- src/brpc/urma/urma_endpoint.cpp | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 1c3aad0ffa..142a4d8bde 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -531,24 +531,20 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { remote.tp_type = static_cast(peer.tp_type); urma_token_t token{}; + const bool use_bonding_extension = + IsUrmaBondingDevice() && remote.trans_mode == URMA_TM_RM; errno = 0; - _resource->remote_jetty = urma_import_jetty(ctx, &remote, &token); - const int plain_import_errno = errno; - bool used_bonding_extension = false; - if (!_resource->remote_jetty && IsUrmaBondingDevice() && - remote.trans_mode == URMA_TM_RM) { + if (use_bonding_extension) { #if BRPC_URMA_HAS_BONDING_EXT - LOG(WARNING) << "Plain urma_import_jetty failed: errno=" - << plain_import_errno - << ", retrying with bonding extension"; + // The bonding provider needs the local jetty to associate its send + // path with the imported target. A plain import may return success + // without setting that association, leaving traffic one-way only. bondp_rjetty_t bonding_remote{}; bonding_remote.base = remote; bonding_remote.base.flag.bs.has_drv_ext = 1; bonding_remote.jetty = _resource->jetty; - errno = 0; _resource->remote_jetty = urma_import_jetty(ctx, &bonding_remote.base, &token); - used_bonding_extension = true; if (_resource->remote_jetty) { LOG(INFO) << "URMA bonding remote jetty import succeeded" << " remote_jetty_id=" << peer.jetty_id; @@ -558,11 +554,11 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { "urma/urma_ubagg.h"; errno = ENOTSUP; #endif + } else { + _resource->remote_jetty = urma_import_jetty(ctx, &remote, &token); } if (!_resource->remote_jetty) { - if (errno == 0) { - errno = plain_import_errno != 0 ? plain_import_errno : EIO; - } + if (errno == 0) { errno = EIO; } char remote_eid[URMA_EID_STR_LEN + 1] = {}; std::snprintf(remote_eid, sizeof(remote_eid), EID_FMT, EID_RAW_ARGS(peer.eid)); @@ -572,7 +568,7 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { << " remote_jetty_id=" << peer.jetty_id << " trans_mode=" << remote.trans_mode << " tp_type=" << remote.tp_type - << " bonding_extension=" << used_bonding_extension; + << " bonding_extension=" << use_bonding_extension; return -1; } return 0; From 23a95bc2147eb3b3d9018f3cde6351c17886b4ba Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 16:42:53 +0800 Subject: [PATCH 26/45] fix --- src/brpc/urma/urma_endpoint.cpp | 38 ++++++++++++++++++++++++++++----- src/brpc/urma/urma_helper.cpp | 19 +++++++++++++++-- 2 files changed, 50 insertions(+), 7 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 142a4d8bde..718da68914 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -1122,13 +1122,17 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FallbackToTcp(tp, true); return nullptr; } - // Pre-post recv buffers. - if (ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { + const bool bonding = IsUrmaBondingDevice(); + // Non-bonding providers do not depend on the imported peer when choosing + // the receive queue, so retain the original early-post behavior. + if (!bonding && + ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { ep->FallbackToTcp(tp, true); return nullptr; } LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA client resources ready on " << s->description(); + << "URMA client resources ready (bonding=" << bonding + << ") on " << s->description(); ep->_state = C_HELLO_SEND; std::unique_ptr hs(CreateClientHandshake(ep)); ep->_handshake_version = hs->ProtocolVersion(); @@ -1160,6 +1164,18 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FailHandshake(tp, saved_errno, "import server resources"); return nullptr; } + // The bonding provider uses the imported target jetty to select a + // compatible physical receive slice. Posting before ImportPeer can put all + // initial RQ entries on an unreachable default slice. + if (bonding && + ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "post client receives"); + return nullptr; + } + LOG_IF(INFO, FLAGS_urma_trace_verbose && bonding) + << "URMA client initial receives posted after peer import on " + << s->description(); LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA client imported server resources on " << s->description(); ep->_state = C_ACK_SEND; @@ -1219,13 +1235,16 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->FailHandshake(tp, saved_errno, "allocate server resources"); return nullptr; } - if (ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { + const bool bonding = IsUrmaBondingDevice(); + if (!bonding && + ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { const int saved_errno = errno ? errno : EIO; ep->FailHandshake(tp, saved_errno, "post server receives"); return nullptr; } LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA server resources ready on " << s->description(); + << "URMA server resources ready (bonding=" << bonding + << ") on " << s->description(); ep->ApplyRemoteHello(remote); ep->_state = S_IMPORT_PEER; if (ep->ImportPeer(remote) < 0) { @@ -1233,6 +1252,15 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->FailHandshake(tp, saved_errno, "import client resources"); return nullptr; } + if (bonding && + ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { + const int saved_errno = errno ? errno : EIO; + ep->FailHandshake(tp, saved_errno, "post server receives"); + return nullptr; + } + LOG_IF(INFO, FLAGS_urma_trace_verbose && bonding) + << "URMA server initial receives posted after peer import on " + << s->description(); LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA server imported client resources on " << s->description(); ep->_state = S_HELLO_SEND; diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 410d3ba2e0..6b36e6d54b 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -168,11 +168,25 @@ size_t AlignUp(size_t v, size_t align) { return (v + align - 1) / align * align; } +bool IsBondingDeviceName(const char* name) { + return name != nullptr && strncmp(name, "bonding", 7) == 0; +} + bool ConfigureBondingMode(const std::string& device_name) { - if (device_name.compare(0, 7, "bonding") != 0) { + const char* context_device_name = + g_context != nullptr && g_context->dev != nullptr + ? g_context->dev->name + : nullptr; + g_is_bonding_device = + IsBondingDeviceName(device_name.c_str()) || + IsBondingDeviceName(context_device_name); + LOG(INFO) << "URMA device mode detected: selected_device=" << device_name + << " context_device=" + << (context_device_name != nullptr ? context_device_name : "") + << " bonding=" << g_is_bonding_device; + if (!g_is_bonding_device) { return true; } - g_is_bonding_device = true; #if BRPC_URMA_HAS_BONDING_EXT if (FLAGS_urma_bonding_mode < 0 || @@ -573,6 +587,7 @@ static bool GlobalUrmaInitializeImpl() { // pointing into unmapped memory. The process reclaims global URMA // resources on exit; GlobalRelease remains available for init rollback. LOG(INFO) << "URMA initialized: device=" << device_name + << " bonding=" << g_is_bonding_device << " max_sge=" << g_max_sge << " buffer_size=" << g_pool_buffer_size << " buffer_count=" << g_pool->buffer_count(); From 43e26def7da273ad3d74873adbca0fccf2caad85 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 17:37:40 +0800 Subject: [PATCH 27/45] fix --- src/brpc/urma/mock_urma.cpp | 15 +++++++++++++++ src/brpc/urma/urma_endpoint.cpp | 18 +++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/brpc/urma/mock_urma.cpp b/src/brpc/urma/mock_urma.cpp index eab2544cf5..47d46f8514 100644 --- a/src/brpc/urma/mock_urma.cpp +++ b/src/brpc/urma/mock_urma.cpp @@ -624,6 +624,21 @@ urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, return URMA_SUCCESS; } +urma_status_t urma_post_jetty_recv_wr(urma_jetty_t *jetty, + urma_jfr_wr_t *wr, + urma_jfr_wr_t **bad_wr) { + urma_jfr_t* shared_jfr = nullptr; + { + std::shared_lock lock(g_rw_mutex); + if (!jetty || jetty_map.find(jetty) == jetty_map.end()) { + if (bad_wr) { *bad_wr = wr; } + return URMA_EINVAL; + } + shared_jfr = jetty->jetty_cfg.shared.jfr; + } + return urma_post_jfr_wr(shared_jfr, wr, bad_wr); +} + int urma_poll_jfc(urma_jfc_t *jfc, int num_entries, urma_cr_t *cr_list) { JfcState* state = nullptr; { diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 718da68914..10a0b78188 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -715,7 +715,17 @@ int UrmaEndpoint::DoPostRecv(void* block, size_t block_size) { urma_sg_t sg{&sge, 1}; urma_jfr_wr_t wr{sg, 0, nullptr}; urma_jfr_wr_t* bad = nullptr; - if (urma_post_jfr_wr(_resource->jfr, &wr, &bad) != URMA_SUCCESS) { + // A bonding jetty uses its imported remote_jetty to select a compatible + // physical receive slice. Posting directly to the shared JFR bypasses + // that association and always selects the default slice. + const urma_status_t status = + IsUrmaBondingDevice() + ? urma_post_jetty_recv_wr(_resource->jetty, &wr, &bad) + : urma_post_jfr_wr(_resource->jfr, &wr, &bad); + if (status != URMA_SUCCESS) { + LOG(WARNING) << "Failed to post URMA receive WR: status=" << status + << " bonding=" << IsUrmaBondingDevice(); + errno = status; return -1; } return 0; @@ -1174,7 +1184,8 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { return nullptr; } LOG_IF(INFO, FLAGS_urma_trace_verbose && bonding) - << "URMA client initial receives posted after peer import on " + << "URMA client initial receives posted via bonding jetty after peer " + "import on " << s->description(); LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA client imported server resources on " << s->description(); @@ -1259,7 +1270,8 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { return nullptr; } LOG_IF(INFO, FLAGS_urma_trace_verbose && bonding) - << "URMA server initial receives posted after peer import on " + << "URMA server initial receives posted via bonding jetty after peer " + "import on " << s->description(); LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA server imported client resources on " << s->description(); From 66efe801a70e761cd497716e87af496c20e59df8 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 18:10:35 +0800 Subject: [PATCH 28/45] fix --- example/urma_performance/client.cpp | 9 +- src/brpc/urma/urma_endpoint.cpp | 147 +++++++++++++++++++++++++--- src/brpc/urma/urma_endpoint.h | 6 +- test/brpc_urma_unittest.cpp | 47 ++++++--- 4 files changed, 177 insertions(+), 32 deletions(-) diff --git a/example/urma_performance/client.cpp b/example/urma_performance/client.cpp index 4369d1dfbd..2d2e985f15 100644 --- a/example/urma_performance/client.cpp +++ b/example/urma_performance/client.cpp @@ -38,7 +38,7 @@ DEFINE_int32(queue_depth, 1, "How many requests can be pending in the queue"); DEFINE_int32(expected_qps, 0, "The expected QPS"); DEFINE_int32(max_thread_num, 16, "The max number of threads are used"); DEFINE_int32(attachment_size, -1, "Attachment size is used (in Bytes)"); -DEFINE_int32(rpc_timeout_ms, 1000, "Timeout for each RPC in milliseconds"); +DEFINE_int32(rpc_timeout_ms, 5000, "Timeout for each RPC in milliseconds"); DEFINE_bool(echo_attachment, false, "Select whether attachment should be echo"); DEFINE_bool(use_urma, true, "Use URMA transport (true) or TCP (false)"); @@ -106,7 +106,9 @@ int main(int argc, char* argv[]) { warmup_req.set_echo_attachment(false); stub.Test(&warmup_cntl, &warmup_req, &warmup_resp, nullptr); if (warmup_cntl.Failed()) { - LOG(ERROR) << "Warm-up RPC failed: " << warmup_cntl.ErrorText(); + LOG(ERROR) << "Warm-up RPC failed after timeout_ms=" + << FLAGS_rpc_timeout_ms << ": " + << warmup_cntl.ErrorText(); return -1; } LOG(INFO) << "Warm-up RPC to " << FLAGS_server @@ -126,7 +128,8 @@ int main(int argc, char* argv[]) { } LOG(INFO) << "URMA performance client started (server=" << FLAGS_server << ", use_urma=" << FLAGS_use_urma - << ", threads=" << thread_num << ")"; + << ", threads=" << thread_num + << ", rpc_timeout_ms=" << FLAGS_rpc_timeout_ms << ")"; while (!brpc::IsAskedToQuit()) { sleep(1); LOG(INFO) << "qps=" << g_latency.qps(1) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 10a0b78188..c865fa34c0 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -571,6 +571,21 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { << " bonding_extension=" << use_bonding_extension; return -1; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA peer import details: bonding=" << use_bonding_extension + << " local_jetty_id=" << _resource->jetty->jetty_id.id + << " remote_jetty_id=" << _resource->remote_jetty->id.id + << " remote_handle=" << _resource->remote_jetty->handle + << " local_associated_remote=" + << static_cast(_resource->jetty->remote_jetty) + << " imported_remote=" + << static_cast(_resource->remote_jetty) + << " association_matches=" + << (_resource->jetty->remote_jetty == _resource->remote_jetty) + << " trans_mode=" << _resource->remote_jetty->trans_mode + << " tp_type=" << _resource->remote_jetty->tp_type + << " state=" << GetStateStr() + << " on " << _socket->description(); return 0; } @@ -666,29 +681,81 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { urma_sg_t sg{sglist, static_cast(sge_index)}; urma_jfs_wr_t wr{}; std::memset(&wr, 0, sizeof(wr)); - const uint32_t ack = - _new_rq_wrs.exchange(0, butil::memory_order_relaxed); - wr.opcode = URMA_OPC_SEND_IMM; + // Match yalantinglibs' payload path: normal data is sent with + // URMA_OPC_SEND. Receive credits are flushed separately by SendImm() + // after SendAck() reaches its threshold. Piggybacking credits turns + // every payload into SEND_IMM and has shown asymmetric completion + // behavior with the bonding provider. + const uint32_t pending_ack = + _new_rq_wrs.load(butil::memory_order_relaxed); + wr.opcode = URMA_OPC_SEND; wr.flag.bs.complete_enable = 1; - wr.flag.bs.solicited_enable = 1; wr.tjetty = _resource->remote_jetty; wr.send.src = sg; - wr.send.imm_data = ack; wr.user_ctx = 1; urma_jfs_wr_t* bad_wr = nullptr; + const uint16_t sq_slot = _sq_current; + const uint32_t local_jetty_id = _resource->jetty->jetty_id.id; + const uint32_t remote_jetty_id = _resource->remote_jetty->id.id; + const bool association_matches = + _resource->jetty->remote_jetty == _resource->remote_jetty; + LOG_IF(WARNING, + FLAGS_urma_trace_verbose && IsUrmaBondingDevice() && + _state.load(butil::memory_order_acquire) != ESTABLISHED) + << "URMA bonding SEND is being posted before handshake " + "establishment: state=" + << GetStateStr() << " sq_slot=" << sq_slot + << " payload_size=" << this_len + << " local_jetty_id=" << local_jetty_id + << " remote_jetty_id=" << remote_jetty_id + << " on " << _socket->description(); + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA posting SEND: sq_slot=" << sq_slot + << " opcode=" << static_cast(wr.opcode) + << " payload_size=" << this_len + << " num_sge=" << sge_index + << " pending_ack=" << pending_ack + << " local_jetty_id=" << local_jetty_id + << " remote_jetty_id=" << remote_jetty_id + << " association_matches=" << association_matches + << " state=" << GetStateStr() + << " sq_window=" << sq_wnd + << " remote_rq_window=" << remote_wnd + << " on " << _socket->description(); int rc = urma_post_jetty_send_wr(_resource->jetty, &wr, &bad_wr); if (rc != URMA_SUCCESS) { - _new_rq_wrs.fetch_add(ack, butil::memory_order_relaxed); + const int provider_errno = errno; LOG(WARNING) << "urma_post_jetty_send_wr failed: " << rc + << ", provider_errno=" << provider_errno + << " (" << berror(provider_errno) << ')' + << ", bad_wr=" << static_cast(bad_wr) + << ", bad_is_current=" << (bad_wr == &wr) + << ", sq_slot=" << sq_slot + << ", local_jetty_id=" << local_jetty_id + << ", remote_jetty_id=" << remote_jetty_id + << ", association_matches=" << association_matches + << ", state=" << GetStateStr() + << ", sq_window=" << sq_wnd + << ", remote_rq_window=" << remote_wnd << ", num_sge=" << sge_index << ", configured_max_sge=" << GetUrmaMaxSge() - << ", payload_size=" << this_len; + << ", payload_size=" << this_len + << " on " << _socket->description(); errno = rc; return -1; } LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA posted SEND: payload_size=" << this_len - << " num_sge=" << sge_index << " ack=" << ack + << "URMA posted SEND: sq_slot=" << sq_slot + << " payload_size=" << this_len + << " num_sge=" << sge_index + << " opcode=" << static_cast(wr.opcode) + << " pending_ack=" << pending_ack + << " local_jetty_id=" << local_jetty_id + << " remote_jetty_id=" << remote_jetty_id + << " association_matches=" << association_matches + << " state=" << GetStateStr() + << " sq_window_after=" << (sq_wnd - 1) + << " remote_rq_window_after=" << (remote_wnd - 1) << " on " << _socket->description(); _sq_current = (_sq_current + 1) % (_sq_size - RESERVED_WR_NUM); _remote_rq_window_size.fetch_sub(1, butil::memory_order_relaxed); @@ -724,7 +791,15 @@ int UrmaEndpoint::DoPostRecv(void* block, size_t block_size) { : urma_post_jfr_wr(_resource->jfr, &wr, &bad); if (status != URMA_SUCCESS) { LOG(WARNING) << "Failed to post URMA receive WR: status=" << status - << " bonding=" << IsUrmaBondingDevice(); + << " bonding=" << IsUrmaBondingDevice() + << " bad_wr=" << static_cast(bad) + << " bad_is_current=" << (bad == &wr) + << " local_jetty_id=" << _resource->jetty->jetty_id.id + << " associated_remote=" + << static_cast( + _resource->jetty->remote_jetty) + << " state=" << GetStateStr() + << " on " << _socket->description(); errno = status; return -1; } @@ -732,6 +807,7 @@ int UrmaEndpoint::DoPostRecv(void* block, size_t block_size) { } int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { + const uint16_t first_rq_slot = _rq_received; for (uint32_t i = 0; i < num; ++i) { size_t block_size = GetUrmaRecvBlockSize(); if (zerocopy) { @@ -768,6 +844,20 @@ int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { } _rq_received = (_rq_received + 1) % _rq_size; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA posted RECV: count=" << num + << " first_rq_slot=" << first_rq_slot + << " next_rq_slot=" << _rq_received + << " block_size=" << GetUrmaRecvBlockSize() + << " zerocopy=" << zerocopy + << " api=" + << (IsUrmaBondingDevice() ? "urma_post_jetty_recv_wr" + : "urma_post_jfr_wr") + << " local_jetty_id=" << _resource->jetty->jetty_id.id + << " associated_remote=" + << static_cast(_resource->jetty->remote_jetty) + << " state=" << GetStateStr() + << " on " << _socket->description(); return 0; } @@ -787,10 +877,32 @@ int UrmaEndpoint::SendImm(uint32_t imm) { wr.send.imm_data = imm; wr.user_ctx = 0; // 0 == pure ack (HandleCompletion reuses budget). urma_jfs_wr_t* bad = nullptr; - if (urma_post_jetty_send_wr(_resource->jetty, &wr, &bad) != URMA_SUCCESS) { + const urma_status_t status = + urma_post_jetty_send_wr(_resource->jetty, &wr, &bad); + if (status != URMA_SUCCESS) { + const int provider_errno = errno; _new_rq_wrs.fetch_add(imm, butil::memory_order_relaxed); + LOG(WARNING) << "Failed to post URMA credit ACK: status=" << status + << " provider_errno=" << provider_errno + << " (" << berror(provider_errno) << ')' + << " bad_wr=" << static_cast(bad) + << " bad_is_current=" << (bad == &wr) + << " imm=" << imm + << " local_jetty_id=" + << _resource->jetty->jetty_id.id + << " remote_jetty_id=" + << _resource->remote_jetty->id.id + << " state=" << GetStateStr() + << " on " << _socket->description(); + errno = status; return -1; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA posted credit ACK: imm=" << imm + << " local_jetty_id=" << _resource->jetty->jetty_id.id + << " remote_jetty_id=" << _resource->remote_jetty->id.id + << " state=" << GetStateStr() + << " on " << _socket->description(); if (_sq_imm_window_size > 0) { --_sq_imm_window_size; } return 0; } @@ -815,6 +927,15 @@ ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { << " length=" << cr.completion_len << " imm=" << (cr.flag.bs.s_r ? cr.imm_data : 0) << " user_ctx=" << cr.user_ctx + << " local_id=" << cr.local_id + << " remote_id=" << (cr.flag.bs.s_r ? cr.remote_id.id : 0) + << " tpn=" << cr.tpn + << " provider_user_data=" << cr.user_data + << " state=" << GetStateStr() + << " sq_window=" + << _sq_window_size.load(butil::memory_order_relaxed) + << " remote_rq_window=" + << _remote_rq_window_size.load(butil::memory_order_relaxed) << " on " << _socket->description(); if (cr.status != URMA_CR_SUCCESS) { LOG(WARNING) << "URMA completion failed, status=" << cr.status; @@ -920,7 +1041,8 @@ void UrmaEndpoint::PollCq(Socket* m) { if (cnt == 0) { break; } LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA polled " << cnt << " completion(s) on " - << s->description(); + << s->description() + << " state=" << ep->GetStateStr(); for (int i = 0; i < cnt; ++i) { if (s->Failed()) { completion_error = ECANCELED; @@ -962,6 +1084,7 @@ void UrmaEndpoint::PollCq(Socket* m) { LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA dispatched " << bytes << " byte(s) to InputMessenger, rc=" << rc + << " state=" << ep->GetStateStr() << " on " << s->description(); } else { LOG(ERROR) << "URMA socket has no InputMessenger: " diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index b269ea36f7..9c55dafced 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -224,8 +224,8 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // Send a pure-ACK URMA_OPC_SEND_IMM WR with no payload. @imm carries the // number of receive WRs reposted for peer-side flow-control credit. int SendImm(uint32_t imm); - // Piggyback ack: if _new_rq_wrs is above the threshold, flush it via - // SendImm. @num is the number of new recv WRs to add. + // Batched credit ack: if _new_rq_wrs is above the threshold, flush it via + // a standalone SendImm. @num is the number of new recv WRs to add. int SendAck(int num); // Handle one completion record. For SEND completions: reclaim the SQ @@ -300,7 +300,7 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // RQ consumer index. uint16_t _rq_received{0}; - // ACK piggyback counters. + // Batched receive-credit ACK counters. uint16_t _accumulated_ack{0}; uint16_t _unsolicited{0}; uint32_t _unsolicited_bytes{0}; diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index 524f339aa1..dcc9acf623 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -385,7 +385,7 @@ TEST_F(UrmaMockTest, post_and_poll_completion) { urma_free_device_list(devices); } -TEST_F(UrmaMockTest, paired_send_moves_payload_and_immediate_credit) { +TEST_F(UrmaMockTest, paired_send_separates_payload_and_immediate_credit) { int num_devices = 0; urma_device_t** devices = urma_get_device_list(&num_devices); ASSERT_NE(nullptr, devices); @@ -456,6 +456,13 @@ TEST_F(UrmaMockTest, paired_send_moves_payload_and_immediate_credit) { nullptr}; urma_sg_t recv_sg{&recv_sge, 1}; urma_jfr_wr_t recv_wr{recv_sg, 99, nullptr}; + char credit_recv_buf[1]{}; + urma_sge_t credit_recv_sge{ + reinterpret_cast(credit_recv_buf), + sizeof(credit_recv_buf), nullptr, nullptr}; + urma_sg_t credit_recv_sg{&credit_recv_sge, 1}; + urma_jfr_wr_t credit_recv_wr{credit_recv_sg, 100, nullptr}; + recv_wr.next = &credit_recv_wr; urma_jfr_wr_t* bad_recv = nullptr; ASSERT_EQ(URMA_SUCCESS, urma_post_jfr_wr(receiver_jfr, &recv_wr, &bad_recv)); @@ -466,28 +473,40 @@ TEST_F(UrmaMockTest, paired_send_moves_payload_and_immediate_credit) { nullptr}; urma_sg_t send_sg{&send_sge, 1}; urma_jfs_wr_t send_wr{}; - send_wr.opcode = URMA_OPC_SEND_IMM; + send_wr.opcode = URMA_OPC_SEND; send_wr.flag.bs.complete_enable = 1; send_wr.tjetty = target; send_wr.user_ctx = 7; send_wr.send.src = send_sg; - send_wr.send.imm_data = 13; + urma_jfs_wr_t credit_wr{}; + credit_wr.opcode = URMA_OPC_SEND_IMM; + credit_wr.flag.bs.complete_enable = 1; + credit_wr.tjetty = target; + credit_wr.user_ctx = 8; + credit_wr.send.imm_data = 13; + send_wr.next = &credit_wr; urma_jfs_wr_t* bad_send = nullptr; ASSERT_EQ(URMA_SUCCESS, urma_post_jetty_send_wr(sender, &send_wr, &bad_send)); - urma_cr_t sender_cr{}; - ASSERT_EQ(1, urma_poll_jfc(sender_jfc, 1, &sender_cr)); - EXPECT_EQ(0, sender_cr.flag.bs.s_r); - EXPECT_EQ(7u, sender_cr.user_ctx); - - urma_cr_t receiver_cr{}; - ASSERT_EQ(1, urma_poll_jfc(receiver_jfc, 1, &receiver_cr)); - EXPECT_EQ(1, receiver_cr.flag.bs.s_r); - EXPECT_EQ(URMA_CR_OPC_SEND_WITH_IMM, receiver_cr.opcode); - EXPECT_EQ(13u, receiver_cr.imm_data); - EXPECT_EQ(sizeof(payload), receiver_cr.completion_len); + urma_cr_t sender_cr[2]{}; + ASSERT_EQ(2, urma_poll_jfc(sender_jfc, 2, sender_cr)); + EXPECT_EQ(0, sender_cr[0].flag.bs.s_r); + EXPECT_EQ(7u, sender_cr[0].user_ctx); + EXPECT_EQ(0, sender_cr[1].flag.bs.s_r); + EXPECT_EQ(8u, sender_cr[1].user_ctx); + + urma_cr_t receiver_cr[2]{}; + ASSERT_EQ(2, urma_poll_jfc(receiver_jfc, 2, receiver_cr)); + EXPECT_EQ(1, receiver_cr[0].flag.bs.s_r); + EXPECT_EQ(URMA_CR_OPC_SEND, receiver_cr[0].opcode); + EXPECT_EQ(0u, receiver_cr[0].imm_data); + EXPECT_EQ(sizeof(payload), receiver_cr[0].completion_len); EXPECT_EQ(0, memcmp(payload, recv_buf, sizeof(payload))); + EXPECT_EQ(1, receiver_cr[1].flag.bs.s_r); + EXPECT_EQ(URMA_CR_OPC_SEND_WITH_IMM, receiver_cr[1].opcode); + EXPECT_EQ(13u, receiver_cr[1].imm_data); + EXPECT_EQ(0u, receiver_cr[1].completion_len); urma_unimport_jetty(target); urma_delete_jetty(receiver); From 0802d9171799d3f9019ed8357b115521346f641a Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 18:27:26 +0800 Subject: [PATCH 29/45] fix --- src/brpc/urma/urma_endpoint.cpp | 76 ++++++++++++++++++++++++--------- src/brpc/urma/urma_endpoint.h | 9 ++++ 2 files changed, 66 insertions(+), 19 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index c865fa34c0..9610418974 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -176,6 +177,7 @@ void UrmaEndpoint::Reset() { _accumulated_ack = 0; _unsolicited = 0; _unsolicited_bytes = 0; + _pending_received_bytes.store(0, butil::memory_order_relaxed); _sbuf.clear(); _rbuf.clear(); _rbuf_data.clear(); @@ -1012,6 +1014,58 @@ ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { return static_cast(cr.completion_len); } +void UrmaEndpoint::DispatchReceivedBytes(SocketUniquePtr& s, ssize_t bytes) { + int64_t pending = _pending_received_bytes.load(butil::memory_order_relaxed); + if (bytes > 0) { + pending = _pending_received_bytes.fetch_add( + bytes, butil::memory_order_acq_rel) + bytes; + } + + const State state = _state.load(butil::memory_order_acquire); + if (state != ESTABLISHED) { + LOG_IF(INFO, FLAGS_urma_trace_verbose && bytes > 0) + << "URMA deferred " << bytes + << " received byte(s) until handshake establishment" + << " pending_bytes=" << pending + << " state=" << GetStateStr() + << " on " << s->description(); + return; + } + + // PollCq and the handshake bthread can both reach this method when the + // state changes to ESTABLISHED. Serialize them so each byte added to + // _socket->_read_buf is reported to InputMessenger exactly once. + std::unique_lock dispatch_lock(_dispatch_mutex); + if (_state.load(butil::memory_order_acquire) != ESTABLISHED) { + return; + } + pending = _pending_received_bytes.exchange( + 0, butil::memory_order_acq_rel); + if (pending <= 0 || s->Failed()) { + return; + } + + auto* messenger = static_cast(s->user()); + if (!messenger) { + LOG(ERROR) << "URMA socket has no InputMessenger: " + << s->description(); + return; + } + + const int64_t received_us = butil::cpuwide_time_us(); + const int64_t base_realtime = butil::gettimeofday_us() - received_us; + InputMessageClosure last_msg; + const int rc = + messenger->ProcessNewMessage(s.get(), static_cast(pending), + false, received_us, base_realtime, + last_msg); + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA dispatched " << pending + << " byte(s) to InputMessenger, rc=" << rc + << " state=" << GetStateStr() + << " on " << s->description(); +} + void UrmaEndpoint::PollCq(Socket* m) { auto* ep = static_cast(m->user()); if (!ep || !ep->_resource || !ep->_resource->jfc) { return; } @@ -1029,7 +1083,6 @@ void UrmaEndpoint::PollCq(Socket* m) { ssize_t bytes = 0; int completion_error = 0; - InputMessageClosure last_msg; while (true) { int n = std::max(1, std::min(FLAGS_urma_cqe_poll_once, 32)); urma_cr_t crs[32]; @@ -1073,24 +1126,7 @@ void UrmaEndpoint::PollCq(Socket* m) { } return; } - if (bytes > 0) { - int64_t received_us = butil::cpuwide_time_us(); - int64_t base_realtime = butil::gettimeofday_us() - received_us; - auto* messenger = static_cast(s->user()); - if (messenger) { - const int rc = - messenger->ProcessNewMessage(s.get(), bytes, false, received_us, - base_realtime, last_msg); - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA dispatched " << bytes - << " byte(s) to InputMessenger, rc=" << rc - << " state=" << ep->GetStateStr() - << " on " << s->description(); - } else { - LOG(ERROR) << "URMA socket has no InputMessenger: " - << s->description(); - } - } + ep->DispatchReceivedBytes(s, bytes); } // ============================================================================ @@ -1325,6 +1361,7 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA client handshake established (v" << ep->_handshake_version << ") on " << s->description(); + ep->DispatchReceivedBytes(s, 0); return nullptr; } @@ -1427,6 +1464,7 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA server handshake established (v" << ep->_handshake_version << ") on " << s->description(); + ep->DispatchReceivedBytes(s, 0); } else { ep->FallbackToTcp(tp, true); } diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index 9c55dafced..36bdae00e1 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -26,6 +26,7 @@ #include "butil/iobuf.h" #include "butil/macros.h" #include "butil/containers/mpsc_queue.h" +#include "butil/synchronization/lock.h" #include "bthread/types.h" #include "brpc/socket.h" @@ -234,6 +235,12 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // (0 for send completions), or -1 on error (errno set). ssize_t HandleCompletion(const urma_cr_t& cr); + // Queue received bytes for InputMessenger. CQ receive completions can + // arrive while the server is still waiting for the final TCP handshake + // ACK. Keep those bytes in _socket->_read_buf and dispatch them only after + // ESTABLISHED, matching the connection-ready boundary seen by user code. + void DispatchReceivedBytes(SocketUniquePtr& s, ssize_t bytes); + // Consume one async event from the JFCE fd (event mode only). The caller // must poll the JFC before acknowledging and rearming the event. int WaitCqEvent(SocketUniquePtr& s, urma_jfc_t** event_jfc); @@ -264,6 +271,8 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // Handshake state. butil::atomic _state{UNINIT}; int _handshake_version{0}; // 0 = unnegotiated; 2 = v2; 3 = v3 + butil::atomic _pending_received_bytes{0}; + butil::Mutex _dispatch_mutex; // The URMA resources (jetty / jfc / jfr / jfce / imported peer objects). UrmaResource* _resource{nullptr}; From 7ba58e86d374ea6a29557aaac04fe5b0af77ea4f Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 18:40:08 +0800 Subject: [PATCH 30/45] Fix URMA bonding jetty association during peer import --- src/brpc/urma/urma_endpoint.cpp | 37 +++++++++++++++++++++++ test/brpc_urma_unittest.cpp | 52 ++++++++++++++++++++++++++++++++- 2 files changed, 88 insertions(+), 1 deletion(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 9610418974..a9eebda4cd 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -126,6 +126,12 @@ std::vector UrmaEndpoint::_poller_groups; // ============================================================================ UrmaResource::~UrmaResource() { + // The bonding RM provider uses this public association as a receive-path + // routing hint. Clear it before the imported target is released so the + // local jetty never retains a dangling pointer during teardown. + if (jetty && jetty->remote_jetty == remote_jetty) { + jetty->remote_jetty = nullptr; + } if (remote_jetty) { urma_unimport_jetty(remote_jetty); } if (remote_seg) { urma_unimport_seg(remote_seg); } if (jetty) { urma_delete_jetty(jetty); } @@ -573,6 +579,37 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { << " bonding_extension=" << use_bonding_extension; return -1; } + if (use_bonding_extension) { + urma_target_jetty_t*& associated_remote = + _resource->jetty->remote_jetty; + if (associated_remote == nullptr) { + // bondp_import_jetty() is expected to set this for an RM import + // carrying bondp_rjetty_t::jetty. Some provider versions import + // the target successfully but leave the public association null. + // bondp's standalone receive scheduler then posts every RQE to the + // default physical slice, which can make the reverse SEND wait + // forever when its selected target slice differs. This assignment + // mirrors the provider's own RM extended-import behavior; do not + // call urma_bind_jetty(), which is restricted to URMA_TM_RC. + associated_remote = _resource->remote_jetty; + LOG(WARNING) + << "URMA bonding provider left RM jetty association unset; " + "installed receive-path association explicitly" + << " local_jetty_id=" << _resource->jetty->jetty_id.id + << " remote_jetty_id=" << _resource->remote_jetty->id.id + << " on " << _socket->description(); + } else if (associated_remote != _resource->remote_jetty) { + LOG(ERROR) + << "URMA bonding jetty is associated with an unexpected target" + << " local_jetty_id=" << _resource->jetty->jetty_id.id + << " expected_remote_jetty_id=" + << _resource->remote_jetty->id.id + << " actual_remote_jetty_id=" << associated_remote->id.id + << " on " << _socket->description(); + errno = EPROTO; + return -1; + } + } LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA peer import details: bonding=" << use_bonding_extension << " local_jetty_id=" << _resource->jetty->jetty_id.id diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index dcc9acf623..e4b94806b5 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -385,7 +385,8 @@ TEST_F(UrmaMockTest, post_and_poll_completion) { urma_free_device_list(devices); } -TEST_F(UrmaMockTest, paired_send_separates_payload_and_immediate_credit) { +TEST_F(UrmaMockTest, + paired_send_is_bidirectional_and_separates_immediate_credit) { int num_devices = 0; urma_device_t** devices = urma_get_device_list(&num_devices); ASSERT_NE(nullptr, devices); @@ -508,6 +509,55 @@ TEST_F(UrmaMockTest, paired_send_separates_payload_and_immediate_credit) { EXPECT_EQ(13u, receiver_cr[1].imm_data); EXPECT_EQ(0u, receiver_cr[1].completion_len); + // Exercise the response direction as well. The production bonding path + // installs these public RM associations when an extended import succeeds + // without doing so, then posts receives through the duplex jetty. + urma_rjetty_t sender_remote = remote; + sender_remote.jetty_id = sender->jetty_id; + urma_target_jetty_t* sender_target = + urma_import_jetty(ctx, &sender_remote, &token); + ASSERT_NE(nullptr, sender_target); + sender->remote_jetty = target; + receiver->remote_jetty = sender_target; + + char response_buf[64]{}; + urma_sge_t response_recv_sge{ + reinterpret_cast(response_buf), sizeof(response_buf), + nullptr, nullptr}; + urma_sg_t response_recv_sg{&response_recv_sge, 1}; + urma_jfr_wr_t response_recv_wr{response_recv_sg, 101, nullptr}; + ASSERT_EQ(URMA_SUCCESS, + urma_post_jetty_recv_wr(sender, &response_recv_wr, &bad_recv)); + + const char response[] = "urma-response"; + urma_sge_t response_send_sge{ + reinterpret_cast(response), sizeof(response), nullptr, + nullptr}; + urma_sg_t response_send_sg{&response_send_sge, 1}; + urma_jfs_wr_t response_send_wr{}; + response_send_wr.opcode = URMA_OPC_SEND; + response_send_wr.flag.bs.complete_enable = 1; + response_send_wr.tjetty = sender_target; + response_send_wr.user_ctx = 9; + response_send_wr.send.src = response_send_sg; + ASSERT_EQ(URMA_SUCCESS, + urma_post_jetty_send_wr(receiver, &response_send_wr, &bad_send)); + + urma_cr_t response_send_cr{}; + ASSERT_EQ(1, urma_poll_jfc(receiver_jfc, 1, &response_send_cr)); + EXPECT_EQ(0, response_send_cr.flag.bs.s_r); + EXPECT_EQ(9u, response_send_cr.user_ctx); + + urma_cr_t response_recv_cr{}; + ASSERT_EQ(1, urma_poll_jfc(sender_jfc, 1, &response_recv_cr)); + EXPECT_EQ(1, response_recv_cr.flag.bs.s_r); + EXPECT_EQ(URMA_CR_OPC_SEND, response_recv_cr.opcode); + EXPECT_EQ(sizeof(response), response_recv_cr.completion_len); + EXPECT_EQ(0, memcmp(response, response_buf, sizeof(response))); + + sender->remote_jetty = nullptr; + receiver->remote_jetty = nullptr; + urma_unimport_jetty(sender_target); urma_unimport_jetty(target); urma_delete_jetty(receiver); urma_delete_jetty(sender); From 47d0965cae0bf16252f27ac471dde76d4229a41e Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 18:54:18 +0800 Subject: [PATCH 31/45] fix --- src/brpc/urma/urma_endpoint.cpp | 88 ++++++--------------------------- test/brpc_urma_unittest.cpp | 12 ++--- 2 files changed, 17 insertions(+), 83 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index a9eebda4cd..c9b3a7b57a 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -126,12 +126,6 @@ std::vector UrmaEndpoint::_poller_groups; // ============================================================================ UrmaResource::~UrmaResource() { - // The bonding RM provider uses this public association as a receive-path - // routing hint. Clear it before the imported target is released so the - // local jetty never retains a dangling pointer during teardown. - if (jetty && jetty->remote_jetty == remote_jetty) { - jetty->remote_jetty = nullptr; - } if (remote_jetty) { urma_unimport_jetty(remote_jetty); } if (remote_seg) { urma_unimport_seg(remote_seg); } if (jetty) { urma_delete_jetty(jetty); } @@ -579,48 +573,13 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { << " bonding_extension=" << use_bonding_extension; return -1; } - if (use_bonding_extension) { - urma_target_jetty_t*& associated_remote = - _resource->jetty->remote_jetty; - if (associated_remote == nullptr) { - // bondp_import_jetty() is expected to set this for an RM import - // carrying bondp_rjetty_t::jetty. Some provider versions import - // the target successfully but leave the public association null. - // bondp's standalone receive scheduler then posts every RQE to the - // default physical slice, which can make the reverse SEND wait - // forever when its selected target slice differs. This assignment - // mirrors the provider's own RM extended-import behavior; do not - // call urma_bind_jetty(), which is restricted to URMA_TM_RC. - associated_remote = _resource->remote_jetty; - LOG(WARNING) - << "URMA bonding provider left RM jetty association unset; " - "installed receive-path association explicitly" - << " local_jetty_id=" << _resource->jetty->jetty_id.id - << " remote_jetty_id=" << _resource->remote_jetty->id.id - << " on " << _socket->description(); - } else if (associated_remote != _resource->remote_jetty) { - LOG(ERROR) - << "URMA bonding jetty is associated with an unexpected target" - << " local_jetty_id=" << _resource->jetty->jetty_id.id - << " expected_remote_jetty_id=" - << _resource->remote_jetty->id.id - << " actual_remote_jetty_id=" << associated_remote->id.id - << " on " << _socket->description(); - errno = EPROTO; - return -1; - } - } LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA peer import details: bonding=" << use_bonding_extension << " local_jetty_id=" << _resource->jetty->jetty_id.id << " remote_jetty_id=" << _resource->remote_jetty->id.id << " remote_handle=" << _resource->remote_jetty->handle - << " local_associated_remote=" + << " provider_associated_remote=" << static_cast(_resource->jetty->remote_jetty) - << " imported_remote=" - << static_cast(_resource->remote_jetty) - << " association_matches=" - << (_resource->jetty->remote_jetty == _resource->remote_jetty) << " trans_mode=" << _resource->remote_jetty->trans_mode << " tp_type=" << _resource->remote_jetty->tp_type << " state=" << GetStateStr() @@ -736,8 +695,6 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { const uint16_t sq_slot = _sq_current; const uint32_t local_jetty_id = _resource->jetty->jetty_id.id; const uint32_t remote_jetty_id = _resource->remote_jetty->id.id; - const bool association_matches = - _resource->jetty->remote_jetty == _resource->remote_jetty; LOG_IF(WARNING, FLAGS_urma_trace_verbose && IsUrmaBondingDevice() && _state.load(butil::memory_order_acquire) != ESTABLISHED) @@ -756,7 +713,6 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { << " pending_ack=" << pending_ack << " local_jetty_id=" << local_jetty_id << " remote_jetty_id=" << remote_jetty_id - << " association_matches=" << association_matches << " state=" << GetStateStr() << " sq_window=" << sq_wnd << " remote_rq_window=" << remote_wnd @@ -772,7 +728,6 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { << ", sq_slot=" << sq_slot << ", local_jetty_id=" << local_jetty_id << ", remote_jetty_id=" << remote_jetty_id - << ", association_matches=" << association_matches << ", state=" << GetStateStr() << ", sq_window=" << sq_wnd << ", remote_rq_window=" << remote_wnd @@ -791,7 +746,6 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { << " pending_ack=" << pending_ack << " local_jetty_id=" << local_jetty_id << " remote_jetty_id=" << remote_jetty_id - << " association_matches=" << association_matches << " state=" << GetStateStr() << " sq_window_after=" << (sq_wnd - 1) << " remote_rq_window_after=" << (remote_wnd - 1) @@ -821,20 +775,18 @@ int UrmaEndpoint::DoPostRecv(void* block, size_t block_size) { urma_sg_t sg{&sge, 1}; urma_jfr_wr_t wr{sg, 0, nullptr}; urma_jfr_wr_t* bad = nullptr; - // A bonding jetty uses its imported remote_jetty to select a compatible - // physical receive slice. Posting directly to the shared JFR bypasses - // that association and always selects the default slice. + // Match yalantinglibs' shared-JFR path on every device, including bonding. + // The bonding provider owns physical receive scheduling for the JFR; a + // local jetty-to-target association is not part of the RM receive API. const urma_status_t status = - IsUrmaBondingDevice() - ? urma_post_jetty_recv_wr(_resource->jetty, &wr, &bad) - : urma_post_jfr_wr(_resource->jfr, &wr, &bad); + urma_post_jfr_wr(_resource->jfr, &wr, &bad); if (status != URMA_SUCCESS) { LOG(WARNING) << "Failed to post URMA receive WR: status=" << status << " bonding=" << IsUrmaBondingDevice() << " bad_wr=" << static_cast(bad) << " bad_is_current=" << (bad == &wr) << " local_jetty_id=" << _resource->jetty->jetty_id.id - << " associated_remote=" + << " provider_associated_remote=" << static_cast( _resource->jetty->remote_jetty) << " state=" << GetStateStr() @@ -889,11 +841,9 @@ int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { << " next_rq_slot=" << _rq_received << " block_size=" << GetUrmaRecvBlockSize() << " zerocopy=" << zerocopy - << " api=" - << (IsUrmaBondingDevice() ? "urma_post_jetty_recv_wr" - : "urma_post_jfr_wr") + << " api=urma_post_jfr_wr" << " local_jetty_id=" << _resource->jetty->jetty_id.id - << " associated_remote=" + << " provider_associated_remote=" << static_cast(_resource->jetty->remote_jetty) << " state=" << GetStateStr() << " on " << _socket->description(); @@ -1329,10 +1279,9 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { return nullptr; } const bool bonding = IsUrmaBondingDevice(); - // Non-bonding providers do not depend on the imported peer when choosing - // the receive queue, so retain the original early-post behavior. - if (!bonding && - ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { + // Yalanting preposts the shared JFR before sending the client hello. This + // gives the peer a ready receive queue as soon as its import completes. + if (ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { ep->FallbackToTcp(tp, true); return nullptr; } @@ -1370,18 +1319,9 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FailHandshake(tp, saved_errno, "import server resources"); return nullptr; } - // The bonding provider uses the imported target jetty to select a - // compatible physical receive slice. Posting before ImportPeer can put all - // initial RQ entries on an unreachable default slice. - if (bonding && - ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { - const int saved_errno = errno ? errno : EIO; - ep->FailHandshake(tp, saved_errno, "post client receives"); - return nullptr; - } LOG_IF(INFO, FLAGS_urma_trace_verbose && bonding) - << "URMA client initial receives posted via bonding jetty after peer " - "import on " + << "URMA client initial receives were preposted via shared JFR before " + "hello on " << s->description(); LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA client imported server resources on " << s->description(); @@ -1467,7 +1407,7 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { return nullptr; } LOG_IF(INFO, FLAGS_urma_trace_verbose && bonding) - << "URMA server initial receives posted via bonding jetty after peer " + << "URMA server initial receives posted via shared JFR after peer " "import on " << s->description(); LOG_IF(INFO, FLAGS_urma_trace_verbose) diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index e4b94806b5..1932b18da2 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -509,17 +509,13 @@ TEST_F(UrmaMockTest, EXPECT_EQ(13u, receiver_cr[1].imm_data); EXPECT_EQ(0u, receiver_cr[1].completion_len); - // Exercise the response direction as well. The production bonding path - // installs these public RM associations when an extended import succeeds - // without doing so, then posts receives through the duplex jetty. + // Exercise the response direction as well. Production follows + // yalantinglibs and posts all receive WRs through the shared JFR. urma_rjetty_t sender_remote = remote; sender_remote.jetty_id = sender->jetty_id; urma_target_jetty_t* sender_target = urma_import_jetty(ctx, &sender_remote, &token); ASSERT_NE(nullptr, sender_target); - sender->remote_jetty = target; - receiver->remote_jetty = sender_target; - char response_buf[64]{}; urma_sge_t response_recv_sge{ reinterpret_cast(response_buf), sizeof(response_buf), @@ -527,7 +523,7 @@ TEST_F(UrmaMockTest, urma_sg_t response_recv_sg{&response_recv_sge, 1}; urma_jfr_wr_t response_recv_wr{response_recv_sg, 101, nullptr}; ASSERT_EQ(URMA_SUCCESS, - urma_post_jetty_recv_wr(sender, &response_recv_wr, &bad_recv)); + urma_post_jfr_wr(sender_jfr, &response_recv_wr, &bad_recv)); const char response[] = "urma-response"; urma_sge_t response_send_sge{ @@ -555,8 +551,6 @@ TEST_F(UrmaMockTest, EXPECT_EQ(sizeof(response), response_recv_cr.completion_len); EXPECT_EQ(0, memcmp(response, response_buf, sizeof(response))); - sender->remote_jetty = nullptr; - receiver->remote_jetty = nullptr; urma_unimport_jetty(sender_target); urma_unimport_jetty(target); urma_delete_jetty(receiver); From 29a257ba52ccd7f40237a747a76dfc03c0be9836 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Wed, 29 Jul 2026 19:08:18 +0800 Subject: [PATCH 32/45] fix --- src/brpc/urma/urma_endpoint.cpp | 45 ++++++++++++++++++++++++++++++--- src/brpc/urma/urma_helper.cpp | 13 ++++++++++ src/brpc/urma/urma_helper.h | 6 +++++ 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index c9b3a7b57a..ed3135fb2e 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -247,7 +247,12 @@ void UrmaEndpoint::MakeLocalParsedHello(ParsedHello* out) const { if (_resource && _resource->jetty) { out->jetty_id = _resource->jetty->jetty_id.id; out->uasid = _resource->jetty->jetty_id.uasid; - std::memcpy(out->eid, _resource->jetty->jetty_id.eid.raw, 16); + const urma_eid_t* local_eid = GetUrmaLocalEid(); + const uint8_t* advertised_eid = + local_eid != nullptr + ? local_eid->raw + : _resource->jetty->jetty_id.eid.raw; + std::memcpy(out->eid, advertised_eid, 16); } out->tp_type = static_cast(URMA_CTP); // Pool segment: flatten g_pool_seg's seg fields. @@ -260,6 +265,30 @@ void UrmaEndpoint::MakeLocalParsedHello(ParsedHello* out) const { out->seg_len = pool->seg.len; out->seg_token_id = pool->seg.token_id; } + if (FLAGS_urma_trace_verbose && _resource && _resource->jetty) { + char advertised_eid[URMA_EID_STR_LEN + 1] = {}; + char jetty_eid[URMA_EID_STR_LEN + 1] = {}; + char segment_eid[URMA_EID_STR_LEN + 1] = {}; + std::snprintf(advertised_eid, sizeof(advertised_eid), EID_FMT, + EID_RAW_ARGS(out->eid)); + std::snprintf(jetty_eid, sizeof(jetty_eid), EID_FMT, + EID_ARGS(_resource->jetty->jetty_id.eid)); + std::snprintf(segment_eid, sizeof(segment_eid), EID_FMT, + EID_RAW_ARGS(out->seg_eid)); + LOG(INFO) << "URMA local hello identity: eid_source=" + << (GetUrmaLocalEid() != nullptr ? "selected_device" + : "jetty_fallback") + << " advertised_eid=" << advertised_eid + << " jetty_eid=" << jetty_eid + << " advertised_matches_jetty=" + << (std::memcmp(out->eid, + _resource->jetty->jetty_id.eid.raw, + sizeof(out->eid)) == 0) + << " segment_eid=" << segment_eid + << " uasid=" << out->uasid + << " jetty_id=" << out->jetty_id + << " on " << _socket->description(); + } } void UrmaEndpoint::FillLocalHelloV2(v2_wire::HelloMessage* out) const { @@ -573,15 +602,25 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { << " bonding_extension=" << use_bonding_extension; return -1; } + char peer_eid[URMA_EID_STR_LEN + 1] = {}; + char peer_seg_eid[URMA_EID_STR_LEN + 1] = {}; + std::snprintf(peer_eid, sizeof(peer_eid), EID_FMT, + EID_RAW_ARGS(peer.eid)); + std::snprintf(peer_seg_eid, sizeof(peer_seg_eid), EID_FMT, + EID_RAW_ARGS(peer.seg_eid)); LOG_IF(INFO, FLAGS_urma_trace_verbose) << "URMA peer import details: bonding=" << use_bonding_extension + << " peer_eid=" << peer_eid + << " peer_seg_eid=" << peer_seg_eid << " local_jetty_id=" << _resource->jetty->jetty_id.id << " remote_jetty_id=" << _resource->remote_jetty->id.id << " remote_handle=" << _resource->remote_jetty->handle << " provider_associated_remote=" << static_cast(_resource->jetty->remote_jetty) - << " trans_mode=" << _resource->remote_jetty->trans_mode - << " tp_type=" << _resource->remote_jetty->tp_type + << " requested_trans_mode=" << remote.trans_mode + << " imported_trans_mode=" << _resource->remote_jetty->trans_mode + << " requested_tp_type=" << remote.tp_type + << " imported_tp_type=" << _resource->remote_jetty->tp_type << " state=" << GetStateStr() << " on " << _socket->description(); return 0; diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 6b36e6d54b..8a0a204285 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -125,6 +125,8 @@ butil::atomic g_urma_available(false); static urma_device_t* g_device = nullptr; static urma_context_t* g_context = nullptr; +static urma_eid_t g_local_eid{}; +static bool g_has_local_eid = false; static urma_device_attr_t g_device_attr{}; static int g_max_sge = 1; static size_t g_recv_block_size = 8 * 1024; @@ -427,6 +429,8 @@ static void GlobalRelease() { urma_delete_context(g_context); g_context = nullptr; } + g_local_eid = urma_eid_t{}; + g_has_local_eid = false; g_is_bonding_device = false; if (g_owns_urma_init) { const urma_status_t status = urma_uninit(); @@ -512,6 +516,12 @@ static bool GlobalUrmaInitializeImpl() { g_device = nullptr; return false; } + // Retain the exact EID used to create the context. Yalanting advertises + // this device EID during its handshake instead of jetty_id.eid. The + // distinction matters for a bonding virtual device whose jetty can carry + // a provider-selected physical EID. + g_local_eid = eids[0].eid; + g_has_local_eid = true; g_context = urma_create_context(found, eids[0].eid_index); urma_free_eid_list(eids); urma_free_device_list(devices); @@ -629,6 +639,9 @@ bool SupportedByUrma(std::string protocol) { } urma_context_t* GetUrmaContext() { return g_context; } +const urma_eid_t* GetUrmaLocalEid() { + return g_has_local_eid ? &g_local_eid : nullptr; +} bool IsUrmaBondingDevice() { return g_is_bonding_device; } int GetUrmaMaxSge() { return g_max_sge; } size_t GetUrmaRecvBlockSize() { return g_recv_block_size; } diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index 166ccf0e9a..88e7039144 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -67,6 +67,12 @@ uint64_t GetSegHandle(void* buf); // device / EID). Returns NULL if URMA is not initialized. urma_context_t* GetUrmaContext(); +// Get the EID selected when the global context was created. This is the +// device EID that must be advertised to peers, especially for bonding +// devices where a created jetty may expose a provider-specific physical EID. +// Returns NULL if URMA is not initialized. +const urma_eid_t* GetUrmaLocalEid(); + // Return true when the selected URMA device is a bonding provider device. bool IsUrmaBondingDevice(); From 74a02b39a30211280af3b7e8e58dcd40b532800f Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 09:40:03 +0800 Subject: [PATCH 33/45] log --- example/urma_performance/server.cpp | 2 ++ src/brpc/urma/urma_endpoint.cpp | 4 +-- src/brpc/urma/urma_helper.cpp | 47 +++++++++++++++++++++++++++++ src/brpc/urma/urma_helper.h | 8 +++++ test/brpc_urma_unittest.cpp | 10 ++++++ 5 files changed, 69 insertions(+), 2 deletions(-) diff --git a/example/urma_performance/server.cpp b/example/urma_performance/server.cpp index 87c8c69136..617d79d632 100644 --- a/example/urma_performance/server.cpp +++ b/example/urma_performance/server.cpp @@ -40,11 +40,13 @@ class PerfTestServiceImpl : public PerfTestService { const PerfTestRequest* request, PerfTestResponse* response, google::protobuf::Closure* done) { + LOG(ERROR) << "Enter server Test()"; brpc::ClosureGuard done_guard(done); uint64_t last = g_last_time.load(butil::memory_order_relaxed); uint64_t now = butil::monotonic_time_us(); if (now > last && now - last > 100000) { if (g_last_time.exchange(now, butil::memory_order_relaxed) == last) { + LOG(ERROR) << "Updating CPU usage"; response->set_cpu_usage(bvar::Variable::describe_exposed("process_cpu_usage")); } else { response->set_cpu_usage(""); diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index ed3135fb2e..b7f9e10f19 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -442,7 +442,7 @@ int UrmaEndpoint::AllocateResources() { jetty_cfg.flag.bs.share_jfr = 1; jetty_cfg.jfs_cfg.depth = static_cast(_sq_size); jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; - jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; + jetty_cfg.jfs_cfg.priority = GetUrmaJettyPriority(); jetty_cfg.jfs_cfg.max_sge = static_cast(GetUrmaMaxSge()); jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; @@ -1799,7 +1799,7 @@ int UrmaEndpoint::GlobalInitialize() { jetty_cfg.flag.bs.share_jfr = 1; jetty_cfg.jfs_cfg.depth = static_cast(FLAGS_urma_sq_size); jetty_cfg.jfs_cfg.trans_mode = URMA_TM_RM; - jetty_cfg.jfs_cfg.priority = URMA_MAX_PRIORITY; + jetty_cfg.jfs_cfg.priority = GetUrmaJettyPriority(); jetty_cfg.jfs_cfg.max_sge = static_cast(GetUrmaMaxSge()); jetty_cfg.jfs_cfg.rnr_retry = URMA_TYPICAL_RNR_RETRY; diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 8a0a204285..35359e641b 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -131,6 +131,9 @@ static urma_device_attr_t g_device_attr{}; static int g_max_sge = 1; static size_t g_recv_block_size = 8 * 1024; static bool g_is_bonding_device = false; +// Yalanting uses priority 6 for CTP. Prefer the device capability table when +// available, and retain 6 as the compatibility fallback. +static uint8_t g_jetty_priority = 6; // urma_init/urma_uninit manage process-global liburma state. Only uninitialize // it when this helper performed the successful initialization; URMA_EEXIST // means another component owns that state. @@ -174,6 +177,22 @@ bool IsBondingDeviceName(const char* name) { return name != nullptr && strncmp(name, "bonding", 7) == 0; } +union urma_tp_type_en TpTypeCapability(urma_tp_type_t tp_type) { + union urma_tp_type_en capability{}; + switch (tp_type) { + case URMA_RTP: + capability.bs.rtp = 1; + break; + case URMA_CTP: + capability.bs.ctp = 1; + break; + case URMA_UTP: + capability.bs.utp = 1; + break; + } + return capability; +} + bool ConfigureBondingMode(const std::string& device_name) { const char* context_device_name = g_context != nullptr && g_context->dev != nullptr @@ -432,6 +451,7 @@ static void GlobalRelease() { g_local_eid = urma_eid_t{}; g_has_local_eid = false; g_is_bonding_device = false; + g_jetty_priority = 6; if (g_owns_urma_init) { const urma_status_t status = urma_uninit(); if (status != URMA_SUCCESS) { @@ -507,6 +527,21 @@ static bool GlobalUrmaInitializeImpl() { g_device = nullptr; return false; } + const int ctp_priority = + FindUrmaPriorityForTpType(g_device_attr, URMA_CTP); + if (ctp_priority >= 0) { + g_jetty_priority = static_cast(ctp_priority); + } else { + LOG(WARNING) << "URMA device does not report a CTP priority; " + "falling back to Yalanting-compatible priority " + << static_cast(g_jetty_priority); + } + const auto& selected_priority = + g_device_attr.dev_cap.priority_info[g_jetty_priority]; + LOG(INFO) << "URMA selected CTP jetty priority=" + << static_cast(g_jetty_priority) + << " tp_cap=" << selected_priority.tp_type.value + << " sl=" << selected_priority.SL; uint32_t eid_cnt = 0; urma_eid_info_t* eids = urma_get_eid_list(found, &eid_cnt); if (!eids || eid_cnt == 0) { @@ -643,6 +678,18 @@ const urma_eid_t* GetUrmaLocalEid() { return g_has_local_eid ? &g_local_eid : nullptr; } bool IsUrmaBondingDevice() { return g_is_bonding_device; } +int FindUrmaPriorityForTpType(const urma_device_attr_t& attr, + urma_tp_type_t tp_type) { + const union urma_tp_type_en expected = TpTypeCapability(tp_type); + for (int priority = 0; priority <= URMA_MAX_PRIORITY; ++priority) { + if (attr.dev_cap.priority_info[priority].tp_type.value == + expected.value) { + return priority; + } + } + return -1; +} +uint8_t GetUrmaJettyPriority() { return g_jetty_priority; } int GetUrmaMaxSge() { return g_max_sge; } size_t GetUrmaRecvBlockSize() { return g_recv_block_size; } diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index 88e7039144..4ca474ccb7 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -76,6 +76,14 @@ const urma_eid_t* GetUrmaLocalEid(); // Return true when the selected URMA device is a bonding provider device. bool IsUrmaBondingDevice(); +// Find the priority whose advertised transport-path capability exactly +// matches @tp_type. Returns -1 when the device does not report one. +int FindUrmaPriorityForTpType(const urma_device_attr_t& attr, + urma_tp_type_t tp_type); + +// Return the priority selected for the CTP jettys created by brpc. +uint8_t GetUrmaJettyPriority(); + // If the URMA environment is available. bool IsUrmaAvailable(); diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index 1932b18da2..37ef6eb69f 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -242,6 +242,16 @@ TEST(UrmaHandshakeTest, rejects_invalid_resource_and_window_values) { EXPECT_FALSE(urma::ValidHello(hello)); } +TEST(UrmaHelperTest, selects_priority_matching_transport_path_type) { + urma_device_attr_t attr{}; + attr.dev_cap.priority_info[3].tp_type.bs.rtp = 1; + attr.dev_cap.priority_info[6].tp_type.bs.ctp = 1; + + EXPECT_EQ(3, urma::FindUrmaPriorityForTpType(attr, URMA_RTP)); + EXPECT_EQ(6, urma::FindUrmaPriorityForTpType(attr, URMA_CTP)); + EXPECT_EQ(-1, urma::FindUrmaPriorityForTpType(attr, URMA_UTP)); +} + // --------------------------------------------------------------------------- // SupportedByUrma: only baidu_std. // --------------------------------------------------------------------------- From 50df229a7ed2dd3ab032ebe696d17c58bee4089d Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 10:05:14 +0800 Subject: [PATCH 34/45] fix --- src/brpc/urma/urma_endpoint.cpp | 22 +++++++++++++--------- src/brpc/urma/urma_endpoint.h | 3 ++- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index b7f9e10f19..0bea4c92e5 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -1105,6 +1105,19 @@ void UrmaEndpoint::PollCq(Socket* m) { if (event_count <= 0) { return; } + // Rearm before draining the JFC. If a new completion arrives after + // the drain observes an empty queue but before rearm, no new edge may + // be generated and the completion can remain pending indefinitely. + // This ordering matches the URMA event loop used by yalantinglibs: + // wait_jfc -> ack_jfc -> rearm_jfc -> poll_jfc. + uint32_t nevents = 1; + urma_ack_jfc(&event_jfc, &nevents, 1); + if (ep->ReqNotifyCq() != 0) { + return; + } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA JFC event acknowledged and rearmed before drain on " + << s->description(); } ssize_t bytes = 0; @@ -1137,15 +1150,6 @@ void UrmaEndpoint::PollCq(Socket* m) { if (completion_error != 0) { break; } } - if (!FLAGS_urma_use_polling) { - // URMA requires this strict order: - // wait_jfc -> poll_jfc -> ack_jfc -> rearm_jfc. - uint32_t nevents = 1; - urma_ack_jfc(&event_jfc, &nevents, 1); - if (ep->ReqNotifyCq() != 0) { - return; - } - } if (completion_error != 0) { if (!s->Failed()) { s->SetFailed(completion_error, "URMA completion error"); diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index 36bdae00e1..9fcef08711 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -242,7 +242,8 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { void DispatchReceivedBytes(SocketUniquePtr& s, ssize_t bytes); // Consume one async event from the JFCE fd (event mode only). The caller - // must poll the JFC before acknowledging and rearming the event. + // must acknowledge and rearm the JFC before draining completions so a + // completion arriving during the drain cannot lose its notification. int WaitCqEvent(SocketUniquePtr& s, urma_jfc_t** event_jfc); // Request completion notification (event mode only). From 9940f002df162b7a8a000cce28352c630348dfc7 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 10:21:27 +0800 Subject: [PATCH 35/45] fix --- src/brpc/urma/urma_endpoint.cpp | 69 +++++++++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 7 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 0bea4c92e5..f3cd4dcbae 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -756,9 +756,23 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { << " sq_window=" << sq_wnd << " remote_rq_window=" << remote_wnd << " on " << _socket->description(); + + // Reserve both credits before making the WR visible to the provider. + // In polling mode a completion (and even the peer's receive-credit + // ACK) can be processed by another thread before post_send returns. + // Decrementing after post therefore creates a transient capacity + 1 + // window and makes the strict credit check tear down a healthy + // connection. + const uint16_t remote_wnd_after = + _remote_rq_window_size.fetch_sub( + 1, butil::memory_order_relaxed) - 1; + const uint16_t sq_wnd_after = + _sq_window_size.fetch_sub(1, butil::memory_order_relaxed) - 1; int rc = urma_post_jetty_send_wr(_resource->jetty, &wr, &bad_wr); if (rc != URMA_SUCCESS) { const int provider_errno = errno; + _remote_rq_window_size.fetch_add(1, butil::memory_order_relaxed); + _sq_window_size.fetch_add(1, butil::memory_order_relaxed); LOG(WARNING) << "urma_post_jetty_send_wr failed: " << rc << ", provider_errno=" << provider_errno << " (" << berror(provider_errno) << ')' @@ -786,12 +800,10 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { << " local_jetty_id=" << local_jetty_id << " remote_jetty_id=" << remote_jetty_id << " state=" << GetStateStr() - << " sq_window_after=" << (sq_wnd - 1) - << " remote_rq_window_after=" << (remote_wnd - 1) + << " sq_window_after=" << sq_wnd_after + << " remote_rq_window_after=" << remote_wnd_after << " on " << _socket->description(); _sq_current = (_sq_current + 1) % (_sq_size - RESERVED_WR_NUM); - _remote_rq_window_size.fetch_sub(1, butil::memory_order_relaxed); - _sq_window_size.fetch_sub(1, butil::memory_order_relaxed); total_len += static_cast(this_len); } return total_len; @@ -894,6 +906,10 @@ int UrmaEndpoint::SendImm(uint32_t imm) { if (!_resource || !_resource->jetty || !_resource->remote_jetty) { errno = ENOTCONN; return -1; } + if (_sq_imm_window_size == 0) { + errno = EAGAIN; + return -1; + } // Empty-payload SEND_IMM flushes peer-side receive credit. Connection // lifetime is owned by the TCP fd, so this is not an EOF marker. urma_jfs_wr_t wr{}; @@ -905,10 +921,15 @@ int UrmaEndpoint::SendImm(uint32_t imm) { wr.send.imm_data = imm; wr.user_ctx = 0; // 0 == pure ack (HandleCompletion reuses budget). urma_jfs_wr_t* bad = nullptr; + // Reserve the ACK-only SQ slot before posting for the same reason as the + // data windows in CutFromIOBufList: polling may observe its completion as + // soon as the provider accepts the WR. + --_sq_imm_window_size; const urma_status_t status = urma_post_jetty_send_wr(_resource->jetty, &wr, &bad); if (status != URMA_SUCCESS) { const int provider_errno = errno; + ++_sq_imm_window_size; _new_rq_wrs.fetch_add(imm, butil::memory_order_relaxed); LOG(WARNING) << "Failed to post URMA credit ACK: status=" << status << " provider_errno=" << provider_errno @@ -931,7 +952,6 @@ int UrmaEndpoint::SendImm(uint32_t imm) { << " remote_jetty_id=" << _resource->remote_jetty->id.id << " state=" << GetStateStr() << " on " << _socket->description(); - if (_sq_imm_window_size > 0) { --_sq_imm_window_size; } return 0; } @@ -974,17 +994,45 @@ ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { // Send completion: reclaim SQ window and wake the writer. if (cr.user_ctx == 0) { // Pure-ack WR: just replenish the imm budget. + if (_sq_imm_window_size >= RESERVED_WR_NUM) { + LOG(WARNING) + << "URMA credit-ACK completion exceeds reserved SQ " + "window: current=" + << _sq_imm_window_size + << " capacity=" << RESERVED_WR_NUM + << " on " << _socket->description(); + errno = EPROTO; + return -1; + } _sq_imm_window_size += 1; SendAck(0); return 0; } uint16_t wnd = 1; // We signal every WR (complete_enable=1). + uint16_t old = + _sq_window_size.load(butil::memory_order_relaxed); + while (true) { + if (old >= _local_window_capacity) { + LOG(WARNING) + << "URMA send completion exceeds SQ window: old=" << old + << " increment=" << wnd + << " capacity=" << _local_window_capacity + << " user_ctx=" << cr.user_ctx + << " on " << _socket->description(); + errno = EPROTO; + return -1; + } + if (_sq_window_size.compare_exchange_weak( + old, static_cast(old + wnd), + butil::memory_order_relaxed)) { + break; + } + } for (uint16_t i = 0; i < wnd; ++i) { _sbuf[_sq_sent].clear(); _sq_sent = (_sq_sent + 1) % (_sq_size - RESERVED_WR_NUM); } butil::subtle::MemoryBarrier(); - _sq_window_size.fetch_add(wnd, butil::memory_order_relaxed); if (_remote_rq_window_size.load(butil::memory_order_relaxed) >= _local_window_capacity / 8) { _socket->WakeAsEpollOut(); @@ -1003,7 +1051,14 @@ ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { _remote_rq_window_size.load(butil::memory_order_relaxed); while (true) { if (old > _local_window_capacity - acks) { - LOG(WARNING) << "URMA receive credit exceeds window"; + LOG(WARNING) + << "URMA receive credit exceeds window: old=" << old + << " credit=" << acks + << " capacity=" << _local_window_capacity + << " imm=" << cr.imm_data + << " remote_window_capacity=" + << _remote_window_capacity + << " on " << _socket->description(); errno = EPROTO; return -1; } From 74df9f7ef1bd69e513bc32a6bacc6b8c6d3a5a7f Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 10:28:49 +0800 Subject: [PATCH 36/45] fix --- src/brpc/urma/urma_endpoint.cpp | 96 ++++++++++++++++++++------------- src/brpc/urma/urma_endpoint.h | 4 +- 2 files changed, 60 insertions(+), 40 deletions(-) diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index f3cd4dcbae..cd2b402e0b 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -1155,54 +1155,74 @@ void UrmaEndpoint::PollCq(Socket* m) { if (s->Failed()) { return; } urma_jfc_t* event_jfc = nullptr; - if (!FLAGS_urma_use_polling) { + const bool event_mode = !FLAGS_urma_use_polling; + if (event_mode) { const int event_count = ep->WaitCqEvent(s, &event_jfc); if (event_count <= 0) { return; } - // Rearm before draining the JFC. If a new completion arrives after - // the drain observes an empty queue but before rearm, no new edge may - // be generated and the completion can remain pending indefinitely. - // This ordering matches the URMA event loop used by yalantinglibs: - // wait_jfc -> ack_jfc -> rearm_jfc -> poll_jfc. - uint32_t nevents = 1; - urma_ack_jfc(&event_jfc, &nevents, 1); - if (ep->ReqNotifyCq() != 0) { - return; - } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA JFC event acknowledged and rearmed before drain on " - << s->description(); } ssize_t bytes = 0; - int completion_error = 0; - while (true) { - int n = std::max(1, std::min(FLAGS_urma_cqe_poll_once, 32)); - urma_cr_t crs[32]; - int cnt = urma_poll_jfc(ep->_resource->jfc, n, crs); - if (cnt < 0) { - completion_error = EIO; - break; - } - if (cnt == 0) { break; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA polled " << cnt << " completion(s) on " - << s->description() - << " state=" << ep->GetStateStr(); - for (int i = 0; i < cnt; ++i) { - if (s->Failed()) { - completion_error = ECANCELED; - break; + int total_completions = 0; + auto drain_cq = [&]() -> int { + while (true) { + int n = std::max(1, std::min(FLAGS_urma_cqe_poll_once, 32)); + urma_cr_t crs[32]; + int cnt = urma_poll_jfc(ep->_resource->jfc, n, crs); + if (cnt < 0) { + return EIO; } - ssize_t nr = ep->HandleCompletion(crs[i]); - if (nr < 0) { - completion_error = errno ? errno : EIO; - break; + if (cnt == 0) { return 0; } + total_completions += cnt; + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA polled " << cnt << " completion(s) on " + << s->description() + << " state=" << ep->GetStateStr(); + for (int i = 0; i < cnt; ++i) { + if (s->Failed()) { + return ECANCELED; + } + ssize_t nr = ep->HandleCompletion(crs[i]); + if (nr < 0) { + return errno ? errno : EIO; + } + bytes += nr; + } + } + }; + + int completion_error = drain_cq(); + if (event_mode) { + // The bonding provider records which physical JFCs produced CRs while + // bondp_poll_jfc drains the virtual JFC. bondp_rearm_jfc consumes that + // mask, so rearming before the drain leaves those physical JFCs + // unarmed and can lose all later notifications from that path. + uint32_t nevents = 1; + urma_ack_jfc(&event_jfc, &nevents, 1); + if (completion_error == 0) { + const int completions_before_rearm = total_completions; + if (ep->ReqNotifyCq() != 0) { + return; } - bytes += nr; + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA JFC event drained, acknowledged and rearmed: " + << "completions=" << completions_before_rearm + << " on " << s->description(); + + // Close the drain/rearm race. A completion that arrived while the + // JFC was unarmed may not produce an edge on every provider. The + // JFC is armed now, so a final nonblocking drain is safe; if it + // already generated an event, the next callback merely sees an + // empty queue and rearms it again. + completion_error = drain_cq(); + LOG_IF(INFO, FLAGS_urma_trace_verbose && + total_completions > completions_before_rearm) + << "URMA drained " + << (total_completions - completions_before_rearm) + << " completion(s) after JFC rearm on " + << s->description(); } - if (completion_error != 0) { break; } } if (completion_error != 0) { diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index 9fcef08711..d3c9140149 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -242,8 +242,8 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { void DispatchReceivedBytes(SocketUniquePtr& s, ssize_t bytes); // Consume one async event from the JFCE fd (event mode only). The caller - // must acknowledge and rearm the JFC before draining completions so a - // completion arriving during the drain cannot lose its notification. + // drains completions before acknowledge/rearm because the bonding provider + // uses poll_jfc to record which physical JFCs must be rearmed. int WaitCqEvent(SocketUniquePtr& s, urma_jfc_t** event_jfc); // Request completion notification (event mode only). From eae3543f5b4377513ad3d537e163cc503108f8d5 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 10:47:40 +0800 Subject: [PATCH 37/45] fix --- graphify-out/reflections/LESSONS.md | 11 ++ src/brpc/urma/urma_endpoint.cpp | 156 ++++++++++++++++------------ src/brpc/urma/urma_endpoint.h | 4 +- 3 files changed, 105 insertions(+), 66 deletions(-) create mode 100644 graphify-out/reflections/LESSONS.md diff --git a/graphify-out/reflections/LESSONS.md b/graphify-out/reflections/LESSONS.md new file mode 100644 index 0000000000..51e127169a --- /dev/null +++ b/graphify-out/reflections/LESSONS.md @@ -0,0 +1,11 @@ +# Lessons + +_Auto-generated by `graphify reflect` from 0 session memories in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._ + +## Summary + +- 0 useful · 0 dead ends · 0 corrected · 0 unmarked + +## Lessons + +_No marked outcomes yet._ diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index cd2b402e0b..4bc4eff713 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -1154,84 +1154,110 @@ void UrmaEndpoint::PollCq(Socket* m) { if (Socket::Address(ep->_socket->id(), &s) != 0) { return; } if (s->Failed()) { return; } - urma_jfc_t* event_jfc = nullptr; const bool event_mode = !FLAGS_urma_use_polling; - if (event_mode) { - const int event_count = ep->WaitCqEvent(s, &event_jfc); - if (event_count <= 0) { - return; + int progress = Socket::PROGRESS_INIT; + while (true) { + urma_jfc_t* event_jfc = nullptr; + if (event_mode) { + const int event_count = ep->WaitCqEvent(s, &event_jfc); + if (event_count < 0) { + return; + } + if (event_count == 0) { + if (!m->MoreReadEvents(&progress)) { + return; + } + continue; + } } - } - ssize_t bytes = 0; - int total_completions = 0; - auto drain_cq = [&]() -> int { - while (true) { - int n = std::max(1, std::min(FLAGS_urma_cqe_poll_once, 32)); - urma_cr_t crs[32]; - int cnt = urma_poll_jfc(ep->_resource->jfc, n, crs); - if (cnt < 0) { - return EIO; - } - if (cnt == 0) { return 0; } - total_completions += cnt; - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA polled " << cnt << " completion(s) on " - << s->description() - << " state=" << ep->GetStateStr(); - for (int i = 0; i < cnt; ++i) { - if (s->Failed()) { - return ECANCELED; + ssize_t bytes = 0; + int total_completions = 0; + auto drain_cq = [&]() -> int { + while (true) { + const int n = + std::max(1, std::min(FLAGS_urma_cqe_poll_once, 32)); + urma_cr_t crs[32]; + const int cnt = + urma_poll_jfc(ep->_resource->jfc, n, crs); + if (cnt < 0) { + return EIO; } - ssize_t nr = ep->HandleCompletion(crs[i]); - if (nr < 0) { - return errno ? errno : EIO; + if (cnt == 0) { return 0; } + total_completions += cnt; + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA polled " << cnt << " completion(s) on " + << s->description() + << " state=" << ep->GetStateStr(); + for (int i = 0; i < cnt; ++i) { + if (s->Failed()) { + return ECANCELED; + } + const ssize_t nr = ep->HandleCompletion(crs[i]); + if (nr < 0) { + return errno ? errno : EIO; + } + bytes += nr; } - bytes += nr; + } + }; + + int completion_error = drain_cq(); + if (event_mode) { + // The bonding provider records which physical JFCs produced CRs + // while bondp_poll_jfc drains the virtual JFC. + // bondp_rearm_jfc consumes that mask, so rearming before the drain + // leaves those physical JFCs unarmed. + uint32_t nevents = 1; + urma_ack_jfc(&event_jfc, &nevents, 1); + if (completion_error == 0) { + const int completions_before_rearm = total_completions; + if (ep->ReqNotifyCq() != 0) { + return; + } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA JFC event drained, acknowledged and rearmed: " + << "completions=" << completions_before_rearm + << " on " << s->description(); + + // Close the drain/rearm race. A completion that arrived while + // the JFC was unarmed may not produce an edge on every + // provider. The JFC is armed now, so a final nonblocking drain + // is safe. + completion_error = drain_cq(); + LOG_IF(INFO, FLAGS_urma_trace_verbose && + total_completions > + completions_before_rearm) + << "URMA drained " + << (total_completions - completions_before_rearm) + << " completion(s) after JFC rearm on " + << s->description(); } } - }; - int completion_error = drain_cq(); - if (event_mode) { - // The bonding provider records which physical JFCs produced CRs while - // bondp_poll_jfc drains the virtual JFC. bondp_rearm_jfc consumes that - // mask, so rearming before the drain leaves those physical JFCs - // unarmed and can lose all later notifications from that path. - uint32_t nevents = 1; - urma_ack_jfc(&event_jfc, &nevents, 1); - if (completion_error == 0) { - const int completions_before_rearm = total_completions; - if (ep->ReqNotifyCq() != 0) { - return; + if (completion_error != 0) { + if (!s->Failed()) { + s->SetFailed(completion_error, "URMA completion error"); } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA JFC event drained, acknowledged and rearmed: " - << "completions=" << completions_before_rearm - << " on " << s->description(); - - // Close the drain/rearm race. A completion that arrived while the - // JFC was unarmed may not produce an edge on every provider. The - // JFC is armed now, so a final nonblocking drain is safe; if it - // already generated an event, the next callback merely sees an - // empty queue and rearms it again. - completion_error = drain_cq(); - LOG_IF(INFO, FLAGS_urma_trace_verbose && - total_completions > completions_before_rearm) - << "URMA drained " - << (total_completions - completions_before_rearm) - << " completion(s) after JFC rearm on " - << s->description(); + return; } - } + ep->DispatchReceivedBytes(s, bytes); - if (completion_error != 0) { - if (!s->Failed()) { - s->SetFailed(completion_error, "URMA completion error"); + if (!event_mode) { + return; } - return; + // Socket::OnInputEvent increments _nevent and starts this callback only + // for the 0 -> 1 transition. MoreReadEvents resets it to zero when no + // event raced with this callback, or asks us to consume the additional + // JFCE event in this same callback. Without this step event mode stops + // permanently after its first completion. + if (!m->MoreReadEvents(&progress)) { + return; + } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA JFCE has additional edge-triggered event(s), progress=" + << progress << " on " << s->description(); } - ep->DispatchReceivedBytes(s, bytes); } // ============================================================================ diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index d3c9140149..2ff7e54608 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -144,7 +144,9 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // CQ completion poller: the edge-triggered callback for the CQ socket // (whose user is this endpoint). Drains urma_poll_jfc and feeds the - // completions into HandleCompletion, then calls InputMessenger. + // completions into HandleCompletion, then calls InputMessenger. Event mode + // must finish each cycle with Socket::MoreReadEvents so later JFCE edges + // can start the callback again. static void PollCq(Socket* m); // Initialize the per-tag polling infrastructure (polling mode). From 2f7a114ddfe707ff599dbdcc15dfc8c375d98d44 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 10:51:35 +0800 Subject: [PATCH 38/45] fix --- ...\345\244\247\345\260\217_\346\230\2578.md" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 "graphify-out/memory/query_20260730_025012_send_buffer_size\346\216\222\346\237\245\344\270\213__\346\210\221\345\221\275\344\273\244\351\205\215\347\275\256\347\232\2044096\344\275\206\346\230\257\346\210\221\347\234\213\344\273\243\347\240\201\345\217\221\351\200\201buffer\345\244\247\345\260\217_\346\230\2578.md" diff --git "a/graphify-out/memory/query_20260730_025012_send_buffer_size\346\216\222\346\237\245\344\270\213__\346\210\221\345\221\275\344\273\244\351\205\215\347\275\256\347\232\2044096\344\275\206\346\230\257\346\210\221\347\234\213\344\273\243\347\240\201\345\217\221\351\200\201buffer\345\244\247\345\260\217_\346\230\2578.md" "b/graphify-out/memory/query_20260730_025012_send_buffer_size\346\216\222\346\237\245\344\270\213__\346\210\221\345\221\275\344\273\244\351\205\215\347\275\256\347\232\2044096\344\275\206\346\230\257\346\210\221\347\234\213\344\273\243\347\240\201\345\217\221\351\200\201buffer\345\244\247\345\260\217_\346\230\2578.md" new file mode 100644 index 0000000000..4ada67c846 --- /dev/null +++ "b/graphify-out/memory/query_20260730_025012_send_buffer_size\346\216\222\346\237\245\344\270\213__\346\210\221\345\221\275\344\273\244\351\205\215\347\275\256\347\232\2044096\344\275\206\346\230\257\346\210\221\347\234\213\344\273\243\347\240\201\345\217\221\351\200\201buffer\345\244\247\345\260\217_\346\230\2578.md" @@ -0,0 +1,27 @@ +--- +type: "query" +date: "2026-07-30T02:50:12.073028+00:00" +question: "send buffer_size排查下, 我命令配置的4096但是我看代码发送buffer大小 是8*1024" +contributor: "graphify" +outcome: "useful" +source_nodes: ["GlobalUrmaInitializeImpl()", "GetUrmaRecvBlockSize()", "UrmaEndpoint::MakeLocalParsedHello()", "UrmaEndpoint::ApplyRemoteHello()", "UrmaEndpoint::CutFromIOBufList()", "UrmaEndpoint::PostRecv()"] +--- + +# Q: send buffer_size排查下, 我命令配置的4096但是我看代码发送buffer大小 是8*1024 + +## Answer + +Expanded from original query via vocab: [urma, buffer, size, send, block, pool, recv, cut, sge, initialize]. 结论:8*1024只出现在urma_buffer_size默认值和g_recv_block_size初始化前默认值。命令行4096在GlobalUrmaInitializeImpl中生效:pool raw block为4096,IOBuf默认块改为4096,扣除32字节IOBuf::Block头后GetUrmaRecvBlockSize为4064。握手广告4064,ApplyRemoteHello保存对端值,CutFromIOBufList以_remote_recv_block_size为单个SEND WR总payload上限,所以双方都配置4096时SEND不会超过4064;一端仍为默认8192时,向该端发送的上限会是8160。示例在创建Channel/Server前解析gflags,初始化时序正确。 + +## Outcome + +- Signal: useful + +## Source Nodes + +- GlobalUrmaInitializeImpl() +- GetUrmaRecvBlockSize() +- UrmaEndpoint::MakeLocalParsedHello() +- UrmaEndpoint::ApplyRemoteHello() +- UrmaEndpoint::CutFromIOBufList() +- UrmaEndpoint::PostRecv() \ No newline at end of file From 4a7f05d8a8530147474bfc04cf56b3230d874ace Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 10:57:13 +0800 Subject: [PATCH 39/45] fix --- graphify-out/reflections/LESSONS.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/graphify-out/reflections/LESSONS.md b/graphify-out/reflections/LESSONS.md index 51e127169a..4b18cad3b6 100644 --- a/graphify-out/reflections/LESSONS.md +++ b/graphify-out/reflections/LESSONS.md @@ -1,11 +1,18 @@ # Lessons -_Auto-generated by `graphify reflect` from 0 session memories in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._ +_Auto-generated by `graphify reflect` from 1 session memory in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._ ## Summary -- 0 useful · 0 dead ends · 0 corrected · 0 unmarked +- 1 useful · 0 dead ends · 0 corrected · 0 unmarked ## Lessons -_No marked outcomes yet._ +**Tentative** — useful in fewer than 2 results; verify before relying. + +- `GetUrmaRecvBlockSize()` (1× useful) +- `GlobalUrmaInitializeImpl()` (1× useful) +- `UrmaEndpoint::ApplyRemoteHello()` (1× useful) +- `UrmaEndpoint::CutFromIOBufList()` (1× useful) +- `UrmaEndpoint::MakeLocalParsedHello()` (1× useful) +- `UrmaEndpoint::PostRecv()` (1× useful) From 6566fd41d284800d64787e7d209ccfc40f265a42 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 11:16:14 +0800 Subject: [PATCH 40/45] fix --- ...60_urma_completion______direction_recv.md" | 26 +++++++++++++++++++ src/brpc/urma/urma_endpoint.cpp | 26 +++++++++++-------- src/brpc/urma/urma_endpoint.h | 5 ++-- 3 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 "graphify-out/memory/query_20260730_025925_event\346\250\241\345\274\217\346\262\241\346\234\211\346\224\266\345\210\260_urma_completion______direction_recv.md" diff --git "a/graphify-out/memory/query_20260730_025925_event\346\250\241\345\274\217\346\262\241\346\234\211\346\224\266\345\210\260_urma_completion______direction_recv.md" "b/graphify-out/memory/query_20260730_025925_event\346\250\241\345\274\217\346\262\241\346\234\211\346\224\266\345\210\260_urma_completion______direction_recv.md" new file mode 100644 index 0000000000..2f28ceb110 --- /dev/null +++ "b/graphify-out/memory/query_20260730_025925_event\346\250\241\345\274\217\346\262\241\346\234\211\346\224\266\345\210\260_urma_completion______direction_recv.md" @@ -0,0 +1,26 @@ +--- +type: "query" +date: "2026-07-30T02:59:25.159516+00:00" +question: "event模式没有收到 URMA completion: ... direction=recv ... length=37" +contributor: "graphify" +outcome: "useful" +source_nodes: ["UrmaEndpoint::PollCq()", "UrmaEndpoint::WaitCqEvent()", "UrmaEndpoint::ReqNotifyCq()", "UrmaEndpoint::HandleCompletion()", "urma_wait_jfc()"] +--- + +# Q: event模式没有收到 URMA completion: ... direction=recv ... length=37 + +## Answer + +Expanded from original query via vocab: [event, wait, poll, completion, recv, jfc, rearm, notify, handle, endpoint]. 客户端第一条JFC事件和SEND completion证明事件通道、CQ和回调均可工作。根因是bonding JFCE fd本身为聚合epoll fd,brpc又以EPOLLET监听;WaitCqEvent调用urma_wait_jfc(..., jfc_cnt=1)一次只消费一个物理JFC事件。PollCq原先在处理一个事件后立即依赖MoreReadEvents,内层JFCE若仍可读不会产生新的外层边沿,后续37字节RECV completion被留在队列。修复为处理完事件后继续非阻塞WaitCqEvent,直到返回0才调用MoreReadEvents重置外层事件计数;同时增加JFCE queue drained日志。Yalanting使用level/one-shot async_wait,每轮重新等待,因此不会依赖同样的外层ET计数。 + +## Outcome + +- Signal: useful + +## Source Nodes + +- UrmaEndpoint::PollCq() +- UrmaEndpoint::WaitCqEvent() +- UrmaEndpoint::ReqNotifyCq() +- UrmaEndpoint::HandleCompletion() +- urma_wait_jfc() \ No newline at end of file diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 4bc4eff713..6049ba58ff 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -1156,6 +1156,7 @@ void UrmaEndpoint::PollCq(Socket* m) { const bool event_mode = !FLAGS_urma_use_polling; int progress = Socket::PROGRESS_INIT; + int drained_events = 0; while (true) { urma_jfc_t* event_jfc = nullptr; if (event_mode) { @@ -1164,11 +1165,18 @@ void UrmaEndpoint::PollCq(Socket* m) { return; } if (event_count == 0) { + LOG_IF(INFO, FLAGS_urma_trace_verbose && drained_events > 0) + << "URMA JFCE event queue drained: events=" + << drained_events << " on " << s->description(); if (!m->MoreReadEvents(&progress)) { return; } + LOG_IF(INFO, FLAGS_urma_trace_verbose) + << "URMA JFCE has additional edge-triggered event(s), " + << "progress=" << progress << " on " << s->description(); continue; } + drained_events += event_count; } ssize_t bytes = 0; @@ -1246,17 +1254,13 @@ void UrmaEndpoint::PollCq(Socket* m) { if (!event_mode) { return; } - // Socket::OnInputEvent increments _nevent and starts this callback only - // for the 0 -> 1 transition. MoreReadEvents resets it to zero when no - // event raced with this callback, or asks us to consume the additional - // JFCE event in this same callback. Without this step event mode stops - // permanently after its first completion. - if (!m->MoreReadEvents(&progress)) { - return; - } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA JFCE has additional edge-triggered event(s), progress=" - << progress << " on " << s->description(); + // The bonding JFCE fd is itself an epoll fd aggregating physical + // JFCEs, while brpc watches it with EPOLLET. urma_wait_jfc(..., 1, ...) + // consumes only one aggregated event. Keep draining the inner JFCE + // until it reports no event; otherwise another physical event can + // leave the fd continuously readable and never create a new outer + // edge. The event_count == 0 branch above resets _nevent only after + // the inner queue is empty. } } diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index 2ff7e54608..b3f5a09e4e 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -145,8 +145,9 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // CQ completion poller: the edge-triggered callback for the CQ socket // (whose user is this endpoint). Drains urma_poll_jfc and feeds the // completions into HandleCompletion, then calls InputMessenger. Event mode - // must finish each cycle with Socket::MoreReadEvents so later JFCE edges - // can start the callback again. + // also drains the aggregated JFCE until urma_wait_jfc reports no event, + // then calls Socket::MoreReadEvents so later JFCE edges can start the + // callback again. static void PollCq(Socket* m); // Initialize the per-tag polling infrastructure (polling mode). From e997ee00fe84bf8cf078df4068774769f8621fdb Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 11:33:46 +0800 Subject: [PATCH 41/45] fix --- ...57\344\270\200\346\240\267\347\232\204.md" | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 "graphify-out/memory/query_20260730_032442_\350\267\237\344\273\245\345\211\215\346\211\223\347\232\204\346\227\245\345\277\227\346\230\257\344\270\200\346\240\267\347\232\204.md" diff --git "a/graphify-out/memory/query_20260730_032442_\350\267\237\344\273\245\345\211\215\346\211\223\347\232\204\346\227\245\345\277\227\346\230\257\344\270\200\346\240\267\347\232\204.md" "b/graphify-out/memory/query_20260730_032442_\350\267\237\344\273\245\345\211\215\346\211\223\347\232\204\346\227\245\345\277\227\346\230\257\344\270\200\346\240\267\347\232\204.md" new file mode 100644 index 0000000000..51a272df96 --- /dev/null +++ "b/graphify-out/memory/query_20260730_032442_\350\267\237\344\273\245\345\211\215\346\211\223\347\232\204\346\227\245\345\277\227\346\230\257\344\270\200\346\240\267\347\232\204.md" @@ -0,0 +1,26 @@ +--- +type: "query" +date: "2026-07-30T03:24:42.007884+00:00" +question: "跟以前打的日志是一样的" +contributor: "graphify" +outcome: "corrected" +correction: "测试日志若没有新加入的URMA JFCE event queue drained标记且仍使用旧源码行号,说明urma_performance链接了旧libbrpc;应先验证并重新链接新库,再判断JFCE/rearm逻辑。" +source_nodes: ["UrmaEndpoint::PollCq()", "UrmaEndpoint::WaitCqEvent()", "UrmaEndpoint::ReqNotifyCq()"] +--- + +# Q: 跟以前打的日志是一样的 + +## Answer + +Expanded from original query via vocab: [event, wait, poll, polling, completion, cqe, rearm, notify, recv]. 新源码在PollCq处理首个事件后必然再次调用WaitCqEvent;若无第二事件且urma_trace_verbose=true,必然打印URMA JFCE event queue drained。当前源码行号也已变化:WaitCqEvent在1685、prepared jetty日志在1925,而旧日志分别为1681和1895。若测试日志完全相同且没有新marker,实际运行的client仍链接旧libbrpc。urma_performance的CMake通过find_library缓存BRPC_LIB,只重编example不会重编或切换brpc库。先用strings检查marker和cmake cache中的BRPC_LIB,再显式指向刚构建的output/lib/libbrpc.a重新链接。上一结论把相同日志直接归因于内层JFCE未drain不够严谨,必须先排除旧二进制。 + +## Outcome + +- Signal: corrected +- Correction: 测试日志若没有新加入的URMA JFCE event queue drained标记且仍使用旧源码行号,说明urma_performance链接了旧libbrpc;应先验证并重新链接新库,再判断JFCE/rearm逻辑。 + +## Source Nodes + +- UrmaEndpoint::PollCq() +- UrmaEndpoint::WaitCqEvent() +- UrmaEndpoint::ReqNotifyCq() \ No newline at end of file From 7846d3f109bacbf596accac5f85c24888e5cafd2 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 14:22:44 +0800 Subject: [PATCH 42/45] fix --- ...s___build_urma_performance_client___gr.md" | 23 +++++++++++++++++++ ...\211\210\346\234\254commit\345\217\267.md" | 23 +++++++++++++++++++ graphify-out/reflections/LESSONS.md | 18 +++++++++++++-- src/brpc/urma/urma_endpoint.cpp | 8 ++++++- 4 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 "graphify-out/memory/query_20260730_033833_\351\207\215\346\226\260\347\274\226\350\257\221\344\272\206_strings___build_urma_performance_client___gr.md" create mode 100644 "graphify-out/memory/query_20260730_062000_\345\234\250urma_jfc_event_drained_log\346\227\245\345\277\227\345\212\240\344\270\212\345\275\223\345\211\215\347\211\210\346\234\254commit\345\217\267.md" diff --git "a/graphify-out/memory/query_20260730_033833_\351\207\215\346\226\260\347\274\226\350\257\221\344\272\206_strings___build_urma_performance_client___gr.md" "b/graphify-out/memory/query_20260730_033833_\351\207\215\346\226\260\347\274\226\350\257\221\344\272\206_strings___build_urma_performance_client___gr.md" new file mode 100644 index 0000000000..d10b99e80a --- /dev/null +++ "b/graphify-out/memory/query_20260730_033833_\351\207\215\346\226\260\347\274\226\350\257\221\344\272\206_strings___build_urma_performance_client___gr.md" @@ -0,0 +1,23 @@ +--- +type: "query" +date: "2026-07-30T03:38:33.172347+00:00" +question: "重新编译了,strings ./build/urma_performance_client | grep -F URMA JFCE event queue drained 输出是空的" +contributor: "graphify" +outcome: "useful" +source_nodes: ["UrmaEndpoint", "urma_endpoint.cpp"] +--- + +# Q: 重新编译了,strings ./build/urma_performance_client | grep -F URMA JFCE event queue drained 输出是空的 + +## Answer + +Expanded from original query via vocab: [client, link, urma]. 当前源码包含日志标记;可执行文件中没有标记说明必须核对 CMakeCache.txt 和 link.txt 中实际 BRPC_LIB。若动态链接,标记应在 libbrpc.so 而非 client;若静态链接且选中库也无标记,则是旧库或未以 BRPC_WITH_URMA 重编译。Make 构建应先生成 libbrpc.a、output/include 和 output/lib,再清理示例 CMake 缓存并显式指定 BRPC_INCLUDE_PATH 与 BRPC_LIB。 + +## Outcome + +- Signal: useful + +## Source Nodes + +- UrmaEndpoint +- urma_endpoint.cpp \ No newline at end of file diff --git "a/graphify-out/memory/query_20260730_062000_\345\234\250urma_jfc_event_drained_log\346\227\245\345\277\227\345\212\240\344\270\212\345\275\223\345\211\215\347\211\210\346\234\254commit\345\217\267.md" "b/graphify-out/memory/query_20260730_062000_\345\234\250urma_jfc_event_drained_log\346\227\245\345\277\227\345\212\240\344\270\212\345\275\223\345\211\215\347\211\210\346\234\254commit\345\217\267.md" new file mode 100644 index 0000000000..5f7cffda88 --- /dev/null +++ "b/graphify-out/memory/query_20260730_062000_\345\234\250urma_jfc_event_drained_log\346\227\245\345\277\227\345\212\240\344\270\212\345\275\223\345\211\215\347\211\210\346\234\254commit\345\217\267.md" @@ -0,0 +1,23 @@ +--- +type: "query" +date: "2026-07-30T06:20:00.366442+00:00" +question: "在URMA JFC event drained log日志加上当前版本commit号" +contributor: "graphify" +outcome: "useful" +source_nodes: ["UrmaEndpoint", "urma_endpoint.cpp"] +--- + +# Q: 在URMA JFC event drained log日志加上当前版本commit号 + +## Answer + +Expanded from original query via vocab: [version, urma, jfce, event, drain]. 复用仓库已有 BRPC_REVISION 编译宏,在 URMA JFCE event queue drained 日志中追加 build_revision;其格式包含 release、branch、短 commit 和提交时间,未定义时输出 undefined。 + +## Outcome + +- Signal: useful + +## Source Nodes + +- UrmaEndpoint +- urma_endpoint.cpp \ No newline at end of file diff --git a/graphify-out/reflections/LESSONS.md b/graphify-out/reflections/LESSONS.md index 4b18cad3b6..95cc790c34 100644 --- a/graphify-out/reflections/LESSONS.md +++ b/graphify-out/reflections/LESSONS.md @@ -1,18 +1,32 @@ # Lessons -_Auto-generated by `graphify reflect` from 1 session memory in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._ +_Auto-generated by `graphify reflect` from 4 session memories in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._ ## Summary -- 1 useful · 0 dead ends · 0 corrected · 0 unmarked +- 3 useful · 0 dead ends · 1 corrected · 0 unmarked ## Lessons **Tentative** — useful in fewer than 2 results; verify before relying. +- `UrmaEndpoint` (1× useful) +- `urma_endpoint.cpp` (1× useful) +- `UrmaEndpoint::HandleCompletion()` (1× useful) +- `urma_wait_jfc()` (1× useful) - `GetUrmaRecvBlockSize()` (1× useful) - `GlobalUrmaInitializeImpl()` (1× useful) - `UrmaEndpoint::ApplyRemoteHello()` (1× useful) - `UrmaEndpoint::CutFromIOBufList()` (1× useful) - `UrmaEndpoint::MakeLocalParsedHello()` (1× useful) - `UrmaEndpoint::PostRecv()` (1× useful) + +**Contested** — mixed signals; recency decides. + +- `UrmaEndpoint::PollCq()` — 1× useful, 1× dead end/corrected → recency leans **dead end** (latest 2026-07-30) +- `UrmaEndpoint::ReqNotifyCq()` — 1× useful, 1× dead end/corrected → recency leans **dead end** (latest 2026-07-30) +- `UrmaEndpoint::WaitCqEvent()` — 1× useful, 1× dead end/corrected → recency leans **dead end** (latest 2026-07-30) + +**Corrections** — do these differently. + +- "跟以前打的日志是一样的" → 测试日志若没有新加入的URMA JFCE event queue drained标记且仍使用旧源码行号,说明urma_performance链接了旧libbrpc;应先验证并重新链接新库,再判断JFCE/rearm逻辑。 diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 6049ba58ff..7ea42e8ea7 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -1167,7 +1167,13 @@ void UrmaEndpoint::PollCq(Socket* m) { if (event_count == 0) { LOG_IF(INFO, FLAGS_urma_trace_verbose && drained_events > 0) << "URMA JFCE event queue drained: events=" - << drained_events << " on " << s->description(); + << drained_events +#if defined(BRPC_REVISION) + << " build_revision=" << BRPC_REVISION +#else + << " build_revision=undefined" +#endif + << " on " << s->description(); if (!m->MoreReadEvents(&progress)) { return; } From 0b27d993e22180ddd4e9b7561c262762be763c40 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 15:37:34 +0800 Subject: [PATCH 43/45] clean --- .gitignore | 4 + CMakeLists.txt | 25 +- docs/cn/urma.md | 39 +- docs/cn/urma_proposal.md | 527 - docs/en/urma.md | 37 +- example/http_c++/http_client.cpp | 34 - example/http_c++/http_server.cpp | 7 - example/urma_performance/CMakeLists.txt | 12 +- example/urma_performance/client.cpp | 9 +- example/urma_performance/server.cpp | 18 +- example/urma_performance/test.proto | 15 +- graphify-out/GRAPH_HEALTH.txt | 35 - graphify-out/GRAPH_REPORT.md | 357 - graphify-out/cache/stat-index.json | 1 - graphify-out/cost.json | 12 - graphify-out/graph.html | 320 - graphify-out/graph.json | 21342 ---------------- graphify-out/manifest.json | 52 - ...\345\244\247\345\260\217_\346\230\2578.md" | 27 - ...60_urma_completion______direction_recv.md" | 26 - ...57\344\270\200\346\240\267\347\232\204.md" | 26 - ...s___build_urma_performance_client___gr.md" | 23 - ...\211\210\346\234\254commit\345\217\267.md" | 23 - graphify-out/reflections/LESSONS.md | 32 - src/brpc/channel.h | 4 +- src/brpc/controller.cpp | 92 +- src/brpc/controller.h | 10 +- src/brpc/errno.proto | 3 +- src/brpc/input_messenger.cpp | 10 +- src/brpc/input_messenger.h | 1 + src/brpc/policy/http_rpc_protocol.cpp | 1 - src/brpc/policy/http_rpc_protocol.h | 12 +- src/brpc/progressive_reader.h | 2 - src/brpc/server.cpp | 10 +- src/brpc/server.h | 2 +- src/brpc/socket_mode.h | 5 +- src/brpc/transport_factory.cpp | 47 +- src/brpc/transport_factory.h | 11 +- ...0d20642510e3e3d14a570a041257996772a31.json | 1 - ...615a74b896364be016d8a28ec657f714e1422.json | 1 - ...ea3f39bb1c3f972074cfdeb983ed964bc1f54.json | 1 - ...d4d6ab3654daf64631c4821071a362adf2f1e.json | 1 - ...1bdaf944a337cafc10e12152fa2915751f7d0.json | 1 - ...705c41b2381b7a5af286fab00d3241d6a5eca.json | 1 - ...b8cdaa14683461e3f2562a4ce8dedce8721ed.json | 1 - ...7d33a73a6879dca40078e12765880de1061a1.json | 1 - ...0956f4dd08aef5a92ffdbffd70a11effd1833.json | 1 - ...37defc274c585af039c0e7b995bfe7f0bf804.json | 1 - .../urma/graphify-out/cache/stat-index.json | 1 - src/brpc/urma/mock_urma.cpp | 34 +- src/brpc/urma/urma_endpoint.cpp | 504 +- src/brpc/urma/urma_endpoint.h | 28 +- src/brpc/urma/urma_handshake.cpp | 158 +- src/brpc/urma/urma_handshake.h | 25 +- src/brpc/urma/urma_handshake.proto | 14 +- src/brpc/urma/urma_helper.cpp | 170 +- src/brpc/urma/urma_helper.h | 23 +- src/brpc/urma_transport.cpp | 25 +- src/brpc/urma_transport.h | 32 +- test/brpc_urma_unittest.cpp | 24 +- 60 files changed, 626 insertions(+), 23635 deletions(-) delete mode 100644 docs/cn/urma_proposal.md delete mode 100644 graphify-out/GRAPH_HEALTH.txt delete mode 100644 graphify-out/GRAPH_REPORT.md delete mode 100644 graphify-out/cache/stat-index.json delete mode 100644 graphify-out/cost.json delete mode 100644 graphify-out/graph.html delete mode 100644 graphify-out/graph.json delete mode 100644 graphify-out/manifest.json delete mode 100644 "graphify-out/memory/query_20260730_025012_send_buffer_size\346\216\222\346\237\245\344\270\213__\346\210\221\345\221\275\344\273\244\351\205\215\347\275\256\347\232\2044096\344\275\206\346\230\257\346\210\221\347\234\213\344\273\243\347\240\201\345\217\221\351\200\201buffer\345\244\247\345\260\217_\346\230\2578.md" delete mode 100644 "graphify-out/memory/query_20260730_025925_event\346\250\241\345\274\217\346\262\241\346\234\211\346\224\266\345\210\260_urma_completion______direction_recv.md" delete mode 100644 "graphify-out/memory/query_20260730_032442_\350\267\237\344\273\245\345\211\215\346\211\223\347\232\204\346\227\245\345\277\227\346\230\257\344\270\200\346\240\267\347\232\204.md" delete mode 100644 "graphify-out/memory/query_20260730_033833_\351\207\215\346\226\260\347\274\226\350\257\221\344\272\206_strings___build_urma_performance_client___gr.md" delete mode 100644 "graphify-out/memory/query_20260730_062000_\345\234\250urma_jfc_event_drained_log\346\227\245\345\277\227\345\212\240\344\270\212\345\275\223\345\211\215\347\211\210\346\234\254commit\345\217\267.md" delete mode 100644 graphify-out/reflections/LESSONS.md delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833.json delete mode 100644 src/brpc/urma/graphify-out/cache/ast/v0.9.23/f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804.json delete mode 100644 src/brpc/urma/graphify-out/cache/stat-index.json diff --git a/.gitignore b/.gitignore index c7b21b9350..739963a26c 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,10 @@ CTestTestfile.cmake /test/out.txt /test/recordio_ref.io +# Local design notes and Graphify artifacts. +docs/cn/urma_proposal.md +graphify-out/ + # Ignore protoc-gen-mcpack files /protoc-gen-mcpack*/ diff --git a/CMakeLists.txt b/CMakeLists.txt index b6b24f169d..2087db98dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -317,7 +317,6 @@ if(WITH_RDMA) endif() if(WITH_URMA) - message("brpc compile with urma") # Find the URMA SDK headers (urma/urma_api.h) and library. # If liburma is not installed, fall back to the bundled mock # (src/brpc/urma/mock_urma.cpp) so CI can build and test UrmaTransport @@ -331,7 +330,8 @@ if(WITH_URMA) message(STATUS "Found URMA SDK: ${URMA_INCLUDE_PATH}, ${URMA_LIB}") set(URMA_USE_MOCK 0) else() - message(WARNING "URMA SDK not found; building UrmaTransport with the bundled mock (no real URMA hardware).") + message(STATUS + "URMA SDK not found; building with the bundled mock") set(URMA_USE_MOCK 1) endif() endif() @@ -360,14 +360,13 @@ list(APPEND BRPC_COMMON_INCLUDE_DIRS ${PROTOBUF_INCLUDE_DIRS} ${LEVELDB_INCLUDE_PATH} ) -if(WITH_URMA AND NOT URMA_USE_MOCK) - list(APPEND BRPC_COMMON_INCLUDE_DIRS ${URMA_INCLUDE_PATH}) -endif() -if(WITH_URMA AND URMA_USE_MOCK) - # No system URMA SDK installed: use the bundled SDK headers under - # src/brpc/urma/sdk/ so the transport + mock can compile. - list(APPEND BRPC_COMMON_INCLUDE_DIRS - ${PROJECT_SOURCE_DIR}/src/brpc/urma/sdk) +if(WITH_URMA) + if(URMA_USE_MOCK) + list(APPEND BRPC_COMMON_INCLUDE_DIRS + ${PROJECT_SOURCE_DIR}/src/brpc/urma/sdk) + else() + list(APPEND BRPC_COMMON_INCLUDE_DIRS ${URMA_INCLUDE_PATH}) + endif() endif() set(DYNAMIC_LIB @@ -397,13 +396,12 @@ if(WITH_RDMA) list(APPEND DYNAMIC_LIB ${RDMA_LIB}) endif() - if(WITH_URMA) - message(STATUS "brpc compile with urma (mock=${URMA_USE_MOCK})") + message(STATUS "brpc compile with URMA (mock=${URMA_USE_MOCK})") if(NOT URMA_USE_MOCK) list(APPEND DYNAMIC_LIB ${URMA_LIB}) endif() -endif() +endif() if(WITH_UBRING) message(STATUS "brpc compile with ubring") @@ -658,7 +656,6 @@ set(PROTO_FILES idl_options.proto brpc/trackme.proto brpc/streaming_rpc_meta.proto brpc/proto_base.proto - brpc/proto_base.proto brpc/rdma/rdma_handshake.proto brpc/urma/urma_handshake.proto) file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/output/include/brpc) diff --git a/docs/cn/urma.md b/docs/cn/urma.md index bfb37ee6f8..32d0e6ad69 100644 --- a/docs/cn/urma.md +++ b/docs/cn/urma.md @@ -10,26 +10,17 @@ UrmaTransport 是使用 openEuler ## 技术背景 -URMA 在 RoCE v2、InfiniBand、PCIe P2P 之上提供统一的 verbs 风格接口 -(`urma_post_send` / `urma_post_recv`)。与 RC-RDMA 不同,URMA 采用 -**无连接 UM(Unreliable Datagram)语义**,驱动内置重传:单个 Jetty 即可 -寻址 N 个远端,避免了 RC-RDMA 在千节点规模下的 QP 爆炸问题。一个 Jetty -聚合了发送队列(JFS)、接收队列(JFR,可共享)和完成队列(JFC,可由 JFCE -事件 fd 支持)。 - -在超节点(UB 总线互联的集群)场景下,相较 RDMA 的优势: - -- **无 QP 爆炸**:O(N) 个 Jetty 替代 O(N×线程数) 个 QP。 -- **统一语义**:一套 API 覆盖 RoCE/IB/PCIe P2P(未来可平滑切换 CXL)。 -- **硬件流控**:Jetty 级信用替代 PFC/ECN。 -- **性能对标 RDMA**:RoCE 上单跳 ~2-5μs。 +URMA 在 UMDK 支持的设备上提供 verbs 风格接口。当前实现创建可靠消息 +(`URMA_TM_RM`)Jetty,并使用 CTP 传输路径;通过 +`urma_post_jetty_send_wr` 提交发送 WR,通过 `urma_post_jfr_wr` 提交接收 +WR。完成事件既可由 JFC 忙轮询获取,也可通过 JFCE 事件 fd 获取。 ## 编译配置 ### CMake 编译 ```bash -# 带 URMA 支持编译 brpc(需要已安装 liburma) +# 带 URMA 支持编译 brpc cmake -B build -DWITH_URMA=ON make -C build -j$(nproc) @@ -39,8 +30,9 @@ cmake -B build make -C build -j$(nproc) ``` -`WITH_URMA=ON` 注入 `-DBRPC_WITH_URMA=1` 并链接 `liburma`。关闭时所有 -URMA 源码编译为空 stub(与 RDMA / UBRing 一致),非 URMA 构建保持干净。 +若系统存在 URMA SDK,`WITH_URMA=ON` 会添加 `-DBRPC_WITH_URMA=1` 并链接 +`liburma`。SDK 不存在时,CMake 使用仓库内置 mock,使 URMA 代码和测试仍可 +在无硬件环境编译;mock 不提供硬件数据通路。 ## 使用 @@ -76,9 +68,9 @@ UrmaTransport : public Transport (urma_transport.{h,cpp}) urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.{h,cpp}) +-- UrmaResource { jfc, jfce, jfr, jetty, remote_jetty, remote_seg } +-- 握手状态机(C/S 对称,在 TCP fd 上驱动) - +-- 发送路径:urma_post_jetty_send_wr(URMA_OPC_SEND_IMM) + +-- 发送路径:urma_post_jetty_send_wr(URMA_OPC_SEND) +-- 接收路径:urma_poll_jfc -> HandleCompletion -> InputMessenger - +-- 双窗口信用流控(_remote_rq_window / _sq_window) + +-- 双窗口信用流控(_remote_rq_window_size / _sq_window_size) ``` ### 建链流程(双平面) @@ -120,11 +112,18 @@ block 都由注册 segment 支撑,发送路径可直接从 IOBuf block refs | `--urma_zerocopy_min_size` | 512 | 小于此值的接收拷贝 | | `--urma_device` | "" | URMA 设备名(空=首个) | | `--urma_max_sge` | 0 | 每 WR SGE 上限(0=设备上限) | +| `--urma_bonding_mode` | 0 | bonding 模式:0=standalone,1=active-backup,2=balance | +| `--urma_bonding_level` | 0 | bonding 层级:0=IODIE,1=port | | `--urma_prepared_jetty_cnt` | 8 | 预连接 Jetty+CQ 请求数量;会根据 `RLIMIT_NOFILE` 自动限制 | | `--urma_buffer_size` | 8192 | 池中每个 buffer 大小(字节) | | `--urma_buffer_count` | 65536 | 池中 buffer 数量 | +| `--urma_poller_yield` | false | 忙轮询循环中主动让出 bthread | | `--urma_client_handshake_version` | 2 | 客户端握手版本(2=二进制,3=protobuf) | +设备名以 `bonding` 开头时,brpc 会在创建 context 后、创建 segment 和队列 +前配置 provider。默认 standalone+IODIE 配置与 UMDK 性能工具保持一致。 +bonding 支持需要 provider 扩展头文件 `urma/urma_ubagg.h`。 + ## 与 UBRing 协同 UrmaTransport 推荐用于**大包和跨节点**高吞吐路径,而 UBRing @@ -144,5 +143,5 @@ UrmaTransport 推荐用于**大包和跨节点**高吞吐路径,而 UBRing - 仅支持 `baidu_std` 协议(与 RDMA 一致)。SSL、RTMP、NSHEAD、MONGO 在 `ContextInitOrDie` 阶段拒绝。 -- 需要 openEuler UB 驱动 + `liburma`。非 UB 平台透明回退 TCP。 -- 仅支持 Linux/openEuler。macOS/Windows 提供空 stub。 +- 硬件数据通路需要受支持的 UMDK provider 和 `liburma`。 +- 当前实现面向 Linux。 diff --git a/docs/cn/urma_proposal.md b/docs/cn/urma_proposal.md deleted file mode 100644 index f41484e105..0000000000 --- a/docs/cn/urma_proposal.md +++ /dev/null @@ -1,527 +0,0 @@ -# UrmaTransport 提案:基于 openEuler URMA 的远程内存语义传输层 - -> 关联讨论: -> - [#3167 brpc支持传输层多协议改进建议](https://github.com/apache/brpc/issues/3167) —— Socket-Transport 架构改造共识 -> - [#3217 openEuler总线协议 urma 和 obmm 技术路线讨论](https://github.com/apache/brpc/discussions/3217) —— 路线 B(URMA-UrmaTransport)与路线 C(双后端)共识 -> - [#3226 基于UB协议OBMM共享内存Transport方案设计](https://github.com/apache/brpc/issues/3226) —— OBMM/ShmTransport 实现方案 -> -> 本提案对应 #3217 中的**路线 B**,并与 #3226 的 OBMM-ShmTransport 形成**路线 C(双后端协同)**。 - -## 1. 背景与动机 - -### 1.1 现有传输层的局限 - -brpc 当前内置三种传输层(`SOCKET_MODE_TCP` / `SOCKET_MODE_RDMA` / `SOCKET_MODE_UBRING`),均通过 #3167 落地的 `Transport` 抽象接入: - -| 传输层 | 访问语义 | 单跳延迟 | 连接模型 | 适用场景 | -|--------|----------|----------|----------|----------| -| TCP | Socket API(字节流) | ~50μs | 5-tuple | 广域网/局域网 | -| RDMA | Verbs API(异步) | ~2-5μs | RC-QP(每连接一个 QP) | 数据中心,`baidu_std` 协议 | -| UBRing | Load/Store(共享内存) | ~500ns | 共享内存环 | 同机 IPC / UBS-Mem 跨节点 | - -三者各有边界,但在以下场景仍存在缺口: - -1. **RDMA 的 QP 爆炸**:RC 模型下每条逻辑连接占用一个 QP,千级节点规模下 QP 数量达百万级,耗尽网卡片上 SRAM,触发 QP 状态 Cache Miss,延迟从 ~12μs 跳变至 ~300μs。 -2. **RDMA 的控制面/数据面资源争用**:内存注册/注销与数据面竞争网卡内部资源,高并发下性能抖动。 -3. **RDMA 编程模型笨重**:`准备 WQE → Doorbell → 轮询 CQE` 的异步流程在小包(数百字节)场景下,WQE 构建开销占比可达 17.8%。 -4. **UBRing 的跨节点能力受限**:当前跨节点依赖 UBS-Mem(`ub_shm_type=2`),需要额外 `libubsm_sdk.so`;其 64 字节定长分块(60B payload + 4B header)对大包不友好,单消息上限受 `data_queue_size` 约束(超限返回 `EMSGSIZE`)。 -5. **大包/小包协同缺失**:UBRing 对小包极优(亚微秒、零系统调用),但大包要切分成 ~17k 个 64 字节块逐块拷贝;RDMA 对大包友好(直接 SGE 零拷贝),但小包开销高。目前两者各自独立,无法在一个连接内按包大小自动选择最优路径。 - -### 1.2 URMA 是什么 - -[URMA(Unified Remote Memory Access)](https://atomgit.com/openeuler/umdk)是 openEuler 在 UB(Unified Bus)总线上提供的用户态远程内存访问 SDK,核心特性: - -- **无连接 UM(Unreliable Datagram)语义**:驱动内置重传/CRC,可靠且免 RC-QP 爆炸——**单 Jetty 可打 N 个远端**,连接数为 O(N) 而非 O(N×线程数)。 -- **统一内存操作语义**:单边(`URMA_OP_SEND`/`URMA_OP_READ`/`URMA_OP_WRITE`)、双边、原子操作通过同一套 `urma_post_send/recv` API 实现,**RoCE v2 / InfiniBand / PCIe P2P 三种底层统一对接**。 -- **URMA-SHM 模式**:远端映射同一物理页,本机与跨机共享内存统一访问,天然适配 `one2all` 场景。 -- **Jetty 流控**:硬件级流控替代 RDMA 的 PFC/ECN,避免拥塞丢包。 - -性能定位(引用 #3217 实测口径): - -| 技术方案 | 访问方式 | 单跳延迟 | 编程模型 | 缓存一致性 | 适用边界 | -|----------|----------|----------|----------|------------|----------| -| RDMA | Verbs API(异步) | ~2-5μs | Read/Write/Send | 无(需软件同步) | 数据中心 | -| URMA | Segment API(异步) | ~2-5μs | Read/Write | 可选硬件一致性 | 超节点 | -| OBMM | Load/Store | ~几百ns | 直接内存访问 | 可选 NC 和 CC 两种 | 超节点 | - -### 1.3 本提案的目标 - -**面向超节点(UB 总线互联的 CPU/GPU 集群)场景,新增一个 UrmaTransport,作为 RDMA 在 UB 场景的对等替代与升级**: - -1. **性能对标 RDMA**:在 RoCE/IB 底层上达到与现有 `RdmaTransport` 同量级延迟(~2-5μs),并通过 UM 语义消除 QP 爆炸。 -2. **与 UBSHMTransport 大小包协同**:复用 #3226 的 OBMM-ShmTransport 小包极速路径,由 UrmaTransport 承接大包/跨节点高吞吐路径,运行时按包大小与拓扑自动选择(路线 C)。 -3. **复用现有 Transport 框架**:完全沿用 #3167 落地的 `Transport` / `TransportFactory` / `SocketMode` 抽象,不侵入 `Socket`/`InputMessenger`/协议层。 -4. **平滑落地**:参考 `RdmaTransport` 的「compose TcpTransport + tri-state 协商 + TCP fallback」模式,保证未启用/对端不支持时透明回退 TCP。 - -## 2. 总体架构 - -### 2.1 在 brpc 中的位置 - -```mermaid -flowchart TD - subgraph UserAPI["用户接口层"] - CS["Channel / Server
ChannelOptions / ServerOptions
socket_mode = SOCKET_MODE_URMA"] - end - subgraph Factory["TransportFactory (transport_factory.{h,cpp})"] - F["if/else-if on SocketMode
TCP → TcpTransport
RDMA → RdmaTransport #if BRPC_WITH_RDMA
UBRING → UBShmTransport #if BRPC_WITH_UBRING
URMA → UrmaTransport #if BRPC_WITH_URMA ★新增"] - end - subgraph UrmaTransportLayer["UrmaTransport : public Transport (urma_transport.{h,cpp})"] - T["std::shared_ptr<TcpTransport> _tcp_transport (fallback)
urma::UrmaEndpoint* _urma_ep
UrmaState _urma_state {ON / OFF / UNKNOWN}"] - end - subgraph UrmaEndpointLayer["urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.*)"] - E["Jetty / URMA Segment 管理
建链握手状态机(C/S 对称)
数据收发:urma_post_send / urma_post_recv / CQ 轮询
大小包分流:与小包 ShmTransport 协同"] - end - CS -->|"ContextInitOrDie(mode, ...)
CreateTransport(mode)"| F - F --> T - T --> E -``` - -UrmaTransport 与 `RdmaTransport`、`UBShmTransport` 并列为第四种 `Transport` 实现,对外行为完全一致:用户只需把 `socket_mode` 设为 `SOCKET_MODE_URMA`,其余 brpc API(`Channel`/`Server`/`Controller`/`baidu_std` 协议)零改动。 - -### 2.2 核心类设计 - -完全沿用 RDMA/UBShm 已验证的两层结构(Transport + Endpoint),保证代码风格与维护成本对齐: - -| 类 | 文件 | 职责 | 参考 | -|----|------|------|------| -| `brpc::UrmaTransport` | `src/brpc/urma_transport.{h,cpp}` | `Transport` 子类;持有 `UrmaEndpoint*` + fallback `TcpTransport`;三态 `URMA_ON/OFF/UNKNOWN`;`ContextInitOrDie` 校验协议/SSL | `rdma_transport.{h,cpp}` / `ubshm_transport.{h,cpp}` | -| `urma::UrmaEndpoint` | `src/brpc/urma/urma_endpoint.{h,cpp}` | 每连接状态机;`SocketUser` 子类;`BAIDU_CACHELINE_ALIGNMENT`;Jetty/Segment 生命周期;CQ 轮询;收发数据路径 | `rdma/rdma_endpoint.{h,cpp}` | -| `urma::UrmaConnect : public AppConnect` | 同上 | 客户端握手驱动;`StartConnect` 起后台 bthread 跑 `ProcessHandshakeAtClient` | `RdmaConnect` / `UBConnect` | -| `urma::UrmaHandshake` | `src/brpc/urma/urma_handshake.{h,cpp}` | 握手策略基类 + v2/v3 子类;`ParsedHello` 中间结构;magic 分发 | `rdma/rdma_handshake.{h,cpp}` | -| `urma::UrmaResource` | 同 endpoint | POD:`urma_jetty*`、`urma_cq*`、comp channel;预连接池 | `RdmaResource` | -| `urma::BlockPool`(复用) | `src/brpc/rdma/block_pool.{h,cpp}` | 内存注册池;UrmaTransport 复用 RDMA 已有的 `block_pool`(URMA 底层同为 verbs 风格注册) | 现有 | -| `urma::UrmaHelper` | `src/brpc/urma/urma_helper.{h,cpp}` | 全局初始化;`liburma` dlopen;设备/Jetty 管理 | `rdma/rdma_helper.{h,cpp}` | - -**关键设计决策**(与 RDMA 对齐,便于复用与评审): - -1. **Compose TCP,不替换**:`UrmaTransport` 内嵌 `std::shared_ptr`,握手未完成/对端不支持/资源不可用时,所有数据路径方法回退到 TCP,保证现有 RPC 语义不破。 -2. **三态协商**:`URMA_UNKNOWN → URMA_ON / URMA_OFF`,数据路径统一判断 `_urma_state != URMA_OFF`,与 RDMA 的 `RDMA_UNKNOWN/ON/OFF` 完全对称。 -3. **Send/Recv + Immediate**:采用 `URMA_OP_SEND_WITH_IMM`(对应 `IBV_WR_SEND_WITH_IMM`),32-bit immediate 携带 recv-WR ack 数,实现 piggyback 流控,避免额外控制报文。不使用单边 RDMA Write/Read 作为主路径,降低收端预注册缓冲的复杂度。 -4. **双窗口 credit 流控**:`_remote_rq_window_size`(对端 recv 容量)+ `_sq_window_size`(本地 SQ 容量),均为 atomic;窗口耗尽返回 EAGAIN,`WaitEpollOut` 阻塞在 `_epollout_butex`。 -5. **复用 `block_pool` + IOBuf allocator 劫持**:URMA 同为 verbs 风格,需要注册内存。直接复用 `src/brpc/rdma/block_pool.{h,cpp}` 与 `rdma_helper.cpp` 中 `butil::iobuf::blockmem_allocate` 的替换逻辑,避免重复造轮子。若内存池后端需区分,通过 `RegisterCallback` 注入 Urma 版本的 `UrmaRegisterMemory`。 -6. **预连接 Jetty 池**:参考 `FLAGS_rdma_prepared_qp_cnt`(默认 1024),在 `GlobalUrmaInitializeOrDie` 时预分配 Jetty+CQ 集合,连接时从池中取,断开后 RESET 回收。 -7. **dlopen `liburma.so`**:参考 `rdma_helper.cpp::ReadRdmaDynamicLib`,运行时 `dlopen` + `dlsym` 解析 `urma_*` 符号,未启用时 `#else` 提供空 stub,保证非 URMA 构建干净。 - -### 2.3 大小包协同:路线 C 的关键 - -这是本提案相对于 #3226 OBMM 方案的**核心增量价值**。UBShmTransport(#3226)在 64 字节定长块上对小包极优,但对大包存在 `EMSGSIZE` 上限和 ~17k 块拷贝开销。UrmaTransport 通过 URMA 的 SGE 零拷贝对大包友好。两者协同设计: - -```mermaid -flowchart LR - Sock["Socket
(UrmaChannel)"] - Sock -->|"小包 < FLAGS_urma_shm_split_threshold
(默认 64KB)"| Small - Sock -->|"大包 >= threshold"| Large - subgraph Small["小包路径"] - S1["走 UBSHMTransport / OBMM 共享内存
Load/Store,~1μs"] - S2["适用:特征查询、CTR 分数、
控制信令、ANN 倒排"] - S1 --- S2 - end - subgraph Large["大包路径"] - L1["走 UrmaTransport
URMA SGE 零拷贝,~2-5μs,无 EMSGSIZE"] - L2["适用:Embedding 大向量、
模型参数拉取、特征序列化大包"] - L1 --- L2 - end -``` - -**协同实现方式(两选一,倾向方案 A,留待社区讨论)**: - -**方案 A:应用层显式选择(推荐先行落地)** -- 用户在 `ChannelOptions` 中显式为不同服务选择 `socket_mode`:小包服务用 `SOCKET_MODE_UBRING`,大包服务用 `SOCKET_MODE_URMA`。 -- 不引入跨 transport 的连接复用复杂度,符合 brpc「一个 Socket 一种 transport」的既有不变量(见 §3.3 of the RDMA 探索报告:A given Socket is bound to exactly one transport for its lifetime)。 -- 落地快、改动小、可测、可回退。 - -**方案 B:单连接内按包分流(远期演进,本提案不立即实现)** -- 新增 `SOCKET_MODE_HYBRID_UB_URMA`,`HybridTransport` 内部同时持有 `UBShmEndpoint` 与 `UrmaEndpoint`。 -- `CutFromIOBufList` 根据 `IOBuf` 总长度路由:小包走 SHM ring,大包走 URMA send。 -- 需要解决:双 Socket 生命周期、双握手、双 CQ 轮询、`_read_buf` 归并解析、`WaitEpollOut` 双路径唤醒。复杂度高,建议方案 A 稳定后再议。 -- 对应 #3217 路线 C「单后端自动切换」。 - -**本提案先交付方案 A 的 UrmaTransport 主体**,并在文档中明确小包场景建议使用 `SOCKET_MODE_UBRING`(#3226),形成路线 C 的「双后端各司其职」格局。方案 B 作为后续演进方向记录。 - -## 3. 与 brpc 架构的结合 - -### 3.1 Transport 接口实现映射 - -`Transport` 基类(`src/brpc/transport.h`)定义了 10 个纯虚方法。下表给出 `UrmaTransport` 每个方法的实现要点,及其与 `RdmaTransport` 的对应关系: - -| `Transport` 虚方法 | `UrmaTransport` 实现 | RDMA 对照 | -|---|---|---| -| `Init(socket, options)` | 构造 `UrmaEndpoint(socket)`;创建 fallback `TcpTransport`;若 `options.socket_mode == SOCKET_MODE_URMA` 则设 `_on_edge_trigger = urma::UrmaEndpoint::OnNewDataFromTcp` | `RdmaTransport::Init` | -| `Release()` | `delete _urma_ep`;释放 Jetty/CQ 资源回预连接池 | `RdmaTransport::Release` | -| `Reset(expected_nref)` | `UrmaEndpoint::Reset()`:Jetty 置 RESET,CQ drain,状态回 `UNINIT`,窗口计数器归零 | `RdmaEndpoint::Reset` | -| `Connect()` | 返回 `std::make_shared()`(或用户 `_default_connect`) | `RdmaTransport::Connect` | -| `CutFromIOBuf(buf)` | `_urma_ep && _urma_state != OFF` → `_urma_ep->CutFromIOBufList({buf},1)`;否则 `_tcp_transport->CutFromIOBuf(buf)` | `RdmaTransport::CutFromIOBuf` | -| `CutFromIOBufList(bufs,n)` | URMA send 路径:构建 SGE → `urma_post_send` → 窗口扣减;EAGAIN 时返回 -1 | `RdmaEndpoint::CutFromIOBufList` | -| `WaitEpollOut(butex,pollin,dt)` | `URMA_ON` 且 `!IsWritable()` → `butex_wait(_epollout_butex)`;否则委托 TCP。注意 URMA 同样无法靠 write 探测失败,wait 后需重检 `_socket->Failed()` | `RdmaTransport::WaitEpollOut` | -| `ProcessEvent(attr)` | 与 TCP 版本一致:把 `OnEdge(socket)` 调度到 bthread | `RdmaTransport::ProcessEvent` | -| `QueueMessage(msg,n,last)` | 与 TCP 版本一致;尊重 `FLAGS_urma_use_polling`/`FLAGS_urma_disable_bthread` | `RdmaTransport::QueueMessage` | -| `Debug(os)` | 输出 `UrmaEndpoint::DebugInfo`(状态、Jetty、窗口大小、索引) | `RdmaTransport::Debug` | - -数据路径流向(与 RDMA 完全一致,便于评审对照): - -```mermaid -flowchart TD - subgraph Write["写路径"] - W1["Socket::DoWrite"] --> W2["UrmaTransport::CutFromIOBufList"] - W2 --> W3["UrmaEndpoint::CutFromIOBufList"] - W3 --> W4["构建 ibv_sge
(从 IOBuf block refs + block_pool lkey)"] - W4 --> W5["urma_post_send(JETTY,
wr=SEND_WITH_IMM, imm=ack_count)"] - W5 --> W6{"窗口扣减"} - W6 -->|窗口满| W7["EAGAIN -> WaitEpollOut 阻塞"] - end - subgraph Read["读路径"] - R1["URMA CQ comp-channel fd
epoll 触发"] --> R2["Transport::ProcessEvent ->
OnEdge -> _on_edge_trigger"] - R2 --> R3["UrmaEndpoint::PollCq -> ibv_poll_cq"] - R3 --> R4["HandleCompletion"] - R4 -->|"SEND"| R5["回收 SQ 窗口
WakeAsEpollOut"] - R4 -->|"RECV"| R6["cutn 进 _socket->_read_buf
(zerocopy 阈值)"] - R6 --> R7["imm -> 补 _remote_rq_window_size
PostRecv(1) + SendAck(1)"] - R7 --> R8["InputMessenger::ProcessNewMessage
(协议解析与 TCP 完全一致)"] - end -``` - -### 3.2 注册机制(三处改动,完全沿用 RDMA 模板) - -参考探索结论:brpc 无动态注册,新 transport 需改三处: - -1. **`src/brpc/socket_mode.h`** — 新增枚举: -```cpp -enum SocketMode { - SOCKET_MODE_TCP = 0, - SOCKET_MODE_RDMA = 1, - SOCKET_MODE_UBRING = 2, - SOCKET_MODE_URMA = 3 // 新增 -}; -``` - -2. **`src/brpc/transport_factory.cpp`** — 两处 `if/else-if`,`#if BRPC_WITH_URMA` 守卫: -```cpp -int TransportFactory::ContextInitOrDie(SocketMode mode, bool serverOrNot, const void* _options) { - if (mode == SOCKET_MODE_TCP) { return 0; } -#if BRPC_WITH_RDMA - else if (mode == SOCKET_MODE_RDMA) { return RdmaTransport::ContextInitOrDie(serverOrNot, _options); } -#endif -#if BRPC_WITH_UBRING - else if (mode == SOCKET_MODE_UBRING) { return UBShmTransport::ContextInitOrDie(serverOrNot, _options); } -#endif -#if BRPC_WITH_URMA - else if (mode == SOCKET_MODE_URMA) { return UrmaTransport::ContextInitOrDie(serverOrNot, _options); } -#endif - ... -} - -std::unique_ptr TransportFactory::CreateTransport(SocketMode mode) { - ... -#if BRPC_WITH_URMA - else if (mode == SOCKET_MODE_URMA) { - return std::unique_ptr(new UrmaTransport()); - } -#endif -} -``` - -3. **`CMakeLists.txt`** — 新增 option 与宏: -```cmake -option(WITH_URMA "With URMA (openEuler Unified Remote Memory Access)" OFF) -if(WITH_URMA) - set(BRPC_WITH_URMA 1) - # liburma 由 dlopen 加载,无需 link;可选 link libumdk - list(APPEND BRPC_PUBLIC_LIBS ${URMA_LIB}) -endif() -``` - -所有 `urma*` 源文件统一 `#if BRPC_WITH_URMA ... #else #endif`,非启用构建零侵入(与 RDMA/UBRing 一致)。 - -### 3.3 建链握手(双平面:TCP 控制 + URMA 数据) - -沿用 RDMA/UBShm 已验证的**「TCP 控制面 + 原生数据面」双平面**模式,避免重新发明轮子: - -- **控制面**:复用 brpc 现有的 TCP connect + `AppConnect` 钩子。TCP 连接建立后,`Socket::CheckConnectedAndKeepWrite` 调用 `_app_connect->StartConnect`,在后台 bthread 跑 URMA 握手。 -- **数据面**:握手成功后切换到 URMA Jetty 收发,TCP fd 仅保留用于 epoll 生命周期与 fallback。 - -**客户端状态机**(`ProcessHandshakeAtClient`,参考 `RdmaEndpoint::ProcessHandshakeAtClient`): - -```mermaid -stateDiagram-v2 - [*] --> C_ALLOC_JETTY - C_ALLOC_JETTY --> C_HELLO_SEND: AllocateResources()
(从预连接池取 Jetty+CQ,或新建) - C_HELLO_SEND --> C_HELLO_WAIT: handshake->SendLocalHello()
(发 "URMA"/"URM3" magic + 本地参数) - C_HELLO_WAIT --> C_ACK_SEND: negotiated=true
ApplyRemoteHello + BringUpJetty - C_HELLO_WAIT --> C_ACK_SEND: negotiated=false → URMA_OFF - C_ACK_SEND --> ESTABLISHED: URMA_ON
(WriteToFd flags_be bit0=URMA_OK) - C_ACK_SEND --> FALLBACK_TCP: URMA_OFF - ESTABLISHED --> [*] - FALLBACK_TCP --> [*] -``` - -**服务端状态机**(`ProcessHandshakeAtServer`,由 `_on_edge_trigger = OnNewDataFromTcp` 在首次可读时拉起): - -```mermaid -stateDiagram-v2 - [*] --> S_HELLO_WAIT - S_HELLO_WAIT --> FALLBACK_TCP: 非 URMA magic
(字节推回 _read_buf, TryReadOnTcp()) - S_HELLO_WAIT --> S_ALLOC_JETTY: negotiated=true
ApplyRemoteHello - S_HELLO_WAIT --> FALLBACK_TCP: negotiated=false -> URMA_OFF - S_ALLOC_JETTY --> S_BRINGUP_JETTY: AllocateResources() - S_BRINGUP_JETTY --> S_HELLO_SEND: BringUpJetty() - S_HELLO_SEND --> S_ACK_WAIT: SendLocalHello() - S_ACK_WAIT --> ESTABLISHED: client_ack_ok && !URMA_OFF
(URMA_ON) - S_ACK_WAIT --> FAILED: client_ack_ok && URMA_OFF
(SetFailed EPROTO) - S_ACK_WAIT --> FALLBACK_TCP: !client_ack_ok
(URMA_OFF) - ESTABLISHED --> [*]: TryReadOnTcp() - FALLBACK_TCP --> [*]: TryReadOnTcp() - FAILED --> [*] -``` - -4 字节 ACK `URMA_OK=0x1` 为最终共识位,双端独立决策后确认,不一致即硬错误。与 RDMA 的 `HELLO_ACK_RDMA_OK` 完全对称。 - -握手 IO 复用 `ReadFromFd`/`WriteToFd`(EAGAIN 感知循环,`_read_butex` 等待 + 50ms `WAIT_TIMEOUT_MS`),直接照搬 `rdma_endpoint.cpp:316-421`。 - -### 3.4 CQ 作为第二个 Socket - -URMA 每连接需要一个额外可 poll 的 fd(CQ comp-channel,或 polling 模式下的 carrier)。参考 `RdmaEndpoint::AllocateResources`(`rdma_endpoint.cpp:1159-1178`)的成熟做法: - -- 创建第二个 brpc `Socket`,其 `fd` 为 CQ comp-channel fd,`options.user = this`(即 `UrmaEndpoint`),`options.on_edge_triggered_events = PollCq`。 -- 释放时 `SetFailed()` 该 CQ socket 并清 `_user`,避免 endpoint 被双重释放(参考 `rdma_endpoint.cpp:1370-1380`)。 -- Polling 模式下,参考 `PollerGroup`/`Poller`(每 bthread tag 一组),`FLAGS_urma_poller_num` 个轮询 bthread 循环遍历注册的 CQ socket id。 - -### 3.5 内存管理 - -URMA 底层为 verbs 风格,内存需注册。**直接复用 RDMA 的 `block_pool`**(`src/brpc/rdma/block_pool.{h,cpp}`),避免维护两套 slab 池: - -- `block_pool` 的 `RegisterCallback` 注入 `UrmaRegisterMemory`(使用 `IBV_ACCESS_LOCAL_WRITE | IBV_ACCESS_RELAXED_ORDERING`,失败回退 `LOCAL_WRITE`,与 `RdmaRegisterMemory` 一致)。 -- `UrmaHelper::GlobalUrmaInitializeOrDieImpl` 中同样劫持 `butil::iobuf::blockmem_allocate` → `BlockAllocate`,使所有 IOBuf block 天然 URMA 可用(参考 `rdma_helper.cpp:584-587`)。 -- 用户态注册内存:复用 `RegisterMemoryForRdma`/`DeregisterMemoryForRdma`/`GetLKey`(在 `block_pool` 的 `g_user_mrs` 表中),或新增 `urma::*` 别名包装以命名清晰。 - -> **讨论点**:URMA 与 RDMA 是否共享同一个 `block_pool` 实例?若同进程内 RDMA 与 URMA 同时启用(一般不会),需评估设备间 lkey 命名空间。初步建议:单进程二选一,由 `ContextInitOrDie` 校验互斥。 - -## 4. 关键接口与配置 - -### 4.1 用户接口 - -```cpp -// 客户端 -brpc::ChannelOptions opt; -opt.socket_mode = brpc::SOCKET_MODE_URMA; // 选择 UrmaTransport -opt.protocol = "baidu_std"; // URMA 仅支持 baidu_std(同 RDMA) -channel.Init("127.0.0.1:8000", &opt); - -// 服务端 -brpc::ServerOptions sopt; -sopt.socket_mode = brpc::SOCKET_MODE_URMA; -server.Start(port, &sopt); -``` - -`OptionsAvailableForUrma` / `OptionsAvailableOverUrma` 校验:拒绝 SSL、RTMP、NSHEAD、MONGO;仅允许 `baidu_std` 协议(与 `SupportedByRdma` 对齐)。 - -### 4.2 gflags(对照 RDMA 命名,`urma_*` 前缀) - -| Flag | 默认 | 文件 | 用途 | -|------|------|------|------| -| `--urma_max_sge` | 0 | `urma_helper.cpp` | 每 WR SGE 上限;0=设备上限 | -| `--urma_device` | "" | `urma_helper.cpp` | URMA 设备名;空=首个活跃 | -| `--urma_sq_size` | 128 | `urma_endpoint.cpp` | 每连接 SQ 深度([16,4096]) | -| `--urma_rq_size` | 128 | `urma_endpoint.cpp` | 每连接 RQ 深度 | -| `--urma_prepared_jetty_cnt` | 8 | `urma_endpoint.cpp` | 预连接 Jetty 池大小 | -| `--urma_cqe_poll_once` | 32 | `urma_endpoint.cpp` | 每次 `ibv_poll_cq` 上限 | -| `--urma_recv_zerocopy` | true | `urma_endpoint.cpp` | 接收零拷贝开关 | -| `--urma_zerocopy_min_size` | 512 | `urma_endpoint.cpp` | 零拷贝阈值(小于则拷贝) | -| `--urma_use_polling` | false | `urma_endpoint.cpp` | 轮询 vs 事件模式 | -| `--urma_poller_num` | 1 | `urma_endpoint.cpp` | 每 bthread tag 轮询器数 | -| `--urma_poller_yield` | false | `urma_endpoint.cpp` | 轮询循环 `bthread_yield` | -| `--urma_disable_bthread` | false | `urma_endpoint.cpp` | 内联处理消息(不走 bthread) | -| `--urma_trace_verbose` | false | `urma_endpoint.cpp` | 握手详细日志 | -| `--urma_client_handshake_version` | 2 | `urma_handshake.cpp` | 握手版本(2=binary,3=protobuf) | -| `--urma_memory_pool_initial_size_mb` | 1024 | `block_pool.cpp` | 内存池初始大小(复用) | -| `--urma_memory_pool_max_regions` | 3 | `block_pool.cpp` | 内存池区域上限(硬上限16) | - -### 4.3 与 UBSHMTransport 的协同约定 - -| 场景 | 建议 `socket_mode` | 理由 | -|------|---------------------|------| -| 同机 IPC(同主机进程间) | `SOCKET_MODE_UBRING` | Load/Store 亚微秒,零系统调用 | -| 超节点跨机小包(<64KB,特征/分数/控制) | `SOCKET_MODE_UBRING`(`ub_shm_type=2` UBS-Mem)或 `SOCKET_MODE_URMA` | 两者均优;UBRing 更低延迟 | -| 超节点跨机大包(>=64KB,Embedding/参数) | `SOCKET_MODE_URMA` | SGE 零拷贝,无 `EMSGSIZE` | -| 传统 RoCE/IB 数据中心 | `SOCKET_MODE_URMA` 或 `SOCKET_MODE_RDMA` | URMA 统一语义,无 QP 爆炸 | - -`--urma_shm_split_threshold`(默认 64KB)为方案 B(hybrid)预留 flag,方案 A 阶段仅作文档阈值参考。 - -## 5. 文件清单与改动范围 - -### 5.1 新增文件 - -``` -src/brpc/ -├── urma_transport.h # UrmaTransport : public Transport -├── urma_transport.cpp -├── urma/ -│ ├── urma_endpoint.h # UrmaEndpoint : public SocketUser, UrmaConnect, UrmaResource -│ ├── urma_endpoint.cpp -│ ├── urma_helper.h # 全局初始化, liburma dlopen, 设备管理 -│ ├── urma_helper.cpp -│ ├── urma_handshake.h # 握手策略基类 + v2/v3 子类 -│ ├── urma_handshake.cpp -│ ├── urma_handshake.proto # v3 protobuf 握手(参考 rdma_handshake.proto) -│ └── mock_urma.cpp # URMA 链接时 mock(无 liburma 时编译,供 CI 测试) -# URMA SDK 头文件(urma_api.h/urma_types.h/urma_opcode.h)通过系统安装提供, -# CMake find_path(URMA_INCLUDE_PATH NAMES urma_api.h) 查找,不 vendored 到代码目录 -docs/ -├── cn/urma.md -└── en/urma.md -example/ -└── urma_performance/ - ├── client.cpp - └── server.cpp -test/ -└── brpc_urma_unittest.cpp -``` - -### 5.2 修改文件 - -| 文件 | 改动 | -|------|------| -| `src/brpc/socket_mode.h` | 新增 `SOCKET_MODE_URMA = 3` | -| `src/brpc/transport_factory.{h,cpp}` | 两个 `if/else-if` 分支,`#if BRPC_WITH_URMA` 守卫 | -| `src/brpc/channel.h` | `ChannelOptions::socket_mode` 注释补充 URMA | -| `src/brpc/server.h` | `ServerOptions::socket_mode` 注释补充 URMA | -| `src/brpc/input_messenger.h` | `friend class urma::UrmaEndpoint;` | -| `CMakeLists.txt` | `option(WITH_URMA ...)` + `BRPC_WITH_URMA` 宏 + 源文件列表 | - -### 5.3 复用文件(不改或最小改) - -- `src/brpc/rdma/block_pool.{h,cpp}` — 内存注册池(`RegisterCallback` 注入 Urma 版本) -- `src/brpc/rdma/rdma_helper.cpp` — `blockmem_allocate` 劫持逻辑(提取为公共或 Urma 复制一份) -- `src/brpc/tcp_transport.{h,cpp}` — fallback 依赖 - -## 6. 落地计划 - -### Phase 1:框架与最小可用(本提案目标) -1. `SocketMode` + `TransportFactory` 注册通路。 -2. `UrmaTransport` + `UrmaEndpoint` 骨架:三态、TCP fallback、握手状态机(v2 binary)。 -3. 数据路径:`CutFromIOBufList` 走 `urma_post_send(SEND_WITH_IMM)`,`PollCq` + `HandleCompletion` 走 recv。 -4. 复用 `block_pool`。 -5. `example/urma_performance` 可跑通 `baidu_std` echo。 -6. 单测 `brpc_urma_unittest.cpp`(参考 `brpc_rdma_unittest.cpp` 与新写的 `brpc_ubring_unittest.cpp`)。 - -### Phase 2:性能与协同 -1. 握手 v3(protobuf `UrmaHello`),前向兼容。 -2. Polling 模式 + `PollerGroup` per-tag。 -3. Unsignaled/solicited 完成抑制(降低 CPU)。 -4. 与 UBSHMTransport 的大小包协同文档与示例(方案 A)。 - -### Phase 3:演进(留待社区讨论) -1. 方案 B:`SOCKET_MODE_HYBRID_UB_URMA` 单连接按包分流。 -2. URMA-SHM 模式接入,与本机 UBRing 统一。 -3. GPU memory 直接注册(`urma_register_memory` over HBM),对接 GPUDirect 类语义。 - -## 7. 风险与开放问题 - -1. **硬件/驱动依赖**:URMA 需要 openEuler UB 驱动 + `liburma`。非 UB 平台只能 fallback TCP。是否接受 ko 依赖已在 #3217 征询,本提案沿用其结论。**CI 无 URMA 硬件时的可测试性由 §7.1 的 mock 保证**。 -2. **`block_pool` 复用边界**:URMA 与 RDMA 共享内存池的设备命名空间问题,倾向 `ContextInitOrDie` 互斥校验,需评审确认。 -3. **URMA API 成熟度**:`urma_post_send`/`urma_post_recv` 与 verbs 的差异需在 `UrmaEndpoint` 适配层抹平(如 `ibv_sge` 是否复用、imm_data 位宽)。Phase 1 需先对齐 SDK 头文件。 -4. **大小包协同方案选择**:方案 A(显式)vs 方案 B(自动分流)的取舍,请社区给出倾向。本提案默认先 A 后 B。 -5. **`baidu_std` 协议限制**:与 RDMA 一致,暂不支持其他协议。若社区有 URMA over HTTP 等需求,后续议。 -6. **跨平台**:URMA 当前为 Linux/openEuler 专有。macOS/Windows 提供 stub(同 RDMA/UBRing 的 `#else` 处理)。 - -### 7.1 URMA Mock:无硬件环境下的 CI 可测试性 - -**问题**:brpc 的 CI 运行在普通 Linux 容器中,没有 URMA 硬件/`liburma`。若 `WITH_URMA=ON` 时找不到 `liburma` 就 `FATAL_ERROR`,CI 无法构建和测试 UrmaTransport,回归风险高。 - -**方案**:在 brpc 中内置一个 **链接时替换(link-time substitution)** 的 URMA mock。 - -```mermaid -flowchart TD - Build["cmake -DWITH_URMA=ON"] - Build --> Find{"find_library(URMA_LIB NAMES urma)"} - Find -->|"找到 liburma.so"| Real["编译 UrmaTransport
链接 liburma
URMA_USE_MOCK=0"] - Find -->|"未找到"| Mock["编译 UrmaTransport + mock_urma.cpp
不链接 liburma
URMA_USE_MOCK=1"] - Real --> Test1["硬件环境测试
(真实 URMA)"] - Mock --> Test2["CI 无硬件环境测试
(mock 完成路径)"] -``` - -**Mock 设计**(`src/brpc/urma/mock_urma.cpp`,Mooncake 同款模式): - -| 设计点 | 实现 | -|--------|------| -| 替换方式 | **链接时**:mock 定义与 `liburma.so` 完全同名的 `urma_*` 自由函数符号,链接器按链接顺序选择 mock | -| 对象存储 | 匿名命名空间内 `std::map` 注册表,按对象类型分表(`context_map`/`jfc_state_map`/`jfr_map`/`seg_map`/`jetty_map`/`target_jetty_map`) | -| 成员校验 | 每个 `delete_*` 检查 map 成员资格,误用返回 `URMA_EINVAL` 而非崩溃 | -| 完成路径 | 每个 posted send/recv WR 的 `user_ctx` 推入所属 JFC 的 FIFO,下次 `urma_poll_jfc` 返回 `URMA_CR_SUCCESS` | -| 数据搬运 | **不搬运 payload 字节**--mock 是控制面替身,仅驱动握手/状态机;CI 数据路径测试不校验 payload 内容 | -| 设备名契约 | `device->name == "mock_urma_device"`,测试用 `--urma_device=mock_urma_device` 匹配 | - -**Mock 覆盖的 `urma_*` 符号**(brpc transport 实际调用的全集): - -``` -urma_init / urma_uninit -urma_get_device_list / urma_free_device_list / urma_get_device_by_name -urma_query_device / urma_get_eid_list / urma_free_eid_list -urma_create_context / urma_delete_context -urma_create_jfce / urma_delete_jfce -urma_create_jfc / urma_delete_jfc -urma_create_jfr / urma_delete_jfr -urma_register_seg / urma_unregister_seg -urma_import_seg / urma_unimport_seg -urma_create_jetty / urma_delete_jetty -urma_import_jetty / urma_unimport_jetty -urma_bind_jetty / urma_unbind_jetty / urma_modify_jetty -urma_post_jetty_send_wr (send 路径) -urma_post_jfr_wr (recv 路径,Mooncake mock 未含,brpc 新增) -urma_poll_jfc (完成轮询) -urma_get_async_event / urma_ack_async_event -``` - -> **与 Mooncake mock 的差异**:Mooncake 的 transport 是单边 write/read(仅 JFS),mock 不含 `urma_post_jfr_wr`。brpc 的 `UrmaEndpoint` 是双边 send/recv,recv 路径走 `urma_post_jfr_wr`,故 brpc mock 新增该函数--将 recv WR 的 `user_ctx` 推入 JFC 的 `pending_recv` 队列,`urma_poll_jfc` 先排空 send 完成再排空 recv 完成(`cr.flag.bs.s_r` 区分)。 - -**CMake 集成**(`CMakeLists.txt`): - -```cmake -if(WITH_URMA) - find_library(URMA_LIB NAMES urma) - if(URMA_LIB) - message(STATUS "Found liburma: ${URMA_LIB}") - set(URMA_USE_MOCK 0) - else() - message(WARNING "liburma not found; building UrmaTransport with the bundled mock.") - set(URMA_USE_MOCK 1) - endif() -endif() -# ... 源文件收集 ... -if(WITH_URMA AND NOT URMA_USE_MOCK) - list(REMOVE_ITEM BRPC_SOURCES - "${PROJECT_SOURCE_DIR}/src/brpc/urma/mock_urma.cpp") -endif() -# ... 链接 ... -if(WITH_URMA) - if(NOT URMA_USE_MOCK) - list(APPEND DYNAMIC_LIB ${URMA_LIB}) - endif() -endif() -``` - -**Mock 自身守卫**:`mock_urma.cpp` 包裹在 `#if BRPC_WITH_URMA ... #endif` 中,`WITH_URMA=OFF` 时不编译(与其它 URMA 源一致)。 - -**CI 保证**: - -- `WITH_URMA=OFF`:所有 URMA 源编译为空 stub,mock 不参与编译,brpc 主库与现有行为一致。 -- `WITH_URMA=ON` + 无 `liburma`(CI 默认):mock 编译进 brpc,`brpc_urma_unittest` 链接 mock,跑通握手序列化/状态机/fallback 等纯逻辑测试。 -- `WITH_URMA=ON` + 有 `liburma`(硬件环境):mock 从源列表移除,链接真实 `liburma`,跑通真实 URMA 数据路径。 - -## 8. 与既有提案的关系 - -| 提案 | 关系 | -|------|------| -| #3167 | 本提案完全基于其落地的 `Transport` 抽象,不再讨论架构改造 | -| #3217 路线 B | 本提案即路线 B 的具体设计 | -| #3217 路线 C | 本提案 §2.3 给出方案 A(先行)+ 方案 B(演进),与 #3226 OBMM 形成 C | -| #3226 | OBMM-ShmTransport 为小包路径,本提案 UrmaTransport 为大包/跨节点路径,互补 | - -## 9. 致谢 - -感谢 @chenBright @wwbmmm @yanglimingcn @ivanallen @dwh110 在 #3167 / #3217 / #3226 中的深入讨论,本提案在架构取舍上大量吸纳了这些讨论结论(尤其是 wwbmmm 关于「Transport 持有协议私有成员、Socket 只持 `_transport` 指针」的解耦思路,已成为现有 `Transport` 接口的设计基线)。 - -欢迎各位继续评审,特别是: -- 方案 A vs 方案 B 的倾向 -- `block_pool` 复用 vs 独立 -- URMA SDK API 与 verbs 的差异适配 -- Phase 划分与落地节奏 diff --git a/docs/en/urma.md b/docs/en/urma.md index fc58b988c5..62536aba02 100644 --- a/docs/en/urma.md +++ b/docs/en/urma.md @@ -9,27 +9,18 @@ for large-packet / cross-node scenarios (Route C, "double backend"). ## Technical Background -URMA exposes a unified verbs-style API (`urma_post_send` / `urma_post_recv`) -over RoCE v2, InfiniBand, and PCIe P2P. Unlike RC-RDMA, URMA uses -**connection-less UM (Unreliable Datagram) semantics** with driver-internal -retransmission: a single Jetty can address N remote peers without the QP -explosion that limits RC-RDMA at thousand-node scale. A Jetty bundles a send -queue (JFS), a receive queue (JFR, optionally shared), and a completion queue -(JFC, optionally backed by a JFCE event fd). - -Key advantages over RDMA in super-node (UB-bus-interconnected) clusters: - -- **No QP explosion**: O(N) Jetties instead of O(N x thread-count) QPs. -- **Unified semantics**: one API across RoCE/IB/PCIe P2P (and future CXL). -- **Hardware flow control**: Jetty-level credit replaces PFC/ECN. -- **Performance parity with RDMA**: ~2-5us single-hop on RoCE. +URMA exposes a verbs-style API over devices supported by UMDK. This +implementation creates a reliable-message (`URMA_TM_RM`) Jetty with a CTP +transport path, posts send work requests with `urma_post_jetty_send_wr`, and +posts receive work requests with `urma_post_jfr_wr`. Completions are consumed +from a JFC either by busy polling or through a JFCE event fd. ## Build Configuration ### Build with CMake ```bash -# Build brpc with URMA support (requires liburma installed) +# Build brpc with URMA support cmake -B build -DWITH_URMA=ON make -C build -j$(nproc) @@ -39,9 +30,10 @@ cmake -B build make -C build -j$(nproc) ``` -`WITH_URMA=ON` injects `-DBRPC_WITH_URMA=1` and links `liburma`. When OFF, -all URMA sources compile to empty stubs (matching the RDMA / UBRing pattern), -so a URMA-less build stays clean. +When the URMA SDK is available, `WITH_URMA=ON` adds +`-DBRPC_WITH_URMA=1` and links `liburma`. If the SDK is unavailable, CMake +uses the bundled mock implementation so URMA code and tests can still be +built without hardware. The mock does not provide a hardware data path. ## Usage @@ -81,7 +73,8 @@ urma::UrmaEndpoint : public SocketUser (urma/urma_endpoint.{h,cpp}) +-- handshake state machine (C/S symmetric, driven over the TCP fd) +-- send path: urma_post_jetty_send_wr(URMA_OPC_SEND) +-- recv path: urma_poll_jfc -> HandleCompletion -> InputMessenger - +-- two-window credit flow control (_remote_rq_window / _sq_window) + +-- two-window credit flow control + (_remote_rq_window_size / _sq_window_size) ``` ### Connection establishment (dual-plane) @@ -132,6 +125,7 @@ All flags use the `urma_` prefix (mirroring RDMA's `rdma_` prefix): | `--urma_prepared_jetty_cnt` | 8 | Requested pre-allocated Jetty+CQ sets; automatically capped according to `RLIMIT_NOFILE` | | `--urma_buffer_size` | 8192 | Per-buffer size in the pool (bytes) | | `--urma_buffer_count` | 65536 | Number of buffers in the pool | +| `--urma_poller_yield` | false | Yield in the busy-poll loop | | `--urma_client_handshake_version` | 2 | Client wire version (2=binary, 3=protobuf) | For a device whose name starts with `bonding`, brpc configures the provider @@ -161,6 +155,5 @@ is tracked as a future enhancement. - `baidu_std` protocol only (same as RDMA). SSL, RTMP, NSHEAD, MONGO are rejected at `ContextInitOrDie`. -- Requires the openEuler UB driver + `liburma`. Non-UB platforms fall back to - TCP transparently. -- Linux/openEuler only. macOS / Windows provide no-op stubs. +- A hardware data path requires a supported UMDK provider and `liburma`. +- The current implementation targets Linux. diff --git a/example/http_c++/http_client.cpp b/example/http_c++/http_client.cpp index 7df7461135..23222dee9b 100644 --- a/example/http_c++/http_client.cpp +++ b/example/http_c++/http_client.cpp @@ -25,11 +25,8 @@ #include #include #include -#include "bthread/countdown_event.h" DEFINE_string(d, "", "POST this data to the http server"); -DEFINE_bool(progressive, false, "whether or not progressive read data from server"); -DEFINE_int32(progressive_read_timeout_ms, 5000, "progressive read data idle timeout in milliseconds"); DEFINE_string(load_balancer, "", "The algorithm for load balancing"); DEFINE_int32(timeout_ms, 2000, "RPC timeout in milliseconds"); DEFINE_int32(max_retry, 3, "Max retries(not including the first RPC)"); @@ -39,25 +36,6 @@ namespace brpc { DECLARE_bool(http_verbose); } -class PartDataReader: public brpc::ProgressiveReader { -public: - explicit PartDataReader(bthread::CountdownEvent* done): _done(done){} - - butil::Status OnReadOnePart(const void* data, size_t length) { - memcpy(_buffer, data, length); - LOG(INFO) << "data : " << _buffer << " size : " << length; - return butil::Status::OK(); - } - - void OnEndOfMessage(const butil::Status& status) { - _done->signal(); - LOG(INFO) << "progressive read data final status : " << status; - } -private: - char _buffer[1024]; - bthread::CountdownEvent* _done; -}; - int main(int argc, char* argv[]) { // Parse gflags. We recommend you to use gflags as well. GFLAGS_NAMESPACE::ParseCommandLineFlags(&argc, &argv, true); @@ -93,11 +71,6 @@ int main(int argc, char* argv[]) { cntl.request_attachment().append(FLAGS_d); } - if (FLAGS_progressive) { - cntl.set_progressive_read_timeout_ms(FLAGS_progressive_read_timeout_ms); - cntl.response_will_be_read_progressively(); - } - // Because `done'(last parameter) is NULL, this function waits until // the response comes back or error occurs(including timedout). channel.CallMethod(NULL, &cntl, NULL, NULL, NULL); @@ -105,13 +78,6 @@ int main(int argc, char* argv[]) { std::cerr << cntl.ErrorText() << std::endl; return -1; } - - if (FLAGS_progressive) { - bthread::CountdownEvent done(1); - cntl.ReadProgressiveAttachmentBy(new PartDataReader(&done)); - done.wait(); - LOG(INFO) << "wait client progressive read done safely"; - } // If -http_verbose is on, brpc already prints the response to stderr. if (!brpc::FLAGS_http_verbose) { std::cout << cntl.response_attachment() << std::endl; diff --git a/example/http_c++/http_server.cpp b/example/http_c++/http_server.cpp index 3cc4c63f86..05c9a0ee4c 100644 --- a/example/http_c++/http_server.cpp +++ b/example/http_c++/http_server.cpp @@ -31,7 +31,6 @@ DEFINE_int32(idle_timeout_s, -1, "Connection will be closed if there is no " DEFINE_string(certificate, "cert.pem", "Certificate file path to enable SSL"); DEFINE_string(private_key, "key.pem", "Private key file path to enable SSL"); DEFINE_string(ciphers, "", "Cipher suite used for SSL connections"); -DEFINE_bool(enable_progressive_timeout, false, "whether or not trigger progressive write attachement data timeout"); namespace example { @@ -105,9 +104,6 @@ class FileServiceImpl : public FileService { // sleep a while to send another part. bthread_usleep(10000); - if (FLAGS_enable_progressive_timeout && i > 50) { - bthread_usleep(100000000UL); - } } return NULL; } @@ -198,9 +194,6 @@ class HttpSSEServiceImpl : public HttpSSEService { // sleep a while to send another part. bthread_usleep(10000 * 10); - if (FLAGS_enable_progressive_timeout && i > 50) { - bthread_usleep(100000000UL); - } } return NULL; } diff --git a/example/urma_performance/CMakeLists.txt b/example/urma_performance/CMakeLists.txt index d8a4eaee8e..dca6e02478 100644 --- a/example/urma_performance/CMakeLists.txt +++ b/example/urma_performance/CMakeLists.txt @@ -30,11 +30,12 @@ find_path(URMA_INCLUDE_PATH NAMES urma/urma_api.h PATHS /usr/include /usr/local/include PATH_SUFFIXES ub/umdk ub/umdk/urma umdk umdk/urma) find_library(URMA_LIB NAMES urma) -if(URMA_LIB) +if(URMA_INCLUDE_PATH AND URMA_LIB) + set(BRPC_EXAMPLE_URMA_SDK_FOUND ON) list(APPEND DYNAMIC_LIB ${URMA_LIB}) else() message(STATUS - "liburma not found; the example requires brpc built with the bundled URMA mock") + "URMA SDK not found; using the URMA implementation linked into brpc") endif() add_executable(urma_performance_client client.cpp ${PROTO_SRC} ${PROTO_HEADER}) @@ -42,5 +43,12 @@ brpc_example_configure_target(urma_performance_client) add_executable(urma_performance_server server.cpp ${PROTO_SRC} ${PROTO_HEADER}) brpc_example_configure_target(urma_performance_server) +if(BRPC_EXAMPLE_URMA_SDK_FOUND) + target_include_directories(urma_performance_client PRIVATE + ${URMA_INCLUDE_PATH}) + target_include_directories(urma_performance_server PRIVATE + ${URMA_INCLUDE_PATH}) +endif() + target_link_libraries(urma_performance_client PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB}) target_link_libraries(urma_performance_server PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB}) diff --git a/example/urma_performance/client.cpp b/example/urma_performance/client.cpp index 2d2e985f15..9449dbe960 100644 --- a/example/urma_performance/client.cpp +++ b/example/urma_performance/client.cpp @@ -17,20 +17,23 @@ #include #include + #include #include + #include + #include "butil/atomicops.h" #include "butil/fast_rand.h" #include "butil/logging.h" -#include "brpc/server.h" #include "brpc/channel.h" +#include "brpc/controller.h" #include "bthread/bthread.h" #include "bvar/latency_recorder.h" #include "bvar/variable.h" #include "test.pb.h" -#ifdef BRPC_WITH_URMA +#if BRPC_WITH_URMA DEFINE_string(server, "127.0.0.1:8003", "IP Port of urma performance server"); DEFINE_int32(thread_num, 0, "How many threads are used"); @@ -57,7 +60,7 @@ static void* worker(void* arg) { std::vector resps(FLAGS_queue_depth); std::vector ids(FLAGS_queue_depth); for (int i = 0; i < FLAGS_queue_depth; ++i) { - cntls[i].set_log_id(butil::fast_rand() & 0x7fffffff); + cntls[i].set_log_id(butil::fast_rand(&seed) & 0x7fffffff); reqs[i].set_echo_attachment(FLAGS_echo_attachment); if (FLAGS_attachment_size >= 0) { cntls[i].request_attachment().resize(FLAGS_attachment_size, 'a'); diff --git a/example/urma_performance/server.cpp b/example/urma_performance/server.cpp index 617d79d632..baaff323b6 100644 --- a/example/urma_performance/server.cpp +++ b/example/urma_performance/server.cpp @@ -16,14 +16,17 @@ // under the License. #include + #include "butil/atomicops.h" #include "butil/logging.h" #include "butil/time.h" +#include "brpc/closure_guard.h" +#include "brpc/controller.h" #include "brpc/server.h" #include "bvar/variable.h" #include "test.pb.h" -#ifdef BRPC_WITH_URMA +#if BRPC_WITH_URMA DEFINE_int32(port, 8003, "TCP Port of this server"); DEFINE_bool(use_urma, true, "Use URMA transport (true) or TCP (false)"); @@ -33,21 +36,18 @@ butil::atomic g_last_time(0); namespace test { class PerfTestServiceImpl : public PerfTestService { public: - PerfTestServiceImpl() {} - ~PerfTestServiceImpl() {} - void Test(google::protobuf::RpcController* cntl_base, const PerfTestRequest* request, PerfTestResponse* response, google::protobuf::Closure* done) { - LOG(ERROR) << "Enter server Test()"; brpc::ClosureGuard done_guard(done); - uint64_t last = g_last_time.load(butil::memory_order_relaxed); - uint64_t now = butil::monotonic_time_us(); + const uint64_t last = + g_last_time.load(butil::memory_order_relaxed); + const uint64_t now = butil::monotonic_time_us(); if (now > last && now - last > 100000) { if (g_last_time.exchange(now, butil::memory_order_relaxed) == last) { - LOG(ERROR) << "Updating CPU usage"; - response->set_cpu_usage(bvar::Variable::describe_exposed("process_cpu_usage")); + response->set_cpu_usage( + bvar::Variable::describe_exposed("process_cpu_usage")); } else { response->set_cpu_usage(""); } diff --git a/example/urma_performance/test.proto b/example/urma_performance/test.proto index 8e33009688..10b41c8fe5 100644 --- a/example/urma_performance/test.proto +++ b/example/urma_performance/test.proto @@ -15,19 +15,20 @@ // specific language governing permissions and limitations // under the License. -syntax="proto2"; +syntax = "proto2"; + option cc_generic_services = true; package test; message PerfTestRequest { - required bool echo_attachment = 1; -}; + required bool echo_attachment = 1; +} message PerfTestResponse { - required string cpu_usage = 1; -}; + required string cpu_usage = 1; +} service PerfTestService { - rpc Test(PerfTestRequest) returns (PerfTestResponse); -}; + rpc Test(PerfTestRequest) returns (PerfTestResponse); +} diff --git a/graphify-out/GRAPH_HEALTH.txt b/graphify-out/GRAPH_HEALTH.txt deleted file mode 100644 index 38d5fcd8c3..0000000000 --- a/graphify-out/GRAPH_HEALTH.txt +++ /dev/null @@ -1,35 +0,0 @@ -[graphify] MultiDiGraph edge-collapse diagnostic -input: -input_stage: provided JSON (normal graph.json is post-build) -effective_directed: -nodes: 823 -unverified_code_nodes: 0 -raw_edges: 1182 -valid_candidate_edges: 1100 -missing_endpoint_edges: 0 -dangling_endpoint_edges: 82 -self_loop_edges: 0 -exact_duplicate_edges: 0 -directed_unique_endpoint_pairs: 1100 -directed_same_endpoint_collapsed_edges: 0 -undirected_unique_endpoint_pairs: 1100 -undirected_same_endpoint_collapsed_edges: 0 -same_endpoint_group_count: 0 -relation_variant_groups: 0 -source_file_variant_groups: 0 -source_location_variant_groups: 0 -context_variant_groups: 0 -post_build_graph_type: Graph -post_build_edges: 1111 -producer_suppression_sites: 10 -producer_suppression_examples: - - L1047 seen_ids arity=unknown - - L1197 seen_ids arity=unknown - - L1199 seen_doc_refs arity=unknown - - L1622 seen_ids arity=unknown - - L2091 seen_keys arity=unknown - - L3014 seen_ids arity=unknown - - L3122 seen_ids arity=unknown - - L3201 seen_ids arity=unknown -note: normal graph.json is post-build; raw producer loss must be measured earlier. -GRAPH HEALTH WARNING: 82 dangling-endpoint edges - graph may be incomplete/corrupt. diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md deleted file mode 100644 index fa6dc57f1c..0000000000 --- a/graphify-out/GRAPH_REPORT.md +++ /dev/null @@ -1,357 +0,0 @@ -# Graph Report - C:\workspace\code\opensource\brpc\src\brpc\urma (2026-07-29) - -## Corpus Check -- Corpus is ~27,958 words - fits in a single context window. You may not need a graph. - -## Summary -- 823 nodes · 1111 edges · 59 communities -- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 61 edges (avg confidence: 0.8) -- Token cost: 0 input · 0 output - -## Community Hubs (Navigation) -- Endpoint Data Path -- Handshake State Machine -- Device Capability Model -- Transport Port Attributes -- Global Runtime Buffer Pool -- Memory Segment Registration -- Work Request Payloads -- Context Address Identity -- Queue Pair Configuration -- Transport Attribute Values -- Core SDK Types -- Endpoint Resource Allocation -- URMA API Lifecycle -- Endpoint Resource Bundle -- Completion Queue Processing -- Mock URMA Backend -- Unreliable Transport Resources -- Completion Queue Internals -- Completion Record Model -- Receive Queue Internals -- Jetty Runtime State -- Jetty Group Runtime -- Parsed Handshake Payload -- Send Queue Internals -- Completion Queue Options -- Receive Queue Options -- Send Queue Options -- Imported Target Jetty -- Atomic Scatter Gather -- Context Event Resources -- Send Work Request -- Device Attribute Record -- Jetty Configuration -- Jetty Group Configuration -- Remote Jetty Identity -- Transport Path Configuration -- Resource Import APIs -- Completion Queue Configuration -- Remote Receive Queue -- Token Identifier Lifecycle -- Transport Configuration Query -- Network Address Model -- Notification Record -- Active Transport Config -- Async Event Model -- Receive Posting Lifecycle -- Congestion Control Entry -- Jetty Runtime Attributes -- Jetty Option State -- Receive Queue Attributes -- Pending Receive Buffer -- Completion Event Wait -- Active Transport Attributes -- Completion Queue Attributes -- Send Queue Attributes -- User Control Input -- User Control Output -- URMA Initialization Attributes -- Service Level Mapping - -## God Nodes (most connected - your core abstractions) -1. `urma_device_cap` - 47 edges -2. `urma_tp_attr` - 24 edges -3. `urma_tp_attr_value` - 23 edges -4. `UrmaEndpoint` - 20 edges -5. `HelloMessage` - 19 edges -6. `urma_target_jetty` - 18 edges -7. `urma_jetty_grp` - 17 edges -8. `urma_jetty` - 17 edges -9. `urma_jfc` - 16 edges -10. `UrmaResource` - 16 edges - -## Surprising Connections (you probably didn't know these) -- `GlobalUrmaInitializeImpl()` --calls--> `urma_init()` [INFERRED] - urma_helper.cpp → mock_urma.cpp -- `GlobalUrmaInitializeImpl()` --calls--> `urma_get_device_list()` [INFERRED] - urma_helper.cpp → mock_urma.cpp -- `GlobalUrmaInitializeImpl()` --calls--> `urma_free_device_list()` [INFERRED] - urma_helper.cpp → mock_urma.cpp -- `GlobalUrmaInitializeImpl()` --calls--> `urma_query_device()` [INFERRED] - urma_helper.cpp → mock_urma.cpp -- `GlobalUrmaInitializeImpl()` --calls--> `urma_get_eid_list()` [INFERRED] - urma_helper.cpp → mock_urma.cpp - -## Import Cycles -- None detected. - -## Communities (59 total, 0 thin omitted) - -### Community 0 - "Endpoint Data Path" -Cohesion: 0.05 -Nodes (44): AppConnect, IOBuf, ostream, Socket, StringPiece, bthread_tag_t, function, ParsedHello (+36 more) - -### Community 1 - "Handshake State Machine" -Cohesion: 0.06 -Nodes (49): UrmaEndpoint::FillLocalHelloV2(), UrmaEndpoint::ProcessHandshakeAtServer(), UrmaEndpoint::ReadAndParseHelloV3(), ParsedHello, CreateClientHandshake(), CreateServerHandshakeByMagic(), DrainBytes(), HelloMessage (+41 more) - -### Community 2 - "Device Capability Model" -Cohesion: 0.04 -Nodes (47): urma_device_cap, atomic_feat, ceq_cnt, congestion_ctrl_alg, feature, max_cas_size, max_eid_cnt, max_fetch_and_add_size (+39 more) - -### Community 3 - "Transport Port Attributes" -Cohesion: 0.05 -Nodes (42): urma_device, name, ops, path, sysfs_dev, type, urma_net_addr_info, index (+34 more) - -### Community 4 - "Global Runtime Buffer Pool" -Cohesion: 0.07 -Nodes (36): atomic, urma_delete_context(), urma_register_seg(), urma_uninit(), urma_unregister_seg(), AlignUp(), BufferPool, free_lists (+28 more) - -### Community 5 - "Memory Segment Registration" -Cohesion: 0.06 -Nodes (36): urma_seg_t, urma_token_t, urma_cr_token, token_id, token_value, urma_seg, attr, urma_seg_cfg (+28 more) - -### Community 6 - "Work Request Payloads" -Cohesion: 0.07 -Nodes (29): urma_target_seg_t, urma_jfr_wr, next, src, user_ctx, urma_rw_wr, dst, notify_data (+21 more) - -### Community 7 - "Context Address Identity" -Cohesion: 0.07 -Nodes (29): urma_context, aggr_mode, async_fd, dev, dev_fd, eid, eid_index, mutex (+21 more) - -### Community 8 - "Queue Pair Configuration" -Cohesion: 0.08 -Nodes (25): urma_jfc_t, urma_jfr_cfg, depth, flag, id, jfc, max_sge, min_rnr_timer (+17 more) - -### Community 9 - "Transport Attribute Values" -Cohesion: 0.09 -Nodes (23): urma_tp_attr_value, ack_udp_srcport, at, at_times, data_udp_srcport, dip, dma, dscp (+15 more) - -### Community 10 - "Core SDK Types" -Cohesion: 0.12 -Nodes (15): urma_guid, raw, urma_jfce_cfg, depth, user_ctx, urma_ops, urma_provider_ops, urma_ref (+7 more) - -### Community 11 - "Endpoint Resource Allocation" -Cohesion: 0.19 -Nodes (16): urma_context_t, urma_jetty_cfg_t, urma_jfc_cfg_t, urma_jfce_t, urma_jfr_cfg_t, urma_create_jetty(), urma_create_jfc(), urma_create_jfce() (+8 more) - -### Community 12 - "URMA API Lifecycle" -Cohesion: 0.18 -Nodes (15): urma_jetty_t, urma_status_t, urma_target_jetty_t, urma_bind_jetty(), urma_delete_jetty(), urma_delete_jfc(), urma_init(), urma_modify_jetty() (+7 more) - -### Community 13 - "Endpoint Resource Bundle" -Cohesion: 0.12 -Nodes (16): urma_jetty_t, urma_jfc_t, urma_jfce_t, urma_jfr_t, urma_target_jetty_t, urma_target_seg_t, PreparedJetty, res (+8 more) - -### Community 14 - "Completion Queue Processing" -Cohesion: 0.18 -Nodes (14): deque, mutex, urma_cr_t, urma_jfc_t, JfcState, completions, event_pending, mutex (+6 more) - -### Community 15 - "Mock URMA Backend" -Cohesion: 0.22 -Nodes (13): urma_ack_async_event(), urma_create_context(), urma_free_device_list(), urma_free_eid_list(), urma_get_async_event(), urma_get_device_by_name(), urma_get_device_list(), urma_get_eid_list() (+5 more) - -### Community 16 - "Unreliable Transport Resources" -Cohesion: 0.14 -Nodes (14): urma_ur, attr, urma_ur_info, attr, cnt, name, seg_list, size (+6 more) - -### Community 17 - "Completion Queue Internals" -Cohesion: 0.15 -Nodes (13): urma_jfc_cfg_t, urma_jfc, async_events_acked, comp_events_acked, event_cond, event_mutex, handle, jfc_cfg (+5 more) - -### Community 18 - "Completion Record Model" -Cohesion: 0.15 -Nodes (13): urma_cr, completion_len, flag, local_id, opcode, remote_id, status, tpn (+5 more) - -### Community 19 - "Receive Queue Internals" -Cohesion: 0.17 -Nodes (12): pthread_mutex_t, urma_jfr_cfg_t, urma_jfr, async_events_acked, event_cond, event_mutex, handle, jfr_cfg (+4 more) - -### Community 20 - "Jetty Runtime State" -Cohesion: 0.17 -Nodes (12): urma_jetty_cfg_t, urma_jetty, async_events_acked, event_cond, event_mutex, handle, jetty_cfg, jetty_id (+4 more) - -### Community 21 - "Jetty Group Runtime" -Cohesion: 0.17 -Nodes (12): urma_jetty_t, urma_jetty_grp, async_events_acked, event_cond, event_mutex, handle, jetty_cnt, jetty_grp_id (+4 more) - -### Community 22 - "Parsed Handshake Payload" -Cohesion: 0.17 -Nodes (12): ParsedHello, buffer_size, eid, jetty_id, recv_buffer_cnt, seg_eid, seg_len, seg_token_id (+4 more) - -### Community 23 - "Send Queue Internals" -Cohesion: 0.18 -Nodes (11): pthread_cond_t, urma_jfs, async_events_acked, event_cond, event_mutex, handle, jfs_cfg, jfs_id (+3 more) - -### Community 24 - "Completion Queue Options" -Cohesion: 0.18 -Nodes (11): urma_jfc_opt, is_actived, jfc_opt_mask, reserved, urma_jfc_ci, urma_jfc_cqe_base_addr, urma_jfc_db_addr, urma_jfc_db_status (+3 more) - -### Community 25 - "Receive Queue Options" -Cohesion: 0.18 -Nodes (11): urma_jfr_opt, is_actived, jfr_opt_mask, reserved, urma_jfr_ci, urma_jfr_db_addr, urma_jfr_db_status, urma_jfr_id (+3 more) - -### Community 26 - "Send Queue Options" -Cohesion: 0.18 -Nodes (11): urma_jfs_opt, is_actived, jfs_opt_mask, reserved, urma_jfs_ci, urma_jfs_db_addr, urma_jfs_db_status, urma_jfs_id (+3 more) - -### Community 27 - "Imported Target Jetty" -Cohesion: 0.18 -Nodes (11): urma_target_jetty, flag, handle, id, policy, tp, tp_type, trans_mode (+3 more) - -### Community 28 - "Atomic Scatter Gather" -Cohesion: 0.20 -Nodes (10): urma_sge_t, urma_cas_wr, dst, src, urma_faa_wr, dst, src, urma_sg (+2 more) - -### Community 29 - "Context Event Resources" -Cohesion: 0.22 -Nodes (9): urma_context_t, urma_jfce, fd, ref, urma_ctx, urma_notifier, fd, incomplete_tjetty_list (+1 more) - -### Community 30 - "Send Work Request" -Cohesion: 0.22 -Nodes (9): urma_target_jetty_t, urma_jfs_wr, flag, next, opcode, tjetty, user_ctx, urma_jfs_wr_flag_t (+1 more) - -### Community 31 - "Device Attribute Record" -Cohesion: 0.22 -Nodes (9): urma_device_attr, dev_cap, guid, port_attr, port_cnt, reserved_jetty_id_max, reserved_jetty_id_min, urma_device_cap_t (+1 more) - -### Community 32 - "Jetty Configuration" -Cohesion: 0.22 -Nodes (9): urma_jetty_cfg, flag, id, jetty_grp, jfs_cfg, user_ctx, urma_jetty_flag_t, urma_jetty_grp_t (+1 more) - -### Community 33 - "Jetty Group Configuration" -Cohesion: 0.22 -Nodes (9): urma_jetty_grp_cfg, flag, id, name, policy, token_value, user_ctx, urma_jetty_grp_flag_t (+1 more) - -### Community 34 - "Remote Jetty Identity" -Cohesion: 0.22 -Nodes (9): urma_rjetty, flag, jetty_id, policy, tp_type, trans_mode, type, urma_jetty_id_t (+1 more) - -### Community 35 - "Transport Path Configuration" -Cohesion: 0.22 -Nodes (9): urma_tp_cfg, ack_timeout, dscp, flag, oor_cnt, retry_factor, retry_num, trans_mode (+1 more) - -### Community 36 - "Resource Import APIs" -Cohesion: 0.25 -Nodes (8): urma_seg_t, urma_target_seg_t, urma_token_t, urma_import_jetty(), urma_import_seg(), urma_unimport_seg(), urma_import_seg_flag_t, urma_rjetty_t - -### Community 37 - "Completion Queue Configuration" -Cohesion: 0.25 -Nodes (8): urma_jfce_t, urma_jfc_cfg, ceqn, depth, flag, jfce, user_ctx, urma_jfc_flag_t - -### Community 38 - "Remote Receive Queue" -Cohesion: 0.25 -Nodes (8): urma_rjfr, flag, jfr_id, tp_type, trans_mode, urma_import_jetty_flag_t, urma_jfr_id_t, urma_tp_type_t - -### Community 39 - "Token Identifier Lifecycle" -Cohesion: 0.25 -Nodes (8): urma_token_id, flag, handle, ref, token_id, urma_ctx, urma_ref_t, urma_token_id_flag_t - -### Community 40 - "Transport Configuration Query" -Cohesion: 0.29 -Nodes (7): urma_get_tp_cfg, flag, local_eid, peer_eid, trans_mode, urma_get_tp_cfg_flag_t, urma_transport_mode_t - -### Community 41 - "Network Address Model" -Cohesion: 0.33 -Nodes (6): sa_family_t, urma_net_addr, mac, prefix_len, sin_family, vlan - -### Community 42 - "Notification Record" -Cohesion: 0.33 -Nodes (6): urma_status_t, urma_notify, status, type, user_ctx, urma_notify_type_t - -### Community 43 - "Active Transport Config" -Cohesion: 0.33 -Nodes (6): urma_active_tp_cfg, peer_tp_handle, tag, tp_attr, tp_handle, urma_active_tp_attr_t - -### Community 44 - "Async Event Model" -Cohesion: 0.33 -Nodes (6): urma_async_event, element, event_type, priv, urma_ctx, urma_async_event_type_t - -### Community 45 - "Receive Posting Lifecycle" -Cohesion: 0.40 -Nodes (5): urma_jfr_t, urma_delete_jfr(), urma_post_jfr_wr(), UrmaEndpoint::DoPostRecv(), urma_jfr_wr_t - -### Community 46 - "Congestion Control Entry" -Cohesion: 0.40 -Nodes (5): urma_cc_entry, alg, cc_pattern_idx, cc_priority, urma_tp_cc_alg_t - -### Community 47 - "Jetty Runtime Attributes" -Cohesion: 0.40 -Nodes (5): urma_jetty_attr, mask, rx_threshold, state, urma_jetty_state_t - -### Community 48 - "Jetty Option State" -Cohesion: 0.40 -Nodes (5): urma_jetty_opt, is_actived, jfs_opt, reserved, urma_jfs_opt_t - -### Community 49 - "Receive Queue Attributes" -Cohesion: 0.40 -Nodes (5): urma_jfr_attr, mask, rx_threshold, state, urma_jfr_state_t - -### Community 50 - "Pending Receive Buffer" -Cohesion: 0.50 -Nodes (4): PendingRecv, addr, len, user_ctx - -### Community 51 - "Completion Event Wait" -Cohesion: 0.50 -Nodes (4): urma_wait_jfc(), SocketUniquePtr, urma_jfc_t, UrmaEndpoint::WaitCqEvent() - -### Community 52 - "Active Transport Attributes" -Cohesion: 0.50 -Nodes (4): urma_active_tp_attr, reserved, rx_psn, tx_psn - -### Community 53 - "Completion Queue Attributes" -Cohesion: 0.50 -Nodes (4): urma_jfc_attr, mask, moderate_count, moderate_period - -### Community 54 - "Send Queue Attributes" -Cohesion: 0.50 -Nodes (4): urma_jfs_attr, mask, state, urma_jfs_state_t - -### Community 55 - "User Control Input" -Cohesion: 0.50 -Nodes (4): urma_user_ctl_in, addr, len, opcode - -### Community 56 - "User Control Output" -Cohesion: 0.50 -Nodes (4): urma_user_ctl_out, addr, len, reserved - -### Community 57 - "URMA Initialization Attributes" -Cohesion: 0.67 -Nodes (3): urma_init_attr, token, uasid - -### Community 58 - "Service Level Mapping" -Cohesion: 0.67 -Nodes (3): urma_sl_info, SL, tp_type - -## Knowledge Gaps -- **458 isolated node(s):** `mutex`, `completions`, `event_pending`, `addr`, `len` (+453 more) - These have ≤1 connection - possible missing edges or undocumented components. - -## Suggested Questions -_Questions this graph is uniquely positioned to answer:_ - -- **Why does `urma_device_cap` connect `Device Capability Model` to `Core SDK Types`?** - _High betweenness centrality (0.109) - this node is a cross-community bridge._ -- **Why does `urma_tp_attr_value` connect `Transport Attribute Values` to `Core SDK Types`?** - _High betweenness centrality (0.053) - this node is a cross-community bridge._ -- **Why does `urma_tp_attr` connect `Transport Port Attributes` to `Core SDK Types`?** - _High betweenness centrality (0.052) - this node is a cross-community bridge._ -- **Are the 3 inferred relationships involving `UrmaEndpoint` (e.g. with `UrmaEndpoint::PollCq()` and `UrmaEndpoint::ProcessHandshakeAtClient()`) actually correct?** - _`UrmaEndpoint` has 3 INFERRED edges - model-reasoned connections that need verification._ -- **What connects `mutex`, `completions`, `event_pending` to the rest of the system?** - _458 weakly-connected nodes found - possible documentation gaps or missing edges._ -- **Should `Endpoint Data Path` be split into smaller, more focused modules?** - _Cohesion score 0.05027322404371585 - nodes in this community are weakly interconnected._ -- **Should `Handshake State Machine` be split into smaller, more focused modules?** - _Cohesion score 0.05536723163841808 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/graphify-out/cache/stat-index.json b/graphify-out/cache/stat-index.json deleted file mode 100644 index 3c5ec99e3c..0000000000 --- a/graphify-out/cache/stat-index.json +++ /dev/null @@ -1 +0,0 @@ -{"C:\\workspace\\code\\opensource\\brpc\\AGENTS.md":{"size":2891,"mtime_ns":1784705330069121000,"word_count":400},"C:\\workspace\\code\\opensource\\brpc\\CHANGES.md":{"size":2345,"mtime_ns":1782715529475026200,"word_count":363},"C:\\workspace\\code\\opensource\\brpc\\CLAUDE.md":{"size":5679,"mtime_ns":1784705330069121000,"word_count":674},"C:\\workspace\\code\\opensource\\brpc\\CMakeLists.txt":{"size":28537,"mtime_ns":1785294541266797500,"word_count":1554},"C:\\workspace\\code\\opensource\\brpc\\CODE_OF_CONDUCT.md":{"size":3262,"mtime_ns":1782715529476028500,"word_count":446},"C:\\workspace\\code\\opensource\\brpc\\CONTRIBUTING.md":{"size":1561,"mtime_ns":1782715529476028500,"word_count":127},"C:\\workspace\\code\\opensource\\brpc\\README.md":{"size":7448,"mtime_ns":1785293755574793300,"word_count":526},"C:\\workspace\\code\\opensource\\brpc\\README_cn.md":{"size":7253,"mtime_ns":1785293755574793300,"word_count":276},"C:\\workspace\\code\\opensource\\brpc\\SECURITY.md":{"size":546,"mtime_ns":1784705330079267300,"word_count":67},"C:\\workspace\\code\\opensource\\brpc\\THREAT_MODEL.md":{"size":44650,"mtime_ns":1784705330080272500,"word_count":6157},"C:\\workspace\\code\\opensource\\brpc\\bazel\\third_party\\leveldb\\port.h":{"size":1453,"mtime_ns":1782715529481063500,"word_count":212},"C:\\workspace\\code\\opensource\\brpc\\bazel\\third_party\\leveldb\\port_config.h":{"size":1591,"mtime_ns":1782715529481063500,"word_count":241},"C:\\workspace\\code\\opensource\\brpc\\community\\apache-package-validator.sh":{"size":3164,"mtime_ns":1782715529485574200,"word_count":383},"C:\\workspace\\code\\opensource\\brpc\\community\\cases.md":{"size":5015,"mtime_ns":1782715529485574200,"word_count":288},"C:\\workspace\\code\\opensource\\brpc\\community\\logo-bRPC.svg":{"size":11382,"mtime_ns":1782715529485574200,"word_count":47},"C:\\workspace\\code\\opensource\\brpc\\community\\newcommitter_cn.md":{"size":4056,"mtime_ns":1782715529486575000,"word_count":220},"C:\\workspace\\code\\opensource\\brpc\\community\\newcommitter_en.md":{"size":4539,"mtime_ns":1782715529486575000,"word_count":548},"C:\\workspace\\code\\opensource\\brpc\\community\\oncall.md":{"size":5388,"mtime_ns":1782715529486575000,"word_count":404},"C:\\workspace\\code\\opensource\\brpc\\community\\release_cn.md":{"size":18016,"mtime_ns":1782715529486575000,"word_count":1643},"C:\\workspace\\code\\opensource\\brpc\\community\\release_en.md":{"size":17835,"mtime_ns":1782715529486575000,"word_count":2493},"C:\\workspace\\code\\opensource\\brpc\\community\\release_schedule.md":{"size":747,"mtime_ns":1782715529487598600,"word_count":28},"C:\\workspace\\code\\opensource\\brpc\\community\\releasecheck.md":{"size":1755,"mtime_ns":1782715529487598600,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\community\\releasecheck.png":{"size":251728,"mtime_ns":1782715529488600400,"word_count":12619},"C:\\workspace\\code\\opensource\\brpc\\community\\releasefail.png":{"size":228365,"mtime_ns":1782715529490597800,"word_count":10283},"C:\\workspace\\code\\opensource\\brpc\\config_brpc.sh":{"size":23229,"mtime_ns":1785290288703298900,"word_count":2128},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\atomic_instructions.md":{"size":12219,"mtime_ns":1782715529491101400,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\auto_concurrency_limiter.md":{"size":13713,"mtime_ns":1782715529491101400,"word_count":300},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\avalanche.md":{"size":4881,"mtime_ns":1782715529491101400,"word_count":47},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\backup_request.md":{"size":6569,"mtime_ns":1782715529492103000,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\baidu_std.md":{"size":6981,"mtime_ns":1782715529492103000,"word_count":352},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bazel_support.md":{"size":607,"mtime_ns":1782715529492103000,"word_count":35},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\benchmark.md":{"size":20665,"mtime_ns":1782715529492103000,"word_count":307},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\benchmark_http.md":{"size":444,"mtime_ns":1782715529492103000,"word_count":6},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread.md":{"size":9133,"mtime_ns":1782715529501606000,"word_count":142},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread_id.md":{"size":2499,"mtime_ns":1782715529502607000,"word_count":77},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread_or_not.md":{"size":5795,"mtime_ns":1782715529502607000,"word_count":126},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread_tagged_task_group.md":{"size":4529,"mtime_ns":1782715529502607000,"word_count":80},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bthread_tracer.md":{"size":13045,"mtime_ns":1784705330080272500,"word_count":599},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\builtin_service.md":{"size":2601,"mtime_ns":1782715529503638400,"word_count":55},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bvar.md":{"size":4408,"mtime_ns":1782715529503638400,"word_count":154},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\bvar_c++.md":{"size":30120,"mtime_ns":1782715529503638400,"word_count":1997},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\case_apicontrol.md":{"size":3195,"mtime_ns":1782715529503638400,"word_count":196},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\case_baidu_dsp.md":{"size":1827,"mtime_ns":1782715529504638700,"word_count":73},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\case_elf.md":{"size":5118,"mtime_ns":1782715529504638700,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\case_ubrpc.md":{"size":2415,"mtime_ns":1782715529504638700,"word_count":109},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\circuit_breaker.md":{"size":6840,"mtime_ns":1782715529504638700,"word_count":108},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\client.md":{"size":68304,"mtime_ns":1784705330080272500,"word_count":2427},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\combo_channel.md":{"size":25563,"mtime_ns":1782715529505639900,"word_count":1426},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\connections.md":{"size":3262,"mtime_ns":1782715529505639900,"word_count":363},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\consistent_hashing.md":{"size":4322,"mtime_ns":1782715529505639900,"word_count":79},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\contention_profiler.md":{"size":3763,"mtime_ns":1782715529506641700,"word_count":67},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\coroutine.md":{"size":8593,"mtime_ns":1782715529506641700,"word_count":317},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\couchbase_example.md":{"size":130,"mtime_ns":1782715529506641700,"word_count":5},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\cpu_profiler.md":{"size":6639,"mtime_ns":1782715529506641700,"word_count":357},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\dummy_server.md":{"size":924,"mtime_ns":1782715529506641700,"word_count":26},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\endpoint.md":{"size":2500,"mtime_ns":1782715529507643800,"word_count":124},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\error_code.md":{"size":9106,"mtime_ns":1782715529507643800,"word_count":449},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\execution_queue.md":{"size":11817,"mtime_ns":1782715529507643800,"word_count":702},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\flags.md":{"size":6756,"mtime_ns":1782715529507643800,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\flatmap.md":{"size":16248,"mtime_ns":1782715529507643800,"word_count":1154},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\getting_started.md":{"size":14334,"mtime_ns":1782715529508646100,"word_count":730},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\heap_profiler.md":{"size":10335,"mtime_ns":1782715529508646100,"word_count":468},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\http_client.md":{"size":12848,"mtime_ns":1782715529508646100,"word_count":586},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\http_derivatives.md":{"size":1861,"mtime_ns":1782715529508646100,"word_count":35},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\http_service.md":{"size":18764,"mtime_ns":1782715529509647800,"word_count":827},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\io.md":{"size":10332,"mtime_ns":1782715529509647800,"word_count":103},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\iobuf.md":{"size":3024,"mtime_ns":1782715529509647800,"word_count":166},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\json2pb.md":{"size":4721,"mtime_ns":1782715529509647800,"word_count":237},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\lalb.md":{"size":16454,"mtime_ns":1782715529509647800,"word_count":216},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\load_balancing.md":{"size":5249,"mtime_ns":1782715529510668700,"word_count":66},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\mbvar_c++.md":{"size":32958,"mtime_ns":1782715529510668700,"word_count":2355},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\memcache_client.md":{"size":5728,"mtime_ns":1782715529510668700,"word_count":303},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\memory_management.md":{"size":6410,"mtime_ns":1782715529510668700,"word_count":46},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\mysql_client.md":{"size":16455,"mtime_ns":1784705330080272500,"word_count":1380},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\new_protocol.md":{"size":9664,"mtime_ns":1782715529511670500,"word_count":335},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\nshead_service.md":{"size":12333,"mtime_ns":1782715529511670500,"word_count":677},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\overview.md":{"size":10444,"mtime_ns":1782715529511670500,"word_count":178},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\parallel_http.md":{"size":327,"mtime_ns":1782715529511670500,"word_count":1},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rdma.md":{"size":7739,"mtime_ns":1782715529511670500,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\redis_client.md":{"size":17225,"mtime_ns":1782715529512672600,"word_count":1026},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rpc_press.md":{"size":7460,"mtime_ns":1784705330080272500,"word_count":279},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rpc_replay.md":{"size":6393,"mtime_ns":1782715529512672600,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rpc_view.md":{"size":1952,"mtime_ns":1782715529512672600,"word_count":54},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\rpcz.md":{"size":6018,"mtime_ns":1782715529512672600,"word_count":189},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\sanitizers.md":{"size":2382,"mtime_ns":1782715529512672600,"word_count":114},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\server.md":{"size":58609,"mtime_ns":1782715529513674600,"word_count":2555},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\server_debugging.md":{"size":6315,"mtime_ns":1782715529513674600,"word_count":144},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\server_push.md":{"size":4362,"mtime_ns":1782715529513674600,"word_count":26},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\status.md":{"size":2935,"mtime_ns":1782715529514678800,"word_count":79},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\streaming_log.md":{"size":12537,"mtime_ns":1782715529514678800,"word_count":728},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\streaming_rpc.md":{"size":7680,"mtime_ns":1782715529514678800,"word_count":612},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\thread_local.md":{"size":4489,"mtime_ns":1782715529514678800,"word_count":134},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\threading_overview.md":{"size":7888,"mtime_ns":1782715529514678800,"word_count":64},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\thrift.md":{"size":6276,"mtime_ns":1782715529515680900,"word_count":445},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\timeout_concurrency_limiter.md":{"size":2426,"mtime_ns":1782715529515680900,"word_count":45},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\timer_keeping.md":{"size":9998,"mtime_ns":1782715529515680900,"word_count":78},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\ub_client.md":{"size":13304,"mtime_ns":1782715529515680900,"word_count":869},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\ubring.md":{"size":6431,"mtime_ns":1785293755576798900,"word_count":463},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\urma.md":{"size":6357,"mtime_ns":1785306414230220700,"word_count":565},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\urma_proposal.md":{"size":32686,"mtime_ns":1785306414868888700,"word_count":2551},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\vars.md":{"size":6594,"mtime_ns":1782715529515680900,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\docs\\cn\\wireshark_baidu_std.md":{"size":1530,"mtime_ns":1782715529516677800,"word_count":66},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\atomic_instructions.md":{"size":13565,"mtime_ns":1782715529517181500,"word_count":1936},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\auto_concurrency_limiter.md":{"size":289,"mtime_ns":1782715529517181500,"word_count":34},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\avalanche.md":{"size":883,"mtime_ns":1782715529517181500,"word_count":156},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\backup_request.md":{"size":7180,"mtime_ns":1782715529517181500,"word_count":938},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\baidu_std.md":{"size":259,"mtime_ns":1782715529517181500,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bazel_support.md":{"size":651,"mtime_ns":1782715529517181500,"word_count":81},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\benchmark.md":{"size":259,"mtime_ns":1782715529518183500,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\benchmark_http.md":{"size":269,"mtime_ns":1782715529518183500,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread.md":{"size":255,"mtime_ns":1782715529520215700,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread_id.md":{"size":261,"mtime_ns":1782715529520215700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread_or_not.md":{"size":269,"mtime_ns":1782715529520215700,"word_count":34},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread_tagged_task_group.md":{"size":291,"mtime_ns":1782715529520215700,"word_count":35},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bthread_tracer.md":{"size":269,"mtime_ns":1782715529520215700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\builtin_service.md":{"size":3000,"mtime_ns":1782715529520215700,"word_count":345},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bvar.md":{"size":5000,"mtime_ns":1782715529520215700,"word_count":635},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\bvar_c++.md":{"size":24377,"mtime_ns":1782715529521718200,"word_count":3129},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\case_apicontrol.md":{"size":271,"mtime_ns":1782715529521718200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\case_baidu_dsp.md":{"size":269,"mtime_ns":1782715529521718200,"word_count":34},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\case_elf.md":{"size":257,"mtime_ns":1782715529521718200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\case_ubrpc.md":{"size":261,"mtime_ns":1782715529521718200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\circuit_breaker.md":{"size":271,"mtime_ns":1782715529521718200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\client.md":{"size":66955,"mtime_ns":1784705330085987300,"word_count":8729},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\combo_channel.md":{"size":27876,"mtime_ns":1782715529522724500,"word_count":3483},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\connections.md":{"size":263,"mtime_ns":1782715529522724500,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\consistent_hashing.md":{"size":277,"mtime_ns":1782715529522724500,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\contention_profiler.md":{"size":279,"mtime_ns":1782715529522724500,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\coroutine.md":{"size":259,"mtime_ns":1782715529523726100,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\couchbase_example.md":{"size":49027,"mtime_ns":1782715529523726100,"word_count":5217},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\cpu_profiler.md":{"size":265,"mtime_ns":1782715529523726100,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\dummy_server.md":{"size":960,"mtime_ns":1782715529523726100,"word_count":141},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\endpoint.md":{"size":257,"mtime_ns":1782715529523726100,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\error_code.md":{"size":9825,"mtime_ns":1782715529524728000,"word_count":1401},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\execution_queue.md":{"size":271,"mtime_ns":1782715529524728000,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\flags.md":{"size":251,"mtime_ns":1782715529524728000,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\flatmap.md":{"size":255,"mtime_ns":1782715529524728000,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\getting_started.md":{"size":14112,"mtime_ns":1782715529524728000,"word_count":1838},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\heap_profiler.md":{"size":267,"mtime_ns":1782715529524728000,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\http_client.md":{"size":13873,"mtime_ns":1782715529525729600,"word_count":1746},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\http_derivatives.md":{"size":2142,"mtime_ns":1782715529525729600,"word_count":288},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\http_service.md":{"size":20338,"mtime_ns":1782715529525729600,"word_count":2363},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\io.md":{"size":11221,"mtime_ns":1782715529525729600,"word_count":1592},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\iobuf.md":{"size":3307,"mtime_ns":1782715529525729600,"word_count":446},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\json2pb.md":{"size":255,"mtime_ns":1782715529526731700,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\lalb.md":{"size":1990,"mtime_ns":1782715529526731700,"word_count":300},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\load_balancing.md":{"size":269,"mtime_ns":1782715529526731700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\mbvar_c++.md":{"size":259,"mtime_ns":1782715529526731700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\memcache_client.md":{"size":6322,"mtime_ns":1782715529526731700,"word_count":818},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\memory_management.md":{"size":275,"mtime_ns":1782715529526731700,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\new_protocol.md":{"size":11023,"mtime_ns":1782715529527733400,"word_count":1471},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\nshead_service.md":{"size":269,"mtime_ns":1782715529527733400,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\overview.md":{"size":11801,"mtime_ns":1782715529527733400,"word_count":1370},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\parallel_http.md":{"size":267,"mtime_ns":1782715529527733400,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rdma.md":{"size":7480,"mtime_ns":1782715529527733400,"word_count":1068},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\redis_client.md":{"size":18390,"mtime_ns":1782715529528735200,"word_count":2310},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rpc_press.md":{"size":259,"mtime_ns":1782715529528735200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rpc_replay.md":{"size":261,"mtime_ns":1782715529528735200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rpc_view.md":{"size":257,"mtime_ns":1782715529528735200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\rpcz.md":{"size":249,"mtime_ns":1782715529528735200,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\sanitizers.md":{"size":261,"mtime_ns":1782715529528735200,"word_count":32},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\server.md":{"size":61515,"mtime_ns":1782715529529737400,"word_count":7753},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\server_debugging.md":{"size":7186,"mtime_ns":1782715529529737400,"word_count":1012},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\server_push.md":{"size":5290,"mtime_ns":1782715529529737400,"word_count":825},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\status.md":{"size":3263,"mtime_ns":1782715529529737400,"word_count":387},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\streaming_log.md":{"size":13219,"mtime_ns":1782715529530739300,"word_count":1908},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\streaming_rpc.md":{"size":8111,"mtime_ns":1782715529530739300,"word_count":1174},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\thread_local.md":{"size":265,"mtime_ns":1782715529530739300,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\threading_overview.md":{"size":9862,"mtime_ns":1782715529530739300,"word_count":1402},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\thrift.md":{"size":6413,"mtime_ns":1782715529530739300,"word_count":751},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\timeout_concurrency_limiter.md":{"size":295,"mtime_ns":1782715529530739300,"word_count":34},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\timer_keeping.md":{"size":267,"mtime_ns":1782715529530739300,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\ub_client.md":{"size":259,"mtime_ns":1782715529540766800,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\ubring.md":{"size":6701,"mtime_ns":1785293755576798900,"word_count":802},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\urma.md":{"size":6832,"mtime_ns":1785306413618282700,"word_count":919},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\vars.md":{"size":7500,"mtime_ns":1782715529541767900,"word_count":1051},"C:\\workspace\\code\\opensource\\brpc\\docs\\en\\wireshark_baidu_std.md":{"size":1550,"mtime_ns":1782715529541767900,"word_count":120},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\302.png":{"size":32213,"mtime_ns":1782715529541767900,"word_count":1130},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_1.png":{"size":31584,"mtime_ns":1782715529542770200,"word_count":1073},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_2.png":{"size":39964,"mtime_ns":1782715529542770200,"word_count":1481},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_3.png":{"size":25322,"mtime_ns":1782715529542770200,"word_count":890},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_4.png":{"size":32399,"mtime_ns":1782715529543772400,"word_count":1135},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\apicontrol_compare_5.png":{"size":10546,"mtime_ns":1782715529543772400,"word_count":415},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\backup_request_1.png":{"size":22198,"mtime_ns":1782715529543772400,"word_count":800},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\backup_request_2.png":{"size":45644,"mtime_ns":1782715529544774400,"word_count":1674},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\backup_request_3.png":{"size":30140,"mtime_ns":1782715529544774400,"word_count":1292},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\backup_request_4.png":{"size":21024,"mtime_ns":1782715529544774400,"word_count":1066},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_1.png":{"size":35908,"mtime_ns":1782715529544774400,"word_count":1284},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_10.png":{"size":31382,"mtime_ns":1782715529545776700,"word_count":1070},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_2.png":{"size":36011,"mtime_ns":1782715529545776700,"word_count":1225},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_3.png":{"size":35498,"mtime_ns":1782715529545776700,"word_count":1282},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_4.png":{"size":28475,"mtime_ns":1782715529546779000,"word_count":970},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_5.png":{"size":48125,"mtime_ns":1782715529546779000,"word_count":1745},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_6.png":{"size":38226,"mtime_ns":1782715529546779000,"word_count":1354},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_7.png":{"size":30661,"mtime_ns":1782715529547780600,"word_count":1071},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_8.png":{"size":30800,"mtime_ns":1782715529547780600,"word_count":1044},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\baidu_dsp_compare_9.png":{"size":32526,"mtime_ns":1782715529547780600,"word_count":1174},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_concurrency_1.png":{"size":35166,"mtime_ns":1782715529548782500,"word_count":1293},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_concurrency_2.png":{"size":18192,"mtime_ns":1782715529548782500,"word_count":631},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_concurrency_3.png":{"size":4265,"mtime_ns":1782715529548782500,"word_count":130},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_creation_qps.png":{"size":23590,"mtime_ns":1782715529548782500,"word_count":1056},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_status_model.svg":{"size":19072,"mtime_ns":1782715529549784200,"word_count":1395},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_stb_model.svg":{"size":23048,"mtime_ns":1782715529549784200,"word_count":1673},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_tagged_increment_all.png":{"size":179089,"mtime_ns":1782715529551283500,"word_count":5714},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_tagged_increment_tag1.png":{"size":178168,"mtime_ns":1782715529551283500,"word_count":5576},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bthread_tagged_worker_usage.png":{"size":190384,"mtime_ns":1782715529552285300,"word_count":5811},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\builtin_service_from_console.png":{"size":127971,"mtime_ns":1782715529553287800,"word_count":5139},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\builtin_service_more.png":{"size":72208,"mtime_ns":1782715529554297300,"word_count":2746},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_dump_flags.png":{"size":31152,"mtime_ns":1782715529554297300,"word_count":1112},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_dump_flags_2.png":{"size":34488,"mtime_ns":1782715529555296500,"word_count":1324},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_flow.png":{"size":9252,"mtime_ns":1782715529555296500,"word_count":413},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_noah1.png":{"size":32722,"mtime_ns":1782715529555296500,"word_count":1192},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_noah2.png":{"size":20280,"mtime_ns":1782715529556297300,"word_count":850},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_noah3.png":{"size":25759,"mtime_ns":1782715529556297300,"word_count":1169},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\bvar_perf.png":{"size":106239,"mtime_ns":1782715529557299200,"word_count":4475},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\chash.png":{"size":20446,"mtime_ns":1782715529557299200,"word_count":769},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\client_side.png":{"size":42131,"mtime_ns":1782715529558299400,"word_count":1861},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\cmd_jeprof_text.png":{"size":374689,"mtime_ns":1782715529560298000,"word_count":12992},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\connection_timedout.png":{"size":185600,"mtime_ns":1782715529561298600,"word_count":6674},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\curl_jeprof_flamegraph.png":{"size":777258,"mtime_ns":1782715529564300000,"word_count":28188},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\curl_jeprof_svg.png":{"size":346446,"mtime_ns":1782715529566337600,"word_count":17254},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\curl_jeprof_text.png":{"size":484854,"mtime_ns":1782715529569853500,"word_count":21016},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\dummy_server_1.png":{"size":1988,"mtime_ns":1782715529569853500,"word_count":63},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\dummy_server_2.png":{"size":30010,"mtime_ns":1782715529569853500,"word_count":1086},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\dummy_server_3.png":{"size":37915,"mtime_ns":1782715529570902700,"word_count":1376},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\echo_cpu_profiling.png":{"size":250029,"mtime_ns":1782715529571904200,"word_count":10529},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\flag_setvalue.png":{"size":10826,"mtime_ns":1782715529571904200,"word_count":377},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\foobar_bvar.png":{"size":58629,"mtime_ns":1782715529572905900,"word_count":2137},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\foobar_latency_cdf.png":{"size":16830,"mtime_ns":1782715529572905900,"word_count":640},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\full_worker_usage.png":{"size":23286,"mtime_ns":1782715529572905900,"word_count":1035},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\full_worker_usage_2.png":{"size":26680,"mtime_ns":1782715529573907200,"word_count":1104},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\growth_profiler.png":{"size":170350,"mtime_ns":1782715529574908300,"word_count":6553},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\health_service.png":{"size":6521,"mtime_ns":1782715529574908300,"word_count":225},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\heap_profiler_1.png":{"size":201040,"mtime_ns":1782715529576911000,"word_count":8227},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\heap_profiler_2.png":{"size":126084,"mtime_ns":1782715529576911000,"word_count":4868},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\heap_profiler_3.gif":{"size":2247904,"mtime_ns":1782715529588943200,"word_count":92596},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\high_cpu_usage.png":{"size":24193,"mtime_ns":1782715529588943200,"word_count":1068},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\je_stats_print.png":{"size":253493,"mtime_ns":1782715529589944700,"word_count":10390},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_1.png":{"size":15250,"mtime_ns":1782715529590946200,"word_count":632},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_2.png":{"size":1165962,"mtime_ns":1782715529593950000,"word_count":42024},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_3.png":{"size":840918,"mtime_ns":1782715529596150400,"word_count":30453},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_4.png":{"size":3025,"mtime_ns":1782715529596150400,"word_count":112},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lalb_5.png":{"size":2994,"mtime_ns":1782715529596150400,"word_count":120},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\latency_cdf.png":{"size":77892,"mtime_ns":1782715529597158000,"word_count":3181},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\lb.png":{"size":6167,"mtime_ns":1782715529597158000,"word_count":256},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\logo-white.png":{"size":9721,"mtime_ns":1782715529597158000,"word_count":372},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\logo.png":{"size":10115,"mtime_ns":1782715529597158000,"word_count":391},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\multi_client_latency_cdf.png":{"size":89313,"mtime_ns":1782715529598157500,"word_count":3866},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\multi_server_latency_cdf.png":{"size":82956,"mtime_ns":1782715529599158200,"word_count":3417},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\normal_cpu_usage.png":{"size":27189,"mtime_ns":1782715529599158200,"word_count":1253},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\normal_worker_usage.png":{"size":26899,"mtime_ns":1782715529599158200,"word_count":1220},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ns.png":{"size":5942,"mtime_ns":1782715529600177200,"word_count":250},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ns_access_interval.png":{"size":37332,"mtime_ns":1782715529600177200,"word_count":1404},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ns_filter.jpg":{"size":11648,"mtime_ns":1782715529600177200,"word_count":343},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\pchan.png":{"size":21250,"mtime_ns":1782715529600177200,"word_count":808},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\pooled_conn.png":{"size":21428,"mtime_ns":1782715529600177200,"word_count":822},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\protobufs_service.png":{"size":22602,"mtime_ns":1782715529601680500,"word_count":878},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\qps_vs_multi_client.png":{"size":90134,"mtime_ns":1782715529601680500,"word_count":3574},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\qps_vs_reqsize.png":{"size":118079,"mtime_ns":1782715529602685700,"word_count":4869},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\qps_vs_threadnum.png":{"size":95901,"mtime_ns":1782715529603687500,"word_count":4113},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\raft_contention_1.png":{"size":896576,"mtime_ns":1782715529608688000,"word_count":39417},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\raft_contention_2.png":{"size":118523,"mtime_ns":1782715529609688800,"word_count":4579},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\raft_contention_3.png":{"size":113155,"mtime_ns":1782715529610690100,"word_count":4703},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\register_lb.png":{"size":17384,"mtime_ns":1782715529610690100,"word_count":486},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\register_ns.png":{"size":31870,"mtime_ns":1782715529610690100,"word_count":1205},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\reloadable_flags.png":{"size":34324,"mtime_ns":1782715529611691800,"word_count":1107},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\resource_pool.png":{"size":9227,"mtime_ns":1782715529611691800,"word_count":345},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\restful_1.png":{"size":13695,"mtime_ns":1782715529611691800,"word_count":456},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\restful_2.png":{"size":14638,"mtime_ns":1782715529611691800,"word_count":520},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\restful_3.png":{"size":33118,"mtime_ns":1782715529612722800,"word_count":1522},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc.png":{"size":13643,"mtime_ns":1782715529612722800,"word_count":457},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_flow.png":{"size":54016,"mtime_ns":1782715529613724800,"word_count":2328},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_press_1.png":{"size":17965,"mtime_ns":1782715529613724800,"word_count":580},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_press_2.png":{"size":83440,"mtime_ns":1782715529613724800,"word_count":3521},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_1.png":{"size":36288,"mtime_ns":1782715529614726800,"word_count":1740},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_2.png":{"size":6338,"mtime_ns":1782715529614726800,"word_count":231},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_3.png":{"size":35966,"mtime_ns":1782715529614726800,"word_count":1411},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_4.png":{"size":19835,"mtime_ns":1782715529615723200,"word_count":717},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_replay_5.png":{"size":77345,"mtime_ns":1782715529616226400,"word_count":3313},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_view_1.png":{"size":79695,"mtime_ns":1782715529616226400,"word_count":3596},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_view_2.png":{"size":92344,"mtime_ns":1782715529617228200,"word_count":3607},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpc_view_3.png":{"size":135737,"mtime_ns":1782715529617228200,"word_count":4836},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz.png":{"size":200429,"mtime_ns":1782715529619735000,"word_count":7388},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_2.png":{"size":45268,"mtime_ns":1782715529619735000,"word_count":1614},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_3.png":{"size":33345,"mtime_ns":1782715529619735000,"word_count":1218},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_4.png":{"size":12971,"mtime_ns":1782715529619735000,"word_count":509},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_5.png":{"size":30211,"mtime_ns":1782715529620736900,"word_count":1156},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_6.png":{"size":138317,"mtime_ns":1782715529621738900,"word_count":5363},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\rpcz_7.png":{"size":191679,"mtime_ns":1782715529622867700,"word_count":6650},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\server_side.png":{"size":41706,"mtime_ns":1782715529622867700,"word_count":1921},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_invalid_value.png":{"size":13154,"mtime_ns":1782715529622867700,"word_count":504},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_reject.png":{"size":13692,"mtime_ns":1782715529623869500,"word_count":479},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_with_form.png":{"size":17969,"mtime_ns":1782715529623869500,"word_count":665},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_with_form_2.png":{"size":18089,"mtime_ns":1782715529623869500,"word_count":627},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\set_flag_with_form_3.png":{"size":8999,"mtime_ns":1782715529623869500,"word_count":301},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\short_conn.png":{"size":17957,"mtime_ns":1782715529624871400,"word_count":675},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\single_conn.png":{"size":20962,"mtime_ns":1782715529624871400,"word_count":817},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\status.png":{"size":138800,"mtime_ns":1782715529625873400,"word_count":5944},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\status_2.png":{"size":170832,"mtime_ns":1782715529626875100,"word_count":6399},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\tcmalloc_stuck.png":{"size":716744,"mtime_ns":1782715529629890200,"word_count":26567},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\the_r_after_flag.png":{"size":7331,"mtime_ns":1782715529629890200,"word_count":289},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\threading_overview_1.png":{"size":25019,"mtime_ns":1782715529630909000,"word_count":1164},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\threading_overview_2.png":{"size":31149,"mtime_ns":1782715529630909000,"word_count":1205},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\trace_printf.png":{"size":7940,"mtime_ns":1782715529630909000,"word_count":262},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\twolevel_server_latency_cdf.png":{"size":80948,"mtime_ns":1782715529631910400,"word_count":3359},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ubrpc_compare_1.png":{"size":142076,"mtime_ns":1782715529632910600,"word_count":5299},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\ubrpc_compare_2.png":{"size":107741,"mtime_ns":1782715529633909800,"word_count":4317},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_1.gif":{"size":1117263,"mtime_ns":1782715529639457200,"word_count":41811},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_2.gif":{"size":1632482,"mtime_ns":1782715529648008100,"word_count":61945},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_3.gif":{"size":1603109,"mtime_ns":1782715529655541200,"word_count":61971},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_4.png":{"size":21442,"mtime_ns":1782715529656540000,"word_count":1136},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_5.png":{"size":38628,"mtime_ns":1782715529656540000,"word_count":1436},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_6.png":{"size":84449,"mtime_ns":1782715529657539100,"word_count":2806},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vars_7.png":{"size":30808,"mtime_ns":1782715529657539100,"word_count":1025},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\version_service.png":{"size":8943,"mtime_ns":1782715529657539100,"word_count":316},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\vlog_service.png":{"size":150416,"mtime_ns":1782715529658537800,"word_count":5268},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_baidu_std_request.png":{"size":88216,"mtime_ns":1782715529659609100,"word_count":3453},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_baidu_std_response.png":{"size":80784,"mtime_ns":1782715529660641100,"word_count":3310},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_folders.png":{"size":119784,"mtime_ns":1782715529661641000,"word_count":4409},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_protobuf_search_paths.png":{"size":133530,"mtime_ns":1782715529661641000,"word_count":4904},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\wireshark_protobuf_settings.png":{"size":573273,"mtime_ns":1782715529665643200,"word_count":20037},"C:\\workspace\\code\\opensource\\brpc\\docs\\images\\write.png":{"size":22661,"mtime_ns":1782715529665643200,"word_count":885},"C:\\workspace\\code\\opensource\\brpc\\example\\asynchronous_echo_c++\\CMakeLists.txt":{"size":1540,"mtime_ns":1785293755577795200,"word_count":161},"C:\\workspace\\code\\opensource\\brpc\\example\\asynchronous_echo_c++\\client.cpp":{"size":4855,"mtime_ns":1782715529666644100,"word_count":560},"C:\\workspace\\code\\opensource\\brpc\\example\\asynchronous_echo_c++\\server.cpp":{"size":4973,"mtime_ns":1782715529667645800,"word_count":533},"C:\\workspace\\code\\opensource\\brpc\\example\\auto_concurrency_limiter\\CMakeLists.txt":{"size":1543,"mtime_ns":1785293755577795200,"word_count":161},"C:\\workspace\\code\\opensource\\brpc\\example\\auto_concurrency_limiter\\client.cpp":{"size":9468,"mtime_ns":1782715529668648000,"word_count":777},"C:\\workspace\\code\\opensource\\brpc\\example\\auto_concurrency_limiter\\server.cpp":{"size":10595,"mtime_ns":1782715529668648000,"word_count":812},"C:\\workspace\\code\\opensource\\brpc\\example\\auto_concurrency_limiter\\test_case.json":{"size":5064,"mtime_ns":1782715529669644700,"word_count":244},"C:\\workspace\\code\\opensource\\brpc\\example\\backup_request_c++\\CMakeLists.txt":{"size":1551,"mtime_ns":1785293755578839800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\backup_request_c++\\client.cpp":{"size":3821,"mtime_ns":1782715529670147600,"word_count":450},"C:\\workspace\\code\\opensource\\brpc\\example\\backup_request_c++\\server.cpp":{"size":4431,"mtime_ns":1782715529671149000,"word_count":515},"C:\\workspace\\code\\opensource\\brpc\\example\\baidu_proxy_and_generic_call\\CMakeLists.txt":{"size":1637,"mtime_ns":1785293755578839800,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\example\\baidu_proxy_and_generic_call\\client.cpp":{"size":4188,"mtime_ns":1782715529671149000,"word_count":469},"C:\\workspace\\code\\opensource\\brpc\\example\\baidu_proxy_and_generic_call\\proxy.cpp":{"size":6949,"mtime_ns":1782715529672150400,"word_count":650},"C:\\workspace\\code\\opensource\\brpc\\example\\baidu_proxy_and_generic_call\\server.cpp":{"size":4974,"mtime_ns":1782715529672150400,"word_count":551},"C:\\workspace\\code\\opensource\\brpc\\example\\bthread_tag_echo_c++\\CMakeLists.txt":{"size":1715,"mtime_ns":1785293755578839800,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\bthread_tag_echo_c++\\client.cpp":{"size":6223,"mtime_ns":1782715529672150400,"word_count":671},"C:\\workspace\\code\\opensource\\brpc\\example\\bthread_tag_echo_c++\\server.cpp":{"size":5757,"mtime_ns":1782715529673152800,"word_count":601},"C:\\workspace\\code\\opensource\\brpc\\example\\build_with_bazel\\test.cc":{"size":1120,"mtime_ns":1782715529675170800,"word_count":157},"C:\\workspace\\code\\opensource\\brpc\\example\\cancel_c++\\CMakeLists.txt":{"size":1495,"mtime_ns":1785293755578839800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\cancel_c++\\client.cpp":{"size":5380,"mtime_ns":1782715529677174000,"word_count":591},"C:\\workspace\\code\\opensource\\brpc\\example\\cancel_c++\\server.cpp":{"size":4276,"mtime_ns":1782715529678170700,"word_count":486},"C:\\workspace\\code\\opensource\\brpc\\example\\cascade_echo_c++\\CMakeLists.txt":{"size":1537,"mtime_ns":1785293755578839800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\cascade_echo_c++\\client.cpp":{"size":5951,"mtime_ns":1782715529678674100,"word_count":650},"C:\\workspace\\code\\opensource\\brpc\\example\\cascade_echo_c++\\server.cpp":{"size":5714,"mtime_ns":1782715529678674100,"word_count":582},"C:\\workspace\\code\\opensource\\brpc\\example\\coroutine\\coroutine_server.cpp":{"size":5187,"mtime_ns":1782715529679676300,"word_count":465},"C:\\workspace\\code\\opensource\\brpc\\example\\couchbase_c++\\couchbase_client.cpp":{"size":18543,"mtime_ns":1782715529679676300,"word_count":1887},"C:\\workspace\\code\\opensource\\brpc\\example\\couchbase_c++\\multithreaded_couchbase_client.cpp":{"size":12725,"mtime_ns":1782715529680678800,"word_count":1353},"C:\\workspace\\code\\opensource\\brpc\\example\\couchbase_c++\\traditional_brpc_couchbase_client.cpp":{"size":6028,"mtime_ns":1782715529680678800,"word_count":689},"C:\\workspace\\code\\opensource\\brpc\\example\\dynamic_partition_echo_c++\\CMakeLists.txt":{"size":1923,"mtime_ns":1785293755578839800,"word_count":177},"C:\\workspace\\code\\opensource\\brpc\\example\\dynamic_partition_echo_c++\\client.cpp":{"size":8331,"mtime_ns":1782715529681681000,"word_count":855},"C:\\workspace\\code\\opensource\\brpc\\example\\dynamic_partition_echo_c++\\server.cpp":{"size":6962,"mtime_ns":1782715529681681000,"word_count":739},"C:\\workspace\\code\\opensource\\brpc\\example\\echo_c++\\CMakeLists.txt":{"size":1481,"mtime_ns":1785293755578839800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\echo_c++\\client.cpp":{"size":4252,"mtime_ns":1782715529682683100,"word_count":482},"C:\\workspace\\code\\opensource\\brpc\\example\\echo_c++\\server.cpp":{"size":5886,"mtime_ns":1782715529682683100,"word_count":626},"C:\\workspace\\code\\opensource\\brpc\\example\\grpc_c++\\CMakeLists.txt":{"size":1680,"mtime_ns":1785293755578839800,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\example\\grpc_c++\\client.cpp":{"size":3716,"mtime_ns":1782715529683685400,"word_count":421},"C:\\workspace\\code\\opensource\\brpc\\example\\grpc_c++\\server.cpp":{"size":2926,"mtime_ns":1782715529683685400,"word_count":332},"C:\\workspace\\code\\opensource\\brpc\\example\\http_c++\\CMakeLists.txt":{"size":2059,"mtime_ns":1785293755578839800,"word_count":187},"C:\\workspace\\code\\opensource\\brpc\\example\\http_c++\\benchmark_http.cpp":{"size":5390,"mtime_ns":1782715529684687500,"word_count":574},"C:\\workspace\\code\\opensource\\brpc\\example\\http_c++\\http_client.cpp":{"size":4566,"mtime_ns":1784622097679688900,"word_count":493},"C:\\workspace\\code\\opensource\\brpc\\example\\http_c++\\http_server.cpp":{"size":11326,"mtime_ns":1784622097681693900,"word_count":964},"C:\\workspace\\code\\opensource\\brpc\\example\\memcache_c++\\CMakeLists.txt":{"size":1284,"mtime_ns":1785293755578839800,"word_count":152},"C:\\workspace\\code\\opensource\\brpc\\example\\memcache_c++\\client.cpp":{"size":8547,"mtime_ns":1782715529685689600,"word_count":901},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_c++\\CMakeLists.txt":{"size":1897,"mtime_ns":1785293755578839800,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_c++\\client.cpp":{"size":6382,"mtime_ns":1782715529687190200,"word_count":682},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_c++\\server.cpp":{"size":3809,"mtime_ns":1782715529687190200,"word_count":402},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_fns_c++\\CMakeLists.txt":{"size":1836,"mtime_ns":1785293755578839800,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_fns_c++\\client.cpp":{"size":6567,"mtime_ns":1782715529688192400,"word_count":698},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_fns_c++\\random_kill.sh":{"size":1963,"mtime_ns":1782715529688192400,"word_count":252},"C:\\workspace\\code\\opensource\\brpc\\example\\multi_threaded_echo_fns_c++\\server.cpp":{"size":7553,"mtime_ns":1782715529689193900,"word_count":814},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\CMakeLists.txt":{"size":1393,"mtime_ns":1785293755583754900,"word_count":94},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_cli.cpp":{"size":6395,"mtime_ns":1785293755583754900,"word_count":713},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_go_press.go":{"size":2002,"mtime_ns":1784705330085987300,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_press.cpp":{"size":9180,"mtime_ns":1785293755583754900,"word_count":931},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_stmt.cpp":{"size":8272,"mtime_ns":1785293755584757000,"word_count":853},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysql_tx.cpp":{"size":4677,"mtime_ns":1785293755584757000,"word_count":490},"C:\\workspace\\code\\opensource\\brpc\\example\\mysql_c++\\mysqlclient_press.cpp":{"size":8809,"mtime_ns":1785293755584757000,"word_count":895},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_extension_c++\\CMakeLists.txt":{"size":1507,"mtime_ns":1785293755584757000,"word_count":159},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_extension_c++\\client.cpp":{"size":3305,"mtime_ns":1782715529689193900,"word_count":380},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_extension_c++\\server.cpp":{"size":2947,"mtime_ns":1782715529690220300,"word_count":343},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_pb_extension_c++\\CMakeLists.txt":{"size":1586,"mtime_ns":1785293755584757000,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_pb_extension_c++\\client.cpp":{"size":3305,"mtime_ns":1782715529690220300,"word_count":380},"C:\\workspace\\code\\opensource\\brpc\\example\\nshead_pb_extension_c++\\server.cpp":{"size":5020,"mtime_ns":1782715529691337500,"word_count":497},"C:\\workspace\\code\\opensource\\brpc\\example\\parallel_echo_c++\\CMakeLists.txt":{"size":1766,"mtime_ns":1785293755584757000,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\parallel_echo_c++\\client.cpp":{"size":8881,"mtime_ns":1782715529691337500,"word_count":927},"C:\\workspace\\code\\opensource\\brpc\\example\\parallel_echo_c++\\server.cpp":{"size":3244,"mtime_ns":1782715529692339200,"word_count":356},"C:\\workspace\\code\\opensource\\brpc\\example\\partition_echo_c++\\CMakeLists.txt":{"size":1777,"mtime_ns":1785293755586819000,"word_count":177},"C:\\workspace\\code\\opensource\\brpc\\example\\partition_echo_c++\\client.cpp":{"size":8419,"mtime_ns":1782715529692339200,"word_count":859},"C:\\workspace\\code\\opensource\\brpc\\example\\partition_echo_c++\\server.cpp":{"size":6961,"mtime_ns":1782715529693339900,"word_count":739},"C:\\workspace\\code\\opensource\\brpc\\example\\rdma_performance\\CMakeLists.txt":{"size":1728,"mtime_ns":1785293755586819000,"word_count":186},"C:\\workspace\\code\\opensource\\brpc\\example\\rdma_performance\\client.cpp":{"size":12141,"mtime_ns":1782715529694341900,"word_count":1109},"C:\\workspace\\code\\opensource\\brpc\\example\\rdma_performance\\server.cpp":{"size":3295,"mtime_ns":1782715529694341900,"word_count":318},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\CMakeLists.txt":{"size":2153,"mtime_ns":1785293755586819000,"word_count":212},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\redis_cli.cpp":{"size":5769,"mtime_ns":1782715529695344100,"word_count":669},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\redis_cluster_client.cpp":{"size":4473,"mtime_ns":1782715529695344100,"word_count":449},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\redis_press.cpp":{"size":7439,"mtime_ns":1782715529695344100,"word_count":791},"C:\\workspace\\code\\opensource\\brpc\\example\\redis_c++\\redis_server.cpp":{"size":8208,"mtime_ns":1782715529695344100,"word_count":661},"C:\\workspace\\code\\opensource\\brpc\\example\\rpcz_echo_c++\\CMakeLists.txt":{"size":1518,"mtime_ns":1785293755587842000,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\rpcz_echo_c++\\client.cpp":{"size":4100,"mtime_ns":1782715529696690800,"word_count":473},"C:\\workspace\\code\\opensource\\brpc\\example\\rpcz_echo_c++\\server.cpp":{"size":7252,"mtime_ns":1782715529696690800,"word_count":781},"C:\\workspace\\code\\opensource\\brpc\\example\\selective_echo_c++\\CMakeLists.txt":{"size":1773,"mtime_ns":1785293755588347800,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\selective_echo_c++\\client.cpp":{"size":9671,"mtime_ns":1782715529697851600,"word_count":1041},"C:\\workspace\\code\\opensource\\brpc\\example\\selective_echo_c++\\server.cpp":{"size":6920,"mtime_ns":1782715529697851600,"word_count":737},"C:\\workspace\\code\\opensource\\brpc\\example\\session_data_and_thread_local\\CMakeLists.txt":{"size":1874,"mtime_ns":1785293755588347800,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\example\\session_data_and_thread_local\\client.cpp":{"size":6126,"mtime_ns":1782715529698852500,"word_count":665},"C:\\workspace\\code\\opensource\\brpc\\example\\session_data_and_thread_local\\server.cpp":{"size":9199,"mtime_ns":1782715529698852500,"word_count":847},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_batch_echo_c++\\CMakeLists.txt":{"size":1593,"mtime_ns":1785293755588347800,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_batch_echo_c++\\client.cpp":{"size":4756,"mtime_ns":1782715529699854000,"word_count":526},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_batch_echo_c++\\server.cpp":{"size":4697,"mtime_ns":1782715529699854000,"word_count":525},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_echo_c++\\CMakeLists.txt":{"size":1551,"mtime_ns":1785293755589353900,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_echo_c++\\client.cpp":{"size":3387,"mtime_ns":1782715529700856400,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\example\\streaming_echo_c++\\server.cpp":{"size":4317,"mtime_ns":1782715529701858500,"word_count":477},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\README.md":{"size":270,"mtime_ns":1782715529701858500,"word_count":28},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\client.cpp":{"size":3165,"mtime_ns":1782715529701858500,"word_count":357},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\client2.cpp":{"size":5760,"mtime_ns":1782715529701858500,"word_count":622},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\native_client.cpp":{"size":2765,"mtime_ns":1782715529701858500,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\native_server.cpp":{"size":4617,"mtime_ns":1782715529703361800,"word_count":360},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\server.cpp":{"size":3262,"mtime_ns":1782715529703361800,"word_count":347},"C:\\workspace\\code\\opensource\\brpc\\example\\thrift_extension_c++\\server2.cpp":{"size":4328,"mtime_ns":1782715529703361800,"word_count":450},"C:\\workspace\\code\\opensource\\brpc\\example\\ubring_performance\\CMakeLists.txt":{"size":4569,"mtime_ns":1785293755589353900,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\example\\ubring_performance\\client.cpp":{"size":12630,"mtime_ns":1785293755589353900,"word_count":1178},"C:\\workspace\\code\\opensource\\brpc\\example\\ubring_performance\\server.cpp":{"size":3272,"mtime_ns":1785293755589353900,"word_count":320},"C:\\workspace\\code\\opensource\\brpc\\example\\urma_performance\\CMakeLists.txt":{"size":1944,"mtime_ns":1785295159720532200,"word_count":199},"C:\\workspace\\code\\opensource\\brpc\\example\\urma_performance\\client.cpp":{"size":5867,"mtime_ns":1785307277948975000,"word_count":582},"C:\\workspace\\code\\opensource\\brpc\\example\\urma_performance\\server.cpp":{"size":3300,"mtime_ns":1785297141444153100,"word_count":333},"C:\\workspace\\code\\opensource\\brpc\\homebrew-formula\\protobuf.rb":{"size":4020,"mtime_ns":1782715529703361800,"word_count":342},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\1.8.1.brpc-no-unwind\\presubmit.yml":{"size":430,"mtime_ns":1784705330096388400,"word_count":36},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\1.8.1.brpc-no-unwind\\source.json":{"size":404,"mtime_ns":1784705330096388400,"word_count":15},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\1.8.3.brpc-no-unwind\\presubmit.yml":{"size":430,"mtime_ns":1784705330101462200,"word_count":36},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\1.8.3.brpc-no-unwind\\source.json":{"size":404,"mtime_ns":1784705330101462200,"word_count":15},"C:\\workspace\\code\\opensource\\brpc\\registry\\modules\\libunwind\\metadata.json":{"size":457,"mtime_ns":1784705330101462200,"word_count":29},"C:\\workspace\\code\\opensource\\brpc\\src\\CMakeLists.txt":{"size":4224,"mtime_ns":1784705330102964600,"word_count":320},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\acceptor.cpp":{"size":13380,"mtime_ns":1782715529705372200,"word_count":1335},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\acceptor.h":{"size":4067,"mtime_ns":1782715529705372200,"word_count":464},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_connection_type.cpp":{"size":2469,"mtime_ns":1782715529705372200,"word_count":269},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_connection_type.h":{"size":2654,"mtime_ns":1782715529705372200,"word_count":320},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_max_concurrency.cpp":{"size":3754,"mtime_ns":1784705330102964600,"word_count":366},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_max_concurrency.h":{"size":4254,"mtime_ns":1784705330102964600,"word_count":439},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\adaptive_protocol_type.h":{"size":3204,"mtime_ns":1782715529706386100,"word_count":354},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\amf.cpp":{"size":41359,"mtime_ns":1784705330102964600,"word_count":3829},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\amf.h":{"size":10388,"mtime_ns":1782715529707388300,"word_count":1109},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\amf_inl.h":{"size":4789,"mtime_ns":1782715529707388300,"word_count":574},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\authenticator.h":{"size":3526,"mtime_ns":1782715529707388300,"word_count":444},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\backup_request_policy.cpp":{"size":7589,"mtime_ns":1782715529707388300,"word_count":738},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\backup_request_policy.h":{"size":3229,"mtime_ns":1782715529707388300,"word_count":445},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\baidu_master_service.cpp":{"size":1754,"mtime_ns":1782715529708390600,"word_count":202},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\baidu_master_service.h":{"size":3696,"mtime_ns":1782715529708390600,"word_count":299},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\bad_method_service.cpp":{"size":2802,"mtime_ns":1782715529708390600,"word_count":301},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\bad_method_service.h":{"size":1316,"mtime_ns":1782715529708390600,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\bthreads_service.cpp":{"size":3166,"mtime_ns":1782715529709387300,"word_count":327},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\bthreads_service.h":{"size":1327,"mtime_ns":1782715529709387300,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\common.cpp":{"size":12591,"mtime_ns":1782715529709890700,"word_count":1266},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\common.h":{"size":4917,"mtime_ns":1782715529709890700,"word_count":610},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\connections_service.cpp":{"size":15542,"mtime_ns":1782715529709890700,"word_count":1459},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\connections_service.h":{"size":1675,"mtime_ns":1782715529709890700,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\dir_service.cpp":{"size":4752,"mtime_ns":1782715529710891500,"word_count":458},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\dir_service.h":{"size":1294,"mtime_ns":1782715529710891500,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\flags_service.cpp":{"size":9765,"mtime_ns":1782715529710891500,"word_count":876},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\flags_service.h":{"size":1504,"mtime_ns":1782715529710891500,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\flot_min_js.cpp":{"size":55098,"mtime_ns":1782715529711893500,"word_count":667},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\flot_min_js.h":{"size":1310,"mtime_ns":1782715529711893500,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\get_favicon_service.cpp":{"size":3970,"mtime_ns":1782715529711893500,"word_count":763},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\get_favicon_service.h":{"size":1319,"mtime_ns":1782715529711893500,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\get_js_service.cpp":{"size":5067,"mtime_ns":1782715529711893500,"word_count":375},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\get_js_service.h":{"size":2133,"mtime_ns":1782715529712895700,"word_count":212},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\grpc_health_check_service.cpp":{"size":1890,"mtime_ns":1782715529712895700,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\grpc_health_check_service.h":{"size":1366,"mtime_ns":1782715529712895700,"word_count":161},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\health_service.cpp":{"size":1813,"mtime_ns":1782715529712895700,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\health_service.h":{"size":1335,"mtime_ns":1782715529712895700,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\hotspots_service.cpp":{"size":49479,"mtime_ns":1782715529713897600,"word_count":4345},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\hotspots_service.h":{"size":3788,"mtime_ns":1782715529713897600,"word_count":263},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\ids_service.cpp":{"size":2267,"mtime_ns":1782715529713897600,"word_count":234},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\ids_service.h":{"size":1291,"mtime_ns":1782715529713897600,"word_count":161},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\index_service.cpp":{"size":8194,"mtime_ns":1782715529713897600,"word_count":947},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\index_service.h":{"size":1427,"mtime_ns":1782715529714899600,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\jquery_min_js.cpp":{"size":97759,"mtime_ns":1782715529714899600,"word_count":1444},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\jquery_min_js.h":{"size":1324,"mtime_ns":1782715529714899600,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\list_service.cpp":{"size":1790,"mtime_ns":1782715529715901500,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\list_service.h":{"size":1437,"mtime_ns":1782715529715901500,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\memory_service.cpp":{"size":4031,"mtime_ns":1782715529715901500,"word_count":324},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\memory_service.h":{"size":1321,"mtime_ns":1782715529715901500,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\pprof_perl.cpp":{"size":250257,"mtime_ns":1782715529717381700,"word_count":28063},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\pprof_perl.h":{"size":1006,"mtime_ns":1782715529717381700,"word_count":145},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\pprof_service.cpp":{"size":19879,"mtime_ns":1782715529717381700,"word_count":1816},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\pprof_service.h":{"size":2434,"mtime_ns":1782715529718383400,"word_count":211},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\prometheus_metrics_service.cpp":{"size":9647,"mtime_ns":1782715529718383400,"word_count":941},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\prometheus_metrics_service.h":{"size":1493,"mtime_ns":1782715529718383400,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\protobufs_service.cpp":{"size":4688,"mtime_ns":1782715529718383400,"word_count":411},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\protobufs_service.h":{"size":1725,"mtime_ns":1782715529718383400,"word_count":203},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\rpcz_service.cpp":{"size":27566,"mtime_ns":1784705330102964600,"word_count":2496},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\rpcz_service.h":{"size":2530,"mtime_ns":1782715529719385100,"word_count":219},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\sockets_service.cpp":{"size":2204,"mtime_ns":1782715529719385100,"word_count":224},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\sockets_service.h":{"size":1320,"mtime_ns":1782715529719385100,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\sorttable_js.cpp":{"size":21008,"mtime_ns":1782715529720381900,"word_count":2418},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\sorttable_js.h":{"size":1269,"mtime_ns":1782715529720381900,"word_count":182},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\status_service.cpp":{"size":9977,"mtime_ns":1782715529720381900,"word_count":916},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\status_service.h":{"size":1435,"mtime_ns":1782715529720381900,"word_count":171},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\tabbed.h":{"size":2897,"mtime_ns":1782715529720885600,"word_count":349},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\threads_service.cpp":{"size":2137,"mtime_ns":1782715529720885600,"word_count":217},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\threads_service.h":{"size":1342,"mtime_ns":1782715529720885600,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\vars_service.cpp":{"size":17466,"mtime_ns":1782715529720885600,"word_count":1685},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\vars_service.h":{"size":1402,"mtime_ns":1782715529721915300,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\version_service.cpp":{"size":1689,"mtime_ns":1782715529721915300,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\version_service.h":{"size":1463,"mtime_ns":1782715529721915300,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\viz_min_js.cpp":{"size":1428808,"mtime_ns":1782715529727918900,"word_count":8559},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\viz_min_js.h":{"size":1303,"mtime_ns":1782715529727918900,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\vlog_service.cpp":{"size":3349,"mtime_ns":1782715529727918900,"word_count":332},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\builtin\\vlog_service.h":{"size":1372,"mtime_ns":1782715529727918900,"word_count":168},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\callback.h":{"size":45251,"mtime_ns":1782715529728920000,"word_count":5198},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\channel.cpp":{"size":26401,"mtime_ns":1785290286031770500,"word_count":2215},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\channel.h":{"size":12349,"mtime_ns":1785291389127943900,"word_count":1447},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\channel_base.h":{"size":1572,"mtime_ns":1782715529729921200,"word_count":206},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\checksum.cpp":{"size":3299,"mtime_ns":1782715529729921200,"word_count":404},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\checksum.h":{"size":2159,"mtime_ns":1782715529729921200,"word_count":276},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\circuit_breaker.cpp":{"size":10551,"mtime_ns":1782715529729921200,"word_count":945},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\circuit_breaker.h":{"size":3510,"mtime_ns":1782715529729921200,"word_count":405},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\closure_guard.h":{"size":2225,"mtime_ns":1782715529730922800,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\cluster_recover_policy.cpp":{"size":5234,"mtime_ns":1782715529730922800,"word_count":514},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\cluster_recover_policy.h":{"size":3542,"mtime_ns":1782715529730922800,"word_count":456},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\compress.cpp":{"size":4458,"mtime_ns":1782715529730922800,"word_count":458},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\compress.h":{"size":6483,"mtime_ns":1782715529730922800,"word_count":635},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\concurrency_limiter.h":{"size":2645,"mtime_ns":1782715529730922800,"word_count":328},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\controller.cpp":{"size":72085,"mtime_ns":1784705330102964600,"word_count":6614},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\controller.h":{"size":44687,"mtime_ns":1784705330102964600,"word_count":5023},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\coroutine.h":{"size":4027,"mtime_ns":1782715529731924900,"word_count":489},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\coroutine_inl.h":{"size":10197,"mtime_ns":1782715529732931800,"word_count":1096},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\couchbase.cpp":{"size":101908,"mtime_ns":1784705330102964600,"word_count":9199},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\couchbase.h":{"size":20606,"mtime_ns":1782715529732931800,"word_count":1645},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\data_factory.h":{"size":1869,"mtime_ns":1782715529733933700,"word_count":279},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\describable.h":{"size":3213,"mtime_ns":1782715529733933700,"word_count":368},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\destroyable.h":{"size":1539,"mtime_ns":1782715529733933700,"word_count":213},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\controller_private_accessor.h":{"size":6790,"mtime_ns":1784705330102964600,"word_count":649},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\has_epollrdhup.cpp":{"size":2195,"mtime_ns":1782715529734936000,"word_count":274},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\has_epollrdhup.h":{"size":1310,"mtime_ns":1782715529734936000,"word_count":197},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\health_check.cpp":{"size":8642,"mtime_ns":1782715529734936000,"word_count":928},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\health_check.h":{"size":1216,"mtime_ns":1782715529734936000,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\hpack-static-table.h":{"size":8051,"mtime_ns":1782715529734936000,"word_count":823},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\hpack.cpp":{"size":29575,"mtime_ns":1784705330102964600,"word_count":2966},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\hpack.h":{"size":5308,"mtime_ns":1782715529735938100,"word_count":654},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\http_message.cpp":{"size":31175,"mtime_ns":1784705330102964600,"word_count":3187},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\http_message.h":{"size":5950,"mtime_ns":1784705330102964600,"word_count":627},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\http_parser.cpp":{"size":76245,"mtime_ns":1782715529735938100,"word_count":7786},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\http_parser.h":{"size":13648,"mtime_ns":1782715529737440800,"word_count":1570},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\jemalloc_profiler.cpp":{"size":12071,"mtime_ns":1782715529737440800,"word_count":1225},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\jemalloc_profiler.h":{"size":1127,"mtime_ns":1782715529737440800,"word_count":153},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\load_balancer_with_naming.cpp":{"size":2273,"mtime_ns":1782715529737440800,"word_count":245},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\load_balancer_with_naming.h":{"size":1800,"mtime_ns":1782715529738439500,"word_count":193},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\mesalink_ssl_helper.cpp":{"size":12966,"mtime_ns":1782715529738439500,"word_count":1327},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\method_status.cpp":{"size":5730,"mtime_ns":1782715529738439500,"word_count":508},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\method_status.h":{"size":4154,"mtime_ns":1782715529738941200,"word_count":477},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\naming_service_thread.cpp":{"size":18221,"mtime_ns":1782715529738941200,"word_count":1575},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\naming_service_thread.h":{"size":5590,"mtime_ns":1782715529738941200,"word_count":530},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\profiler_linker.h":{"size":1939,"mtime_ns":1782715529738941200,"word_count":240},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\rtmp_utils.cpp":{"size":2123,"mtime_ns":1784705330102964600,"word_count":296},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\rtmp_utils.h":{"size":1969,"mtime_ns":1782715529738941200,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\server_private_accessor.h":{"size":4627,"mtime_ns":1782715529738941200,"word_count":406},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\sparse_minute_counter.h":{"size":5722,"mtime_ns":1782715529740443400,"word_count":683},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\ssl_helper.cpp":{"size":32926,"mtime_ns":1784705330102964600,"word_count":3433},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\ssl_helper.h":{"size":4724,"mtime_ns":1784705330102964600,"word_count":607},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\tcmalloc_extension.cpp":{"size":2624,"mtime_ns":1782715529740443400,"word_count":324},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\tcmalloc_extension.h":{"size":14722,"mtime_ns":1782715529741450200,"word_count":2097},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\usercode_backup_pool.cpp":{"size":6942,"mtime_ns":1782715529741450200,"word_count":679},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\details\\usercode_backup_pool.h":{"size":3439,"mtime_ns":1782715529741450200,"word_count":434},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\esp_head.h":{"size":1277,"mtime_ns":1782715529741450200,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\esp_message.cpp":{"size":1946,"mtime_ns":1782715529742451800,"word_count":231},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\esp_message.h":{"size":1674,"mtime_ns":1782715529742451800,"word_count":200},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\event_dispatcher.cpp":{"size":4503,"mtime_ns":1784705330102964600,"word_count":438},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\event_dispatcher.h":{"size":11008,"mtime_ns":1784705330110532100,"word_count":1100},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\event_dispatcher_epoll.cpp":{"size":8499,"mtime_ns":1784705330110532100,"word_count":960},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\event_dispatcher_kqueue.cpp":{"size":8057,"mtime_ns":1782715529743453800,"word_count":922},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\excluded_servers.h":{"size":3202,"mtime_ns":1782715529743453800,"word_count":392},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\extension.h":{"size":1965,"mtime_ns":1782715529743453800,"word_count":243},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\extension_inl.h":{"size":2677,"mtime_ns":1782715529743453800,"word_count":338},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\global.cpp":{"size":28335,"mtime_ns":1785293755589353900,"word_count":2098},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\global.h":{"size":1077,"mtime_ns":1782715529744455800,"word_count":157},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\grpc.cpp":{"size":7047,"mtime_ns":1782715529744455800,"word_count":776},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\grpc.h":{"size":6718,"mtime_ns":1782715529745458000,"word_count":925},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\health_check_option.h":{"size":1265,"mtime_ns":1782715529745458000,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\health_reporter.h":{"size":1504,"mtime_ns":1782715529745458000,"word_count":202},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http2.cpp":{"size":4345,"mtime_ns":1782715529745458000,"word_count":403},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http2.h":{"size":5798,"mtime_ns":1782715529746459200,"word_count":815},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_header.cpp":{"size":4793,"mtime_ns":1782715529746459200,"word_count":475},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_header.h":{"size":8448,"mtime_ns":1782715529746459200,"word_count":932},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_method.cpp":{"size":5242,"mtime_ns":1784705330111668600,"word_count":580},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_method.h":{"size":2269,"mtime_ns":1782715529747461000,"word_count":260},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_status_code.cpp":{"size":6600,"mtime_ns":1782715529747461000,"word_count":546},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\http_status_code.h":{"size":34734,"mtime_ns":1782715529747461000,"word_count":5437},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\input_message_base.h":{"size":2223,"mtime_ns":1782715529747461000,"word_count":287},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\input_messenger.cpp":{"size":23201,"mtime_ns":1785294178016642400,"word_count":2200},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\input_messenger.h":{"size":6399,"mtime_ns":1785294217486306400,"word_count":764},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\interceptor.h":{"size":1407,"mtime_ns":1782715529748463400,"word_count":190},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\kvmap.h":{"size":2502,"mtime_ns":1782715529748463400,"word_count":331},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\load_balancer.cpp":{"size":4536,"mtime_ns":1782715529748463400,"word_count":476},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\load_balancer.h":{"size":6913,"mtime_ns":1782715529749465500,"word_count":714},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\log.h":{"size":1263,"mtime_ns":1782715529749465500,"word_count":162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\memcache.cpp":{"size":28637,"mtime_ns":1785293755591863800,"word_count":2611},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\memcache.h":{"size":8377,"mtime_ns":1782715529749465500,"word_count":838},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\mongo_head.h":{"size":2906,"mtime_ns":1782715529749465500,"word_count":298},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\mongo_service_adaptor.h":{"size":2294,"mtime_ns":1782715529749465500,"word_count":315},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\naming_service.h":{"size":3317,"mtime_ns":1782715529750492400,"word_count":400},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\naming_service_filter.h":{"size":1298,"mtime_ns":1782715529750492400,"word_count":182},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nonreflectable_message.h":{"size":11315,"mtime_ns":1784705330111668600,"word_count":981},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead.h":{"size":1413,"mtime_ns":1782715529750492400,"word_count":197},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_message.cpp":{"size":2572,"mtime_ns":1782715529750492400,"word_count":282},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_message.h":{"size":2053,"mtime_ns":1782715529751494400,"word_count":231},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_pb_service_adaptor.cpp":{"size":5435,"mtime_ns":1782715529751494400,"word_count":451},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_pb_service_adaptor.h":{"size":4387,"mtime_ns":1782715529752028700,"word_count":500},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_service.cpp":{"size":1933,"mtime_ns":1782715529752028700,"word_count":217},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\nshead_service.h":{"size":4739,"mtime_ns":1782715529752028700,"word_count":518},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\parallel_channel.cpp":{"size":30328,"mtime_ns":1782715529752028700,"word_count":3002},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\parallel_channel.h":{"size":11869,"mtime_ns":1782715529753035100,"word_count":1376},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\parse_result.h":{"size":3194,"mtime_ns":1785293755592870000,"word_count":382},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\partition_channel.cpp":{"size":17557,"mtime_ns":1782715529753035100,"word_count":1534},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\partition_channel.h":{"size":7022,"mtime_ns":1782715529753035100,"word_count":799},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\pb_compat.h":{"size":1489,"mtime_ns":1782715529753035100,"word_count":200},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\periodic_naming_service.cpp":{"size":3049,"mtime_ns":1782715529753035100,"word_count":358},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\periodic_naming_service.h":{"size":1408,"mtime_ns":1782715529753035100,"word_count":172},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\periodic_task.cpp":{"size":2214,"mtime_ns":1782715529753035100,"word_count":254},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\periodic_task.h":{"size":1875,"mtime_ns":1782715529754538600,"word_count":272},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\auto_concurrency_limiter.cpp":{"size":13671,"mtime_ns":1782715529754538600,"word_count":1316},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\auto_concurrency_limiter.h":{"size":2983,"mtime_ns":1782715529754538600,"word_count":291},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\baidu_naming_service.cpp":{"size":2931,"mtime_ns":1782715529754538600,"word_count":321},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\baidu_naming_service.h":{"size":1694,"mtime_ns":1782715529755543500,"word_count":202},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\baidu_rpc_protocol.cpp":{"size":49267,"mtime_ns":1782715529755543500,"word_count":3333},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\baidu_rpc_protocol.h":{"size":2214,"mtime_ns":1782715529755543500,"word_count":250},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\consistent_hashing_load_balancer.cpp":{"size":14831,"mtime_ns":1782715529755543500,"word_count":1393},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\consistent_hashing_load_balancer.h":{"size":3640,"mtime_ns":1782715529756545700,"word_count":368},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\constant_concurrency_limiter.cpp":{"size":1875,"mtime_ns":1784705330113128200,"word_count":196},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\constant_concurrency_limiter.h":{"size":1652,"mtime_ns":1782715529756545700,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\consul_naming_service.cpp":{"size":11156,"mtime_ns":1782715529756545700,"word_count":1013},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\consul_naming_service.h":{"size":1883,"mtime_ns":1782715529756545700,"word_count":210},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\couchbase_authenticator.cpp":{"size":2254,"mtime_ns":1782715529757548200,"word_count":226},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\couchbase_authenticator.h":{"size":1904,"mtime_ns":1782715529757548200,"word_count":227},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\couchbase_protocol.cpp":{"size":9653,"mtime_ns":1784705330113128200,"word_count":730},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\couchbase_protocol.h":{"size":5502,"mtime_ns":1782715529757548200,"word_count":623},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\crc32c_checksum.cpp":{"size":2385,"mtime_ns":1782715529757548200,"word_count":266},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\crc32c_checksum.h":{"size":1262,"mtime_ns":1782715529758550100,"word_count":171},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\dh.cpp":{"size":4141,"mtime_ns":1782715529758550100,"word_count":514},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\dh.h":{"size":2682,"mtime_ns":1782715529758550100,"word_count":388},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\discovery_naming_service.cpp":{"size":18186,"mtime_ns":1782715529758550100,"word_count":1665},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\discovery_naming_service.h":{"size":2654,"mtime_ns":1782715529758550100,"word_count":303},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\domain_naming_service.cpp":{"size":6480,"mtime_ns":1782715529758550100,"word_count":749},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\domain_naming_service.h":{"size":1686,"mtime_ns":1782715529759552100,"word_count":195},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\dynpart_load_balancer.cpp":{"size":5664,"mtime_ns":1782715529759552100,"word_count":605},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\dynpart_load_balancer.h":{"size":2477,"mtime_ns":1782715529759552100,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\esp_authenticator.cpp":{"size":1671,"mtime_ns":1782715529759552100,"word_count":200},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\esp_authenticator.h":{"size":1421,"mtime_ns":1782715529759552100,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\esp_protocol.cpp":{"size":6031,"mtime_ns":1782715529760554100,"word_count":544},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\esp_protocol.h":{"size":1770,"mtime_ns":1782715529760554100,"word_count":192},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\file_naming_service.cpp":{"size":5851,"mtime_ns":1782715529760554100,"word_count":633},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\file_naming_service.h":{"size":1555,"mtime_ns":1782715529760554100,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\giano_authenticator.cpp":{"size":2867,"mtime_ns":1782715529760554100,"word_count":295},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\giano_authenticator.h":{"size":1899,"mtime_ns":1782715529761556200,"word_count":219},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\gzip_compress.cpp":{"size":7312,"mtime_ns":1782715529761556200,"word_count":702},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\gzip_compress.h":{"size":2001,"mtime_ns":1782715529761556200,"word_count":230},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hasher.cpp":{"size":6762,"mtime_ns":1782715529761556200,"word_count":684},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hasher.h":{"size":1455,"mtime_ns":1782715529761556200,"word_count":193},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\http2_rpc_protocol.cpp":{"size":73177,"mtime_ns":1785293755593873600,"word_count":6354},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\http2_rpc_protocol.h":{"size":14955,"mtime_ns":1782715529762558300,"word_count":1333},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\http_rpc_protocol.cpp":{"size":78321,"mtime_ns":1784705330115511500,"word_count":6275},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\http_rpc_protocol.h":{"size":5930,"mtime_ns":1784622097681693900,"word_count":540},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hulu_pbrpc_controller.h":{"size":3672,"mtime_ns":1782715529763560100,"word_count":396},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hulu_pbrpc_protocol.cpp":{"size":29058,"mtime_ns":1782715529764561900,"word_count":2142},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\hulu_pbrpc_protocol.h":{"size":1983,"mtime_ns":1782715529764561900,"word_count":228},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\list_naming_service.cpp":{"size":4305,"mtime_ns":1782715529764561900,"word_count":423},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\list_naming_service.h":{"size":2085,"mtime_ns":1782715529764561900,"word_count":237},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\locality_aware_load_balancer.cpp":{"size":22598,"mtime_ns":1782715529764561900,"word_count":2460},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\locality_aware_load_balancer.h":{"size":8057,"mtime_ns":1782715529765564000,"word_count":771},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\memcache_binary_header.h":{"size":4870,"mtime_ns":1782715529765564000,"word_count":587},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\memcache_binary_protocol.cpp":{"size":10210,"mtime_ns":1784705330115511500,"word_count":735},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\memcache_binary_protocol.h":{"size":2074,"mtime_ns":1782715529765564000,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mongo_protocol.cpp":{"size":12564,"mtime_ns":1782715529766565900,"word_count":931},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mongo_protocol.h":{"size":1331,"mtime_ns":1782715529766565900,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\most_common_message.h":{"size":1811,"mtime_ns":1782715529766565900,"word_count":226},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql.cpp":{"size":15691,"mtime_ns":1784705330115511500,"word_count":1573},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql.h":{"size":7973,"mtime_ns":1784705330116690000,"word_count":801},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_handshake.cpp":{"size":11529,"mtime_ns":1784705330116690000,"word_count":1158},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_handshake.h":{"size":6336,"mtime_ns":1784705330116690000,"word_count":657},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_packet.cpp":{"size":6792,"mtime_ns":1784705330116690000,"word_count":734},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_packet.h":{"size":4703,"mtime_ns":1784705330118097000,"word_count":621},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_scramble.cpp":{"size":6354,"mtime_ns":1784705330118097000,"word_count":585},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_auth_scramble.h":{"size":5337,"mtime_ns":1784705330118097000,"word_count":642},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_authenticator.cpp":{"size":8949,"mtime_ns":1784705330118097000,"word_count":896},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_authenticator.h":{"size":3089,"mtime_ns":1784705330119225300,"word_count":310},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_command.cpp":{"size":10969,"mtime_ns":1784705330119225300,"word_count":1054},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_command.h":{"size":3673,"mtime_ns":1784705330119726800,"word_count":353},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_common.cpp":{"size":7614,"mtime_ns":1784705330119726800,"word_count":589},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_common.h":{"size":6876,"mtime_ns":1784705330119726800,"word_count":735},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_protocol.cpp":{"size":24139,"mtime_ns":1784705330119726800,"word_count":2263},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_protocol.h":{"size":2027,"mtime_ns":1784705330119726800,"word_count":221},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_reply.cpp":{"size":56717,"mtime_ns":1784705330120999500,"word_count":5680},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_reply.h":{"size":28419,"mtime_ns":1784705330120999500,"word_count":2813},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_statement.cpp":{"size":6640,"mtime_ns":1784705330122010900,"word_count":826},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_statement.h":{"size":2505,"mtime_ns":1784705330122010900,"word_count":265},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_statement_inl.h":{"size":2033,"mtime_ns":1784705330122010900,"word_count":235},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_transaction.cpp":{"size":4936,"mtime_ns":1784705330122010900,"word_count":525},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\mysql\\mysql_transaction.h":{"size":3061,"mtime_ns":1784705330123014700,"word_count":293},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nacos_naming_service.cpp":{"size":10168,"mtime_ns":1782715529766565900,"word_count":960},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nacos_naming_service.h":{"size":2070,"mtime_ns":1782715529766565900,"word_count":229},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nova_pbrpc_protocol.cpp":{"size":8578,"mtime_ns":1782715529767567800,"word_count":791},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nova_pbrpc_protocol.h":{"size":2427,"mtime_ns":1782715529767567800,"word_count":243},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nshead_mcpack_protocol.cpp":{"size":7919,"mtime_ns":1782715529767567800,"word_count":643},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nshead_mcpack_protocol.h":{"size":2495,"mtime_ns":1782715529767567800,"word_count":242},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nshead_protocol.cpp":{"size":17308,"mtime_ns":1782715529767567800,"word_count":1384},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\nshead_protocol.h":{"size":1919,"mtime_ns":1782715529768580600,"word_count":225},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\p2c_ewma_load_balancer.cpp":{"size":14826,"mtime_ns":1784705330123014700,"word_count":1616},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\p2c_ewma_load_balancer.h":{"size":4135,"mtime_ns":1784705330123014700,"word_count":466},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\public_pbrpc_protocol.cpp":{"size":12416,"mtime_ns":1782715529768580600,"word_count":1002},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\public_pbrpc_protocol.h":{"size":2438,"mtime_ns":1782715529768580600,"word_count":243},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\randomized_load_balancer.cpp":{"size":5666,"mtime_ns":1782715529768580600,"word_count":606},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\randomized_load_balancer.h":{"size":2689,"mtime_ns":1782715529768580600,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\rdma_handshake_protocol.cpp":{"size":1679,"mtime_ns":1785293755594417000,"word_count":211},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\rdma_handshake_protocol.h":{"size":2603,"mtime_ns":1785293755594417000,"word_count":377},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\redis_authenticator.cpp":{"size":1453,"mtime_ns":1782715529769582900,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\redis_authenticator.h":{"size":1768,"mtime_ns":1782715529769582900,"word_count":220},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\redis_protocol.cpp":{"size":13576,"mtime_ns":1782715529769582900,"word_count":1170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\redis_protocol.h":{"size":2345,"mtime_ns":1782715529769582900,"word_count":266},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\remote_file_naming_service.cpp":{"size":6200,"mtime_ns":1782715529770585100,"word_count":585},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\remote_file_naming_service.h":{"size":1635,"mtime_ns":1782715529770585100,"word_count":192},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\round_robin_load_balancer.cpp":{"size":5522,"mtime_ns":1782715529770585100,"word_count":591},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\round_robin_load_balancer.h":{"size":2745,"mtime_ns":1782715529770585100,"word_count":291},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\rtmp_protocol.cpp":{"size":145529,"mtime_ns":1784705330124065900,"word_count":12539},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\rtmp_protocol.h":{"size":25446,"mtime_ns":1782715529772084300,"word_count":2296},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\snappy_compress.cpp":{"size":2957,"mtime_ns":1782715529772084300,"word_count":304},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\snappy_compress.h":{"size":1607,"mtime_ns":1782715529772084300,"word_count":205},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\sofa_pbrpc_protocol.cpp":{"size":23043,"mtime_ns":1782715529772084300,"word_count":1789},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\sofa_pbrpc_protocol.h":{"size":1998,"mtime_ns":1782715529773085200,"word_count":228},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\streaming_rpc_protocol.cpp":{"size":7335,"mtime_ns":1782715529773085200,"word_count":681},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\streaming_rpc_protocol.h":{"size":1823,"mtime_ns":1782715529773085200,"word_count":199},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\thrift_protocol.cpp":{"size":30101,"mtime_ns":1782715529773085200,"word_count":2277},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\thrift_protocol.h":{"size":1966,"mtime_ns":1782715529773085200,"word_count":232},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\timeout_concurrency_limiter.cpp":{"size":7511,"mtime_ns":1782715529774085800,"word_count":679},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\timeout_concurrency_limiter.h":{"size":2674,"mtime_ns":1782715529774085800,"word_count":266},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\ubrpc2pb_protocol.cpp":{"size":24337,"mtime_ns":1782715529774085800,"word_count":1743},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\ubrpc2pb_protocol.h":{"size":2935,"mtime_ns":1782715529774085800,"word_count":269},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\weighted_randomized_load_balancer.cpp":{"size":7257,"mtime_ns":1782715529774085800,"word_count":714},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\weighted_randomized_load_balancer.h":{"size":2824,"mtime_ns":1782715529774085800,"word_count":319},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\weighted_round_robin_load_balancer.cpp":{"size":9593,"mtime_ns":1782715529775087400,"word_count":931},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\policy\\weighted_round_robin_load_balancer.h":{"size":3649,"mtime_ns":1782715529775087400,"word_count":382},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\progressive_attachment.cpp":{"size":9576,"mtime_ns":1782715529775087400,"word_count":950},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\progressive_attachment.h":{"size":3102,"mtime_ns":1782715529775087400,"word_count":378},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\progressive_reader.h":{"size":4248,"mtime_ns":1784622097681693900,"word_count":586},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\protocol.cpp":{"size":10052,"mtime_ns":1782715529776089500,"word_count":943},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\protocol.h":{"size":9864,"mtime_ns":1782715529776089500,"word_count":1079},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\block_pool.cpp":{"size":22623,"mtime_ns":1784705330124065900,"word_count":2232},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\block_pool.h":{"size":5224,"mtime_ns":1784705330124065900,"word_count":843},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_endpoint.cpp":{"size":63632,"mtime_ns":1785293755594417000,"word_count":6162},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_endpoint.h":{"size":12453,"mtime_ns":1785293755594417000,"word_count":1437},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake.cpp":{"size":18728,"mtime_ns":1785293755594417000,"word_count":1695},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake.h":{"size":6466,"mtime_ns":1785293755596422600,"word_count":769},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake_constants.h":{"size":2418,"mtime_ns":1785293755596422600,"word_count":355},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake_server.cpp":{"size":8514,"mtime_ns":1785293755597447500,"word_count":907},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_handshake_server.h":{"size":1827,"mtime_ns":1785293755597447500,"word_count":241},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_helper.cpp":{"size":25576,"mtime_ns":1785293755597447500,"word_count":2548},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma\\rdma_helper.h":{"size":2982,"mtime_ns":1782715529778093500,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma_transport.cpp":{"size":9294,"mtime_ns":1785293755597447500,"word_count":883},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rdma_transport.h":{"size":2588,"mtime_ns":1785293755597447500,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis.cpp":{"size":10934,"mtime_ns":1782715529779095900,"word_count":1076},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis.h":{"size":12023,"mtime_ns":1782715529779095900,"word_count":1394},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_cluster.cpp":{"size":40585,"mtime_ns":1782715529779095900,"word_count":3338},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_cluster.h":{"size":6789,"mtime_ns":1782715529779095900,"word_count":495},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_command.cpp":{"size":23822,"mtime_ns":1784705330128565700,"word_count":2385},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_command.h":{"size":3236,"mtime_ns":1782715529780122100,"word_count":369},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_reply.cpp":{"size":18412,"mtime_ns":1784705330128565700,"word_count":1869},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\redis_reply.h":{"size":11635,"mtime_ns":1784705330128565700,"word_count":1406},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\reloadable_flags.cpp":{"size":2968,"mtime_ns":1782715529780122100,"word_count":329},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\reloadable_flags.h":{"size":2379,"mtime_ns":1782715529781124400,"word_count":269},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\restful.cpp":{"size":19130,"mtime_ns":1782715529781124400,"word_count":1861},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\restful.h":{"size":3903,"mtime_ns":1782715529781124400,"word_count":436},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\retry_policy.cpp":{"size":2900,"mtime_ns":1782715529781124400,"word_count":318},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\retry_policy.h":{"size":5634,"mtime_ns":1782715529782126500,"word_count":559},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rpc_dump.cpp":{"size":12453,"mtime_ns":1782715529782126500,"word_count":1208},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rpc_dump.h":{"size":3484,"mtime_ns":1782715529782126500,"word_count":439},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rpc_pb_message_factory.cpp":{"size":2011,"mtime_ns":1782715529782126500,"word_count":209},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rpc_pb_message_factory.h":{"size":5234,"mtime_ns":1782715529782126500,"word_count":458},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rtmp.cpp":{"size":104468,"mtime_ns":1784705330129679800,"word_count":8954},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\rtmp.h":{"size":41683,"mtime_ns":1782715529783128700,"word_count":4418},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\selective_channel.cpp":{"size":20754,"mtime_ns":1784705330129679800,"word_count":1846},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\selective_channel.h":{"size":4534,"mtime_ns":1782715529784154900,"word_count":573},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\serialized_request.cpp":{"size":2085,"mtime_ns":1782715529784154900,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\serialized_request.h":{"size":2039,"mtime_ns":1782715529784154900,"word_count":224},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\serialized_response.cpp":{"size":2105,"mtime_ns":1782715529784154900,"word_count":218},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\serialized_response.h":{"size":2052,"mtime_ns":1782715529784154900,"word_count":224},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server.cpp":{"size":88506,"mtime_ns":1785297140877672000,"word_count":7481},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server.h":{"size":34855,"mtime_ns":1784622249691028500,"word_count":4008},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server_id.cpp":{"size":2193,"mtime_ns":1782715529786159100,"word_count":253},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server_id.h":{"size":3443,"mtime_ns":1782715529786159100,"word_count":431},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\server_node.h":{"size":2173,"mtime_ns":1782715529786159100,"word_count":288},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\shared_object.h":{"size":1026,"mtime_ns":1782715529786159100,"word_count":146},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\simple_data_pool.cpp":{"size":3836,"mtime_ns":1782715529786159100,"word_count":427},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\simple_data_pool.h":{"size":1967,"mtime_ns":1782715529786159100,"word_count":256},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket.cpp":{"size":110107,"mtime_ns":1785293755599452600,"word_count":10510},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket.h":{"size":44265,"mtime_ns":1785294553928446600,"word_count":4950},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_id.h":{"size":1881,"mtime_ns":1782715529787161200,"word_count":257},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_inl.h":{"size":5006,"mtime_ns":1782715529787161200,"word_count":511},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_map.cpp":{"size":16300,"mtime_ns":1784705330132174000,"word_count":1558},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_map.h":{"size":9024,"mtime_ns":1782715529788665000,"word_count":955},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_message.h":{"size":3493,"mtime_ns":1782715529788665000,"word_count":440},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\socket_mode.h":{"size":1072,"mtime_ns":1785294272606414200,"word_count":157},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\span.cpp":{"size":36432,"mtime_ns":1784705330133259400,"word_count":3312},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\span.h":{"size":12886,"mtime_ns":1784705330133259400,"word_count":1435},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ssl_options.cpp":{"size":1347,"mtime_ns":1784705330133259400,"word_count":166},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ssl_options.h":{"size":6469,"mtime_ns":1784705330134449700,"word_count":876},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\stream.cpp":{"size":33218,"mtime_ns":1784705330134449700,"word_count":2867},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\stream.h":{"size":6795,"mtime_ns":1782715529790673900,"word_count":868},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\stream_creator.h":{"size":3536,"mtime_ns":1782715529790673900,"word_count":474},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\stream_impl.h":{"size":5478,"mtime_ns":1782715529790673900,"word_count":487},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\tcp_transport.cpp":{"size":3900,"mtime_ns":1782715529790673900,"word_count":390},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\tcp_transport.h":{"size":1731,"mtime_ns":1782715529791675800,"word_count":208},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\thrift_message.cpp":{"size":2959,"mtime_ns":1782715529791675800,"word_count":283},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\thrift_message.h":{"size":7593,"mtime_ns":1782715529791675800,"word_count":712},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\thrift_service.cpp":{"size":1638,"mtime_ns":1782715529791675800,"word_count":197},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\thrift_service.h":{"size":2600,"mtime_ns":1782715529791675800,"word_count":287},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\traceprintf.h":{"size":2542,"mtime_ns":1782715529792677800,"word_count":302},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\trackme.cpp":{"size":8954,"mtime_ns":1782715529792677800,"word_count":982},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\trackme.h":{"size":1346,"mtime_ns":1782715529792677800,"word_count":195},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\transport.h":{"size":2618,"mtime_ns":1782715529792677800,"word_count":295},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\transport_factory.cpp":{"size":2484,"mtime_ns":1785294381766461400,"word_count":278},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\transport_factory.h":{"size":1359,"mtime_ns":1782715529793680000,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ts.cpp":{"size":53090,"mtime_ns":1782715529793680000,"word_count":5555},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ts.h":{"size":64703,"mtime_ns":1782715529794682200,"word_count":9379},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\common\\common.h":{"size":5608,"mtime_ns":1785293755599452600,"word_count":603},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\common\\thread_lock.h":{"size":1657,"mtime_ns":1785293755599452600,"word_count":197},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_def.h":{"size":2277,"mtime_ns":1785293755599452600,"word_count":323},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_ipc.cpp":{"size":7563,"mtime_ns":1785293755599452600,"word_count":962},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_ipc.h":{"size":1307,"mtime_ns":1785293755599452600,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_mgr.cpp":{"size":7245,"mtime_ns":1785293755599452600,"word_count":775},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_mgr.h":{"size":1451,"mtime_ns":1785293755599452600,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_ubs.cpp":{"size":19562,"mtime_ns":1785293755599452600,"word_count":2140},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\shm\\shm_ubs.h":{"size":1882,"mtime_ns":1785293755599452600,"word_count":220},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\timer\\timer_mgr.cpp":{"size":14721,"mtime_ns":1785293755599452600,"word_count":1443},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\timer\\timer_mgr.h":{"size":2101,"mtime_ns":1785293755599452600,"word_count":240},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_endpoint.cpp":{"size":34204,"mtime_ns":1785293755599452600,"word_count":3103},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_endpoint.h":{"size":7238,"mtime_ns":1785293755599452600,"word_count":759},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_helper.cpp":{"size":3868,"mtime_ns":1785293755599452600,"word_count":381},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_helper.h":{"size":1708,"mtime_ns":1785293755606667800,"word_count":206},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_ring.cpp":{"size":42898,"mtime_ns":1785293950765260500,"word_count":3975},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_ring.h":{"size":7193,"mtime_ns":1785293755607752900,"word_count":681},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_ring_manager.cpp":{"size":9591,"mtime_ns":1785293755608258400,"word_count":857},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ub_ring_manager.h":{"size":2587,"mtime_ns":1785293755608258400,"word_count":268},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubr_msg.h":{"size":1741,"mtime_ns":1785293755609038500,"word_count":216},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubr_trx.h":{"size":4405,"mtime_ns":1785293755609038500,"word_count":408},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubs_mem\\declare_shm_ubs.h":{"size":2308,"mtime_ns":1785293755609543700,"word_count":246},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubs_mem\\ubs_mem.h":{"size":9173,"mtime_ns":1785293755609543700,"word_count":1383},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubs_mem\\ubs_mem_def.h":{"size":5072,"mtime_ns":1785293755609543700,"word_count":590},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm\\ubs_mem\\ubshmem_stub.cpp":{"size":2727,"mtime_ns":1785293755610561700,"word_count":315},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm_transport.cpp":{"size":8514,"mtime_ns":1785293755610561700,"word_count":791},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\ubshm_transport.h":{"size":2500,"mtime_ns":1785293755610561700,"word_count":279},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\uri.cpp":{"size":15797,"mtime_ns":1784705330134449700,"word_count":1811},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\uri.h":{"size":10632,"mtime_ns":1782715529794682200,"word_count":1136},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp":{"size":22422,"mtime_ns":1785291503405746700,"word_count":2055},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_api.h":{"size":47786,"mtime_ns":1785227626464076200,"word_count":6750},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_opcode.h":{"size":10591,"mtime_ns":1785226861704155300,"word_count":1138},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h":{"size":54318,"mtime_ns":1785227626506547800,"word_count":6079},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp":{"size":58559,"mtime_ns":1785309099990290300,"word_count":5389},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h":{"size":13432,"mtime_ns":1785309036527955400,"word_count":1577},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp":{"size":11297,"mtime_ns":1785291857383725700,"word_count":1138},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.h":{"size":6762,"mtime_ns":1785291144209111300,"word_count":893},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp":{"size":24053,"mtime_ns":1785307850782229900,"word_count":2487},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.h":{"size":3392,"mtime_ns":1785290825559803600,"word_count":452},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma_transport.cpp":{"size":8389,"mtime_ns":1785291842937818600,"word_count":762},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma_transport.h":{"size":3163,"mtime_ns":1785290289314107500,"word_count":342},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\versioned_ref_with_id.h":{"size":25717,"mtime_ns":1782715529794682200,"word_count":2481},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\bthread.cpp":{"size":23702,"mtime_ns":1784705330135575500,"word_count":2259},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\bthread.h":{"size":21019,"mtime_ns":1782715529795684100,"word_count":2541},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\bthread_once.cpp":{"size":3308,"mtime_ns":1782715529795684100,"word_count":370},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\butex.cpp":{"size":28261,"mtime_ns":1784705330135575500,"word_count":2700},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\butex.h":{"size":3559,"mtime_ns":1782715529796686100,"word_count":511},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\comlog_initializer.h":{"size":1553,"mtime_ns":1782715529796686100,"word_count":193},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\condition_variable.cpp":{"size":5477,"mtime_ns":1782715529796686100,"word_count":563},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\condition_variable.h":{"size":4063,"mtime_ns":1782715529796686100,"word_count":368},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\context.cpp":{"size":26949,"mtime_ns":1782715529797688300,"word_count":3500},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\context.h":{"size":2804,"mtime_ns":1782715529797688300,"word_count":200},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\countdown_event.cpp":{"size":3602,"mtime_ns":1782715529797688300,"word_count":399},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\countdown_event.h":{"size":2073,"mtime_ns":1782715529797688300,"word_count":294},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\errno.cpp":{"size":1415,"mtime_ns":1782715529797688300,"word_count":198},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\errno.h":{"size":1360,"mtime_ns":1782715529798689900,"word_count":186},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\execution_queue.cpp":{"size":17967,"mtime_ns":1782715529798689900,"word_count":1676},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\execution_queue.h":{"size":9338,"mtime_ns":1782715529798689900,"word_count":1093},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\execution_queue_inl.h":{"size":20380,"mtime_ns":1782715529798689900,"word_count":1873},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\fd.cpp":{"size":18548,"mtime_ns":1784705330136577300,"word_count":1875},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\id.cpp":{"size":26122,"mtime_ns":1782715529799711900,"word_count":2572},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\id.h":{"size":9258,"mtime_ns":1782715529799711900,"word_count":1075},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\interrupt_pthread.cpp":{"size":1496,"mtime_ns":1782715529799711900,"word_count":206},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\interrupt_pthread.h":{"size":1266,"mtime_ns":1782715529799711900,"word_count":183},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\key.cpp":{"size":23604,"mtime_ns":1784705330136577300,"word_count":2190},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\list_of_abafree_id.h":{"size":11809,"mtime_ns":1782715529800712600,"word_count":1465},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\log.h":{"size":1115,"mtime_ns":1782715529800712600,"word_count":163},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\mutex.cpp":{"size":53802,"mtime_ns":1785293755611582700,"word_count":4847},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\mutex.h":{"size":7591,"mtime_ns":1782715529801827900,"word_count":727},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\parking_lot.h":{"size":3311,"mtime_ns":1782715529801827900,"word_count":359},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\prime_offset.h":{"size":1305,"mtime_ns":1782715529801827900,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\processor.h":{"size":3070,"mtime_ns":1784705330137579800,"word_count":360},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\remote_task_queue.h":{"size":2542,"mtime_ns":1782715529802824700,"word_count":303},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\rwlock.cpp":{"size":25005,"mtime_ns":1784705330137579800,"word_count":2849},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\rwlock.h":{"size":5785,"mtime_ns":1782715529803327900,"word_count":556},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\semaphore.cpp":{"size":6658,"mtime_ns":1782715529803327900,"word_count":660},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\singleton_on_bthread_once.h":{"size":2153,"mtime_ns":1782715529803327900,"word_count":260},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\stack.cpp":{"size":6448,"mtime_ns":1782715529803327900,"word_count":623},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\stack.h":{"size":2889,"mtime_ns":1782715529804406100,"word_count":347},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\stack_inl.h":{"size":9315,"mtime_ns":1782715529804406100,"word_count":762},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\sys_futex.cpp":{"size":4443,"mtime_ns":1782715529804406100,"word_count":449},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\sys_futex.h":{"size":2366,"mtime_ns":1782715529804406100,"word_count":285},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_control.cpp":{"size":28696,"mtime_ns":1784705330138675100,"word_count":2751},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_control.h":{"size":8417,"mtime_ns":1784705330138675100,"word_count":777},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_group.cpp":{"size":46336,"mtime_ns":1785293755611582700,"word_count":4417},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_group.h":{"size":14228,"mtime_ns":1784705330139865100,"word_count":1544},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_group_inl.h":{"size":4432,"mtime_ns":1782715529806410800,"word_count":499},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_meta.h":{"size":5950,"mtime_ns":1784705330139865100,"word_count":676},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_tracer.cpp":{"size":18319,"mtime_ns":1784705330139865100,"word_count":1738},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\task_tracer.h":{"size":4068,"mtime_ns":1782715529806410800,"word_count":427},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\timer_thread.cpp":{"size":22777,"mtime_ns":1785293755612806000,"word_count":2485},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\timer_thread.h":{"size":4361,"mtime_ns":1785293755612806000,"word_count":577},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\types.h":{"size":11368,"mtime_ns":1784705330141287400,"word_count":1313},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\unstable.h":{"size":6344,"mtime_ns":1782715529807650700,"word_count":837},"C:\\workspace\\code\\opensource\\brpc\\src\\bthread\\work_stealing_queue.h":{"size":5416,"mtime_ns":1782715529807650700,"word_count":611},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\arena.cpp":{"size":3048,"mtime_ns":1782715529807650700,"word_count":364},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\arena.h":{"size":2426,"mtime_ns":1782715529808907300,"word_count":292},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\at_exit.cc":{"size":2212,"mtime_ns":1782715529808907300,"word_count":254},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\at_exit.h":{"size":2456,"mtime_ns":1782715529808907300,"word_count":324},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomic_ref_count.h":{"size":3082,"mtime_ns":1782715529808907300,"word_count":404},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomic_sequence_num.h":{"size":1797,"mtime_ns":1782715529808907300,"word_count":219},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops.h":{"size":12927,"mtime_ns":1782715529808907300,"word_count":1394},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_arm64_gcc.h":{"size":9448,"mtime_ns":1782715529810076400,"word_count":943},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_arm_gcc.h":{"size":10770,"mtime_ns":1782715529810076400,"word_count":1216},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_atomicword_compat.h":{"size":3825,"mtime_ns":1782715529810076400,"word_count":330},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_gcc.h":{"size":3349,"mtime_ns":1782715529810076400,"word_count":336},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_loongarch64_gcc.h":{"size":7568,"mtime_ns":1782715529810076400,"word_count":706},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_mac.h":{"size":6006,"mtime_ns":1782715529811102600,"word_count":510},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_mips_gcc.h":{"size":5701,"mtime_ns":1782715529811102600,"word_count":608},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_riscv_gcc.h":{"size":6155,"mtime_ns":1782715529811102600,"word_count":603},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_tsan.h":{"size":7018,"mtime_ns":1782715529811102600,"word_count":487},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_x86_gcc.cc":{"size":3486,"mtime_ns":1782715529811102600,"word_count":492},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_x86_gcc.h":{"size":8769,"mtime_ns":1782715529812103000,"word_count":910},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\atomicops_internals_x86_msvc.h":{"size":6645,"mtime_ns":1782715529812103000,"word_count":591},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\auto_reset.h":{"size":1250,"mtime_ns":1782715529812103000,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base64.cc":{"size":1160,"mtime_ns":1782715529812103000,"word_count":126},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base64.h":{"size":744,"mtime_ns":1782715529812103000,"word_count":94},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base64url.cc":{"size":3783,"mtime_ns":1782715529812103000,"word_count":346},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base64url.h":{"size":1849,"mtime_ns":1782715529813104400,"word_count":205},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\base_export.h":{"size":999,"mtime_ns":1782715529813104400,"word_count":88},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\basictypes.h":{"size":1602,"mtime_ns":1782715529813104400,"word_count":215},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\big_endian.cc":{"size":2122,"mtime_ns":1782715529813104400,"word_count":255},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\big_endian.h":{"size":3069,"mtime_ns":1782715529813104400,"word_count":417},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\binary_printer.cpp":{"size":5093,"mtime_ns":1782715529813104400,"word_count":582},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\binary_printer.h":{"size":2504,"mtime_ns":1782715529813104400,"word_count":291},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\bit_array.h":{"size":3436,"mtime_ns":1782715529814106200,"word_count":524},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\bits.h":{"size":1066,"mtime_ns":1782715529814106200,"word_count":182},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\build_config.h":{"size":6288,"mtime_ns":1782715529814106200,"word_count":734},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\cancelable_callback.h":{"size":8224,"mtime_ns":1782715529814106200,"word_count":872},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\class_name.cpp":{"size":2448,"mtime_ns":1782715529814106200,"word_count":349},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\class_name.h":{"size":2081,"mtime_ns":1782715529815114900,"word_count":284},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\comlog_sink.cc":{"size":13823,"mtime_ns":1782715529815114900,"word_count":1256},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\comlog_sink.h":{"size":5341,"mtime_ns":1782715529815114900,"word_count":666},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\compat.h":{"size":2497,"mtime_ns":1782715529815114900,"word_count":281},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\compiler_specific.h":{"size":11289,"mtime_ns":1782715529815114900,"word_count":1352},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\bounded_queue.h":{"size":9425,"mtime_ns":1782715529816115400,"word_count":1241},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\case_ignored_flat_map.cpp":{"size":2382,"mtime_ns":1782715529816115400,"word_count":417},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\case_ignored_flat_map.h":{"size":3286,"mtime_ns":1784705330141789700,"word_count":413},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\doubly_buffered_data.h":{"size":20728,"mtime_ns":1782715529817117900,"word_count":2148},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\flat_map.h":{"size":31536,"mtime_ns":1782715529817117900,"word_count":2929},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\flat_map_inl.h":{"size":29471,"mtime_ns":1782715529817117900,"word_count":3107},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\hash_tables.h":{"size":8827,"mtime_ns":1782715529817117900,"word_count":908},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\linked_list.h":{"size":5777,"mtime_ns":1782715529818120400,"word_count":766},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\mpsc_queue.h":{"size":5588,"mtime_ns":1782715529818120400,"word_count":599},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\mru_cache.h":{"size":11306,"mtime_ns":1782715529818120400,"word_count":1333},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\optional.h":{"size":19157,"mtime_ns":1782715529818120400,"word_count":1944},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\pooled_map.h":{"size":9160,"mtime_ns":1782715529819122000,"word_count":1004},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\scoped_ptr_hash_map.h":{"size":4483,"mtime_ns":1782715529819122000,"word_count":485},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\small_map.h":{"size":20894,"mtime_ns":1782715529819122000,"word_count":2554},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\containers\\stack_container.h":{"size":10374,"mtime_ns":1782715529819122000,"word_count":1220},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\cpu.cc":{"size":8047,"mtime_ns":1782715529819122000,"word_count":895},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\cpu.h":{"size":2792,"mtime_ns":1782715529820122800,"word_count":365},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\crc32c.cc":{"size":33104,"mtime_ns":1784705330142448700,"word_count":3654},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\crc32c.h":{"size":1797,"mtime_ns":1782715529820122800,"word_count":281},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\address_annotations.h":{"size":1693,"mtime_ns":1782715529820122800,"word_count":134},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\alias.cc":{"size":492,"mtime_ns":1782715529820122800,"word_count":67},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\alias.h":{"size":619,"mtime_ns":1782715529821123900,"word_count":93},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\asan_invalid_access.cc":{"size":2835,"mtime_ns":1782715529821123900,"word_count":357},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\asan_invalid_access.h":{"size":1423,"mtime_ns":1782715529821123900,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\crash_logging.cc":{"size":6158,"mtime_ns":1782715529821123900,"word_count":600},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\crash_logging.h":{"size":4182,"mtime_ns":1782715529822127500,"word_count":513},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\debugger.cc":{"size":1139,"mtime_ns":1782715529822127500,"word_count":139},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\debugger.h":{"size":1783,"mtime_ns":1782715529822127500,"word_count":274},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\debugger_posix.cc":{"size":8101,"mtime_ns":1782715529822127500,"word_count":1047},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\dump_without_crashing.cc":{"size":769,"mtime_ns":1782715529822127500,"word_count":89},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\dump_without_crashing.h":{"size":809,"mtime_ns":1782715529823135200,"word_count":92},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\leak_annotations.h":{"size":2089,"mtime_ns":1784705330142448700,"word_count":224},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\leak_tracker.h":{"size":4035,"mtime_ns":1782715529823135200,"word_count":498},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\proc_maps_linux.cc":{"size":5528,"mtime_ns":1782715529823135200,"word_count":671},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\proc_maps_linux.h":{"size":3565,"mtime_ns":1782715529823135200,"word_count":540},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\stack_trace.cc":{"size":1115,"mtime_ns":1782715529823135200,"word_count":128},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\stack_trace.h":{"size":4437,"mtime_ns":1782715529824139500,"word_count":597},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\debug\\stack_trace_posix.cc":{"size":32045,"mtime_ns":1782715529824139500,"word_count":3553},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\details\\extended_endpoint.hpp":{"size":14034,"mtime_ns":1782715529824139500,"word_count":1447},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\endpoint.cpp":{"size":20710,"mtime_ns":1785293755612806000,"word_count":2299},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\endpoint.h":{"size":8982,"mtime_ns":1785293755614293400,"word_count":1187},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\environment.cc":{"size":7555,"mtime_ns":1782715529825141600,"word_count":774},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\environment.h":{"size":3068,"mtime_ns":1782715529825141600,"word_count":385},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\errno.cpp":{"size":3879,"mtime_ns":1782715529826143300,"word_count":431},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\errno.h":{"size":3364,"mtime_ns":1782715529826143300,"word_count":435},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fast_rand.cpp":{"size":7116,"mtime_ns":1782715529826143300,"word_count":933},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fast_rand.h":{"size":2657,"mtime_ns":1782715529826143300,"word_count":353},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fd_guard.h":{"size":2146,"mtime_ns":1782715529826143300,"word_count":301},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fd_utility.cpp":{"size":3235,"mtime_ns":1782715529827144800,"word_count":409},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\fd_utility.h":{"size":1804,"mtime_ns":1782715529827144800,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_descriptor_posix.h":{"size":1804,"mtime_ns":1782715529827144800,"word_count":222},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util.cc":{"size":7863,"mtime_ns":1782715529827144800,"word_count":829},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util.h":{"size":20985,"mtime_ns":1782715529827144800,"word_count":2746},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util_linux.cc":{"size":2405,"mtime_ns":1782715529828146600,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util_mac.mm":{"size":1381,"mtime_ns":1782715529828146600,"word_count":143},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\file_util_posix.cc":{"size":30243,"mtime_ns":1782715529828146600,"word_count":3061},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\dir_reader_fallback.h":{"size":1142,"mtime_ns":1782715529828146600,"word_count":168},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\dir_reader_linux.h":{"size":2197,"mtime_ns":1782715529828146600,"word_count":248},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\dir_reader_posix.h":{"size":1341,"mtime_ns":1782715529829148400,"word_count":168},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\dir_reader_unix.h":{"size":2324,"mtime_ns":1782715529829148400,"word_count":300},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\fd_guard.h":{"size":1100,"mtime_ns":1782715529829148400,"word_count":164},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file.cc":{"size":3204,"mtime_ns":1782715529829148400,"word_count":244},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file.h":{"size":11460,"mtime_ns":1782715529829148400,"word_count":1630},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_enumerator.cc":{"size":605,"mtime_ns":1782715529830187700,"word_count":67},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_enumerator.h":{"size":5233,"mtime_ns":1782715529830187700,"word_count":651},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_enumerator_posix.cc":{"size":5440,"mtime_ns":1782715529830187700,"word_count":464},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_path.cc":{"size":57767,"mtime_ns":1782715529830187700,"word_count":6551},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_path.h":{"size":21763,"mtime_ns":1782715529831188700,"word_count":2933},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_path_constants.cc":{"size":855,"mtime_ns":1782715529831188700,"word_count":77},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_posix.cc":{"size":13581,"mtime_ns":1782715529831188700,"word_count":1287},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_watcher.cpp":{"size":2953,"mtime_ns":1782715529831188700,"word_count":347},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\file_watcher.h":{"size":2915,"mtime_ns":1782715529832189800,"word_count":392},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\memory_mapped_file.cc":{"size":1062,"mtime_ns":1782715529832189800,"word_count":113},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\memory_mapped_file.h":{"size":2223,"mtime_ns":1782715529832189800,"word_count":297},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\memory_mapped_file_posix.cc":{"size":1202,"mtime_ns":1782715529832189800,"word_count":123},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\scoped_file.cc":{"size":1029,"mtime_ns":1782715529832189800,"word_count":142},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\scoped_file.h":{"size":2928,"mtime_ns":1782715529833190600,"word_count":358},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\scoped_temp_dir.cc":{"size":1978,"mtime_ns":1782715529833190600,"word_count":209},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\scoped_temp_dir.h":{"size":2134,"mtime_ns":1782715529833190600,"word_count":278},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\temp_file.cpp":{"size":4487,"mtime_ns":1782715529833190600,"word_count":566},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\files\\temp_file.h":{"size":2816,"mtime_ns":1782715529833190600,"word_count":388},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\find_cstr.cpp":{"size":1013,"mtime_ns":1782715529834192800,"word_count":153},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\find_cstr.h":{"size":6118,"mtime_ns":1784705330142448700,"word_count":654},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\float_util.h":{"size":784,"mtime_ns":1782715529834192800,"word_count":97},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\format_macros.h":{"size":2439,"mtime_ns":1782715529834192800,"word_count":321},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\gperftools_profiler.h":{"size":3070,"mtime_ns":1782715529835201400,"word_count":449},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\gtest_prod_util.h":{"size":2561,"mtime_ns":1782715529835201400,"word_count":321},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\guid.cc":{"size":744,"mtime_ns":1782715529835201400,"word_count":112},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\guid.h":{"size":1033,"mtime_ns":1782715529835201400,"word_count":133},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\guid_posix.cc":{"size":1044,"mtime_ns":1782715529835201400,"word_count":102},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\hash.cc":{"size":638,"mtime_ns":1782715529835201400,"word_count":88},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\hash.h":{"size":1169,"mtime_ns":1782715529835201400,"word_count":153},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\intrusive_ptr.hpp":{"size":8119,"mtime_ns":1782715529836203000,"word_count":924},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf.cpp":{"size":71043,"mtime_ns":1784705330142448700,"word_count":7761},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf.h":{"size":36126,"mtime_ns":1784705330142448700,"word_count":4641},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf_inl.h":{"size":18287,"mtime_ns":1784705330142448700,"word_count":1936},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf_profiler.cpp":{"size":10462,"mtime_ns":1782715529837204900,"word_count":1020},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\iobuf_profiler.h":{"size":5094,"mtime_ns":1782715529837204900,"word_count":490},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\lazy_instance.cc":{"size":2390,"mtime_ns":1782715529837204900,"word_count":270},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\lazy_instance.h":{"size":9810,"mtime_ns":1784705330142448700,"word_count":1145},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\location.cc":{"size":2793,"mtime_ns":1782715529838206200,"word_count":227},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\location.h":{"size":3623,"mtime_ns":1782715529838206200,"word_count":411},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\logging.cc":{"size":65539,"mtime_ns":1784705330146825100,"word_count":6553},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\logging.h":{"size":57596,"mtime_ns":1782715529839202800,"word_count":6043},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\bundle_locations.h":{"size":2488,"mtime_ns":1782715529839706300,"word_count":337},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\bundle_locations.mm":{"size":2467,"mtime_ns":1782715529839706300,"word_count":223},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\foundation_util.h":{"size":14117,"mtime_ns":1782715529839706300,"word_count":1549},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\foundation_util.mm":{"size":13591,"mtime_ns":1782715529839706300,"word_count":1271},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\scoped_cftyperef.h":{"size":2061,"mtime_ns":1782715529839706300,"word_count":240},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\scoped_mach_port.cc":{"size":1066,"mtime_ns":1782715529840706500,"word_count":123},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\scoped_mach_port.h":{"size":2080,"mtime_ns":1782715529840706500,"word_count":277},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\mac\\scoped_typeref.h":{"size":4109,"mtime_ns":1782715529840706500,"word_count":501},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\macros.h":{"size":20374,"mtime_ns":1782715529840706500,"word_count":2590},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\aligned_memory.cc":{"size":1639,"mtime_ns":1782715529840706500,"word_count":214},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\aligned_memory.h":{"size":4765,"mtime_ns":1782715529841707300,"word_count":456},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\linked_ptr.h":{"size":5711,"mtime_ns":1782715529841707300,"word_count":827},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\manual_constructor.h":{"size":2483,"mtime_ns":1782715529841707300,"word_count":306},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\raw_scoped_refptr_mismatch_checker.h":{"size":5256,"mtime_ns":1782715529841707300,"word_count":481},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\ref_counted.cc":{"size":1248,"mtime_ns":1782715529841707300,"word_count":117},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\ref_counted.h":{"size":8966,"mtime_ns":1782715529842707400,"word_count":1071},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\ref_counted_memory.cc":{"size":2556,"mtime_ns":1782715529842707400,"word_count":245},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\ref_counted_memory.h":{"size":4793,"mtime_ns":1782715529842707400,"word_count":543},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scope_guard.h":{"size":3524,"mtime_ns":1782715529842707400,"word_count":383},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scoped_open_process.h":{"size":1245,"mtime_ns":1782715529842707400,"word_count":147},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scoped_policy.h":{"size":709,"mtime_ns":1782715529842707400,"word_count":101},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scoped_ptr.h":{"size":23075,"mtime_ns":1782715529843707500,"word_count":3073},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\scoped_vector.h":{"size":4602,"mtime_ns":1782715529843707500,"word_count":476},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\singleton.cc":{"size":1268,"mtime_ns":1782715529843707500,"word_count":176},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\singleton.h":{"size":12199,"mtime_ns":1784705330146825100,"word_count":1611},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\singleton_objc.h":{"size":2425,"mtime_ns":1782715529843707500,"word_count":305},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\singleton_on_pthread_once.h":{"size":3001,"mtime_ns":1782715529846728700,"word_count":311},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\weak_ptr.cc":{"size":1370,"mtime_ns":1782715529846728700,"word_count":151},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\memory\\weak_ptr.h":{"size":11042,"mtime_ns":1782715529846728700,"word_count":1403},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\move.h":{"size":8886,"mtime_ns":1782715529847729300,"word_count":1396},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\numerics\\safe_conversions.h":{"size":2642,"mtime_ns":1782715529848729400,"word_count":296},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\numerics\\safe_conversions_impl.h":{"size":9470,"mtime_ns":1782715529848729400,"word_count":768},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\numerics\\safe_math.h":{"size":12887,"mtime_ns":1782715529848729400,"word_count":1282},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\numerics\\safe_math_impl.h":{"size":16995,"mtime_ns":1782715529848729400,"word_count":1724},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\object_pool.h":{"size":4417,"mtime_ns":1782715529848729400,"word_count":590},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\object_pool_inl.h":{"size":26005,"mtime_ns":1784705330146825100,"word_count":2227},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\observer_list.h":{"size":6657,"mtime_ns":1782715529849731200,"word_count":647},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\popen.cpp":{"size":5500,"mtime_ns":1782715529849731200,"word_count":636},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\popen.h":{"size":1244,"mtime_ns":1782715529849731200,"word_count":182},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\port.h":{"size":1751,"mtime_ns":1782715529849731200,"word_count":237},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\eintr_wrapper.h":{"size":1887,"mtime_ns":1782715529850733300,"word_count":258},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\file_descriptor_shuffle.cc":{"size":2973,"mtime_ns":1782715529850733300,"word_count":325},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\file_descriptor_shuffle.h":{"size":3254,"mtime_ns":1782715529850733300,"word_count":387},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\global_descriptors.cc":{"size":1450,"mtime_ns":1782715529850733300,"word_count":152},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\posix\\global_descriptors.h":{"size":2482,"mtime_ns":1782715529850733300,"word_count":358},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\process_util.cc":{"size":3338,"mtime_ns":1782715529851735400,"word_count":415},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\process_util.h":{"size":1539,"mtime_ns":1782715529851735400,"word_count":231},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\ptr_container.h":{"size":2221,"mtime_ns":1782715529851735400,"word_count":305},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\rand_util.cc":{"size":2189,"mtime_ns":1782715529851735400,"word_count":272},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\rand_util.h":{"size":2378,"mtime_ns":1782715529851735400,"word_count":297},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\rand_util_posix.cc":{"size":1584,"mtime_ns":1782715529851735400,"word_count":201},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\raw_pack.h":{"size":4021,"mtime_ns":1785293755614293400,"word_count":482},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\reader_writer.h":{"size":1893,"mtime_ns":1782715529852737700,"word_count":282},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\recordio.cc":{"size":14405,"mtime_ns":1782715529852737700,"word_count":1698},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\recordio.h":{"size":4691,"mtime_ns":1782715529852737700,"word_count":650},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\reloadable_flags.h":{"size":2799,"mtime_ns":1782715529853739200,"word_count":346},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\resource_pool.h":{"size":5846,"mtime_ns":1782715529853739200,"word_count":727},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\resource_pool_inl.h":{"size":25124,"mtime_ns":1782715529853739200,"word_count":2093},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\safe_strerror_posix.cc":{"size":4469,"mtime_ns":1782715529853739200,"word_count":656},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\safe_strerror_posix.h":{"size":1649,"mtime_ns":1782715529853739200,"word_count":247},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\scoped_clear_errno.h":{"size":784,"mtime_ns":1782715529854741100,"word_count":100},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\scoped_generic.h":{"size":6357,"mtime_ns":1782715529854741100,"word_count":851},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\scoped_lock.h":{"size":11167,"mtime_ns":1782715529854741100,"word_count":1022},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\scoped_observer.h":{"size":1616,"mtime_ns":1782715529854741100,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\sha1.h":{"size":885,"mtime_ns":1782715529854741100,"word_count":125},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\sha1_portable.cc":{"size":4646,"mtime_ns":1782715529854741100,"word_count":697},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\shared_object.h":{"size":2555,"mtime_ns":1782715529854741100,"word_count":308},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\single_iobuf.cpp":{"size":8366,"mtime_ns":1784705330146825100,"word_count":857},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\single_iobuf.h":{"size":4454,"mtime_ns":1782715529856244100,"word_count":571},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\single_threaded_pool.h":{"size":4862,"mtime_ns":1782715529856244100,"word_count":585},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\ssl_compat.h":{"size":21378,"mtime_ns":1782715529856244100,"word_count":1508},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\status.cpp":{"size":4437,"mtime_ns":1782715529856244100,"word_count":520},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\status.h":{"size":5358,"mtime_ns":1782715529856244100,"word_count":696},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\stl_util.h":{"size":9432,"mtime_ns":1782715529857250500,"word_count":1194},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_compare_rvv.cc":{"size":2563,"mtime_ns":1785293755614293400,"word_count":326},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_printf.cpp":{"size":5939,"mtime_ns":1782715529857250500,"word_count":778},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_printf.h":{"size":2219,"mtime_ns":1782715529857250500,"word_count":294},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_splitter.h":{"size":9553,"mtime_ns":1782715529857250500,"word_count":1123},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\string_splitter_inl.h":{"size":9321,"mtime_ns":1782715529857250500,"word_count":1151},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\latin1_string_conversions.cc":{"size":577,"mtime_ns":1782715529858251600,"word_count":66},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\latin1_string_conversions.h":{"size":1348,"mtime_ns":1782715529858251600,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\nullable_string16.cc":{"size":506,"mtime_ns":1782715529858251600,"word_count":62},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\nullable_string16.h":{"size":1352,"mtime_ns":1782715529858251600,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\safe_sprintf.cc":{"size":26967,"mtime_ns":1782715529859253200,"word_count":3888},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\safe_sprintf.h":{"size":18661,"mtime_ns":1782715529859253200,"word_count":2753},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string16.cc":{"size":1969,"mtime_ns":1782715529859253200,"word_count":281},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string16.h":{"size":6976,"mtime_ns":1782715529859253200,"word_count":962},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_number_conversions.cc":{"size":15979,"mtime_ns":1782715529859253200,"word_count":1810},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_number_conversions.h":{"size":6438,"mtime_ns":1782715529860255300,"word_count":813},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_piece.cc":{"size":13202,"mtime_ns":1785293755615552000,"word_count":1442},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_piece.h":{"size":20422,"mtime_ns":1785293755615552000,"word_count":2183},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_split.cc":{"size":9033,"mtime_ns":1782715529860255300,"word_count":794},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_split.h":{"size":5993,"mtime_ns":1782715529860255300,"word_count":545},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_tokenizer.h":{"size":7923,"mtime_ns":1782715529861279400,"word_count":993},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_util.cc":{"size":30387,"mtime_ns":1782715529861279400,"word_count":2937},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_util.h":{"size":24624,"mtime_ns":1782715529861279400,"word_count":2949},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_util_constants.cc":{"size":1831,"mtime_ns":1782715529861279400,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\string_util_posix.h":{"size":1531,"mtime_ns":1782715529862281700,"word_count":177},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\stringize_macros.h":{"size":1048,"mtime_ns":1782715529862281700,"word_count":137},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\stringprintf.cc":{"size":5770,"mtime_ns":1782715529862281700,"word_count":676},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\stringprintf.h":{"size":2210,"mtime_ns":1782715529862281700,"word_count":241},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\sys_string_conversions.h":{"size":3185,"mtime_ns":1782715529863283700,"word_count":334},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\sys_string_conversions_mac.mm":{"size":7264,"mtime_ns":1782715529863283700,"word_count":613},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\sys_string_conversions_posix.cc":{"size":4850,"mtime_ns":1782715529863283700,"word_count":631},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_offset_string_conversions.cc":{"size":10871,"mtime_ns":1782715529863283700,"word_count":1037},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_offset_string_conversions.h":{"size":5444,"mtime_ns":1782715529864285500,"word_count":643},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_string_conversion_utils.cc":{"size":5087,"mtime_ns":1782715529864285500,"word_count":508},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_string_conversion_utils.h":{"size":4423,"mtime_ns":1782715529864285500,"word_count":508},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_string_conversions.cc":{"size":5693,"mtime_ns":1782715529864285500,"word_count":622},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\strings\\utf_string_conversions.h":{"size":2353,"mtime_ns":1782715529864285500,"word_count":253},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\cancellation_flag.cc":{"size":564,"mtime_ns":1782715529864285500,"word_count":62},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\cancellation_flag.h":{"size":1249,"mtime_ns":1782715529864285500,"word_count":147},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\condition_variable.h":{"size":4641,"mtime_ns":1782715529865788900,"word_count":692},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\condition_variable_posix.cc":{"size":2419,"mtime_ns":1782715529865788900,"word_count":209},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\lock.h":{"size":5309,"mtime_ns":1782715529865788900,"word_count":586},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\spin_wait.h":{"size":2104,"mtime_ns":1782715529865788900,"word_count":272},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\waitable_event.h":{"size":6860,"mtime_ns":1782715529866797200,"word_count":964},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronization\\waitable_event_posix.cc":{"size":14093,"mtime_ns":1782715529866797200,"word_count":1493},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\synchronous_event.h":{"size":7814,"mtime_ns":1782715529866797200,"word_count":969},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\sys_byteorder.h":{"size":3794,"mtime_ns":1782715529866797200,"word_count":481},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dmg_fp\\dmg_fp.h":{"size":1041,"mtime_ns":1782715529867798900,"word_count":164},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dmg_fp\\dtoa.cc":{"size":89560,"mtime_ns":1782715529868801800,"word_count":14724},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dmg_fp\\dtoa_wrapper.cc":{"size":1887,"mtime_ns":1782715529868801800,"word_count":260},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dmg_fp\\g_fmt.cc":{"size":2264,"mtime_ns":1782715529868801800,"word_count":382},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dynamic_annotations\\dynamic_annotations.c":{"size":9823,"mtime_ns":1782715529870828500,"word_count":1016},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\dynamic_annotations\\dynamic_annotations.h":{"size":27624,"mtime_ns":1782715529870828500,"word_count":2627},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\icu\\icu_utf.cc":{"size":7987,"mtime_ns":1782715529871830500,"word_count":1151},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\icu\\icu_utf.h":{"size":11911,"mtime_ns":1782715529871830500,"word_count":1635},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64.cc":{"size":8299,"mtime_ns":1784705330146825100,"word_count":1295},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64.h":{"size":4760,"mtime_ns":1784705330146825100,"word_count":741},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64_data.h":{"size":30350,"mtime_ns":1782715529871830500,"word_count":2930},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64_rvv.cc":{"size":10526,"mtime_ns":1784705330146825100,"word_count":1337},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\modp_b64\\modp_b64_rvv.h":{"size":1506,"mtime_ns":1784705330146825100,"word_count":208},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\murmurhash3\\murmurhash3.cpp":{"size":19290,"mtime_ns":1782715529873335100,"word_count":2783},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\murmurhash3\\murmurhash3.h":{"size":4201,"mtime_ns":1782715529873335100,"word_count":506},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\allocators.h":{"size":10545,"mtime_ns":1782715529873335100,"word_count":1202},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\document.h":{"size":89538,"mtime_ns":1782715529874343000,"word_count":9645},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\encodedstream.h":{"size":9915,"mtime_ns":1782715529874343000,"word_count":1181},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\encodings.h":{"size":23559,"mtime_ns":1782715529874343000,"word_count":2343},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\error\\en.h":{"size":3754,"mtime_ns":1782715529874343000,"word_count":349},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\error\\error.h":{"size":5965,"mtime_ns":1782715529875345200,"word_count":638},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\filereadstream.h":{"size":2901,"mtime_ns":1782715529875345200,"word_count":350},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\filewritestream.h":{"size":2894,"mtime_ns":1782715529875345200,"word_count":341},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\biginteger.h":{"size":9148,"mtime_ns":1782715529875345200,"word_count":1296},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\diyfp.h":{"size":11546,"mtime_ns":1782715529876348100,"word_count":1112},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\dtoa.h":{"size":7010,"mtime_ns":1782715529876348100,"word_count":972},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\ieee754.h":{"size":3010,"mtime_ns":1782715529876348100,"word_count":390},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\itoa.h":{"size":10622,"mtime_ns":1782715529876348100,"word_count":1280},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\meta.h":{"size":6801,"mtime_ns":1782715529876348100,"word_count":728},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\pow10.h":{"size":3662,"mtime_ns":1782715529877362900,"word_count":308},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\stack.h":{"size":5807,"mtime_ns":1782715529877362900,"word_count":610},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\strfunc.h":{"size":1460,"mtime_ns":1782715529877362900,"word_count":205},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\internal\\strtod.h":{"size":8586,"mtime_ns":1782715529877362900,"word_count":1081},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\memorybuffer.h":{"size":2645,"mtime_ns":1782715529877362900,"word_count":323},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\memorystream.h":{"size":2544,"mtime_ns":1782715529877362900,"word_count":356},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\msinttypes\\inttypes.h":{"size":8688,"mtime_ns":1782715529878364600,"word_count":1094},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\msinttypes\\stdint.h":{"size":9627,"mtime_ns":1782715529878364600,"word_count":1230},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\optimized_writer.h":{"size":5290,"mtime_ns":1782715529878364600,"word_count":581},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\pointer.h":{"size":58174,"mtime_ns":1782715529878364600,"word_count":5832},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\prettywriter.h":{"size":7978,"mtime_ns":1782715529879366600,"word_count":751},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\rapidjson.h":{"size":23220,"mtime_ns":1782715529879366600,"word_count":2335},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\reader.h":{"size":65923,"mtime_ns":1782715529879366600,"word_count":5673},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\stringbuffer.h":{"size":3331,"mtime_ns":1782715529880368800,"word_count":375},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\rapidjson\\writer.h":{"size":14157,"mtime_ns":1782715529880368800,"word_count":1483},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\format_description.txt":{"size":4498,"mtime_ns":1782715529882372300,"word_count":734},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\framing_format.txt":{"size":5174,"mtime_ns":1782715529882372300,"word_count":803},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-internal.h":{"size":5878,"mtime_ns":1782715529882372300,"word_count":785},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-sinksource.cc":{"size":3457,"mtime_ns":1782715529882372300,"word_count":447},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-sinksource.h":{"size":7505,"mtime_ns":1782715529882372300,"word_count":1085},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-stubs-internal.cc":{"size":1943,"mtime_ns":1782715529882372300,"word_count":288},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy-stubs-internal.h":{"size":14919,"mtime_ns":1784705330146825100,"word_count":1936},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy.cc":{"size":60786,"mtime_ns":1784705330146825100,"word_count":7297},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\snappy\\snappy.h":{"size":9914,"mtime_ns":1782715529883374300,"word_count":1323},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\superfasthash\\superfasthash.c":{"size":3220,"mtime_ns":1782715529884376400,"word_count":477},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\config.h":{"size":294,"mtime_ns":1782715529884376400,"word_count":42},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\demangle.cc":{"size":39043,"mtime_ns":1782715529885378200,"word_count":4773},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\demangle.h":{"size":3657,"mtime_ns":1782715529885378200,"word_count":540},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\glog\\logging.h":{"size":185,"mtime_ns":1782715529885378200,"word_count":33},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\glog\\raw_logging.h":{"size":243,"mtime_ns":1782715529885378200,"word_count":40},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\symbolize.cc":{"size":34102,"mtime_ns":1784705330146825100,"word_count":4421},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\symbolize.h":{"size":6319,"mtime_ns":1782715529886379900,"word_count":881},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\symbolize\\utilities.h":{"size":340,"mtime_ns":1782715529886379900,"word_count":46},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\third_party\\valgrind\\valgrind.h":{"size":287786,"mtime_ns":1782715529887381700,"word_count":21540},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_key.cpp":{"size":5446,"mtime_ns":1782715529887381700,"word_count":558},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_key.h":{"size":5959,"mtime_ns":1784705330146825100,"word_count":626},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_local.cpp":{"size":4880,"mtime_ns":1782715529888383600,"word_count":495},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_local.h":{"size":5937,"mtime_ns":1782715529888383600,"word_count":549},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\thread_local_inl.h":{"size":1647,"mtime_ns":1782715529888383600,"word_count":217},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\non_thread_safe.h":{"size":2365,"mtime_ns":1782715529889385600,"word_count":314},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\non_thread_safe_impl.cc":{"size":582,"mtime_ns":1782715529889385600,"word_count":58},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\non_thread_safe_impl.h":{"size":1351,"mtime_ns":1782715529889385600,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread.h":{"size":6361,"mtime_ns":1782715529889385600,"word_count":782},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread_freebsd.cc":{"size":3229,"mtime_ns":1782715529889385600,"word_count":372},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread_linux.cc":{"size":4062,"mtime_ns":1782715529890382300,"word_count":493},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread_mac.mm":{"size":8395,"mtime_ns":1782715529890382300,"word_count":875},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\platform_thread_posix.cc":{"size":7315,"mtime_ns":1782715529890886100,"word_count":593},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\simple_thread.cc":{"size":4752,"mtime_ns":1782715529890886100,"word_count":420},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\simple_thread.h":{"size":7361,"mtime_ns":1782715529890886100,"word_count":978},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_checker.h":{"size":2869,"mtime_ns":1782715529890886100,"word_count":406},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_checker_impl.cc":{"size":910,"mtime_ns":1782715529890886100,"word_count":83},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_checker_impl.h":{"size":1375,"mtime_ns":1782715529890886100,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_collision_warner.cc":{"size":2231,"mtime_ns":1782715529890886100,"word_count":228},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_collision_warner.h":{"size":7755,"mtime_ns":1782715529891887600,"word_count":935},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_id_name_manager.cc":{"size":3696,"mtime_ns":1782715529891887600,"word_count":274},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_id_name_manager.h":{"size":2126,"mtime_ns":1782715529891887600,"word_count":181},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local.h":{"size":4360,"mtime_ns":1782715529891887600,"word_count":521},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local_posix.cc":{"size":982,"mtime_ns":1782715529891887600,"word_count":108},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local_storage.cc":{"size":11045,"mtime_ns":1782715529892897700,"word_count":1278},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local_storage.h":{"size":5450,"mtime_ns":1782715529892897700,"word_count":744},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_local_storage_posix.cc":{"size":887,"mtime_ns":1782715529892897700,"word_count":89},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_restrictions.cc":{"size":2562,"mtime_ns":1782715529892897700,"word_count":244},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\thread_restrictions.h":{"size":9190,"mtime_ns":1782715529892897700,"word_count":991},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\watchdog.cc":{"size":5995,"mtime_ns":1782715529893899300,"word_count":632},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\threading\\watchdog.h":{"size":3272,"mtime_ns":1782715529893899300,"word_count":413},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time.cpp":{"size":5219,"mtime_ns":1782715529893899300,"word_count":622},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time.h":{"size":14176,"mtime_ns":1782715529893899300,"word_count":1554},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\clock.cc":{"size":273,"mtime_ns":1782715529893899300,"word_count":42},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\clock.h":{"size":1201,"mtime_ns":1782715529894899900,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\default_clock.cc":{"size":351,"mtime_ns":1782715529894899900,"word_count":48},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\default_clock.h":{"size":652,"mtime_ns":1782715529894899900,"word_count":79},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\default_tick_clock.cc":{"size":383,"mtime_ns":1782715529894899900,"word_count":48},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\default_tick_clock.h":{"size":699,"mtime_ns":1782715529894899900,"word_count":79},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\tick_clock.cc":{"size":286,"mtime_ns":1782715529895901100,"word_count":42},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\tick_clock.h":{"size":1367,"mtime_ns":1782715529895901100,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\time.cc":{"size":7583,"mtime_ns":1782715529895901100,"word_count":753},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\time.h":{"size":27326,"mtime_ns":1782715529895901100,"word_count":3526},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\time_mac.cc":{"size":8850,"mtime_ns":1782715529895901100,"word_count":891},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\time\\time_posix.cc":{"size":13764,"mtime_ns":1782715529896904200,"word_count":1535},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\type_traits.h":{"size":15510,"mtime_ns":1782715529896904200,"word_count":1912},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\unique_ptr.h":{"size":13530,"mtime_ns":1782715529896904200,"word_count":1274},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\unix_socket.cpp":{"size":2644,"mtime_ns":1782715529896904200,"word_count":324},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\unix_socket.h":{"size":1673,"mtime_ns":1782715529896904200,"word_count":247},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\version.cc":{"size":5610,"mtime_ns":1782715529897913000,"word_count":615},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\version.h":{"size":2518,"mtime_ns":1782715529897913000,"word_count":343},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\zero_copy_stream_as_streambuf.cpp":{"size":2229,"mtime_ns":1782715529897913000,"word_count":260},"C:\\workspace\\code\\opensource\\brpc\\src\\butil\\zero_copy_stream_as_streambuf.h":{"size":2036,"mtime_ns":1782715529897913000,"word_count":238},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\bvar.h":{"size":1159,"mtime_ns":1782715529897913000,"word_count":154},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\collector.cpp":{"size":17110,"mtime_ns":1785293755616548600,"word_count":1535},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\collector.h":{"size":6260,"mtime_ns":1785293755616548600,"word_count":809},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\default_variables.cpp":{"size":30954,"mtime_ns":1785293755616548600,"word_count":2808},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\agent_group.h":{"size":8091,"mtime_ns":1785293755617571900,"word_count":921},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\call_op_returning_void.h":{"size":1241,"mtime_ns":1782715529899916900,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\combiner.h":{"size":15522,"mtime_ns":1785293755618073600,"word_count":1580},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\is_atomical.h":{"size":1780,"mtime_ns":1782715529899916900,"word_count":213},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\percentile.cpp":{"size":5881,"mtime_ns":1785293755618575300,"word_count":660},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\percentile.h":{"size":23719,"mtime_ns":1785293755618575300,"word_count":2401},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\sampler.cpp":{"size":7522,"mtime_ns":1785293755618575300,"word_count":830},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\sampler.h":{"size":7614,"mtime_ns":1785293755619574000,"word_count":872},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\detail\\series.h":{"size":10845,"mtime_ns":1785293755620075700,"word_count":1324},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\gflag.cpp":{"size":3202,"mtime_ns":1785293755620075700,"word_count":358},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\gflag.h":{"size":2084,"mtime_ns":1782715529901945200,"word_count":278},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\latency_recorder.cpp":{"size":10609,"mtime_ns":1785293755620075700,"word_count":993},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\latency_recorder.h":{"size":6453,"mtime_ns":1782715529901945200,"word_count":634},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\multi_dimension.h":{"size":8847,"mtime_ns":1785293755621074000,"word_count":917},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\multi_dimension_inl.h":{"size":14457,"mtime_ns":1785293755621074000,"word_count":1383},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\mvariable.cpp":{"size":8913,"mtime_ns":1785293755622070600,"word_count":885},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\mvariable.h":{"size":4743,"mtime_ns":1785293755622070600,"word_count":556},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\passive_status.h":{"size":8942,"mtime_ns":1785293755622070600,"word_count":851},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\recorder.h":{"size":13464,"mtime_ns":1785293755623068300,"word_count":1491},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\reducer.h":{"size":18234,"mtime_ns":1785293755623068300,"word_count":1823},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\scoped_timer.h":{"size":2045,"mtime_ns":1782715529903945100,"word_count":265},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\status.h":{"size":7138,"mtime_ns":1785293755624064000,"word_count":713},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\utils\\lock_timer.h":{"size":14016,"mtime_ns":1785293755624064000,"word_count":1394},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\variable.cpp":{"size":35363,"mtime_ns":1785293755625178900,"word_count":3344},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\variable.h":{"size":9976,"mtime_ns":1785293755625178900,"word_count":1129},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\vector.h":{"size":3148,"mtime_ns":1782715529904945900,"word_count":442},"C:\\workspace\\code\\opensource\\brpc\\src\\bvar\\window.h":{"size":12042,"mtime_ns":1785293755625178900,"word_count":1219},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\encode_decode.cpp":{"size":3910,"mtime_ns":1782715529905948200,"word_count":482},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\encode_decode.h":{"size":1849,"mtime_ns":1782715529905948200,"word_count":247},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\json_to_pb.cpp":{"size":34954,"mtime_ns":1784705330146825100,"word_count":2493},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\json_to_pb.h":{"size":4733,"mtime_ns":1782715529905948200,"word_count":488},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\pb_to_json.cpp":{"size":18719,"mtime_ns":1784705330146825100,"word_count":1428},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\pb_to_json.h":{"size":5192,"mtime_ns":1782715529905948200,"word_count":569},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\protobuf_map.cpp":{"size":1830,"mtime_ns":1782715529905948200,"word_count":222},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\protobuf_map.h":{"size":2057,"mtime_ns":1782715529907451600,"word_count":307},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\protobuf_type_resolver.cpp":{"size":1531,"mtime_ns":1782715529907451600,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\protobuf_type_resolver.h":{"size":2682,"mtime_ns":1782715529907451600,"word_count":248},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\rapidjson.h":{"size":1909,"mtime_ns":1782715529907451600,"word_count":201},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\zero_copy_stream_reader.h":{"size":2584,"mtime_ns":1782715529907451600,"word_count":299},"C:\\workspace\\code\\opensource\\brpc\\src\\json2pb\\zero_copy_stream_writer.h":{"size":3544,"mtime_ns":1782715529907451600,"word_count":404},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\field_type.cpp":{"size":2252,"mtime_ns":1782715529908464200,"word_count":268},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\field_type.h":{"size":4789,"mtime_ns":1782715529908464200,"word_count":622},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\generator.cpp":{"size":77766,"mtime_ns":1782715529908464200,"word_count":4784},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\mcpack2pb.cpp":{"size":2300,"mtime_ns":1782715529909466100,"word_count":268},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\mcpack2pb.h":{"size":6594,"mtime_ns":1782715529909466100,"word_count":671},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\parser-inl.h":{"size":8488,"mtime_ns":1782715529909466100,"word_count":898},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\parser.cpp":{"size":24038,"mtime_ns":1782715529909466100,"word_count":2193},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\parser.h":{"size":9284,"mtime_ns":1782715529910468300,"word_count":1085},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\serializer-inl.h":{"size":9279,"mtime_ns":1782715529910468300,"word_count":986},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\serializer.cpp":{"size":30491,"mtime_ns":1782715529910468300,"word_count":2679},"C:\\workspace\\code\\opensource\\brpc\\src\\mcpack2pb\\serializer.h":{"size":10596,"mtime_ns":1782715529910468300,"word_count":1170},"C:\\workspace\\code\\opensource\\brpc\\test\\CMakeLists.txt":{"size":14753,"mtime_ns":1784705330153503600,"word_count":643},"C:\\workspace\\code\\opensource\\brpc\\test\\README_mysql_auth.md":{"size":3952,"mtime_ns":1784705330153503600,"word_count":504},"C:\\workspace\\code\\opensource\\brpc\\test\\abalist_unittest.cc":{"size":1310,"mtime_ns":1782715529911470300,"word_count":146},"C:\\workspace\\code\\opensource\\brpc\\test\\aligned_memory_unittest.cc":{"size":3660,"mtime_ns":1782715529912472500,"word_count":309},"C:\\workspace\\code\\opensource\\brpc\\test\\allocator_unittest.cc":{"size":16744,"mtime_ns":1782715529912472500,"word_count":1809},"C:\\workspace\\code\\opensource\\brpc\\test\\at_exit_unittest.cc":{"size":2270,"mtime_ns":1782715529913474100,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\test\\atomicops_unittest.cc":{"size":7806,"mtime_ns":1782715529913474100,"word_count":635},"C:\\workspace\\code\\opensource\\brpc\\test\\baidu_thread_local_unittest.cpp":{"size":5655,"mtime_ns":1782715529913474100,"word_count":570},"C:\\workspace\\code\\opensource\\brpc\\test\\baidu_time_unittest.cpp":{"size":6638,"mtime_ns":1782715529913474100,"word_count":654},"C:\\workspace\\code\\opensource\\brpc\\test\\barrier_closure_unittest.cc":{"size":961,"mtime_ns":1782715529913474100,"word_count":89},"C:\\workspace\\code\\opensource\\brpc\\test\\base64_unittest.cc":{"size":633,"mtime_ns":1782715529913474100,"word_count":74},"C:\\workspace\\code\\opensource\\brpc\\test\\base64url_unittest.cc":{"size":3654,"mtime_ns":1782715529913474100,"word_count":254},"C:\\workspace\\code\\opensource\\brpc\\test\\big_endian_unittest.cc":{"size":2901,"mtime_ns":1782715529914836200,"word_count":246},"C:\\workspace\\code\\opensource\\brpc\\test\\bits_unittest.cc":{"size":1428,"mtime_ns":1782715529914836200,"word_count":172},"C:\\workspace\\code\\opensource\\brpc\\test\\bounded_queue_unittest.cc":{"size":3243,"mtime_ns":1782715529914836200,"word_count":342},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_adaptive_class_unittest.cpp":{"size":2736,"mtime_ns":1784705330153503600,"word_count":245},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_alpn_protocol_unittest.cpp":{"size":4724,"mtime_ns":1784705330153503600,"word_count":417},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_auto_concurrency_limiter_unittest.cpp":{"size":7500,"mtime_ns":1782715529915837800,"word_count":697},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_block_pool_unittest.cpp":{"size":6736,"mtime_ns":1782715529915837800,"word_count":665},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_builtin_service_unittest.cpp":{"size":36793,"mtime_ns":1782715529915837800,"word_count":2488},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_channel_unittest.cpp":{"size":132015,"mtime_ns":1784705330153503600,"word_count":10738},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_circuit_breaker_unittest.cpp":{"size":11640,"mtime_ns":1782715529916839700,"word_count":874},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_controller_unittest.cpp":{"size":4580,"mtime_ns":1782715529916839700,"word_count":434},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_coroutine_unittest.cpp":{"size":6684,"mtime_ns":1782715529916839700,"word_count":624},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_couchbase_unittest.cpp":{"size":3738,"mtime_ns":1784705330153503600,"word_count":329},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_esp_protocol_unittest.cpp":{"size":5083,"mtime_ns":1782715529917840700,"word_count":423},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_event_dispatcher_unittest.cpp":{"size":15928,"mtime_ns":1784705330153503600,"word_count":1459},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_extension_unittest.cpp":{"size":2306,"mtime_ns":1782715529918840500,"word_count":252},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_grpc_protocol_unittest.cpp":{"size":9369,"mtime_ns":1782715529918840500,"word_count":753},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_h2_unsent_message_unittest.cpp":{"size":3630,"mtime_ns":1782715529918840500,"word_count":352},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_hpack_unittest.cpp":{"size":23559,"mtime_ns":1784705330157760700,"word_count":2163},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_http_message_unittest.cpp":{"size":31299,"mtime_ns":1782715529919841800,"word_count":1777},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_http_parser_unittest.cpp":{"size":4948,"mtime_ns":1782715529919841800,"word_count":500},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_http_rpc_protocol_unittest.cpp":{"size":99536,"mtime_ns":1785293755626676900,"word_count":6738},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_http_status_code_unittest.cpp":{"size":1569,"mtime_ns":1782715529920844400,"word_count":185},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_hulu_pbrpc_protocol_unittest.cpp":{"size":12724,"mtime_ns":1782715529920844400,"word_count":815},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_input_messenger_unittest.cpp":{"size":6894,"mtime_ns":1784705330157760700,"word_count":744},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_interceptor_unittest.cpp":{"size":6854,"mtime_ns":1782715529920844400,"word_count":579},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_load_balancer_unittest.cpp":{"size":53908,"mtime_ns":1784705330157760700,"word_count":4880},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_memcache_unittest.cpp":{"size":10524,"mtime_ns":1785293755626676900,"word_count":923},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mongo_protocol_unittest.cpp":{"size":8873,"mtime_ns":1782715529921846500,"word_count":676},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_auth_handshake_unittest.cpp":{"size":54379,"mtime_ns":1784705330157760700,"word_count":5261},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_auth_packet_unittest.cpp":{"size":10509,"mtime_ns":1784705330157760700,"word_count":879},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_auth_scramble_unittest.cpp":{"size":22350,"mtime_ns":1784705330157760700,"word_count":1470},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_connection_type_unittest.cpp":{"size":14679,"mtime_ns":1784705330157760700,"word_count":1613},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_pool_concurrency_unittest.cpp":{"size":53799,"mtime_ns":1784705330157760700,"word_count":6002},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_prepared_integration_unittest.cpp":{"size":32549,"mtime_ns":1784705330157760700,"word_count":3294},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_reply_parse_unittest.cpp":{"size":5026,"mtime_ns":1784705330157760700,"word_count":534},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_mysql_txn_integration_unittest.cpp":{"size":25299,"mtime_ns":1784705330157760700,"word_count":2460},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_naming_service_filter_unittest.cpp":{"size":2586,"mtime_ns":1782715529922848600,"word_count":274},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_naming_service_unittest.cpp":{"size":31858,"mtime_ns":1782715529922848600,"word_count":1880},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_nova_pbrpc_protocol_unittest.cpp":{"size":9782,"mtime_ns":1782715529922848600,"word_count":692},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_p2c_ewma_load_balancer_unittest.cpp":{"size":16020,"mtime_ns":1784705330157760700,"word_count":1477},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_prometheus_metrics_service_unittest.cpp":{"size":1404,"mtime_ns":1782715529922848600,"word_count":167},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_prometheus_metrics_unittest.cpp":{"size":8185,"mtime_ns":1782715529922848600,"word_count":745},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_proto_unittest.cpp":{"size":3131,"mtime_ns":1784705330157760700,"word_count":269},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_protobuf_json_unittest.cpp":{"size":76859,"mtime_ns":1784705330157760700,"word_count":4334},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_public_pbrpc_protocol_unittest.cpp":{"size":12183,"mtime_ns":1782715529924351700,"word_count":793},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_rdma_unittest.cpp":{"size":103382,"mtime_ns":1785293755627679600,"word_count":7724},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_redis_cluster_unittest.cpp":{"size":59417,"mtime_ns":1784705330157760700,"word_count":3895},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_redis_unittest.cpp":{"size":63281,"mtime_ns":1784705330157760700,"word_count":4075},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_repeated_field_unittest.cpp":{"size":1383,"mtime_ns":1782715529925358800,"word_count":174},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_rtmp_unittest.cpp":{"size":40654,"mtime_ns":1784705330157760700,"word_count":3112},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_server_unittest.cpp":{"size":84165,"mtime_ns":1782715529926360700,"word_count":4995},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_snappy_compress_unittest.cpp":{"size":10036,"mtime_ns":1782715529926360700,"word_count":896},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_socket_map_unittest.cpp":{"size":6172,"mtime_ns":1782715529926360700,"word_count":600},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_socket_unittest.cpp":{"size":67787,"mtime_ns":1785293755627679600,"word_count":5237},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_sofa_pbrpc_protocol_unittest.cpp":{"size":12607,"mtime_ns":1782715529927864000,"word_count":812},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_ssl_unittest.cpp":{"size":19310,"mtime_ns":1784705330157760700,"word_count":1483},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_streaming_rpc_unittest.cpp":{"size":44273,"mtime_ns":1784705330157760700,"word_count":3510},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_timeout_concurrency_limiter_unittest.cpp":{"size":5679,"mtime_ns":1782715529927864000,"word_count":373},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_ubring_unittest.cpp":{"size":6316,"mtime_ns":1785293755628813700,"word_count":532},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_uri_unittest.cpp":{"size":18106,"mtime_ns":1784705330157760700,"word_count":1087},"C:\\workspace\\code\\opensource\\brpc\\test\\brpc_urma_unittest.cpp":{"size":19452,"mtime_ns":1785291668488166100,"word_count":1625},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_butex_multi_tag_unittest.cpp":{"size":5547,"mtime_ns":1782715529928872200,"word_count":444},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_butex_unittest.cpp":{"size":14700,"mtime_ns":1782715529928872200,"word_count":1407},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_cond_bug_unittest.cpp":{"size":4874,"mtime_ns":1782715529928872200,"word_count":511},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_cond_unittest.cpp":{"size":14794,"mtime_ns":1782715529928872200,"word_count":1353},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_countdown_event_unittest.cpp":{"size":2235,"mtime_ns":1782715529928872200,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_dispatcher_unittest.cpp":{"size":9610,"mtime_ns":1784705330157760700,"word_count":1102},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_execution_queue_unittest.cpp":{"size":31467,"mtime_ns":1782715529929874200,"word_count":2722},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_fd_unittest.cpp":{"size":19879,"mtime_ns":1784705330157760700,"word_count":1955},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_futex_unittest.cpp":{"size":6456,"mtime_ns":1782715529930898000,"word_count":714},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_id_unittest.cpp":{"size":20686,"mtime_ns":1782715529930898000,"word_count":1805},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_key_unittest.cpp":{"size":20005,"mtime_ns":1784705330157760700,"word_count":1740},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_list_unittest.cpp":{"size":2132,"mtime_ns":1782715529930898000,"word_count":229},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_mutex_unittest.cpp":{"size":11687,"mtime_ns":1784705330157760700,"word_count":1065},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_once_unittest.cpp":{"size":4104,"mtime_ns":1782715529930898000,"word_count":387},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_ping_pong_unittest.cpp":{"size":7404,"mtime_ns":1782715529930898000,"word_count":722},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_priority_queue_unittest.cpp":{"size":7594,"mtime_ns":1784705330157760700,"word_count":740},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_rwlock_unittest.cpp":{"size":23476,"mtime_ns":1784705330170590100,"word_count":2307},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_sched_yield_unittest.cpp":{"size":1892,"mtime_ns":1782715529932399600,"word_count":247},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_semaphore_unittest.cpp":{"size":6096,"mtime_ns":1782715529932399600,"word_count":640},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_setconcurrency_unittest.cpp":{"size":7837,"mtime_ns":1782715529932399600,"word_count":702},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_timer_thread_unittest.cpp":{"size":14450,"mtime_ns":1785293755628813700,"word_count":1435},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_unittest.cpp":{"size":21734,"mtime_ns":1784705330170590100,"word_count":2149},"C:\\workspace\\code\\opensource\\brpc\\test\\bthread_work_stealing_queue_unittest.cpp":{"size":4213,"mtime_ns":1782715529933404200,"word_count":435},"C:\\workspace\\code\\opensource\\brpc\\test\\butil_unittest_main.cpp":{"size":1572,"mtime_ns":1782715529933404200,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_agent_group_unittest.cpp":{"size":5291,"mtime_ns":1782715529933404200,"word_count":536},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_file_dumper_unittest.cpp":{"size":1443,"mtime_ns":1782715529934404300,"word_count":173},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_lock_timer_unittest.cpp":{"size":8457,"mtime_ns":1782715529934404300,"word_count":771},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_multi_dimension_unittest.cpp":{"size":25849,"mtime_ns":1782715529934404300,"word_count":1934},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_mvariable_unittest.cpp":{"size":8122,"mtime_ns":1782715529934404300,"word_count":549},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_percentile_unittest.cpp":{"size":6862,"mtime_ns":1784705330170590100,"word_count":807},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_recorder_unittest.cpp":{"size":8874,"mtime_ns":1782715529935406400,"word_count":841},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_reducer_unittest.cpp":{"size":11341,"mtime_ns":1782715529935406400,"word_count":1108},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_sampler_unittest.cpp":{"size":4436,"mtime_ns":1782715529935406400,"word_count":467},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_status_unittest.cpp":{"size":6799,"mtime_ns":1782715529935406400,"word_count":507},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_variable_unittest.cpp":{"size":14747,"mtime_ns":1782715529935406400,"word_count":987},"C:\\workspace\\code\\opensource\\brpc\\test\\bvar_window_unittest.cpp":{"size":3412,"mtime_ns":1782715529936408700,"word_count":305},"C:\\workspace\\code\\opensource\\brpc\\test\\cacheline_unittest.cpp":{"size":1500,"mtime_ns":1782715529936408700,"word_count":194},"C:\\workspace\\code\\opensource\\brpc\\test\\callback_helpers_unittest.cc":{"size":1519,"mtime_ns":1782715529936408700,"word_count":133},"C:\\workspace\\code\\opensource\\brpc\\test\\callback_list_unittest.cc":{"size":8799,"mtime_ns":1782715529936408700,"word_count":784},"C:\\workspace\\code\\opensource\\brpc\\test\\callback_unittest.cc":{"size":5027,"mtime_ns":1782715529936408700,"word_count":436},"C:\\workspace\\code\\opensource\\brpc\\test\\cancelable_callback_unittest.cc":{"size":4625,"mtime_ns":1782715529936408700,"word_count":416},"C:\\workspace\\code\\opensource\\brpc\\test\\cancellation_flag_unittest.cc":{"size":839,"mtime_ns":1782715529937410800,"word_count":78},"C:\\workspace\\code\\opensource\\brpc\\test\\class_name_unittest.cpp":{"size":2415,"mtime_ns":1782715529937410800,"word_count":214},"C:\\workspace\\code\\opensource\\brpc\\test\\condition_variable_unittest.cc":{"size":25085,"mtime_ns":1782715529938412700,"word_count":2345},"C:\\workspace\\code\\opensource\\brpc\\test\\cpu_unittest.cc":{"size":2645,"mtime_ns":1782715529938412700,"word_count":352},"C:\\workspace\\code\\opensource\\brpc\\test\\crash_logging_unittest.cc":{"size":5867,"mtime_ns":1782715529938412700,"word_count":485},"C:\\workspace\\code\\opensource\\brpc\\test\\crc32c_unittest.cc":{"size":2187,"mtime_ns":1782715529938412700,"word_count":280},"C:\\workspace\\code\\opensource\\brpc\\test\\dir_reader_posix_unittest.cc":{"size":2164,"mtime_ns":1782715529938412700,"word_count":227},"C:\\workspace\\code\\opensource\\brpc\\test\\endpoint_unittest.cpp":{"size":21490,"mtime_ns":1782715529939432400,"word_count":1644},"C:\\workspace\\code\\opensource\\brpc\\test\\environment_unittest.cc":{"size":4451,"mtime_ns":1782715529939432400,"word_count":420},"C:\\workspace\\code\\opensource\\brpc\\test\\errno_unittest.cpp":{"size":2011,"mtime_ns":1782715529939432400,"word_count":235},"C:\\workspace\\code\\opensource\\brpc\\test\\fd_guard_unittest.cpp":{"size":2368,"mtime_ns":1782715529939432400,"word_count":267},"C:\\workspace\\code\\opensource\\brpc\\test\\file_descriptor_shuffle_unittest.cc":{"size":9046,"mtime_ns":1782715529939432400,"word_count":661},"C:\\workspace\\code\\opensource\\brpc\\test\\file_path_unittest.cc":{"size":58872,"mtime_ns":1782715529940434400,"word_count":5644},"C:\\workspace\\code\\opensource\\brpc\\test\\file_unittest.cc":{"size":16750,"mtime_ns":1782715529940434400,"word_count":1250},"C:\\workspace\\code\\opensource\\brpc\\test\\file_util_unittest.cc":{"size":96617,"mtime_ns":1782715529941430900,"word_count":6949},"C:\\workspace\\code\\opensource\\brpc\\test\\file_watcher_unittest.cpp":{"size":2616,"mtime_ns":1782715529941430900,"word_count":287},"C:\\workspace\\code\\opensource\\brpc\\test\\find_cstr_unittest.cpp":{"size":3032,"mtime_ns":1782715529941430900,"word_count":352},"C:\\workspace\\code\\opensource\\brpc\\test\\flat_map_unittest.cpp":{"size":51930,"mtime_ns":1784705330170590100,"word_count":4712},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_amf.cpp":{"size":2863,"mtime_ns":1782715529941934700,"word_count":302},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_baidu_rpc.cpp":{"size":1407,"mtime_ns":1784705330170590100,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_butil.cpp":{"size":1590,"mtime_ns":1782715529941934700,"word_count":190},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_butil_seed_corpus\\base64_decoded.txt":{"size":18,"mtime_ns":1782715529942937200,"word_count":1},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_butil_seed_corpus\\base64_encoded.txt":{"size":13,"mtime_ns":1782715529942937200,"word_count":2},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_common.h":{"size":1700,"mtime_ns":1784705330170590100,"word_count":219},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_couchbase.cpp":{"size":1413,"mtime_ns":1784705330173026300,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_esp.cpp":{"size":1405,"mtime_ns":1784705330173026300,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_hpack.cpp":{"size":1347,"mtime_ns":1782715529943939700,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_http.cpp":{"size":1484,"mtime_ns":1782715529944941600,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_http_parser.cpp":{"size":4199,"mtime_ns":1782715529944941600,"word_count":397},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_hulu.cpp":{"size":1413,"mtime_ns":1784705330173835200,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_json.cpp":{"size":1296,"mtime_ns":1782715529944941600,"word_count":171},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_json_seed_corpus\\info1.json":{"size":61,"mtime_ns":1782715529945943600,"word_count":4},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_json_seed_corpus\\info2.json":{"size":46,"mtime_ns":1782715529945943600,"word_count":6},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_json_seed_corpus\\info3.json":{"size":302,"mtime_ns":1782715529945943600,"word_count":6},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_memcache.cpp":{"size":1418,"mtime_ns":1784705330173835200,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_mongo.cpp":{"size":1405,"mtime_ns":1784705330173835200,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_redis.cpp":{"size":1549,"mtime_ns":1782715529945943600,"word_count":186},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_shead.cpp":{"size":1506,"mtime_ns":1784705330173835200,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_sofa.cpp":{"size":1502,"mtime_ns":1784705330173835200,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_streaming.cpp":{"size":1417,"mtime_ns":1784705330173835200,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_thrift.cpp":{"size":1285,"mtime_ns":1782715529946945400,"word_count":170},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\fuzz_uri.cpp":{"size":1632,"mtime_ns":1782715529946945400,"word_count":201},"C:\\workspace\\code\\opensource\\brpc\\test\\fuzzing\\oss-fuzz.sh":{"size":2502,"mtime_ns":1782715529947947400,"word_count":245},"C:\\workspace\\code\\opensource\\brpc\\test\\gperftools_helper.h":{"size":1339,"mtime_ns":1782715529947947400,"word_count":180},"C:\\workspace\\code\\opensource\\brpc\\test\\guid_unittest.cc":{"size":1279,"mtime_ns":1782715529947947400,"word_count":133},"C:\\workspace\\code\\opensource\\brpc\\test\\hash_tables_unittest.cc":{"size":1802,"mtime_ns":1782715529948949300,"word_count":175},"C:\\workspace\\code\\opensource\\brpc\\test\\hash_unittest.cc":{"size":2386,"mtime_ns":1782715529948949300,"word_count":326},"C:\\workspace\\code\\opensource\\brpc\\test\\iobuf_unittest.cpp":{"size":74501,"mtime_ns":1784705330173835200,"word_count":6526},"C:\\workspace\\code\\opensource\\brpc\\test\\lazy_instance_unittest.cc":{"size":4738,"mtime_ns":1782715529949951100,"word_count":415},"C:\\workspace\\code\\opensource\\brpc\\test\\leak_tracker_unittest.cc":{"size":3019,"mtime_ns":1782715529949951100,"word_count":250},"C:\\workspace\\code\\opensource\\brpc\\test\\linked_list_unittest.cc":{"size":6967,"mtime_ns":1782715529949951100,"word_count":642},"C:\\workspace\\code\\opensource\\brpc\\test\\linked_ptr_unittest.cc":{"size":2467,"mtime_ns":1782715529950953000,"word_count":273},"C:\\workspace\\code\\opensource\\brpc\\test\\lock_unittest.cc":{"size":5262,"mtime_ns":1782715529950953000,"word_count":490},"C:\\workspace\\code\\opensource\\brpc\\test\\logging_unittest.cc":{"size":21587,"mtime_ns":1782715529950953000,"word_count":1892},"C:\\workspace\\code\\opensource\\brpc\\test\\memory_unittest.cc":{"size":13900,"mtime_ns":1782715529950953000,"word_count":1433},"C:\\workspace\\code\\opensource\\brpc\\test\\memory_unittest_mac.h":{"size":1046,"mtime_ns":1782715529950953000,"word_count":120},"C:\\workspace\\code\\opensource\\brpc\\test\\mpsc_queue_unittest.cc":{"size":3503,"mtime_ns":1782715529951955100,"word_count":311},"C:\\workspace\\code\\opensource\\brpc\\test\\mru_cache_unittest.cc":{"size":7710,"mtime_ns":1782715529951955100,"word_count":720},"C:\\workspace\\code\\opensource\\brpc\\test\\multiprocess_func_list.h":{"size":2676,"mtime_ns":1782715529951955100,"word_count":331},"C:\\workspace\\code\\opensource\\brpc\\test\\non_thread_safe_unittest.cc":{"size":4966,"mtime_ns":1782715529951955100,"word_count":396},"C:\\workspace\\code\\opensource\\brpc\\test\\nullable_string16_unittest.cc":{"size":971,"mtime_ns":1782715529951955100,"word_count":87},"C:\\workspace\\code\\opensource\\brpc\\test\\object_pool_unittest.cpp":{"size":9933,"mtime_ns":1784705330173835200,"word_count":1042},"C:\\workspace\\code\\opensource\\brpc\\test\\observer_list_unittest.cc":{"size":4642,"mtime_ns":1782715529952957100,"word_count":440},"C:\\workspace\\code\\opensource\\brpc\\test\\optional_unittest.cpp":{"size":8879,"mtime_ns":1782715529952957100,"word_count":650},"C:\\workspace\\code\\opensource\\brpc\\test\\platform_thread_unittest.cc":{"size":3660,"mtime_ns":1782715529952957100,"word_count":339},"C:\\workspace\\code\\opensource\\brpc\\test\\popen_unittest.cpp":{"size":4904,"mtime_ns":1782715529952957100,"word_count":485},"C:\\workspace\\code\\opensource\\brpc\\test\\proc_maps_linux_unittest.cc":{"size":11805,"mtime_ns":1782715529953959100,"word_count":959},"C:\\workspace\\code\\opensource\\brpc\\test\\rand_util_unittest.cc":{"size":8513,"mtime_ns":1782715529953959100,"word_count":888},"C:\\workspace\\code\\opensource\\brpc\\test\\recordio_unittest.cpp":{"size":10419,"mtime_ns":1782715529953959100,"word_count":843},"C:\\workspace\\code\\opensource\\brpc\\test\\ref_counted_memory_unittest.cc":{"size":2542,"mtime_ns":1782715529953959100,"word_count":189},"C:\\workspace\\code\\opensource\\brpc\\test\\ref_counted_unittest.cc":{"size":2386,"mtime_ns":1782715529953959100,"word_count":215},"C:\\workspace\\code\\opensource\\brpc\\test\\resource_pool_unittest.cpp":{"size":11407,"mtime_ns":1782715529954988300,"word_count":1188},"C:\\workspace\\code\\opensource\\brpc\\test\\run_tests.sh":{"size":2230,"mtime_ns":1784705330173835200,"word_count":311},"C:\\workspace\\code\\opensource\\brpc\\test\\safe_numerics_unittest.cc":{"size":25655,"mtime_ns":1782715529954988300,"word_count":1607},"C:\\workspace\\code\\opensource\\brpc\\test\\safe_sprintf_unittest.cc":{"size":30664,"mtime_ns":1782715529954988300,"word_count":2890},"C:\\workspace\\code\\opensource\\brpc\\test\\scope_guard_unittest.cpp":{"size":1555,"mtime_ns":1782715529954988300,"word_count":195},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_clear_errno_unittest.cc":{"size":601,"mtime_ns":1782715529955990600,"word_count":75},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_generic_unittest.cc":{"size":3681,"mtime_ns":1782715529955990600,"word_count":366},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_locale.cc":{"size":626,"mtime_ns":1782715529955990600,"word_count":71},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_locale.h":{"size":686,"mtime_ns":1782715529955990600,"word_count":78},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_lock_unittest.cpp":{"size":3265,"mtime_ns":1782715529955990600,"word_count":264},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_ptr_unittest.cc":{"size":17589,"mtime_ns":1782715529955990600,"word_count":1337},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_temp_dir_unittest.cc":{"size":3675,"mtime_ns":1782715529955990600,"word_count":266},"C:\\workspace\\code\\opensource\\brpc\\test\\scoped_vector_unittest.cc":{"size":11410,"mtime_ns":1782715529956992900,"word_count":760},"C:\\workspace\\code\\opensource\\brpc\\test\\security_unittest.cc":{"size":11482,"mtime_ns":1782715529956992900,"word_count":1230},"C:\\workspace\\code\\opensource\\brpc\\test\\sha1_unittest.cc":{"size":3915,"mtime_ns":1782715529956992900,"word_count":394},"C:\\workspace\\code\\opensource\\brpc\\test\\shared_memory_unittest.cc":{"size":22907,"mtime_ns":1782715529956992900,"word_count":2281},"C:\\workspace\\code\\opensource\\brpc\\test\\simple_thread_unittest.cc":{"size":4574,"mtime_ns":1782715529956992900,"word_count":425},"C:\\workspace\\code\\opensource\\brpc\\test\\singleton_unittest.cc":{"size":7877,"mtime_ns":1782715529956992900,"word_count":648},"C:\\workspace\\code\\opensource\\brpc\\test\\small_map_unittest.cc":{"size":12402,"mtime_ns":1782715529956992900,"word_count":1119},"C:\\workspace\\code\\opensource\\brpc\\test\\stack_container_unittest.cc":{"size":4719,"mtime_ns":1782715529958496600,"word_count":472},"C:\\workspace\\code\\opensource\\brpc\\test\\stack_trace_unittest.cc":{"size":9512,"mtime_ns":1782715529958496600,"word_count":911},"C:\\workspace\\code\\opensource\\brpc\\test\\status_unittest.cpp":{"size":9050,"mtime_ns":1782715529958496600,"word_count":614},"C:\\workspace\\code\\opensource\\brpc\\test\\stl_util_unittest.cc":{"size":5243,"mtime_ns":1782715529958496600,"word_count":376},"C:\\workspace\\code\\opensource\\brpc\\test\\string16_unittest.cc":{"size":1796,"mtime_ns":1782715529959497000,"word_count":183},"C:\\workspace\\code\\opensource\\brpc\\test\\string_number_conversions_unittest.cc":{"size":26086,"mtime_ns":1782715529959497000,"word_count":2625},"C:\\workspace\\code\\opensource\\brpc\\test\\string_piece_unittest.cc":{"size":24344,"mtime_ns":1782715529960001700,"word_count":1579},"C:\\workspace\\code\\opensource\\brpc\\test\\string_printf_unittest.cpp":{"size":1904,"mtime_ns":1782715529960001700,"word_count":233},"C:\\workspace\\code\\opensource\\brpc\\test\\string_split_unittest.cc":{"size":13477,"mtime_ns":1782715529960001700,"word_count":951},"C:\\workspace\\code\\opensource\\brpc\\test\\string_splitter_unittest.cpp":{"size":12106,"mtime_ns":1782715529960001700,"word_count":950},"C:\\workspace\\code\\opensource\\brpc\\test\\string_tokenizer_unittest.cc":{"size":5711,"mtime_ns":1782715529960001700,"word_count":375},"C:\\workspace\\code\\opensource\\brpc\\test\\string_util_unittest.cc":{"size":44118,"mtime_ns":1782715529961004100,"word_count":3566},"C:\\workspace\\code\\opensource\\brpc\\test\\stringize_macros_unittest.cc":{"size":1080,"mtime_ns":1782715529961004100,"word_count":71},"C:\\workspace\\code\\opensource\\brpc\\test\\stringprintf_unittest.cc":{"size":4996,"mtime_ns":1782715529961004100,"word_count":568},"C:\\workspace\\code\\opensource\\brpc\\test\\synchronous_event_unittest.cpp":{"size":2141,"mtime_ns":1782715529961004100,"word_count":251},"C:\\workspace\\code\\opensource\\brpc\\test\\sys_info_unittest.cc":{"size":5882,"mtime_ns":1782715529962006400,"word_count":392},"C:\\workspace\\code\\opensource\\brpc\\test\\sys_string_conversions_unittest.cc":{"size":6700,"mtime_ns":1782715529962006400,"word_count":597},"C:\\workspace\\code\\opensource\\brpc\\test\\temp_file_unittest.cpp":{"size":4152,"mtime_ns":1782715529962006400,"word_count":429},"C:\\workspace\\code\\opensource\\brpc\\test\\test_file_util_linux.cc":{"size":691,"mtime_ns":1782715529962006400,"word_count":80},"C:\\workspace\\code\\opensource\\brpc\\test\\test_switches.cc":{"size":2631,"mtime_ns":1782715529962006400,"word_count":310},"C:\\workspace\\code\\opensource\\brpc\\test\\test_switches.h":{"size":1195,"mtime_ns":1782715529962006400,"word_count":131},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_checker_unittest.cc":{"size":5423,"mtime_ns":1782715529963008200,"word_count":436},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_collision_warner_unittest.cc":{"size":10068,"mtime_ns":1782715529963008200,"word_count":787},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_id_name_manager_unittest.cc":{"size":1402,"mtime_ns":1782715529963008200,"word_count":95},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_key_unittest.cpp":{"size":16371,"mtime_ns":1784705330173835200,"word_count":1483},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_local_storage_unittest.cc":{"size":4152,"mtime_ns":1782715529963008200,"word_count":437},"C:\\workspace\\code\\opensource\\brpc\\test\\thread_local_unittest.cc":{"size":4135,"mtime_ns":1782715529964008900,"word_count":360},"C:\\workspace\\code\\opensource\\brpc\\test\\time_unittest.cc":{"size":28121,"mtime_ns":1782715529964008900,"word_count":2309},"C:\\workspace\\code\\opensource\\brpc\\test\\type_traits_unittest.cc":{"size":11310,"mtime_ns":1782715529964008900,"word_count":576},"C:\\workspace\\code\\opensource\\brpc\\test\\unique_ptr_unittest.cpp":{"size":1865,"mtime_ns":1782715529964008900,"word_count":227},"C:\\workspace\\code\\opensource\\brpc\\test\\utf_offset_string_conversions_unittest.cc":{"size":12026,"mtime_ns":1782715529965009200,"word_count":1100},"C:\\workspace\\code\\opensource\\brpc\\test\\utf_string_conversions_unittest.cc":{"size":7628,"mtime_ns":1782715529965009200,"word_count":659},"C:\\workspace\\code\\opensource\\brpc\\test\\version_unittest.cc":{"size":3651,"mtime_ns":1782715529965009200,"word_count":396},"C:\\workspace\\code\\opensource\\brpc\\test\\waitable_event_unittest.cc":{"size":2721,"mtime_ns":1782715529966009100,"word_count":206},"C:\\workspace\\code\\opensource\\brpc\\test\\watchdog_unittest.cc":{"size":4692,"mtime_ns":1782715529966009100,"word_count":426},"C:\\workspace\\code\\opensource\\brpc\\test\\weak_ptr_unittest.cc":{"size":3808,"mtime_ns":1782715529966009100,"word_count":344},"C:\\workspace\\code\\opensource\\brpc\\tools\\CMakeLists.txt":{"size":1021,"mtime_ns":1782715529966009100,"word_count":135},"C:\\workspace\\code\\opensource\\brpc\\tools\\add_syntax_equal_proto2_to_all.sh":{"size":1184,"mtime_ns":1782715529966009100,"word_count":177},"C:\\workspace\\code\\opensource\\brpc\\tools\\gdb_bthread_stack.py":{"size":12719,"mtime_ns":1782715529967008800,"word_count":1001},"C:\\workspace\\code\\opensource\\brpc\\tools\\get_brpc_revision.sh":{"size":1252,"mtime_ns":1782715529967008800,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\tools\\lldb_bthread_stack.py":{"size":14247,"mtime_ns":1782715529967008800,"word_count":1169},"C:\\workspace\\code\\opensource\\brpc\\tools\\parallel_http\\CMakeLists.txt":{"size":1001,"mtime_ns":1784705330173835200,"word_count":139},"C:\\workspace\\code\\opensource\\brpc\\tools\\parallel_http\\parallel_http.cpp":{"size":8144,"mtime_ns":1782715529968008700,"word_count":767},"C:\\workspace\\code\\opensource\\brpc\\tools\\print_gcc_version.sh":{"size":1732,"mtime_ns":1782715529970011300,"word_count":252},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\CMakeLists.txt":{"size":1066,"mtime_ns":1784705330173835200,"word_count":143},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\client.py":{"size":1117,"mtime_ns":1782715529970011300,"word_count":160},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\info_thread.cpp":{"size":4893,"mtime_ns":1782715529971028400,"word_count":420},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\info_thread.h":{"size":1605,"mtime_ns":1782715529971028400,"word_count":188},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\json_loader.cpp":{"size":7471,"mtime_ns":1782715529971028400,"word_count":709},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\json_loader.h":{"size":2277,"mtime_ns":1782715529971028400,"word_count":241},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\pb_util.cpp":{"size":2832,"mtime_ns":1782715529971028400,"word_count":264},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\pb_util.h":{"size":1857,"mtime_ns":1782715529972029700,"word_count":184},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\rpc_press.cpp":{"size":5659,"mtime_ns":1784705330173835200,"word_count":585},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\rpc_press_impl.cpp":{"size":10566,"mtime_ns":1782715529972029700,"word_count":963},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_press\\rpc_press_impl.h":{"size":5077,"mtime_ns":1782715529972029700,"word_count":455},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_replay\\CMakeLists.txt":{"size":1070,"mtime_ns":1784705330173835200,"word_count":143},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_replay\\info_thread.cpp":{"size":4884,"mtime_ns":1782715529973032100,"word_count":419},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_replay\\info_thread.h":{"size":1595,"mtime_ns":1782715529973032100,"word_count":187},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_replay\\rpc_replay.cpp":{"size":11866,"mtime_ns":1782715529973032100,"word_count":1057},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_view\\CMakeLists.txt":{"size":1151,"mtime_ns":1784705330173835200,"word_count":147},"C:\\workspace\\code\\opensource\\brpc\\tools\\rpc_view\\rpc_view.cpp":{"size":7678,"mtime_ns":1782715529974034200,"word_count":681},"C:\\workspace\\code\\opensource\\brpc\\tools\\trackme_server\\CMakeLists.txt":{"size":1005,"mtime_ns":1784705330173835200,"word_count":139},"C:\\workspace\\code\\opensource\\brpc\\tools\\trackme_server\\trackme_server.cpp":{"size":9718,"mtime_ns":1782715529974034200,"word_count":1007},"C:\\workspace\\code\\opensource\\brpc\\tools\\wireshark_baidu_std.lua":{"size":11418,"mtime_ns":1782715529974034200,"word_count":1117}} \ No newline at end of file diff --git a/graphify-out/cost.json b/graphify-out/cost.json deleted file mode 100644 index 033f93e02a..0000000000 --- a/graphify-out/cost.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "runs": [ - { - "date": "2026-07-29T07:43:39.832238+00:00", - "input_tokens": 0, - "output_tokens": 0, - "files": 10 - } - ], - "total_input_tokens": 0, - "total_output_tokens": 0 -} \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html deleted file mode 100644 index a981402ced..0000000000 --- a/graphify-out/graph.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - -graphify - graphify-out\graph.html - - - - -
- - - - - \ No newline at end of file diff --git a/graphify-out/graph.json b/graphify-out/graph.json deleted file mode 100644 index 02d0aa3161..0000000000 --- a/graphify-out/graph.json +++ /dev/null @@ -1,21342 +0,0 @@ -{ - "directed": false, - "multigraph": false, - "graph": {}, - "nodes": [ - { - "label": "mock_urma.cpp", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L1", - "_origin": "ast", - "id": "mock_urma", - "community": 15, - "norm_label": "mock_urma.cpp" - }, - { - "label": "JfcState", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L54", - "_origin": "ast", - "id": "mock_urma_jfcstate", - "community": 14, - "norm_label": "jfcstate" - }, - { - "label": "mutex", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_mutex", - "community": 14, - "norm_label": "mutex" - }, - { - "label": "mutex", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L55", - "_origin": "ast", - "id": "mock_urma_jfcstate_mutex", - "community": 14, - "norm_label": "mutex" - }, - { - "label": "deque", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "deque", - "community": 14, - "norm_label": "deque" - }, - { - "label": "urma_cr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_cr_t", - "community": 14, - "norm_label": "urma_cr_t" - }, - { - "label": "completions", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L56", - "_origin": "ast", - "id": "mock_urma_jfcstate_completions", - "community": 14, - "norm_label": "completions" - }, - { - "label": "event_pending", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L57", - "_origin": "ast", - "id": "mock_urma_jfcstate_event_pending", - "community": 14, - "norm_label": "event_pending" - }, - { - "label": "PendingRecv", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L60", - "_origin": "ast", - "id": "mock_urma_pendingrecv", - "community": 50, - "norm_label": "pendingrecv" - }, - { - "label": "addr", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L61", - "_origin": "ast", - "id": "mock_urma_pendingrecv_addr", - "community": 50, - "norm_label": "addr" - }, - { - "label": "len", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L62", - "_origin": "ast", - "id": "mock_urma_pendingrecv_len", - "community": 50, - "norm_label": "len" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L63", - "_origin": "ast", - "id": "mock_urma_pendingrecv_user_ctx", - "community": 50, - "norm_label": "user_ctx" - }, - { - "label": "PushCompletion()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L83", - "_origin": "ast", - "id": "mock_urma_pushcompletion", - "community": 14, - "norm_label": "pushcompletion()" - }, - { - "label": "urma_jfc_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_jfc_t", - "community": 14, - "norm_label": "urma_jfc_t" - }, - { - "label": "urma_init()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L122", - "_origin": "ast", - "id": "mock_urma_urma_init", - "community": 12, - "norm_label": "urma_init()" - }, - { - "label": "urma_status_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_status_t", - "community": 12, - "norm_label": "urma_status_t" - }, - { - "label": "urma_init_attr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_init_attr_t", - "community": 12, - "norm_label": "urma_init_attr_t" - }, - { - "label": "urma_uninit()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L131", - "_origin": "ast", - "id": "mock_urma_urma_uninit", - "community": 4, - "norm_label": "urma_uninit()" - }, - { - "label": "urma_get_device_list()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L155", - "_origin": "ast", - "id": "mock_urma_urma_get_device_list", - "community": 15, - "norm_label": "urma_get_device_list()" - }, - { - "label": "urma_device_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_device_t", - "community": 15, - "norm_label": "urma_device_t" - }, - { - "label": "urma_get_device_by_name()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L195", - "_origin": "ast", - "id": "mock_urma_urma_get_device_by_name", - "community": 15, - "norm_label": "urma_get_device_by_name()" - }, - { - "label": "urma_free_device_list()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L233", - "_origin": "ast", - "id": "mock_urma_urma_free_device_list", - "community": 15, - "norm_label": "urma_free_device_list()" - }, - { - "label": "urma_query_device()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L239", - "_origin": "ast", - "id": "mock_urma_urma_query_device", - "community": 15, - "norm_label": "urma_query_device()" - }, - { - "label": "urma_device_attr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_device_attr_t", - "community": 15, - "norm_label": "urma_device_attr_t" - }, - { - "label": "urma_get_eid_list()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L252", - "_origin": "ast", - "id": "mock_urma_urma_get_eid_list", - "community": 15, - "norm_label": "urma_get_eid_list()" - }, - { - "label": "urma_eid_info_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_eid_info_t", - "community": 15, - "norm_label": "urma_eid_info_t" - }, - { - "label": "urma_free_eid_list()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L262", - "_origin": "ast", - "id": "mock_urma_urma_free_eid_list", - "community": 15, - "norm_label": "urma_free_eid_list()" - }, - { - "label": "urma_create_context()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L268", - "_origin": "ast", - "id": "mock_urma_urma_create_context", - "community": 15, - "norm_label": "urma_create_context()" - }, - { - "label": "urma_context_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_context_t", - "community": 11, - "norm_label": "urma_context_t" - }, - { - "label": "urma_delete_context()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L280", - "_origin": "ast", - "id": "mock_urma_urma_delete_context", - "community": 4, - "norm_label": "urma_delete_context()" - }, - { - "label": "urma_create_jfce()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L290", - "_origin": "ast", - "id": "mock_urma_urma_create_jfce", - "community": 11, - "norm_label": "urma_create_jfce()" - }, - { - "label": "urma_jfce_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_jfce_t", - "community": 11, - "norm_label": "urma_jfce_t" - }, - { - "label": "urma_delete_jfce()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L308", - "_origin": "ast", - "id": "mock_urma_urma_delete_jfce", - "community": 11, - "norm_label": "urma_delete_jfce()" - }, - { - "label": "urma_create_jfc()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L319", - "_origin": "ast", - "id": "mock_urma_urma_create_jfc", - "community": 11, - "norm_label": "urma_create_jfc()" - }, - { - "label": "urma_jfc_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_jfc_cfg_t", - "community": 11, - "norm_label": "urma_jfc_cfg_t" - }, - { - "label": "urma_delete_jfc()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L337", - "_origin": "ast", - "id": "mock_urma_urma_delete_jfc", - "community": 12, - "norm_label": "urma_delete_jfc()" - }, - { - "label": "urma_create_jfr()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L348", - "_origin": "ast", - "id": "mock_urma_urma_create_jfr", - "community": 11, - "norm_label": "urma_create_jfr()" - }, - { - "label": "urma_jfr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_jfr_t", - "community": 45, - "norm_label": "urma_jfr_t" - }, - { - "label": "urma_jfr_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_jfr_cfg_t", - "community": 11, - "norm_label": "urma_jfr_cfg_t" - }, - { - "label": "urma_delete_jfr()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L364", - "_origin": "ast", - "id": "mock_urma_urma_delete_jfr", - "community": 45, - "norm_label": "urma_delete_jfr()" - }, - { - "label": "urma_register_seg()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L376", - "_origin": "ast", - "id": "mock_urma_urma_register_seg", - "community": 4, - "norm_label": "urma_register_seg()" - }, - { - "label": "urma_target_seg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_target_seg_t", - "community": 36, - "norm_label": "urma_target_seg_t" - }, - { - "label": "urma_seg_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_seg_cfg_t", - "community": 4, - "norm_label": "urma_seg_cfg_t" - }, - { - "label": "urma_unregister_seg()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L392", - "_origin": "ast", - "id": "mock_urma_urma_unregister_seg", - "community": 4, - "norm_label": "urma_unregister_seg()" - }, - { - "label": "urma_import_seg()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L402", - "_origin": "ast", - "id": "mock_urma_urma_import_seg", - "community": 36, - "norm_label": "urma_import_seg()" - }, - { - "label": "urma_seg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_seg_t", - "community": 36, - "norm_label": "urma_seg_t" - }, - { - "label": "urma_token_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_token_t", - "community": 36, - "norm_label": "urma_token_t" - }, - { - "label": "urma_import_seg_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_import_seg_flag_t", - "community": 36, - "norm_label": "urma_import_seg_flag_t" - }, - { - "label": "urma_unimport_seg()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L417", - "_origin": "ast", - "id": "mock_urma_urma_unimport_seg", - "community": 36, - "norm_label": "urma_unimport_seg()" - }, - { - "label": "urma_get_async_event()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L427", - "_origin": "ast", - "id": "mock_urma_urma_get_async_event", - "community": 15, - "norm_label": "urma_get_async_event()" - }, - { - "label": "urma_async_event_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_async_event_t", - "community": 15, - "norm_label": "urma_async_event_t" - }, - { - "label": "urma_ack_async_event()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L439", - "_origin": "ast", - "id": "mock_urma_urma_ack_async_event", - "community": 15, - "norm_label": "urma_ack_async_event()" - }, - { - "label": "urma_create_jetty()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L441", - "_origin": "ast", - "id": "mock_urma_urma_create_jetty", - "community": 11, - "norm_label": "urma_create_jetty()" - }, - { - "label": "urma_jetty_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_jetty_t", - "community": 12, - "norm_label": "urma_jetty_t" - }, - { - "label": "urma_jetty_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_jetty_cfg_t", - "community": 11, - "norm_label": "urma_jetty_cfg_t" - }, - { - "label": "urma_delete_jetty()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L458", - "_origin": "ast", - "id": "mock_urma_urma_delete_jetty", - "community": 12, - "norm_label": "urma_delete_jetty()" - }, - { - "label": "urma_unbind_jetty()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L469", - "_origin": "ast", - "id": "mock_urma_urma_unbind_jetty", - "community": 12, - "norm_label": "urma_unbind_jetty()" - }, - { - "label": "urma_import_jetty()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L478", - "_origin": "ast", - "id": "mock_urma_urma_import_jetty", - "community": 36, - "norm_label": "urma_import_jetty()" - }, - { - "label": "urma_target_jetty_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "mock_urma_cpp_urma_target_jetty_t", - "community": 12, - "norm_label": "urma_target_jetty_t" - }, - { - "label": "urma_rjetty_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_rjetty_t", - "community": 36, - "norm_label": "urma_rjetty_t" - }, - { - "label": "urma_unimport_jetty()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L493", - "_origin": "ast", - "id": "mock_urma_urma_unimport_jetty", - "community": 12, - "norm_label": "urma_unimport_jetty()" - }, - { - "label": "urma_bind_jetty()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L503", - "_origin": "ast", - "id": "mock_urma_urma_bind_jetty", - "community": 12, - "norm_label": "urma_bind_jetty()" - }, - { - "label": "urma_modify_jetty()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L514", - "_origin": "ast", - "id": "mock_urma_urma_modify_jetty", - "community": 12, - "norm_label": "urma_modify_jetty()" - }, - { - "label": "urma_jetty_attr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_attr_t", - "community": 12, - "norm_label": "urma_jetty_attr_t" - }, - { - "label": "urma_post_jetty_send_wr()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L522", - "_origin": "ast", - "id": "mock_urma_urma_post_jetty_send_wr", - "community": 12, - "norm_label": "urma_post_jetty_send_wr()" - }, - { - "label": "urma_jfs_wr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfs_wr_t", - "community": 12, - "norm_label": "urma_jfs_wr_t" - }, - { - "label": "urma_post_jfr_wr()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L605", - "_origin": "ast", - "id": "mock_urma_urma_post_jfr_wr", - "community": 45, - "norm_label": "urma_post_jfr_wr()" - }, - { - "label": "urma_jfr_wr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfr_wr_t", - "community": 45, - "norm_label": "urma_jfr_wr_t" - }, - { - "label": "urma_poll_jfc()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L627", - "_origin": "ast", - "id": "mock_urma_urma_poll_jfc", - "community": 14, - "norm_label": "urma_poll_jfc()" - }, - { - "label": "urma_rearm_jfc()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L647", - "_origin": "ast", - "id": "mock_urma_urma_rearm_jfc", - "community": 14, - "norm_label": "urma_rearm_jfc()" - }, - { - "label": "urma_wait_jfc()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L651", - "_origin": "ast", - "id": "mock_urma_urma_wait_jfc", - "community": 51, - "norm_label": "urma_wait_jfc()" - }, - { - "label": "urma_ack_jfc()", - "file_type": "code", - "source_file": "mock_urma.cpp", - "source_location": "L674", - "_origin": "ast", - "id": "mock_urma_urma_ack_jfc", - "community": 14, - "norm_label": "urma_ack_jfc()" - }, - { - "label": "urma_api.h", - "file_type": "code", - "source_file": "sdk/urma/urma_api.h", - "source_location": "L1", - "_origin": "ast", - "id": "sdk_urma_urma_api", - "community": 0, - "norm_label": "urma_api.h" - }, - { - "label": "urma_opcode.h", - "file_type": "code", - "source_file": "sdk/urma/urma_opcode.h", - "source_location": "L1", - "_origin": "ast", - "id": "sdk_urma_urma_opcode", - "community": 10, - "norm_label": "urma_opcode.h" - }, - { - "label": "urma_types.h", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1", - "_origin": "ast", - "id": "sdk_urma_urma_types", - "community": 10, - "norm_label": "urma_types.h" - }, - { - "label": "urma_init_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L85", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_init_attr", - "community": 57, - "norm_label": "urma_init_attr" - }, - { - "label": "token", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L86", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_init_attr_token", - "community": 57, - "norm_label": "token" - }, - { - "label": "uasid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L87", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_init_attr_uasid", - "community": 57, - "norm_label": "uasid" - }, - { - "label": "urma_ref", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L152", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ref", - "community": 10, - "norm_label": "urma_ref" - }, - { - "label": "urma_port_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L160", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_port_attr", - "community": 3, - "norm_label": "urma_port_attr" - }, - { - "label": "urma_mtu_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_mtu_t", - "community": 3, - "norm_label": "urma_mtu_t" - }, - { - "label": "max_mtu", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L161", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_port_attr_max_mtu", - "community": 3, - "norm_label": "max_mtu" - }, - { - "label": "urma_port_state_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_port_state_t", - "community": 3, - "norm_label": "urma_port_state_t" - }, - { - "label": "state", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L162", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_port_attr_state", - "community": 3, - "norm_label": "state" - }, - { - "label": "urma_link_width_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_link_width_t", - "community": 3, - "norm_label": "urma_link_width_t" - }, - { - "label": "active_width", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L163", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_port_attr_active_width", - "community": 3, - "norm_label": "active_width" - }, - { - "label": "urma_speed_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_speed_t", - "community": 3, - "norm_label": "urma_speed_t" - }, - { - "label": "active_speed", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L164", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_port_attr_active_speed", - "community": 3, - "norm_label": "active_speed" - }, - { - "label": "active_mtu", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L165", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_port_attr_active_mtu", - "community": 3, - "norm_label": "active_mtu" - }, - { - "label": "urma_sl_info", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L178", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sl_info", - "community": 58, - "norm_label": "urma_sl_info" - }, - { - "label": "SL", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L179", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sl_info_sl", - "community": 58, - "norm_label": "sl" - }, - { - "label": "tp_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L180", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sl_info_tp_type", - "community": 58, - "norm_label": "tp_type" - }, - { - "label": "urma_device_cap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L254", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap", - "community": 2, - "norm_label": "urma_device_cap" - }, - { - "label": "urma_device_feature_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_device_feature_t", - "community": 2, - "norm_label": "urma_device_feature_t" - }, - { - "label": "feature", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L255", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_feature", - "community": 2, - "norm_label": "feature" - }, - { - "label": "max_jfc", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L256", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfc", - "community": 2, - "norm_label": "max_jfc" - }, - { - "label": "max_jfs", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L257", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfs", - "community": 2, - "norm_label": "max_jfs" - }, - { - "label": "max_jfr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L258", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfr", - "community": 2, - "norm_label": "max_jfr" - }, - { - "label": "max_jetty", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L259", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jetty", - "community": 2, - "norm_label": "max_jetty" - }, - { - "label": "max_jetty_grp", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L260", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jetty_grp", - "community": 2, - "norm_label": "max_jetty_grp" - }, - { - "label": "max_jetty_in_jetty_grp", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L261", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jetty_in_jetty_grp", - "community": 2, - "norm_label": "max_jetty_in_jetty_grp" - }, - { - "label": "max_jfc_depth", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L262", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfc_depth", - "community": 2, - "norm_label": "max_jfc_depth" - }, - { - "label": "max_jfs_depth", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L263", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfs_depth", - "community": 2, - "norm_label": "max_jfs_depth" - }, - { - "label": "max_jfr_depth", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L264", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfr_depth", - "community": 2, - "norm_label": "max_jfr_depth" - }, - { - "label": "max_jfs_inline_len", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L265", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfs_inline_len", - "community": 2, - "norm_label": "max_jfs_inline_len" - }, - { - "label": "max_jfs_sge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L266", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfs_sge", - "community": 2, - "norm_label": "max_jfs_sge" - }, - { - "label": "max_jfs_rsge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L267", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfs_rsge", - "community": 2, - "norm_label": "max_jfs_rsge" - }, - { - "label": "max_jfr_sge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L268", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_jfr_sge", - "community": 2, - "norm_label": "max_jfr_sge" - }, - { - "label": "max_msg_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L269", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_msg_size", - "community": 2, - "norm_label": "max_msg_size" - }, - { - "label": "max_read_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L270", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_read_size", - "community": 2, - "norm_label": "max_read_size" - }, - { - "label": "max_write_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L271", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_write_size", - "community": 2, - "norm_label": "max_write_size" - }, - { - "label": "max_cas_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L272", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_cas_size", - "community": 2, - "norm_label": "max_cas_size" - }, - { - "label": "max_swap_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L273", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_swap_size", - "community": 2, - "norm_label": "max_swap_size" - }, - { - "label": "max_fetch_and_add_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L274", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_add_size", - "community": 2, - "norm_label": "max_fetch_and_add_size" - }, - { - "label": "max_fetch_and_sub_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L275", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_sub_size", - "community": 2, - "norm_label": "max_fetch_and_sub_size" - }, - { - "label": "max_fetch_and_and_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L276", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_and_size", - "community": 2, - "norm_label": "max_fetch_and_and_size" - }, - { - "label": "max_fetch_and_or_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L277", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_or_size", - "community": 2, - "norm_label": "max_fetch_and_or_size" - }, - { - "label": "max_fetch_and_xor_size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L278", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_xor_size", - "community": 2, - "norm_label": "max_fetch_and_xor_size" - }, - { - "label": "urma_atomic_feature_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_atomic_feature_t", - "community": 2, - "norm_label": "urma_atomic_feature_t" - }, - { - "label": "atomic_feat", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L279", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_atomic_feat", - "community": 2, - "norm_label": "atomic_feat" - }, - { - "label": "trans_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L280", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_trans_mode", - "community": 2, - "norm_label": "trans_mode" - }, - { - "label": "congestion_ctrl_alg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L281", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_congestion_ctrl_alg", - "community": 2, - "norm_label": "congestion_ctrl_alg" - }, - { - "label": "ceq_cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L282", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_ceq_cnt", - "community": 2, - "norm_label": "ceq_cnt" - }, - { - "label": "max_tp_in_tpg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L283", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_tp_in_tpg", - "community": 2, - "norm_label": "max_tp_in_tpg" - }, - { - "label": "max_eid_cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L284", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_eid_cnt", - "community": 2, - "norm_label": "max_eid_cnt" - }, - { - "label": "page_size_cap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L285", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_page_size_cap", - "community": 2, - "norm_label": "page_size_cap" - }, - { - "label": "max_oor_cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L286", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_oor_cnt", - "community": 2, - "norm_label": "max_oor_cnt" - }, - { - "label": "mn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L287", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_mn", - "community": 2, - "norm_label": "mn" - }, - { - "label": "max_netaddr_cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L288", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_max_netaddr_cnt", - "community": 2, - "norm_label": "max_netaddr_cnt" - }, - { - "label": "urma_order_type_cap_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_order_type_cap_t", - "community": 2, - "norm_label": "urma_order_type_cap_t" - }, - { - "label": "rm_order_cap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L289", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_rm_order_cap", - "community": 2, - "norm_label": "rm_order_cap" - }, - { - "label": "rc_order_cap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L290", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_rc_order_cap", - "community": 2, - "norm_label": "rc_order_cap" - }, - { - "label": "urma_tp_type_cap_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_tp_type_cap_t", - "community": 2, - "norm_label": "urma_tp_type_cap_t" - }, - { - "label": "rm_tp_cap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L291", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_rm_tp_cap", - "community": 2, - "norm_label": "rm_tp_cap" - }, - { - "label": "rc_tp_cap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L292", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_rc_tp_cap", - "community": 2, - "norm_label": "rc_tp_cap" - }, - { - "label": "um_tp_cap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L293", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_um_tp_cap", - "community": 2, - "norm_label": "um_tp_cap" - }, - { - "label": "urma_tp_feature_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_tp_feature_t", - "community": 2, - "norm_label": "urma_tp_feature_t" - }, - { - "label": "tp_feature", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L294", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_tp_feature", - "community": 2, - "norm_label": "tp_feature" - }, - { - "label": "priority_info", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L295", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_cap_priority_info", - "community": 2, - "norm_label": "priority_info" - }, - { - "label": "urma_guid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L298", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_guid", - "community": 10, - "norm_label": "urma_guid" - }, - { - "label": "raw", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L299", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_guid_raw", - "community": 10, - "norm_label": "raw" - }, - { - "label": "urma_device_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L302", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_attr", - "community": 31, - "norm_label": "urma_device_attr" - }, - { - "label": "urma_guid_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_guid_t", - "community": 31, - "norm_label": "urma_guid_t" - }, - { - "label": "guid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L303", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_attr_guid", - "community": 31, - "norm_label": "guid" - }, - { - "label": "urma_device_cap_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_device_cap_t", - "community": 31, - "norm_label": "urma_device_cap_t" - }, - { - "label": "dev_cap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L304", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_attr_dev_cap", - "community": 31, - "norm_label": "dev_cap" - }, - { - "label": "port_cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L305", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_attr_port_cnt", - "community": 31, - "norm_label": "port_cnt" - }, - { - "label": "port_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L306", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_attr_port_attr", - "community": 31, - "norm_label": "port_attr" - }, - { - "label": "reserved_jetty_id_min", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L307", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_min", - "community": 31, - "norm_label": "reserved_jetty_id_min" - }, - { - "label": "reserved_jetty_id_max", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L308", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_max", - "community": 31, - "norm_label": "reserved_jetty_id_max" - }, - { - "label": "urma_token", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L312", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_token", - "community": 10, - "norm_label": "urma_token" - }, - { - "label": "token", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L313", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_token_token", - "community": 10, - "norm_label": "token" - }, - { - "label": "urma_sysfs_dev", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L316", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sysfs_dev", - "community": 10, - "norm_label": "urma_sysfs_dev" - }, - { - "label": "urma_ops", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L318", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ops", - "community": 10, - "norm_label": "urma_ops" - }, - { - "label": "urma_provider_ops", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L319", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_provider_ops", - "community": 10, - "norm_label": "urma_provider_ops" - }, - { - "label": "urma_cc_entry", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L358", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cc_entry", - "community": 46, - "norm_label": "urma_cc_entry" - }, - { - "label": "urma_tp_cc_alg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_tp_cc_alg_t", - "community": 46, - "norm_label": "urma_tp_cc_alg_t" - }, - { - "label": "alg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L359", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cc_entry_alg", - "community": 46, - "norm_label": "alg" - }, - { - "label": "cc_pattern_idx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L360", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cc_entry_cc_pattern_idx", - "community": 46, - "norm_label": "cc_pattern_idx" - }, - { - "label": "cc_priority", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L361", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cc_entry_cc_priority", - "community": 46, - "norm_label": "cc_priority" - }, - { - "label": "urma_device", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L364", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device", - "community": 3, - "norm_label": "urma_device" - }, - { - "label": "name", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L365", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_name", - "community": 3, - "norm_label": "name" - }, - { - "label": "path", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L367", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_path", - "community": 3, - "norm_label": "path" - }, - { - "label": "urma_transport_type_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_transport_type_t", - "community": 3, - "norm_label": "urma_transport_type_t" - }, - { - "label": "type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L368", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_type", - "community": 3, - "norm_label": "type" - }, - { - "label": "ops", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L369", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_ops", - "community": 3, - "norm_label": "ops" - }, - { - "label": "sysfs_dev", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L370", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_device_sysfs_dev", - "community": 3, - "norm_label": "sysfs_dev" - }, - { - "label": "urma_context", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L383", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context", - "community": 7, - "norm_label": "urma_context" - }, - { - "label": "dev", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L384", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_dev", - "community": 7, - "norm_label": "dev" - }, - { - "label": "ops", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L385", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_ops", - "community": 7, - "norm_label": "ops" - }, - { - "label": "dev_fd", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L386", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_dev_fd", - "community": 7, - "norm_label": "dev_fd" - }, - { - "label": "async_fd", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L387", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_async_fd", - "community": 7, - "norm_label": "async_fd" - }, - { - "label": "pthread_mutex_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "pthread_mutex_t", - "community": 19, - "norm_label": "pthread_mutex_t" - }, - { - "label": "mutex", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L388", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_mutex", - "community": 7, - "norm_label": "mutex" - }, - { - "label": "urma_eid_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_eid_t", - "community": 7, - "norm_label": "urma_eid_t" - }, - { - "label": "eid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L389", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_eid", - "community": 7, - "norm_label": "eid" - }, - { - "label": "eid_index", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L390", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_eid_index", - "community": 7, - "norm_label": "eid_index" - }, - { - "label": "uasid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L391", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_uasid", - "community": 7, - "norm_label": "uasid" - }, - { - "label": "ref", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L392", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_ref", - "community": 7, - "norm_label": "ref" - }, - { - "label": "urma_context_aggr_mode_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_context_aggr_mode_t", - "community": 7, - "norm_label": "urma_context_aggr_mode_t" - }, - { - "label": "aggr_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L393", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_context_aggr_mode", - "community": 7, - "norm_label": "aggr_mode" - }, - { - "label": "urma_eid_info", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L396", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_eid_info", - "community": 7, - "norm_label": "urma_eid_info" - }, - { - "label": "eid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L397", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_eid_info_eid", - "community": 7, - "norm_label": "eid" - }, - { - "label": "eid_index", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L398", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_eid_info_eid_index", - "community": 7, - "norm_label": "eid_index" - }, - { - "label": "urma_jfce_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L401", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfce_cfg", - "community": 10, - "norm_label": "urma_jfce_cfg" - }, - { - "label": "depth", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L402", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfce_cfg_depth", - "community": 10, - "norm_label": "depth" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L403", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfce_cfg_user_ctx", - "community": 10, - "norm_label": "user_ctx" - }, - { - "label": "urma_jfce", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L406", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfce", - "community": 29, - "norm_label": "urma_jfce" - }, - { - "label": "urma_context_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_context_t", - "community": 29, - "norm_label": "urma_context_t" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L407", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfce_urma_ctx", - "community": 29, - "norm_label": "urma_ctx" - }, - { - "label": "fd", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L408", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfce_fd", - "community": 29, - "norm_label": "fd" - }, - { - "label": "ref", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L409", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfce_ref", - "community": 29, - "norm_label": "ref" - }, - { - "label": "urma_jfc_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L423", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_cfg", - "community": 37, - "norm_label": "urma_jfc_cfg" - }, - { - "label": "depth", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L424", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_cfg_depth", - "community": 37, - "norm_label": "depth" - }, - { - "label": "urma_jfc_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfc_flag_t", - "community": 37, - "norm_label": "urma_jfc_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L425", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_cfg_flag", - "community": 37, - "norm_label": "flag" - }, - { - "label": "ceqn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L426", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_cfg_ceqn", - "community": 37, - "norm_label": "ceqn" - }, - { - "label": "urma_jfce_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_jfce_t", - "community": 37, - "norm_label": "urma_jfce_t" - }, - { - "label": "jfce", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L428", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_cfg_jfce", - "community": 37, - "norm_label": "jfce" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L429", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_cfg_user_ctx", - "community": 37, - "norm_label": "user_ctx" - }, - { - "label": "urma_jfc_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L437", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_attr", - "community": 53, - "norm_label": "urma_jfc_attr" - }, - { - "label": "mask", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L438", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_attr_mask", - "community": 53, - "norm_label": "mask" - }, - { - "label": "moderate_count", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L439", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_attr_moderate_count", - "community": 53, - "norm_label": "moderate_count" - }, - { - "label": "moderate_period", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L440", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_attr_moderate_period", - "community": 53, - "norm_label": "moderate_period" - }, - { - "label": "urma_jetty_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L443", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_id", - "community": 7, - "norm_label": "urma_jetty_id" - }, - { - "label": "eid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L444", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_id_eid", - "community": 7, - "norm_label": "eid" - }, - { - "label": "uasid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L445", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_id_uasid", - "community": 7, - "norm_label": "uasid" - }, - { - "label": "id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L446", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_id_id", - "community": 7, - "norm_label": "id" - }, - { - "label": "urma_jfc_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L467", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt", - "community": 24, - "norm_label": "urma_jfc_opt" - }, - { - "label": "jfc_opt_mask", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L468", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_jfc_opt_mask", - "community": 24, - "norm_label": "jfc_opt_mask" - }, - { - "label": "is_actived", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L470", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_is_actived", - "community": 24, - "norm_label": "is_actived" - }, - { - "label": "urma_jfc_cqe_base_addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L471", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_cqe_base_addr", - "community": 24, - "norm_label": "urma_jfc_cqe_base_addr" - }, - { - "label": "urma_jfc_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L472", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_id", - "community": 24, - "norm_label": "urma_jfc_id" - }, - { - "label": "urma_jfc_db_addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L473", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_addr", - "community": 24, - "norm_label": "urma_jfc_db_addr" - }, - { - "label": "urma_jfc_db_status", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L474", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_status", - "community": 24, - "norm_label": "urma_jfc_db_status" - }, - { - "label": "urma_jfc_pi", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L475", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi", - "community": 24, - "norm_label": "urma_jfc_pi" - }, - { - "label": "urma_jfc_pi_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L476", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi_type", - "community": 24, - "norm_label": "urma_jfc_pi_type" - }, - { - "label": "urma_jfc_ci", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L477", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_ci", - "community": 24, - "norm_label": "urma_jfc_ci" - }, - { - "label": "reserved", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L478", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_opt_reserved", - "community": 24, - "norm_label": "reserved" - }, - { - "label": "urma_jfc", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L481", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc", - "community": 17, - "norm_label": "urma_jfc" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L482", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_urma_ctx", - "community": 17, - "norm_label": "urma_ctx" - }, - { - "label": "urma_jfc_id_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfc_id_t", - "community": 17, - "norm_label": "urma_jfc_id_t" - }, - { - "label": "jfc_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L483", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_jfc_id", - "community": 17, - "norm_label": "jfc_id" - }, - { - "label": "urma_jfc_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_jfc_cfg_t", - "community": 17, - "norm_label": "urma_jfc_cfg_t" - }, - { - "label": "jfc_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L484", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_jfc_cfg", - "community": 17, - "norm_label": "jfc_cfg" - }, - { - "label": "handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L485", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_handle", - "community": 17, - "norm_label": "handle" - }, - { - "label": "event_mutex", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L486", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_event_mutex", - "community": 17, - "norm_label": "event_mutex" - }, - { - "label": "pthread_cond_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "pthread_cond_t", - "community": 23, - "norm_label": "pthread_cond_t" - }, - { - "label": "event_cond", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L487", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_event_cond", - "community": 17, - "norm_label": "event_cond" - }, - { - "label": "comp_events_acked", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L488", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_comp_events_acked", - "community": 17, - "norm_label": "comp_events_acked" - }, - { - "label": "async_events_acked", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L489", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_async_events_acked", - "community": 17, - "norm_label": "async_events_acked" - }, - { - "label": "urma_jfc_opt_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfc_opt_t", - "community": 17, - "norm_label": "urma_jfc_opt_t" - }, - { - "label": "urma_jfc_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L490", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfc_urma_jfc_opt", - "community": 17, - "norm_label": "urma_jfc_opt" - }, - { - "label": "urma_jfs_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L534", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt", - "community": 26, - "norm_label": "urma_jfs_opt" - }, - { - "label": "jfs_opt_mask", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L535", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_jfs_opt_mask", - "community": 26, - "norm_label": "jfs_opt_mask" - }, - { - "label": "is_actived", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L537", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_is_actived", - "community": 26, - "norm_label": "is_actived" - }, - { - "label": "urma_jfs_sqe_base_addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L538", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_sqe_base_addr", - "community": 26, - "norm_label": "urma_jfs_sqe_base_addr" - }, - { - "label": "urma_jfs_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L539", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_id", - "community": 26, - "norm_label": "urma_jfs_id" - }, - { - "label": "urma_jfs_db_addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L540", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_addr", - "community": 26, - "norm_label": "urma_jfs_db_addr" - }, - { - "label": "urma_jfs_db_status", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L541", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_status", - "community": 26, - "norm_label": "urma_jfs_db_status" - }, - { - "label": "urma_jfs_pi", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L542", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi", - "community": 26, - "norm_label": "urma_jfs_pi" - }, - { - "label": "urma_jfs_pi_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L543", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi_type", - "community": 26, - "norm_label": "urma_jfs_pi_type" - }, - { - "label": "urma_jfs_ci", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L544", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_ci", - "community": 26, - "norm_label": "urma_jfs_ci" - }, - { - "label": "reserved", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L545", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_opt_reserved", - "community": 26, - "norm_label": "reserved" - }, - { - "label": "urma_jfs_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L548", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg", - "community": 8, - "norm_label": "urma_jfs_cfg" - }, - { - "label": "depth", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L549", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_depth", - "community": 8, - "norm_label": "depth" - }, - { - "label": "urma_jfs_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfs_flag_t", - "community": 8, - "norm_label": "urma_jfs_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L550", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_flag", - "community": 8, - "norm_label": "flag" - }, - { - "label": "urma_transport_mode_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_transport_mode_t", - "community": 40, - "norm_label": "urma_transport_mode_t" - }, - { - "label": "trans_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L551", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_trans_mode", - "community": 8, - "norm_label": "trans_mode" - }, - { - "label": "priority", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L552", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_priority", - "community": 8, - "norm_label": "priority" - }, - { - "label": "max_sge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L554", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_max_sge", - "community": 8, - "norm_label": "max_sge" - }, - { - "label": "max_rsge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L555", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_max_rsge", - "community": 8, - "norm_label": "max_rsge" - }, - { - "label": "max_inline_data", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L556", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_max_inline_data", - "community": 8, - "norm_label": "max_inline_data" - }, - { - "label": "rnr_retry", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L558", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_rnr_retry", - "community": 8, - "norm_label": "rnr_retry" - }, - { - "label": "err_timeout", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L562", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_err_timeout", - "community": 8, - "norm_label": "err_timeout" - }, - { - "label": "urma_jfc_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_jfc_t", - "community": 8, - "norm_label": "urma_jfc_t" - }, - { - "label": "jfc", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L564", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_jfc", - "community": 8, - "norm_label": "jfc" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L565", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_cfg_user_ctx", - "community": 8, - "norm_label": "user_ctx" - }, - { - "label": "urma_jfs", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L568", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs", - "community": 23, - "norm_label": "urma_jfs" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L569", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_urma_ctx", - "community": 23, - "norm_label": "urma_ctx" - }, - { - "label": "urma_jfs_id_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfs_id_t", - "community": 23, - "norm_label": "urma_jfs_id_t" - }, - { - "label": "jfs_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L570", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_jfs_id", - "community": 23, - "norm_label": "jfs_id" - }, - { - "label": "urma_jfs_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfs_cfg_t", - "community": 32, - "norm_label": "urma_jfs_cfg_t" - }, - { - "label": "jfs_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L571", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_jfs_cfg", - "community": 23, - "norm_label": "jfs_cfg" - }, - { - "label": "handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L572", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_handle", - "community": 23, - "norm_label": "handle" - }, - { - "label": "event_mutex", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L573", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_event_mutex", - "community": 23, - "norm_label": "event_mutex" - }, - { - "label": "event_cond", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L574", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_event_cond", - "community": 23, - "norm_label": "event_cond" - }, - { - "label": "async_events_acked", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L575", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_async_events_acked", - "community": 23, - "norm_label": "async_events_acked" - }, - { - "label": "urma_jfs_opt_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfs_opt_t", - "community": 48, - "norm_label": "urma_jfs_opt_t" - }, - { - "label": "urma_jfs_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L576", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_urma_jfs_opt", - "community": 23, - "norm_label": "urma_jfs_opt" - }, - { - "label": "urma_jfs_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L585", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_attr", - "community": 54, - "norm_label": "urma_jfs_attr" - }, - { - "label": "mask", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L586", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_attr_mask", - "community": 54, - "norm_label": "mask" - }, - { - "label": "urma_jfs_state_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfs_state_t", - "community": 54, - "norm_label": "urma_jfs_state_t" - }, - { - "label": "state", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L587", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_attr_state", - "community": 54, - "norm_label": "state" - }, - { - "label": "urma_jfr_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L625", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt", - "community": 25, - "norm_label": "urma_jfr_opt" - }, - { - "label": "jfr_opt_mask", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L626", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_jfr_opt_mask", - "community": 25, - "norm_label": "jfr_opt_mask" - }, - { - "label": "is_actived", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L628", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_is_actived", - "community": 25, - "norm_label": "is_actived" - }, - { - "label": "urma_jfr_rqe_base_addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L629", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_rqe_base_addr", - "community": 25, - "norm_label": "urma_jfr_rqe_base_addr" - }, - { - "label": "urma_jfr_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L630", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_id", - "community": 25, - "norm_label": "urma_jfr_id" - }, - { - "label": "urma_jfr_db_addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L631", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_addr", - "community": 25, - "norm_label": "urma_jfr_db_addr" - }, - { - "label": "urma_jfr_db_status", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L632", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_status", - "community": 25, - "norm_label": "urma_jfr_db_status" - }, - { - "label": "urma_jfr_pi", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L633", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi", - "community": 25, - "norm_label": "urma_jfr_pi" - }, - { - "label": "urma_jfr_pi_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L634", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi_type", - "community": 25, - "norm_label": "urma_jfr_pi_type" - }, - { - "label": "urma_jfr_ci", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L635", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_ci", - "community": 25, - "norm_label": "urma_jfr_ci" - }, - { - "label": "reserved", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L636", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_opt_reserved", - "community": 25, - "norm_label": "reserved" - }, - { - "label": "urma_jfr_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L639", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg", - "community": 8, - "norm_label": "urma_jfr_cfg" - }, - { - "label": "id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L640", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_id", - "community": 8, - "norm_label": "id" - }, - { - "label": "depth", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L642", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_depth", - "community": 8, - "norm_label": "depth" - }, - { - "label": "urma_jfr_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfr_flag_t", - "community": 8, - "norm_label": "urma_jfr_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L643", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_flag", - "community": 8, - "norm_label": "flag" - }, - { - "label": "trans_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L644", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_trans_mode", - "community": 8, - "norm_label": "trans_mode" - }, - { - "label": "max_sge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L645", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_max_sge", - "community": 8, - "norm_label": "max_sge" - }, - { - "label": "min_rnr_timer", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L646", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_min_rnr_timer", - "community": 8, - "norm_label": "min_rnr_timer" - }, - { - "label": "jfc", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L648", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_jfc", - "community": 8, - "norm_label": "jfc" - }, - { - "label": "urma_token_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_token_t", - "community": 5, - "norm_label": "urma_token_t" - }, - { - "label": "token_value", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L649", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_token_value", - "community": 8, - "norm_label": "token_value" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L650", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_cfg_user_ctx", - "community": 8, - "norm_label": "user_ctx" - }, - { - "label": "urma_jfr_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L658", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_attr", - "community": 49, - "norm_label": "urma_jfr_attr" - }, - { - "label": "mask", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L659", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_attr_mask", - "community": 49, - "norm_label": "mask" - }, - { - "label": "rx_threshold", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L660", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_attr_rx_threshold", - "community": 49, - "norm_label": "rx_threshold" - }, - { - "label": "urma_jfr_state_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfr_state_t", - "community": 49, - "norm_label": "urma_jfr_state_t" - }, - { - "label": "state", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L661", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_attr_state", - "community": 49, - "norm_label": "state" - }, - { - "label": "urma_jfr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L664", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr", - "community": 19, - "norm_label": "urma_jfr" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L665", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_urma_ctx", - "community": 19, - "norm_label": "urma_ctx" - }, - { - "label": "urma_jfr_id_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfr_id_t", - "community": 38, - "norm_label": "urma_jfr_id_t" - }, - { - "label": "jfr_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L666", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_jfr_id", - "community": 19, - "norm_label": "jfr_id" - }, - { - "label": "urma_jfr_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_jfr_cfg_t", - "community": 19, - "norm_label": "urma_jfr_cfg_t" - }, - { - "label": "jfr_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L667", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_jfr_cfg", - "community": 19, - "norm_label": "jfr_cfg" - }, - { - "label": "handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L668", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_handle", - "community": 19, - "norm_label": "handle" - }, - { - "label": "event_mutex", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L669", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_event_mutex", - "community": 19, - "norm_label": "event_mutex" - }, - { - "label": "event_cond", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L670", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_event_cond", - "community": 19, - "norm_label": "event_cond" - }, - { - "label": "async_events_acked", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L671", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_async_events_acked", - "community": 19, - "norm_label": "async_events_acked" - }, - { - "label": "urma_jfr_opt_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfr_opt_t", - "community": 19, - "norm_label": "urma_jfr_opt_t" - }, - { - "label": "urma_jfr_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L672", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_urma_jfr_opt", - "community": 19, - "norm_label": "urma_jfr_opt" - }, - { - "label": "urma_rjfr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L702", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjfr", - "community": 38, - "norm_label": "urma_rjfr" - }, - { - "label": "jfr_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L703", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjfr_jfr_id", - "community": 38, - "norm_label": "jfr_id" - }, - { - "label": "trans_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L704", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjfr_trans_mode", - "community": 38, - "norm_label": "trans_mode" - }, - { - "label": "urma_import_jetty_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_import_jetty_flag_t", - "community": 38, - "norm_label": "urma_import_jetty_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L705", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjfr_flag", - "community": 38, - "norm_label": "flag" - }, - { - "label": "urma_tp_type_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_tp_type_t", - "community": 38, - "norm_label": "urma_tp_type_t" - }, - { - "label": "tp_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L706", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjfr_tp_type", - "community": 38, - "norm_label": "tp_type" - }, - { - "label": "urma_tp", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L709", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp", - "community": 10, - "norm_label": "urma_tp" - }, - { - "label": "tpn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L710", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_tpn", - "community": 10, - "norm_label": "tpn" - }, - { - "label": "urma_jetty_grp", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L724", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp", - "community": 21, - "norm_label": "urma_jetty_grp" - }, - { - "label": "urma_jetty_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L726", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_cfg", - "community": 32, - "norm_label": "urma_jetty_cfg" - }, - { - "label": "id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L727", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_cfg_id", - "community": 32, - "norm_label": "id" - }, - { - "label": "urma_jetty_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_flag_t", - "community": 32, - "norm_label": "urma_jetty_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L728", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_cfg_flag", - "community": 32, - "norm_label": "flag" - }, - { - "label": "jfs_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L731", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_cfg_jfs_cfg", - "community": 32, - "norm_label": "jfs_cfg" - }, - { - "label": "urma_jetty_grp_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_grp_t", - "community": 32, - "norm_label": "urma_jetty_grp_t" - }, - { - "label": "jetty_grp", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L741", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_cfg_jetty_grp", - "community": 32, - "norm_label": "jetty_grp" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L742", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_cfg_user_ctx", - "community": 32, - "norm_label": "user_ctx" - }, - { - "label": "urma_rjetty", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L756", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjetty", - "community": 34, - "norm_label": "urma_rjetty" - }, - { - "label": "urma_jetty_id_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_id_t", - "community": 34, - "norm_label": "urma_jetty_id_t" - }, - { - "label": "jetty_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L757", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjetty_jetty_id", - "community": 34, - "norm_label": "jetty_id" - }, - { - "label": "trans_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L758", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjetty_trans_mode", - "community": 34, - "norm_label": "trans_mode" - }, - { - "label": "urma_jetty_grp_policy_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_grp_policy_t", - "community": 33, - "norm_label": "urma_jetty_grp_policy_t" - }, - { - "label": "policy", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L759", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjetty_policy", - "community": 34, - "norm_label": "policy" - }, - { - "label": "urma_target_type_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_target_type_t", - "community": 34, - "norm_label": "urma_target_type_t" - }, - { - "label": "type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L760", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjetty_type", - "community": 34, - "norm_label": "type" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L761", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjetty_flag", - "community": 34, - "norm_label": "flag" - }, - { - "label": "tp_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L762", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rjetty_tp_type", - "community": 34, - "norm_label": "tp_type" - }, - { - "label": "urma_target_jetty", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L765", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty", - "community": 27, - "norm_label": "urma_target_jetty" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L766", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_urma_ctx", - "community": 27, - "norm_label": "urma_ctx" - }, - { - "label": "id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L767", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_id", - "community": 27, - "norm_label": "id" - }, - { - "label": "handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L768", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_handle", - "community": 27, - "norm_label": "handle" - }, - { - "label": "trans_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L769", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_trans_mode", - "community": 27, - "norm_label": "trans_mode" - }, - { - "label": "urma_tp_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_tp_t", - "community": 27, - "norm_label": "urma_tp_t" - }, - { - "label": "tp", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L770", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_tp", - "community": 27, - "norm_label": "tp" - }, - { - "label": "type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L771", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_type", - "community": 27, - "norm_label": "type" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L772", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_flag", - "community": 27, - "norm_label": "flag" - }, - { - "label": "policy", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L773", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_policy", - "community": 27, - "norm_label": "policy" - }, - { - "label": "tp_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L774", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_jetty_tp_type", - "community": 27, - "norm_label": "tp_type" - }, - { - "label": "urma_jetty_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L782", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_attr", - "community": 47, - "norm_label": "urma_jetty_attr" - }, - { - "label": "mask", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L783", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_attr_mask", - "community": 47, - "norm_label": "mask" - }, - { - "label": "rx_threshold", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L784", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_attr_rx_threshold", - "community": 47, - "norm_label": "rx_threshold" - }, - { - "label": "urma_jetty_state_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_state_t", - "community": 47, - "norm_label": "urma_jetty_state_t" - }, - { - "label": "state", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L785", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_attr_state", - "community": 47, - "norm_label": "state" - }, - { - "label": "urma_jetty_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L788", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_opt", - "community": 48, - "norm_label": "urma_jetty_opt" - }, - { - "label": "is_actived", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L789", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_opt_is_actived", - "community": 48, - "norm_label": "is_actived" - }, - { - "label": "jfs_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L790", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_opt_jfs_opt", - "community": 48, - "norm_label": "jfs_opt" - }, - { - "label": "reserved", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L791", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_opt_reserved", - "community": 48, - "norm_label": "reserved" - }, - { - "label": "urma_jetty", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L794", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty", - "community": 20, - "norm_label": "urma_jetty" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L795", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_urma_ctx", - "community": 20, - "norm_label": "urma_ctx" - }, - { - "label": "jetty_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L796", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_jetty_id", - "community": 20, - "norm_label": "jetty_id" - }, - { - "label": "urma_target_jetty_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_target_jetty_t", - "community": 30, - "norm_label": "urma_target_jetty_t" - }, - { - "label": "remote_jetty", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L797", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_remote_jetty", - "community": 20, - "norm_label": "remote_jetty" - }, - { - "label": "urma_jetty_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_jetty_cfg_t", - "community": 20, - "norm_label": "urma_jetty_cfg_t" - }, - { - "label": "jetty_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L799", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_jetty_cfg", - "community": 20, - "norm_label": "jetty_cfg" - }, - { - "label": "handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L800", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_handle", - "community": 20, - "norm_label": "handle" - }, - { - "label": "event_mutex", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L801", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_event_mutex", - "community": 20, - "norm_label": "event_mutex" - }, - { - "label": "event_cond", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L802", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_event_cond", - "community": 20, - "norm_label": "event_cond" - }, - { - "label": "async_events_acked", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L803", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_async_events_acked", - "community": 20, - "norm_label": "async_events_acked" - }, - { - "label": "urma_jetty_opt_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_opt_t", - "community": 20, - "norm_label": "urma_jetty_opt_t" - }, - { - "label": "urma_jetty_opt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L804", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_urma_jetty_opt", - "community": 20, - "norm_label": "urma_jetty_opt" - }, - { - "label": "urma_notifier", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L807", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_notifier", - "community": 29, - "norm_label": "urma_notifier" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L808", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_notifier_urma_ctx", - "community": 29, - "norm_label": "urma_ctx" - }, - { - "label": "fd", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L809", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_notifier_fd", - "community": 29, - "norm_label": "fd" - }, - { - "label": "incomplete_tjetty_list", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L810", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_notifier_incomplete_tjetty_list", - "community": 29, - "norm_label": "incomplete_tjetty_list" - }, - { - "label": "urma_notify", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L818", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_notify", - "community": 42, - "norm_label": "urma_notify" - }, - { - "label": "urma_notify_type_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_notify_type_t", - "community": 42, - "norm_label": "urma_notify_type_t" - }, - { - "label": "type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L819", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_notify_type", - "community": 42, - "norm_label": "type" - }, - { - "label": "urma_status_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_status_t", - "community": 42, - "norm_label": "urma_status_t" - }, - { - "label": "status", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L820", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_notify_status", - "community": 42, - "norm_label": "status" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L821", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_notify_user_ctx", - "community": 42, - "norm_label": "user_ctx" - }, - { - "label": "urma_jetty_grp_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L840", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "community": 33, - "norm_label": "urma_jetty_grp_cfg" - }, - { - "label": "name", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L841", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_name", - "community": 33, - "norm_label": "name" - }, - { - "label": "urma_jetty_grp_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_grp_flag_t", - "community": 33, - "norm_label": "urma_jetty_grp_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L842", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_flag", - "community": 33, - "norm_label": "flag" - }, - { - "label": "token_value", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L843", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_token_value", - "community": 33, - "norm_label": "token_value" - }, - { - "label": "id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L844", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_id", - "community": 33, - "norm_label": "id" - }, - { - "label": "policy", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L846", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_policy", - "community": 33, - "norm_label": "policy" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L847", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_cfg_user_ctx", - "community": 33, - "norm_label": "user_ctx" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L851", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_urma_ctx", - "community": 21, - "norm_label": "urma_ctx" - }, - { - "label": "jetty_grp_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L852", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_jetty_grp_id", - "community": 21, - "norm_label": "jetty_grp_id" - }, - { - "label": "urma_jetty_grp_cfg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jetty_grp_cfg_t", - "community": 21, - "norm_label": "urma_jetty_grp_cfg_t" - }, - { - "label": "jetty_cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L854", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_jetty_cnt", - "community": 21, - "norm_label": "jetty_cnt" - }, - { - "label": "urma_jetty_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_jetty_t", - "community": 21, - "norm_label": "urma_jetty_t" - }, - { - "label": "jetty_list", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L855", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_jetty_list", - "community": 21, - "norm_label": "jetty_list" - }, - { - "label": "list_mutex", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L856", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_list_mutex", - "community": 21, - "norm_label": "list_mutex" - }, - { - "label": "handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L857", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_handle", - "community": 21, - "norm_label": "handle" - }, - { - "label": "event_mutex", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L858", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_event_mutex", - "community": 21, - "norm_label": "event_mutex" - }, - { - "label": "event_cond", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L859", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_event_cond", - "community": 21, - "norm_label": "event_cond" - }, - { - "label": "async_events_acked", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L860", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jetty_grp_async_events_acked", - "community": 21, - "norm_label": "async_events_acked" - }, - { - "label": "urma_ubva", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L864", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ubva", - "community": 7, - "norm_label": "urma_ubva" - }, - { - "label": "eid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L865", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ubva_eid", - "community": 7, - "norm_label": "eid" - }, - { - "label": "uasid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L866", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ubva_uasid", - "community": 7, - "norm_label": "uasid" - }, - { - "label": "va", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L867", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ubva_va", - "community": 7, - "norm_label": "va" - }, - { - "label": "urma_token_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L946", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_token_id", - "community": 39, - "norm_label": "urma_token_id" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L947", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_token_id_urma_ctx", - "community": 39, - "norm_label": "urma_ctx" - }, - { - "label": "token_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L948", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_token_id_token_id", - "community": 39, - "norm_label": "token_id" - }, - { - "label": "handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L949", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_token_id_handle", - "community": 39, - "norm_label": "handle" - }, - { - "label": "urma_ref_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_ref_t", - "community": 39, - "norm_label": "urma_ref_t" - }, - { - "label": "ref", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L950", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_token_id_ref", - "community": 39, - "norm_label": "ref" - }, - { - "label": "urma_token_id_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_token_id_flag_t", - "community": 39, - "norm_label": "urma_token_id_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L951", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_token_id_flag", - "community": 39, - "norm_label": "flag" - }, - { - "label": "urma_seg_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L954", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_cfg", - "community": 5, - "norm_label": "urma_seg_cfg" - }, - { - "label": "va", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L955", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_cfg_va", - "community": 5, - "norm_label": "va" - }, - { - "label": "len", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L956", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_cfg_len", - "community": 5, - "norm_label": "len" - }, - { - "label": "urma_token_id_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_token_id_t", - "community": 5, - "norm_label": "urma_token_id_t" - }, - { - "label": "token_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L957", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_cfg_token_id", - "community": 5, - "norm_label": "token_id" - }, - { - "label": "token_value", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L958", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_cfg_token_value", - "community": 5, - "norm_label": "token_value" - }, - { - "label": "urma_reg_seg_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_reg_seg_flag_t", - "community": 5, - "norm_label": "urma_reg_seg_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L959", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_cfg_flag", - "community": 5, - "norm_label": "flag" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L960", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_cfg_user_ctx", - "community": 5, - "norm_label": "user_ctx" - }, - { - "label": "iova", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L961", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_cfg_iova", - "community": 5, - "norm_label": "iova" - }, - { - "label": "urma_seg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L964", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg", - "community": 5, - "norm_label": "urma_seg" - }, - { - "label": "urma_ubva_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_ubva_t", - "community": 5, - "norm_label": "urma_ubva_t" - }, - { - "label": "ubva", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L965", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_ubva", - "community": 5, - "norm_label": "ubva" - }, - { - "label": "len", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L966", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_len", - "community": 5, - "norm_label": "len" - }, - { - "label": "urma_seg_attr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_seg_attr_t", - "community": 5, - "norm_label": "urma_seg_attr_t" - }, - { - "label": "attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L967", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_attr", - "community": 5, - "norm_label": "attr" - }, - { - "label": "token_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L968", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_token_id", - "community": 5, - "norm_label": "token_id" - }, - { - "label": "urma_target_seg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L971", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_seg", - "community": 5, - "norm_label": "urma_target_seg" - }, - { - "label": "urma_seg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_seg_t", - "community": 5, - "norm_label": "urma_seg_t" - }, - { - "label": "seg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L972", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_seg_seg", - "community": 5, - "norm_label": "seg" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L973", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_seg_user_ctx", - "community": 5, - "norm_label": "user_ctx" - }, - { - "label": "mva", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L974", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_seg_mva", - "community": 5, - "norm_label": "mva" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L975", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_seg_urma_ctx", - "community": 5, - "norm_label": "urma_ctx" - }, - { - "label": "token_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L976", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_seg_token_id", - "community": 5, - "norm_label": "token_id" - }, - { - "label": "handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L977", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_seg_handle", - "community": 5, - "norm_label": "handle" - }, - { - "label": "urma_user_ctl_in", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L980", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_ctl_in", - "community": 55, - "norm_label": "urma_user_ctl_in" - }, - { - "label": "addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L981", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_ctl_in_addr", - "community": 55, - "norm_label": "addr" - }, - { - "label": "len", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L982", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_ctl_in_len", - "community": 55, - "norm_label": "len" - }, - { - "label": "opcode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L987", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_ctl_in_opcode", - "community": 55, - "norm_label": "opcode" - }, - { - "label": "urma_user_ctl_out", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L990", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_ctl_out", - "community": 56, - "norm_label": "urma_user_ctl_out" - }, - { - "label": "addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L991", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_ctl_out_addr", - "community": 56, - "norm_label": "addr" - }, - { - "label": "len", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L992", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_ctl_out_len", - "community": 56, - "norm_label": "len" - }, - { - "label": "reserved", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L993", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_ctl_out_reserved", - "community": 56, - "norm_label": "reserved" - }, - { - "label": "urma_user_target_seg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L996", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_target_seg", - "community": 5, - "norm_label": "urma_user_target_seg" - }, - { - "label": "attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L997", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_target_seg_attr", - "community": 5, - "norm_label": "attr" - }, - { - "label": "token_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L998", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_target_seg_token_id", - "community": 5, - "norm_label": "token_id" - }, - { - "label": "token_value", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L999", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_user_target_seg_token_value", - "community": 5, - "norm_label": "token_value" - }, - { - "label": "urma_sge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1002", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sge", - "community": 6, - "norm_label": "urma_sge" - }, - { - "label": "addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1003", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sge_addr", - "community": 6, - "norm_label": "addr" - }, - { - "label": "len", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1004", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sge_len", - "community": 6, - "norm_label": "len" - }, - { - "label": "urma_target_seg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_target_seg_t", - "community": 6, - "norm_label": "urma_target_seg_t" - }, - { - "label": "tseg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1010", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sge_tseg", - "community": 6, - "norm_label": "tseg" - }, - { - "label": "urma_user_tseg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_user_tseg_t", - "community": 6, - "norm_label": "urma_user_tseg_t" - }, - { - "label": "user_tseg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1011", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sge_user_tseg", - "community": 6, - "norm_label": "user_tseg" - }, - { - "label": "urma_sg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1014", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sg", - "community": 28, - "norm_label": "urma_sg" - }, - { - "label": "urma_sge_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sdk_urma_urma_types_h_urma_sge_t", - "community": 28, - "norm_label": "urma_sge_t" - }, - { - "label": "sge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1015", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sg_sge", - "community": 28, - "norm_label": "sge" - }, - { - "label": "num_sge", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1016", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_sg_num_sge", - "community": 28, - "norm_label": "num_sge" - }, - { - "label": "urma_rw_wr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1053", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rw_wr", - "community": 6, - "norm_label": "urma_rw_wr" - }, - { - "label": "urma_sg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_sg_t", - "community": 6, - "norm_label": "urma_sg_t" - }, - { - "label": "src", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1054", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rw_wr_src", - "community": 6, - "norm_label": "src" - }, - { - "label": "dst", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1056", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rw_wr_dst", - "community": 6, - "norm_label": "dst" - }, - { - "label": "target_hint", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1058", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rw_wr_target_hint", - "community": 6, - "norm_label": "target_hint" - }, - { - "label": "notify_data", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1059", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_rw_wr_notify_data", - "community": 6, - "norm_label": "notify_data" - }, - { - "label": "urma_send_wr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1062", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_send_wr", - "community": 6, - "norm_label": "urma_send_wr" - }, - { - "label": "src", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1063", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_send_wr_src", - "community": 6, - "norm_label": "src" - }, - { - "label": "target_hint", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1064", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_send_wr_target_hint", - "community": 6, - "norm_label": "target_hint" - }, - { - "label": "imm_data", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1065", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_send_wr_imm_data", - "community": 6, - "norm_label": "imm_data" - }, - { - "label": "tseg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1066", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_send_wr_tseg", - "community": 6, - "norm_label": "tseg" - }, - { - "label": "urma_cas_wr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1069", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cas_wr", - "community": 28, - "norm_label": "urma_cas_wr" - }, - { - "label": "dst", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1070", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cas_wr_dst", - "community": 28, - "norm_label": "dst" - }, - { - "label": "src", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1071", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cas_wr_src", - "community": 28, - "norm_label": "src" - }, - { - "label": "urma_faa_wr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1082", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_faa_wr", - "community": 28, - "norm_label": "urma_faa_wr" - }, - { - "label": "dst", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1083", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_faa_wr_dst", - "community": 28, - "norm_label": "dst" - }, - { - "label": "src", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1084", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_faa_wr_src", - "community": 28, - "norm_label": "src" - }, - { - "label": "urma_jfs_wr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1091", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_wr", - "community": 30, - "norm_label": "urma_jfs_wr" - }, - { - "label": "urma_opcode_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_opcode_t", - "community": 30, - "norm_label": "urma_opcode_t" - }, - { - "label": "opcode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1092", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_wr_opcode", - "community": 30, - "norm_label": "opcode" - }, - { - "label": "urma_jfs_wr_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_jfs_wr_flag_t", - "community": 30, - "norm_label": "urma_jfs_wr_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1093", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_wr_flag", - "community": 30, - "norm_label": "flag" - }, - { - "label": "tjetty", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1094", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_wr_tjetty", - "community": 30, - "norm_label": "tjetty" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1095", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_wr_user_ctx", - "community": 30, - "norm_label": "user_ctx" - }, - { - "label": "next", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1102", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfs_wr_next", - "community": 30, - "norm_label": "next" - }, - { - "label": "urma_jfr_wr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1105", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_wr", - "community": 6, - "norm_label": "urma_jfr_wr" - }, - { - "label": "src", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1106", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_wr_src", - "community": 6, - "norm_label": "src" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1107", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_wr_user_ctx", - "community": 6, - "norm_label": "user_ctx" - }, - { - "label": "next", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1108", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_wr_next", - "community": 6, - "norm_label": "next" - }, - { - "label": "urma_cr_token", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1122", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_token", - "community": 5, - "norm_label": "urma_cr_token" - }, - { - "label": "token_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1123", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_token_token_id", - "community": 5, - "norm_label": "token_id" - }, - { - "label": "token_value", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1124", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_token_token_value", - "community": 5, - "norm_label": "token_value" - }, - { - "label": "urma_cr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1127", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr", - "community": 18, - "norm_label": "urma_cr" - }, - { - "label": "urma_cr_status_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_cr_status_t", - "community": 18, - "norm_label": "urma_cr_status_t" - }, - { - "label": "status", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1128", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_status", - "community": 18, - "norm_label": "status" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1129", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_user_ctx", - "community": 18, - "norm_label": "user_ctx" - }, - { - "label": "urma_cr_opcode_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_cr_opcode_t", - "community": 18, - "norm_label": "urma_cr_opcode_t" - }, - { - "label": "opcode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1130", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_opcode", - "community": 18, - "norm_label": "opcode" - }, - { - "label": "urma_cr_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_cr_flag_t", - "community": 18, - "norm_label": "urma_cr_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1131", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_flag", - "community": 18, - "norm_label": "flag" - }, - { - "label": "completion_len", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1132", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_completion_len", - "community": 18, - "norm_label": "completion_len" - }, - { - "label": "local_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1134", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_local_id", - "community": 18, - "norm_label": "local_id" - }, - { - "label": "remote_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1135", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_remote_id", - "community": 18, - "norm_label": "remote_id" - }, - { - "label": "tpn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1141", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_tpn", - "community": 18, - "norm_label": "tpn" - }, - { - "label": "user_data", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1142", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_cr_user_data", - "community": 18, - "norm_label": "user_data" - }, - { - "label": "urma_async_event", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1145", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_async_event", - "community": 44, - "norm_label": "urma_async_event" - }, - { - "label": "urma_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1147", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_async_event_urma_ctx", - "community": 44, - "norm_label": "urma_ctx" - }, - { - "label": "element", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1156", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_async_event_element", - "community": 44, - "norm_label": "element" - }, - { - "label": "urma_async_event_type_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_async_event_type_t", - "community": 44, - "norm_label": "urma_async_event_type_t" - }, - { - "label": "event_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1157", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_async_event_event_type", - "community": 44, - "norm_label": "event_type" - }, - { - "label": "priv", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1158", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_async_event_priv", - "community": 44, - "norm_label": "priv" - }, - { - "label": "urma_ur", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1184", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur", - "community": 16, - "norm_label": "urma_ur" - }, - { - "label": "name", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1185", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_name", - "community": 16, - "norm_label": "name" - }, - { - "label": "size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1186", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_size", - "community": 16, - "norm_label": "size" - }, - { - "label": "urma_ur_attr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_ur_attr_t", - "community": 16, - "norm_label": "urma_ur_attr_t" - }, - { - "label": "attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1187", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_attr", - "community": 16, - "norm_label": "attr" - }, - { - "label": "token", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1188", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_token", - "community": 16, - "norm_label": "token" - }, - { - "label": "user_ctx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1189", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_user_ctx", - "community": 16, - "norm_label": "user_ctx" - }, - { - "label": "urma_target_ur", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1193", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_ur", - "community": 6, - "norm_label": "urma_target_ur" - }, - { - "label": "name", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1194", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_ur_name", - "community": 6, - "norm_label": "name" - }, - { - "label": "size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1195", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_ur_size", - "community": 6, - "norm_label": "size" - }, - { - "label": "urma_import_ur_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_import_ur_flag_t", - "community": 6, - "norm_label": "urma_import_ur_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1196", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_ur_flag", - "community": 6, - "norm_label": "flag" - }, - { - "label": "tseg_list", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1197", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_ur_tseg_list", - "community": 6, - "norm_label": "tseg_list" - }, - { - "label": "cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1198", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_target_ur_cnt", - "community": 6, - "norm_label": "cnt" - }, - { - "label": "urma_seg_info", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1201", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_info", - "community": 5, - "norm_label": "urma_seg_info" - }, - { - "label": "seg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1202", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_info_seg", - "community": 5, - "norm_label": "seg" - }, - { - "label": "idx_in_ur", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1203", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_seg_info_idx_in_ur", - "community": 5, - "norm_label": "idx_in_ur" - }, - { - "label": "urma_ur_info", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1207", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_info", - "community": 16, - "norm_label": "urma_ur_info" - }, - { - "label": "name", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1208", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_info_name", - "community": 16, - "norm_label": "name" - }, - { - "label": "size", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1209", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_info_size", - "community": 16, - "norm_label": "size" - }, - { - "label": "attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1210", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_info_attr", - "community": 16, - "norm_label": "attr" - }, - { - "label": "cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1211", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_info_cnt", - "community": 16, - "norm_label": "cnt" - }, - { - "label": "urma_seg_info_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_seg_info_t", - "community": 16, - "norm_label": "urma_seg_info_t" - }, - { - "label": "seg_list", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1212", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_ur_info_seg_list", - "community": 16, - "norm_label": "seg_list" - }, - { - "label": "urma_jfr_info", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1215", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_info", - "community": 7, - "norm_label": "urma_jfr_info" - }, - { - "label": "name", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1216", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_info_name", - "community": 7, - "norm_label": "name" - }, - { - "label": "eid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1217", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_info_eid", - "community": 7, - "norm_label": "eid" - }, - { - "label": "uasid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1218", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_info_uasid", - "community": 7, - "norm_label": "uasid" - }, - { - "label": "id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1219", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_jfr_info_id", - "community": 7, - "norm_label": "id" - }, - { - "label": "urma_tp_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1238", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_cfg", - "community": 35, - "norm_label": "urma_tp_cfg" - }, - { - "label": "urma_tp_cfg_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_tp_cfg_flag_t", - "community": 35, - "norm_label": "urma_tp_cfg_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1239", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_cfg_flag", - "community": 35, - "norm_label": "flag" - }, - { - "label": "trans_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1241", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_cfg_trans_mode", - "community": 35, - "norm_label": "trans_mode" - }, - { - "label": "retry_num", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1242", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_cfg_retry_num", - "community": 35, - "norm_label": "retry_num" - }, - { - "label": "retry_factor", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1243", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_cfg_retry_factor", - "community": 35, - "norm_label": "retry_factor" - }, - { - "label": "ack_timeout", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1244", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_cfg_ack_timeout", - "community": 35, - "norm_label": "ack_timeout" - }, - { - "label": "dscp", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1245", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_cfg_dscp", - "community": 35, - "norm_label": "dscp" - }, - { - "label": "oor_cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1246", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_cfg_oor_cnt", - "community": 35, - "norm_label": "oor_cnt" - }, - { - "label": "urma_net_addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1295", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_net_addr", - "community": 41, - "norm_label": "urma_net_addr" - }, - { - "label": "sa_family_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "sa_family_t", - "community": 41, - "norm_label": "sa_family_t" - }, - { - "label": "sin_family", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1296", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_net_addr_sin_family", - "community": 41, - "norm_label": "sin_family" - }, - { - "label": "vlan", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1301", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_net_addr_vlan", - "community": 41, - "norm_label": "vlan" - }, - { - "label": "mac", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1302", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_net_addr_mac", - "community": 41, - "norm_label": "mac" - }, - { - "label": "prefix_len", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1303", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_net_addr_prefix_len", - "community": 41, - "norm_label": "prefix_len" - }, - { - "label": "urma_net_addr_info", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1306", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_net_addr_info", - "community": 3, - "norm_label": "urma_net_addr_info" - }, - { - "label": "urma_net_addr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_net_addr_t", - "community": 3, - "norm_label": "urma_net_addr_t" - }, - { - "label": "netaddr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1307", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_net_addr_info_netaddr", - "community": 3, - "norm_label": "netaddr" - }, - { - "label": "index", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1308", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_net_addr_info_index", - "community": 3, - "norm_label": "index" - }, - { - "label": "urma_tp_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1311", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr", - "community": 3, - "norm_label": "urma_tp_attr" - }, - { - "label": "urma_tp_mod_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_tp_mod_flag_t", - "community": 3, - "norm_label": "urma_tp_mod_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1312", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_flag", - "community": 3, - "norm_label": "flag" - }, - { - "label": "peer_tpn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1313", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_peer_tpn", - "community": 3, - "norm_label": "peer_tpn" - }, - { - "label": "urma_tp_state_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_tp_state_t", - "community": 3, - "norm_label": "urma_tp_state_t" - }, - { - "label": "state", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1314", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_state", - "community": 3, - "norm_label": "state" - }, - { - "label": "tx_psn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1315", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_tx_psn", - "community": 3, - "norm_label": "tx_psn" - }, - { - "label": "rx_psn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1316", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_rx_psn", - "community": 3, - "norm_label": "rx_psn" - }, - { - "label": "mtu", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1317", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_mtu", - "community": 3, - "norm_label": "mtu" - }, - { - "label": "cc_pattern_idx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1318", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_cc_pattern_idx", - "community": 3, - "norm_label": "cc_pattern_idx" - }, - { - "label": "oos_cnt", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1319", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_oos_cnt", - "community": 3, - "norm_label": "oos_cnt" - }, - { - "label": "local_net_addr_idx", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1320", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_local_net_addr_idx", - "community": 3, - "norm_label": "local_net_addr_idx" - }, - { - "label": "peer_net_addr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1321", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_peer_net_addr", - "community": 3, - "norm_label": "peer_net_addr" - }, - { - "label": "data_udp_start", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1322", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_data_udp_start", - "community": 3, - "norm_label": "data_udp_start" - }, - { - "label": "ack_udp_start", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1323", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_ack_udp_start", - "community": 3, - "norm_label": "ack_udp_start" - }, - { - "label": "udp_range", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1324", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_udp_range", - "community": 3, - "norm_label": "udp_range" - }, - { - "label": "hop_limit", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1325", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_hop_limit", - "community": 3, - "norm_label": "hop_limit" - }, - { - "label": "flow_label", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1326", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_flow_label", - "community": 3, - "norm_label": "flow_label" - }, - { - "label": "port_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1327", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_port_id", - "community": 3, - "norm_label": "port_id" - }, - { - "label": "mn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1328", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_mn", - "community": 3, - "norm_label": "mn" - }, - { - "label": "peer_trans_type", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1329", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_peer_trans_type", - "community": 3, - "norm_label": "peer_trans_type" - }, - { - "label": "urma_get_tp_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1347", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_get_tp_cfg", - "community": 40, - "norm_label": "urma_get_tp_cfg" - }, - { - "label": "urma_get_tp_cfg_flag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_get_tp_cfg_flag_t", - "community": 40, - "norm_label": "urma_get_tp_cfg_flag_t" - }, - { - "label": "flag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1348", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_get_tp_cfg_flag", - "community": 40, - "norm_label": "flag" - }, - { - "label": "trans_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1349", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_get_tp_cfg_trans_mode", - "community": 40, - "norm_label": "trans_mode" - }, - { - "label": "local_eid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1350", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_get_tp_cfg_local_eid", - "community": 40, - "norm_label": "local_eid" - }, - { - "label": "peer_eid", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1351", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_get_tp_cfg_peer_eid", - "community": 40, - "norm_label": "peer_eid" - }, - { - "label": "urma_tp_info", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1354", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_info", - "community": 10, - "norm_label": "urma_tp_info" - }, - { - "label": "tp_handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1355", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_info_tp_handle", - "community": 10, - "norm_label": "tp_handle" - }, - { - "label": "urma_active_tp_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1358", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_attr", - "community": 52, - "norm_label": "urma_active_tp_attr" - }, - { - "label": "tx_psn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1359", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_attr_tx_psn", - "community": 52, - "norm_label": "tx_psn" - }, - { - "label": "rx_psn", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1360", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_attr_rx_psn", - "community": 52, - "norm_label": "rx_psn" - }, - { - "label": "reserved", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1361", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_attr_reserved", - "community": 52, - "norm_label": "reserved" - }, - { - "label": "urma_active_tp_cfg", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1364", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_cfg", - "community": 43, - "norm_label": "urma_active_tp_cfg" - }, - { - "label": "tp_handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1365", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_cfg_tp_handle", - "community": 43, - "norm_label": "tp_handle" - }, - { - "label": "peer_tp_handle", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1366", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_cfg_peer_tp_handle", - "community": 43, - "norm_label": "peer_tp_handle" - }, - { - "label": "tag", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1367", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_cfg_tag", - "community": 43, - "norm_label": "tag" - }, - { - "label": "urma_active_tp_attr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_active_tp_attr_t", - "community": 43, - "norm_label": "urma_active_tp_attr_t" - }, - { - "label": "tp_attr", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1368", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_active_tp_cfg_tp_attr", - "community": 43, - "norm_label": "tp_attr" - }, - { - "label": "urma_tp_attr_value", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1376", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value", - "community": 9, - "norm_label": "urma_tp_attr_value" - }, - { - "label": "retry_times_init", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1377", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_retry_times_init", - "community": 9, - "norm_label": "retry_times_init" - }, - { - "label": "at", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1378", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_at", - "community": 9, - "norm_label": "at" - }, - { - "label": "sip", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1379", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_sip", - "community": 9, - "norm_label": "sip" - }, - { - "label": "dip", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1380", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_dip", - "community": 9, - "norm_label": "dip" - }, - { - "label": "sma", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1381", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_sma", - "community": 9, - "norm_label": "sma" - }, - { - "label": "dma", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1382", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_dma", - "community": 9, - "norm_label": "dma" - }, - { - "label": "vlan_id", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1383", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_vlan_id", - "community": 9, - "norm_label": "vlan_id" - }, - { - "label": "vlan_en", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1384", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_vlan_en", - "community": 9, - "norm_label": "vlan_en" - }, - { - "label": "dscp", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1385", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_dscp", - "community": 9, - "norm_label": "dscp" - }, - { - "label": "at_times", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1386", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_at_times", - "community": 9, - "norm_label": "at_times" - }, - { - "label": "sl", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1387", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_sl", - "community": 9, - "norm_label": "sl" - }, - { - "label": "ttl", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1388", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_ttl", - "community": 9, - "norm_label": "ttl" - }, - { - "label": "ack_udp_srcport", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1389", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_ack_udp_srcport", - "community": 9, - "norm_label": "ack_udp_srcport" - }, - { - "label": "data_udp_srcport", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1390", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_data_udp_srcport", - "community": 9, - "norm_label": "data_udp_srcport" - }, - { - "label": "udp_srcport_range", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1391", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_udp_srcport_range", - "community": 9, - "norm_label": "udp_srcport_range" - }, - { - "label": "spray_en", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1392", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_spray_en", - "community": 9, - "norm_label": "spray_en" - }, - { - "label": "udp_global_en", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1393", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_udp_global_en", - "community": 9, - "norm_label": "udp_global_en" - }, - { - "label": "reserve_0", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1394", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_reserve_0", - "community": 9, - "norm_label": "reserve_0" - }, - { - "label": "sl_bitmap", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1395", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_sl_bitmap", - "community": 9, - "norm_label": "sl_bitmap" - }, - { - "label": "dscp_config_mode", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1396", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_dscp_config_mode", - "community": 9, - "norm_label": "dscp_config_mode" - }, - { - "label": "reserve_1", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1397", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_reserve_1", - "community": 9, - "norm_label": "reserve_1" - }, - { - "label": "reserved", - "file_type": "code", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1398", - "_origin": "ast", - "id": "sdk_urma_urma_types_urma_tp_attr_value_reserved", - "community": 9, - "norm_label": "reserved" - }, - { - "label": "urma_endpoint.cpp", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1", - "_origin": "ast", - "id": "urma_endpoint_cpp_urma_endpoint", - "community": 0, - "norm_label": "urma_endpoint.cpp" - }, - { - "label": "PreparedJetty", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L82", - "_origin": "ast", - "id": "urma_endpoint_preparedjetty", - "community": 13, - "norm_label": "preparedjetty" - }, - { - "label": "res", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L83", - "_origin": "ast", - "id": "urma_endpoint_preparedjetty_res", - "community": 13, - "norm_label": "res" - }, - { - "label": "PreparedJettyCount()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L89", - "_origin": "ast", - "id": "urma_endpoint_preparedjettycount", - "community": 11, - "norm_label": "preparedjettycount()" - }, - { - "label": "UrmaEndpoint::UrmaEndpoint()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L138", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_urmaendpoint", - "community": 0, - "norm_label": "urmaendpoint::urmaendpoint()" - }, - { - "label": "Socket", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "socket", - "community": 0, - "norm_label": "socket" - }, - { - "label": "UrmaEndpoint::Reset()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L159", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_reset", - "community": 0, - "norm_label": "urmaendpoint::reset()" - }, - { - "label": "UrmaEndpoint::ReadFromFd()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L188", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_readfromfd", - "community": 0, - "norm_label": "urmaendpoint::readfromfd()" - }, - { - "label": "UrmaEndpoint::PushBackToReadBuf()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L215", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_pushbacktoreadbuf", - "community": 0, - "norm_label": "urmaendpoint::pushbacktoreadbuf()" - }, - { - "label": "UrmaEndpoint::WriteToFd()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L219", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_writetofd", - "community": 0, - "norm_label": "urmaendpoint::writetofd()" - }, - { - "label": "UrmaEndpoint::MakeLocalParsedHello()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L239", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_makelocalparsedhello", - "community": 0, - "norm_label": "urmaendpoint::makelocalparsedhello()" - }, - { - "label": "ParsedHello", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_cpp_parsedhello", - "community": 0, - "norm_label": "parsedhello" - }, - { - "label": "UrmaEndpoint::FillLocalHelloV2()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L261", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_filllocalhellov2", - "community": 1, - "norm_label": "urmaendpoint::filllocalhellov2()" - }, - { - "label": "UrmaEndpoint::FillLocalHelloV3()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L282", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_filllocalhellov3", - "community": 0, - "norm_label": "urmaendpoint::filllocalhellov3()" - }, - { - "label": "UrmaHello", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urmahello", - "community": 0, - "norm_label": "urmahello" - }, - { - "label": "UrmaEndpoint::WriteHelloV3()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L298", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_writehellov3", - "community": 0, - "norm_label": "urmaendpoint::writehellov3()" - }, - { - "label": "IOBuf", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "iobuf", - "community": 0, - "norm_label": "iobuf" - }, - { - "label": "UrmaEndpoint::ReadAndParseHelloV3()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L327", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_readandparsehellov3", - "community": 1, - "norm_label": "urmaendpoint::readandparsehellov3()" - }, - { - "label": "UrmaEndpoint::AllocateResources()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L360", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_allocateresources", - "community": 11, - "norm_label": "urmaendpoint::allocateresources()" - }, - { - "label": "UrmaEndpoint::DeallocateResources()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L462", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_deallocateresources", - "community": 0, - "norm_label": "urmaendpoint::deallocateresources()" - }, - { - "label": "UrmaEndpoint::ImportPeer()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L494", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_importpeer", - "community": 0, - "norm_label": "urmaendpoint::importpeer()" - }, - { - "label": "UrmaIOBuf", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L546", - "_origin": "ast", - "id": "urma_endpoint_urmaiobuf", - "community": 0, - "norm_label": "urmaiobuf" - }, - { - "label": ".cut_into_sglist()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L556", - "_origin": "ast", - "id": "urma_endpoint_urmaiobuf_cut_into_sglist", - "community": 0, - "norm_label": ".cut_into_sglist()" - }, - { - "label": "urma_sge_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_cpp_urma_sge_t", - "community": 0, - "norm_label": "urma_sge_t" - }, - { - "label": "UrmaEndpoint::CutFromIOBufList()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L590", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_cutfromiobuflist", - "community": 0, - "norm_label": "urmaendpoint::cutfromiobuflist()" - }, - { - "label": "UrmaEndpoint::IsWritable()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L664", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_iswritable", - "community": 0, - "norm_label": "urmaendpoint::iswritable()" - }, - { - "label": "UrmaEndpoint::DoPostRecv()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L673", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_dopostrecv", - "community": 45, - "norm_label": "urmaendpoint::dopostrecv()" - }, - { - "label": "UrmaEndpoint::PostRecv()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L687", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_postrecv", - "community": 0, - "norm_label": "urmaendpoint::postrecv()" - }, - { - "label": "UrmaEndpoint::SendImm()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L727", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_sendimm", - "community": 12, - "norm_label": "urmaendpoint::sendimm()" - }, - { - "label": "UrmaEndpoint::SendAck()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L751", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_sendack", - "community": 0, - "norm_label": "urmaendpoint::sendack()" - }, - { - "label": "UrmaEndpoint::HandleCompletion()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L761", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_handlecompletion", - "community": 0, - "norm_label": "urmaendpoint::handlecompletion()" - }, - { - "label": "urma_cr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_cpp_urma_cr_t", - "community": 0, - "norm_label": "urma_cr_t" - }, - { - "label": "UrmaEndpoint::PollCq()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L847", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_pollcq", - "community": 14, - "norm_label": "urmaendpoint::pollcq()" - }, - { - "label": "UrmaEndpoint::ApplyRemoteHello()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L930", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_applyremotehello", - "community": 0, - "norm_label": "urmaendpoint::applyremotehello()" - }, - { - "label": "UrmaEndpoint::OnNewDataFromTcp()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L953", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_onnewdatafromtcp", - "community": 0, - "norm_label": "urmaendpoint::onnewdatafromtcp()" - }, - { - "label": "UrmaEndpoint::TryReadOnTcp()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1010", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_tryreadontcp", - "community": 0, - "norm_label": "urmaendpoint::tryreadontcp()" - }, - { - "label": "TryReadOnTcpDuringUrmaEst()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1016", - "_origin": "ast", - "id": "urma_endpoint_tryreadontcpduringurmaest", - "community": 0, - "norm_label": "tryreadontcpduringurmaest()" - }, - { - "label": "UrmaEndpoint::FallbackToTcp()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1042", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_fallbacktotcp", - "community": 0, - "norm_label": "urmaendpoint::fallbacktotcp()" - }, - { - "label": "UrmaEndpoint::FailHandshake()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1051", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_failhandshake", - "community": 0, - "norm_label": "urmaendpoint::failhandshake()" - }, - { - "label": "UrmaEndpoint::ProcessHandshakeAtClient()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1072", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_processhandshakeatclient", - "community": 0, - "norm_label": "urmaendpoint::processhandshakeatclient()" - }, - { - "label": "UrmaEndpoint::ProcessHandshakeAtServer()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1144", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_processhandshakeatserver", - "community": 1, - "norm_label": "urmaendpoint::processhandshakeatserver()" - }, - { - "label": "UrmaEndpoint::GetStateStr()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1293", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_getstatestr", - "community": 0, - "norm_label": "urmaendpoint::getstatestr()" - }, - { - "label": "string", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_cpp_string", - "community": 0, - "norm_label": "string" - }, - { - "label": "UrmaEndpoint::DebugInfo()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1313", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_debuginfo", - "community": 0, - "norm_label": "urmaendpoint::debuginfo()" - }, - { - "label": "ostream", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "ostream", - "community": 0, - "norm_label": "ostream" - }, - { - "label": "StringPiece", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "stringpiece", - "community": 0, - "norm_label": "stringpiece" - }, - { - "label": "UrmaEndpoint::WaitCqEvent()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1322", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_waitcqevent", - "community": 51, - "norm_label": "urmaendpoint::waitcqevent()" - }, - { - "label": "SocketUniquePtr", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "socketuniqueptr", - "community": 51, - "norm_label": "socketuniqueptr" - }, - { - "label": "urma_jfc_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_cpp_urma_jfc_t", - "community": 51, - "norm_label": "urma_jfc_t" - }, - { - "label": "UrmaEndpoint::ReqNotifyCq()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1353", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_reqnotifycq", - "community": 14, - "norm_label": "urmaendpoint::reqnotifycq()" - }, - { - "label": "UrmaEndpoint::PollingModeInitialize()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1368", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_pollingmodeinitialize", - "community": 0, - "norm_label": "urmaendpoint::pollingmodeinitialize()" - }, - { - "label": "bthread_tag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_cpp_bthread_tag_t", - "community": 0, - "norm_label": "bthread_tag_t" - }, - { - "label": "function", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_cpp_function", - "community": 0, - "norm_label": "function" - }, - { - "label": "UrmaEndpoint::PollingModeRelease()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1462", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_pollingmoderelease", - "community": 0, - "norm_label": "urmaendpoint::pollingmoderelease()" - }, - { - "label": "UrmaEndpoint::PollerAddCqSid()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1476", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_polleraddcqsid", - "community": 0, - "norm_label": "urmaendpoint::polleraddcqsid()" - }, - { - "label": "UrmaEndpoint::PollerRemoveCqSid()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1492", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_pollerremovecqsid", - "community": 0, - "norm_label": "urmaendpoint::pollerremovecqsid()" - }, - { - "label": "UrmaEndpoint::GlobalInitialize()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1505", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_globalinitialize", - "community": 11, - "norm_label": "urmaendpoint::globalinitialize()" - }, - { - "label": "UrmaEndpoint::GlobalRelease()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1566", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_globalrelease", - "community": 0, - "norm_label": "urmaendpoint::globalrelease()" - }, - { - "label": "UrmaEndpoint::BringUpJetty()", - "file_type": "code", - "source_file": "urma_endpoint.cpp", - "source_location": "L1581", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint_bringupjetty", - "community": 0, - "norm_label": "urmaendpoint::bringupjetty()" - }, - { - "label": "urma_endpoint.h", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L1", - "_origin": "ast", - "id": "urma_endpoint_h_urma_endpoint", - "community": 0, - "norm_label": "urma_endpoint.h" - }, - { - "label": "UrmaTransport", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L42", - "_origin": "ast", - "id": "urma_endpoint_urmatransport", - "community": 0, - "norm_label": "urmatransport" - }, - { - "label": "UrmaHandshake", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L46", - "_origin": "ast", - "id": "urma_endpoint_urmahandshake", - "community": 0, - "norm_label": "urmahandshake" - }, - { - "label": "ParsedHello", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L47", - "_origin": "ast", - "id": "urma_endpoint_parsedhello", - "community": 0, - "norm_label": "parsedhello" - }, - { - "label": "UrmaConnect", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L56", - "_origin": "ast", - "id": "urma_endpoint_urmaconnect", - "community": 0, - "norm_label": "urmaconnect" - }, - { - "label": "AppConnect", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "appconnect", - "community": 0, - "norm_label": "appconnect" - }, - { - "label": "StartConnect", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L59", - "_origin": "ast", - "id": "urma_endpoint_urmaconnect_startconnect", - "community": 0, - "norm_label": "startconnect" - }, - { - "label": "StopConnect", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L61", - "_origin": "ast", - "id": "urma_endpoint_urmaconnect_stopconnect", - "community": 0, - "norm_label": "stopconnect" - }, - { - "label": "Run", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L70", - "_origin": "ast", - "id": "urma_endpoint_urmaconnect_run", - "community": 0, - "norm_label": "run" - }, - { - "label": "_data", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L72", - "_origin": "ast", - "id": "urma_endpoint_urmaconnect_data", - "community": 0, - "norm_label": "_data" - }, - { - "label": "_error", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L73", - "_origin": "ast", - "id": "urma_endpoint_urmaconnect_error", - "community": 0, - "norm_label": "_error" - }, - { - "label": "UrmaResource", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L81", - "_origin": "ast", - "id": "urma_endpoint_urmaresource", - "community": 13, - "norm_label": "urmaresource" - }, - { - "label": "next", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L82", - "_origin": "ast", - "id": "urma_endpoint_urmaresource_next", - "community": 13, - "norm_label": "next" - }, - { - "label": "urma_jfc_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_h_urma_jfc_t", - "community": 13, - "norm_label": "urma_jfc_t" - }, - { - "label": "jfc", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L84", - "_origin": "ast", - "id": "urma_endpoint_urmaresource_jfc", - "community": 13, - "norm_label": "jfc" - }, - { - "label": "urma_jfce_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_h_urma_jfce_t", - "community": 13, - "norm_label": "urma_jfce_t" - }, - { - "label": "jfce", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L85", - "_origin": "ast", - "id": "urma_endpoint_urmaresource_jfce", - "community": 13, - "norm_label": "jfce" - }, - { - "label": "urma_jfr_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_h_urma_jfr_t", - "community": 13, - "norm_label": "urma_jfr_t" - }, - { - "label": "jfr", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L86", - "_origin": "ast", - "id": "urma_endpoint_urmaresource_jfr", - "community": 13, - "norm_label": "jfr" - }, - { - "label": "urma_jetty_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_h_urma_jetty_t", - "community": 13, - "norm_label": "urma_jetty_t" - }, - { - "label": "jetty", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L87", - "_origin": "ast", - "id": "urma_endpoint_urmaresource_jetty", - "community": 13, - "norm_label": "jetty" - }, - { - "label": "urma_target_jetty_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_h_urma_target_jetty_t", - "community": 13, - "norm_label": "urma_target_jetty_t" - }, - { - "label": "remote_jetty", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L89", - "_origin": "ast", - "id": "urma_endpoint_urmaresource_remote_jetty", - "community": 13, - "norm_label": "remote_jetty" - }, - { - "label": "urma_target_seg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_endpoint_h_urma_target_seg_t", - "community": 13, - "norm_label": "urma_target_seg_t" - }, - { - "label": "remote_seg", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L90", - "_origin": "ast", - "id": "urma_endpoint_urmaresource_remote_seg", - "community": 13, - "norm_label": "remote_seg" - }, - { - "label": ".UrmaResource()", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L92", - "_origin": "ast", - "id": "urma_endpoint_urmaresource_urmaresource", - "community": 12, - "norm_label": ".urmaresource()" - }, - { - "label": "UrmaEndpoint()", - "file_type": "code", - "source_file": "urma_endpoint.h", - "source_location": "L100", - "_origin": "ast", - "id": "urma_endpoint_urmaendpoint", - "community": 0, - "norm_label": "urmaendpoint()" - }, - { - "label": "urma_handshake.cpp", - "file_type": "code", - "source_file": "urma_handshake.cpp", - "source_location": "L1", - "_origin": "ast", - "id": "urma_handshake_cpp_urma_handshake", - "community": 1, - "norm_label": "urma_handshake.cpp" - }, - { - "label": "ValidHello()", - "file_type": "code", - "source_file": "urma_handshake.cpp", - "source_location": "L127", - "_origin": "ast", - "id": "urma_handshake_validhello", - "community": 1, - "norm_label": "validhello()" - }, - { - "label": "ParsedHello", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_handshake_cpp_parsedhello", - "community": 1, - "norm_label": "parsedhello" - }, - { - "label": "ReadBodyAndNegotiate()", - "file_type": "code", - "source_file": "urma_handshake.cpp", - "source_location": "L141", - "_origin": "ast", - "id": "urma_handshake_readbodyandnegotiate", - "community": 1, - "norm_label": "readbodyandnegotiate()" - }, - { - "label": "DrainBytes()", - "file_type": "code", - "source_file": "urma_handshake.cpp", - "source_location": "L173", - "_origin": "ast", - "id": "urma_handshake_drainbytes", - "community": 1, - "norm_label": "drainbytes()" - }, - { - "label": "CreateClientHandshake()", - "file_type": "code", - "source_file": "urma_handshake.cpp", - "source_location": "L274", - "_origin": "ast", - "id": "urma_handshake_createclienthandshake", - "community": 1, - "norm_label": "createclienthandshake()" - }, - { - "label": "UrmaHandshake", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urmahandshake", - "community": 1, - "norm_label": "urmahandshake" - }, - { - "label": "CreateServerHandshakeByMagic()", - "file_type": "code", - "source_file": "urma_handshake.cpp", - "source_location": "L282", - "_origin": "ast", - "id": "urma_handshake_createserverhandshakebymagic", - "community": 1, - "norm_label": "createserverhandshakebymagic()" - }, - { - "label": "urma_handshake.h", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L1", - "_origin": "ast", - "id": "urma_handshake_h_urma_handshake", - "community": 1, - "norm_label": "urma_handshake.h" - }, - { - "label": "UrmaEndpoint", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L32", - "_origin": "ast", - "id": "urma_handshake_urmaendpoint", - "community": 1, - "norm_label": "urmaendpoint" - }, - { - "label": "ParsedHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L38", - "_origin": "ast", - "id": "urma_handshake_parsedhello", - "community": 22, - "norm_label": "parsedhello" - }, - { - "label": "buffer_size", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L39", - "_origin": "ast", - "id": "urma_handshake_parsedhello_buffer_size", - "community": 22, - "norm_label": "buffer_size" - }, - { - "label": "recv_buffer_cnt", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L40", - "_origin": "ast", - "id": "urma_handshake_parsedhello_recv_buffer_cnt", - "community": 22, - "norm_label": "recv_buffer_cnt" - }, - { - "label": "jetty_id", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L41", - "_origin": "ast", - "id": "urma_handshake_parsedhello_jetty_id", - "community": 22, - "norm_label": "jetty_id" - }, - { - "label": "eid", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L42", - "_origin": "ast", - "id": "urma_handshake_parsedhello_eid", - "community": 22, - "norm_label": "eid" - }, - { - "label": "uasid", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L43", - "_origin": "ast", - "id": "urma_handshake_parsedhello_uasid", - "community": 22, - "norm_label": "uasid" - }, - { - "label": "tp_type", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L44", - "_origin": "ast", - "id": "urma_handshake_parsedhello_tp_type", - "community": 22, - "norm_label": "tp_type" - }, - { - "label": "seg_eid", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L47", - "_origin": "ast", - "id": "urma_handshake_parsedhello_seg_eid", - "community": 22, - "norm_label": "seg_eid" - }, - { - "label": "seg_uasid", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L48", - "_origin": "ast", - "id": "urma_handshake_parsedhello_seg_uasid", - "community": 22, - "norm_label": "seg_uasid" - }, - { - "label": "seg_va", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L49", - "_origin": "ast", - "id": "urma_handshake_parsedhello_seg_va", - "community": 22, - "norm_label": "seg_va" - }, - { - "label": "seg_len", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L50", - "_origin": "ast", - "id": "urma_handshake_parsedhello_seg_len", - "community": 22, - "norm_label": "seg_len" - }, - { - "label": "seg_token_id", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L51", - "_origin": "ast", - "id": "urma_handshake_parsedhello_seg_token_id", - "community": 22, - "norm_label": "seg_token_id" - }, - { - "label": "HelloMessage", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L73", - "_origin": "ast", - "id": "urma_handshake_hellomessage", - "community": 1, - "norm_label": "hellomessage" - }, - { - "label": "msg_len", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L74", - "_origin": "ast", - "id": "urma_handshake_hellomessage_msg_len", - "community": 1, - "norm_label": "msg_len" - }, - { - "label": "hello_ver", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L75", - "_origin": "ast", - "id": "urma_handshake_hellomessage_hello_ver", - "community": 1, - "norm_label": "hello_ver" - }, - { - "label": "impl_ver", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L76", - "_origin": "ast", - "id": "urma_handshake_hellomessage_impl_ver", - "community": 1, - "norm_label": "impl_ver" - }, - { - "label": "buffer_size", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L77", - "_origin": "ast", - "id": "urma_handshake_hellomessage_buffer_size", - "community": 1, - "norm_label": "buffer_size" - }, - { - "label": "recv_buffer_cnt", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L78", - "_origin": "ast", - "id": "urma_handshake_hellomessage_recv_buffer_cnt", - "community": 1, - "norm_label": "recv_buffer_cnt" - }, - { - "label": "jetty_id", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L79", - "_origin": "ast", - "id": "urma_handshake_hellomessage_jetty_id", - "community": 1, - "norm_label": "jetty_id" - }, - { - "label": "eid", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L80", - "_origin": "ast", - "id": "urma_handshake_hellomessage_eid", - "community": 1, - "norm_label": "eid" - }, - { - "label": "uasid", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L81", - "_origin": "ast", - "id": "urma_handshake_hellomessage_uasid", - "community": 1, - "norm_label": "uasid" - }, - { - "label": "tp_type", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L82", - "_origin": "ast", - "id": "urma_handshake_hellomessage_tp_type", - "community": 1, - "norm_label": "tp_type" - }, - { - "label": "pad", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L83", - "_origin": "ast", - "id": "urma_handshake_hellomessage_pad", - "community": 1, - "norm_label": "pad" - }, - { - "label": "seg_eid", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L84", - "_origin": "ast", - "id": "urma_handshake_hellomessage_seg_eid", - "community": 1, - "norm_label": "seg_eid" - }, - { - "label": "seg_uasid", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L85", - "_origin": "ast", - "id": "urma_handshake_hellomessage_seg_uasid", - "community": 1, - "norm_label": "seg_uasid" - }, - { - "label": "seg_va", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L86", - "_origin": "ast", - "id": "urma_handshake_hellomessage_seg_va", - "community": 1, - "norm_label": "seg_va" - }, - { - "label": "seg_len", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L87", - "_origin": "ast", - "id": "urma_handshake_hellomessage_seg_len", - "community": 1, - "norm_label": "seg_len" - }, - { - "label": "seg_token_id", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L88", - "_origin": "ast", - "id": "urma_handshake_hellomessage_seg_token_id", - "community": 1, - "norm_label": "seg_token_id" - }, - { - "label": "Serialize", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L90", - "_origin": "ast", - "id": "urma_handshake_hellomessage_serialize", - "community": 1, - "norm_label": "serialize" - }, - { - "label": "Deserialize", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L91", - "_origin": "ast", - "id": "urma_handshake_hellomessage_deserialize", - "community": 1, - "norm_label": "deserialize" - }, - { - "label": "UrmaHandshake", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L97", - "_origin": "ast", - "id": "urma_handshake_urmahandshake", - "community": 1, - "norm_label": "urmahandshake" - }, - { - "label": ".~UrmaHandshake()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L99", - "_origin": "ast", - "id": "urma_handshake_urmahandshake_urmahandshake", - "community": 1, - "norm_label": ".~urmahandshake()" - }, - { - "label": "ProtocolVersion", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L100", - "_origin": "ast", - "id": "urma_handshake_urmahandshake_protocolversion", - "community": 1, - "norm_label": "protocolversion" - }, - { - "label": "SendLocalHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L104", - "_origin": "ast", - "id": "urma_handshake_urmahandshake_sendlocalhello", - "community": 1, - "norm_label": "sendlocalhello" - }, - { - "label": "ReceiveAndParseRemoteHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L110", - "_origin": "ast", - "id": "urma_handshake_urmahandshake_receiveandparseremotehello", - "community": 1, - "norm_label": "receiveandparseremotehello" - }, - { - "label": "UrmaHandshakeClientV2", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L114", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv2", - "community": 1, - "norm_label": "urmahandshakeclientv2" - }, - { - "label": ".UrmaHandshakeClientV2()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L116", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", - "community": 1, - "norm_label": ".urmahandshakeclientv2()" - }, - { - "label": ".ProtocolVersion()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L117", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv2_protocolversion", - "community": 1, - "norm_label": ".protocolversion()" - }, - { - "label": "SendLocalHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L118", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv2_sendlocalhello", - "community": 1, - "norm_label": "sendlocalhello" - }, - { - "label": "ReceiveAndParseRemoteHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L119", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", - "community": 1, - "norm_label": "receiveandparseremotehello" - }, - { - "label": "_ep", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L121", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv2_ep", - "community": 1, - "norm_label": "_ep" - }, - { - "label": "UrmaHandshakeServerV2", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L124", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv2", - "community": 1, - "norm_label": "urmahandshakeserverv2" - }, - { - "label": ".UrmaHandshakeServerV2()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L126", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", - "community": 1, - "norm_label": ".urmahandshakeserverv2()" - }, - { - "label": ".ProtocolVersion()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L127", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv2_protocolversion", - "community": 1, - "norm_label": ".protocolversion()" - }, - { - "label": "SendLocalHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L128", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv2_sendlocalhello", - "community": 1, - "norm_label": "sendlocalhello" - }, - { - "label": "ReceiveAndParseRemoteHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L129", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", - "community": 1, - "norm_label": "receiveandparseremotehello" - }, - { - "label": "_ep", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L131", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv2_ep", - "community": 1, - "norm_label": "_ep" - }, - { - "label": "UrmaHandshakeClientV3", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L135", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv3", - "community": 1, - "norm_label": "urmahandshakeclientv3" - }, - { - "label": ".UrmaHandshakeClientV3()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L137", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", - "community": 1, - "norm_label": ".urmahandshakeclientv3()" - }, - { - "label": ".ProtocolVersion()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L138", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv3_protocolversion", - "community": 1, - "norm_label": ".protocolversion()" - }, - { - "label": "SendLocalHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L139", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv3_sendlocalhello", - "community": 1, - "norm_label": "sendlocalhello" - }, - { - "label": "ReceiveAndParseRemoteHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L140", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", - "community": 1, - "norm_label": "receiveandparseremotehello" - }, - { - "label": "_ep", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L142", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeclientv3_ep", - "community": 1, - "norm_label": "_ep" - }, - { - "label": "UrmaHandshakeServerV3", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L145", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv3", - "community": 1, - "norm_label": "urmahandshakeserverv3" - }, - { - "label": ".UrmaHandshakeServerV3()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L147", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", - "community": 1, - "norm_label": ".urmahandshakeserverv3()" - }, - { - "label": ".ProtocolVersion()", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L148", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv3_protocolversion", - "community": 1, - "norm_label": ".protocolversion()" - }, - { - "label": "SendLocalHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L149", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv3_sendlocalhello", - "community": 1, - "norm_label": "sendlocalhello" - }, - { - "label": "ReceiveAndParseRemoteHello", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L150", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", - "community": 1, - "norm_label": "receiveandparseremotehello" - }, - { - "label": "_ep", - "file_type": "code", - "source_file": "urma_handshake.h", - "source_location": "L152", - "_origin": "ast", - "id": "urma_handshake_urmahandshakeserverv3_ep", - "community": 1, - "norm_label": "_ep" - }, - { - "label": "urma_helper.cpp", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L1", - "_origin": "ast", - "id": "urma_helper_cpp_urma_helper", - "community": 4, - "norm_label": "urma_helper.cpp" - }, - { - "label": "UserSeg", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L139", - "_origin": "ast", - "id": "urma_helper_userseg", - "community": 4, - "norm_label": "userseg" - }, - { - "label": "urma_target_seg_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_helper_cpp_urma_target_seg_t", - "community": 4, - "norm_label": "urma_target_seg_t" - }, - { - "label": "tseg", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L140", - "_origin": "ast", - "id": "urma_helper_userseg_tseg", - "community": 4, - "norm_label": "tseg" - }, - { - "label": "base", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L141", - "_origin": "ast", - "id": "urma_helper_userseg_base", - "community": 4, - "norm_label": "base" - }, - { - "label": "len", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L142", - "_origin": "ast", - "id": "urma_helper_userseg_len", - "community": 4, - "norm_label": "len" - }, - { - "label": "PageSize()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L155", - "_origin": "ast", - "id": "urma_helper_pagesize", - "community": 4, - "norm_label": "pagesize()" - }, - { - "label": "AlignUp()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L160", - "_origin": "ast", - "id": "urma_helper_alignup", - "community": 4, - "norm_label": "alignup()" - }, - { - "label": "BufferPool", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L174", - "_origin": "ast", - "id": "urma_helper_bufferpool", - "community": 4, - "norm_label": "bufferpool" - }, - { - "label": "Mutex", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_helper_cpp_mutex", - "community": 4, - "norm_label": "mutex" - }, - { - "label": "mutexes", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L175", - "_origin": "ast", - "id": "urma_helper_bufferpool_mutexes", - "community": 4, - "norm_label": "mutexes" - }, - { - "label": "vector", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "vector", - "community": 4, - "norm_label": "vector" - }, - { - "label": "free_lists", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L176", - "_origin": "ast", - "id": "urma_helper_bufferpool_free_lists", - "community": 4, - "norm_label": "free_lists" - }, - { - "label": "in_use", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L177", - "_origin": "ast", - "id": "urma_helper_bufferpool_in_use", - "community": 4, - "norm_label": "in_use" - }, - { - "label": "atomic", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "atomic", - "community": 4, - "norm_label": "atomic" - }, - { - "label": "outstanding", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L178", - "_origin": "ast", - "id": "urma_helper_bufferpool_outstanding", - "community": 4, - "norm_label": "outstanding" - }, - { - "label": ".buffer_count()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L180", - "_origin": "ast", - "id": "urma_helper_bufferpool_buffer_count", - "community": 4, - "norm_label": ".buffer_count()" - }, - { - "label": "ShardFor()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L186", - "_origin": "ast", - "id": "urma_helper_shardfor", - "community": 4, - "norm_label": "shardfor()" - }, - { - "label": "PreferredShard()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L193", - "_origin": "ast", - "id": "urma_helper_preferredshard", - "community": 4, - "norm_label": "preferredshard()" - }, - { - "label": "PoolAllocate()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L200", - "_origin": "ast", - "id": "urma_helper_poolallocate", - "community": 4, - "norm_label": "poolallocate()" - }, - { - "label": "PoolDeallocate()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L227", - "_origin": "ast", - "id": "urma_helper_pooldeallocate", - "community": 4, - "norm_label": "pooldeallocate()" - }, - { - "label": "InitPool()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L259", - "_origin": "ast", - "id": "urma_helper_initpool", - "community": 4, - "norm_label": "initpool()" - }, - { - "label": "GetPoolSegFor()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L313", - "_origin": "ast", - "id": "urma_helper_getpoolsegfor", - "community": 0, - "norm_label": "getpoolsegfor()" - }, - { - "label": "GlobalRelease()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L324", - "_origin": "ast", - "id": "urma_helper_globalrelease", - "community": 4, - "norm_label": "globalrelease()" - }, - { - "label": "GlobalUrmaInitializeImpl()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L372", - "_origin": "ast", - "id": "urma_helper_globalurmainitializeimpl", - "community": 4, - "norm_label": "globalurmainitializeimpl()" - }, - { - "label": "GlobalUrmaInitializeOrDie()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L521", - "_origin": "ast", - "id": "urma_helper_globalurmainitializeordie", - "community": 4, - "norm_label": "globalurmainitializeordie()" - }, - { - "label": "IsUrmaAvailable()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L540", - "_origin": "ast", - "id": "urma_helper_isurmaavailable", - "community": 0, - "norm_label": "isurmaavailable()" - }, - { - "label": "GlobalDisableUrma()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L544", - "_origin": "ast", - "id": "urma_helper_globaldisableurma", - "community": 4, - "norm_label": "globaldisableurma()" - }, - { - "label": "SupportedByUrma()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L548", - "_origin": "ast", - "id": "urma_helper_supportedbyurma", - "community": 4, - "norm_label": "supportedbyurma()" - }, - { - "label": "string", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_helper_cpp_string", - "community": 4, - "norm_label": "string" - }, - { - "label": "GetUrmaContext()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L552", - "_origin": "ast", - "id": "urma_helper_geturmacontext", - "community": 11, - "norm_label": "geturmacontext()" - }, - { - "label": "urma_context_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_helper_cpp_urma_context_t", - "community": 11, - "norm_label": "urma_context_t" - }, - { - "label": "GetUrmaMaxSge()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L553", - "_origin": "ast", - "id": "urma_helper_geturmamaxsge", - "community": 11, - "norm_label": "geturmamaxsge()" - }, - { - "label": "GetUrmaRecvBlockSize()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L554", - "_origin": "ast", - "id": "urma_helper_geturmarecvblocksize", - "community": 0, - "norm_label": "geturmarecvblocksize()" - }, - { - "label": "InitPollingModeWithTag()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L560", - "_origin": "ast", - "id": "urma_helper_initpollingmodewithtag", - "community": 4, - "norm_label": "initpollingmodewithtag()" - }, - { - "label": "bthread_tag_t", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_helper_cpp_bthread_tag_t", - "community": 4, - "norm_label": "bthread_tag_t" - }, - { - "label": "function", - "file_type": "code", - "source_file": "", - "source_location": "", - "_origin": "ast", - "id": "urma_helper_cpp_function", - "community": 4, - "norm_label": "function" - }, - { - "label": "ReleasePollingModeWithTag()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L570", - "_origin": "ast", - "id": "urma_helper_releasepollingmodewithtag", - "community": 4, - "norm_label": "releasepollingmodewithtag()" - }, - { - "label": "RegisterMemoryForUrma()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L578", - "_origin": "ast", - "id": "urma_helper_registermemoryforurma", - "community": 4, - "norm_label": "registermemoryforurma()" - }, - { - "label": "DeregisterMemoryForUrma()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L613", - "_origin": "ast", - "id": "urma_helper_deregistermemoryforurma", - "community": 4, - "norm_label": "deregistermemoryforurma()" - }, - { - "label": "GetSegHandle()", - "file_type": "code", - "source_file": "urma_helper.cpp", - "source_location": "L622", - "_origin": "ast", - "id": "urma_helper_getseghandle", - "community": 4, - "norm_label": "getseghandle()" - }, - { - "label": "urma_helper.h", - "file_type": "code", - "source_file": "urma_helper.h", - "source_location": "L1", - "_origin": "ast", - "id": "urma_helper_h_urma_helper", - "community": 0, - "norm_label": "urma_helper.h" - } - ], - "links": [ - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L41", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "atomic", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L44", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "deque", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L46", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_cpp_mutex", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L54", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_jfcstate", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L60", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_pendingrecv", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L83", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_pushcompletion", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L439", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_ack_async_event", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L674", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_ack_jfc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L503", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_bind_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L268", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_create_context", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L441", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_create_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L319", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_create_jfc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L290", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_create_jfce", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L348", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_create_jfr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L280", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_delete_context", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L458", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_delete_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L337", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_delete_jfc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L308", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_delete_jfce", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L364", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_delete_jfr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L233", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_free_device_list", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L262", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_free_eid_list", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L427", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_get_async_event", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L195", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_get_device_by_name", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L155", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_get_device_list", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L252", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_get_eid_list", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L478", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_import_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L402", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_import_seg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L122", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_init", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L514", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_modify_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L627", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_poll_jfc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L522", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_post_jetty_send_wr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L605", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_post_jfr_wr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L239", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_query_device", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L647", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_rearm_jfc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L376", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_register_seg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L469", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_unbind_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L493", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_unimport_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L417", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_unimport_seg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L131", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_uninit", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L392", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_unregister_seg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L651", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "mock_urma_urma_wait_jfc", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L38", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "sdk_urma_urma_api", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L50", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma", - "target": "vector", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L56", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "mock_urma_jfcstate", - "target": "deque", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L55", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "mock_urma_jfcstate", - "target": "mock_urma_cpp_mutex", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L56", - "weight": 1.0, - "context": "generic_arg", - "_origin": "ast", - "source": "mock_urma_jfcstate", - "target": "mock_urma_cpp_urma_cr_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L56", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "mock_urma_jfcstate", - "target": "mock_urma_jfcstate_completions", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L57", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "mock_urma_jfcstate", - "target": "mock_urma_jfcstate_event_pending", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L55", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "mock_urma_jfcstate", - "target": "mock_urma_jfcstate_mutex", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L83", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_pushcompletion", - "target": "mock_urma_jfcstate", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L83", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_pushcompletion", - "target": "mock_urma_cpp_urma_cr_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L627", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_poll_jfc", - "target": "mock_urma_cpp_urma_cr_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L61", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "mock_urma_pendingrecv", - "target": "mock_urma_pendingrecv_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L62", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "mock_urma_pendingrecv", - "target": "mock_urma_pendingrecv_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L63", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "mock_urma_pendingrecv", - "target": "mock_urma_pendingrecv_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L83", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_pushcompletion", - "target": "mock_urma_cpp_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L543", - "weight": 1.0, - "_origin": "ast", - "source": "mock_urma_urma_post_jetty_send_wr", - "target": "mock_urma_pushcompletion", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L674", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_ack_jfc", - "target": "mock_urma_cpp_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L319", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jfc", - "target": "mock_urma_cpp_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L337", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_jfc", - "target": "mock_urma_cpp_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L627", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_poll_jfc", - "target": "mock_urma_cpp_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L647", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_rearm_jfc", - "target": "mock_urma_cpp_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L651", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_wait_jfc", - "target": "mock_urma_cpp_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L122", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_init", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L122", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_init", - "target": "urma_init_attr_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L387", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "mock_urma_urma_init" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L503", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_bind_jetty", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L280", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_context", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L458", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_jetty", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L337", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_jfc", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L308", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_jfce", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L364", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_jfr", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L427", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_get_async_event", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L514", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_modify_jetty", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L522", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_post_jetty_send_wr", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L605", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_post_jfr_wr", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L239", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_query_device", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L647", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_rearm_jfc", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L469", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_unbind_jetty", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L493", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_unimport_jetty", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L417", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_unimport_seg", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L131", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_uninit", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L392", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_unregister_seg", - "target": "mock_urma_cpp_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L359", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalrelease", - "target": "mock_urma_urma_uninit" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L155", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_get_device_list", - "target": "urma_device_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L405", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "mock_urma_urma_get_device_list" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L268", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_create_context", - "target": "urma_device_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L233", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_free_device_list", - "target": "urma_device_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L195", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_get_device_by_name", - "target": "urma_device_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L252", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_get_eid_list", - "target": "urma_device_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L239", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_query_device", - "target": "urma_device_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L408", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "mock_urma_urma_free_device_list" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L239", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_query_device", - "target": "urma_device_attr_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L427", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "mock_urma_urma_query_device" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L252", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_get_eid_list", - "target": "urma_eid_info_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L434", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "mock_urma_urma_get_eid_list" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L262", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_free_eid_list", - "target": "urma_eid_info_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L437", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "mock_urma_urma_free_eid_list" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L268", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_create_context", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L442", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "mock_urma_urma_create_context" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L441", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jetty", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L319", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jfc", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L290", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jfce", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L348", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jfr", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L280", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_context", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L427", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_get_async_event", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L478", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_import_jetty", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L402", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_import_seg", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L376", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_register_seg", - "target": "mock_urma_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L355", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalrelease", - "target": "mock_urma_urma_delete_context" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L290", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jfce", - "target": "mock_urma_cpp_urma_jfce_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L385", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_allocateresources", - "target": "mock_urma_urma_create_jfce" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1525", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_globalinitialize", - "target": "mock_urma_urma_create_jfce" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L308", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_jfce", - "target": "mock_urma_cpp_urma_jfce_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L651", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_wait_jfc", - "target": "mock_urma_cpp_urma_jfce_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L131", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaresource_urmaresource", - "target": "mock_urma_urma_delete_jfce" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L319", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jfc", - "target": "mock_urma_cpp_urma_jfc_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L396", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_allocateresources", - "target": "mock_urma_urma_create_jfc" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1534", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_globalinitialize", - "target": "mock_urma_urma_create_jfc" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L130", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaresource_urmaresource", - "target": "mock_urma_urma_delete_jfc" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L348", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jfr", - "target": "mock_urma_cpp_urma_jfr_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L348", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jfr", - "target": "mock_urma_cpp_urma_jfr_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L405", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_allocateresources", - "target": "mock_urma_urma_create_jfr" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1542", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_globalinitialize", - "target": "mock_urma_urma_create_jfr" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L364", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_jfr", - "target": "mock_urma_cpp_urma_jfr_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L605", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_post_jfr_wr", - "target": "mock_urma_cpp_urma_jfr_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L129", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaresource_urmaresource", - "target": "mock_urma_urma_delete_jfr" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L376", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_register_seg", - "target": "mock_urma_cpp_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L376", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_register_seg", - "target": "urma_seg_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L290", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_initpool", - "target": "mock_urma_urma_register_seg" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L595", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_registermemoryforurma", - "target": "mock_urma_urma_register_seg" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L402", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_import_seg", - "target": "mock_urma_cpp_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L417", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_unimport_seg", - "target": "mock_urma_cpp_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L392", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_unregister_seg", - "target": "mock_urma_cpp_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L618", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_deregistermemoryforurma", - "target": "mock_urma_urma_unregister_seg" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L340", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalrelease", - "target": "mock_urma_urma_unregister_seg" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_helper.cpp", - "source_location": "L607", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_registermemoryforurma", - "target": "mock_urma_urma_unregister_seg" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L402", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_import_seg", - "target": "mock_urma_cpp_urma_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L402", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_import_seg", - "target": "mock_urma_cpp_urma_token_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L402", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_import_seg", - "target": "urma_import_seg_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L512", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_importpeer", - "target": "mock_urma_urma_import_seg" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L478", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_import_jetty", - "target": "mock_urma_cpp_urma_token_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L127", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaresource_urmaresource", - "target": "mock_urma_urma_unimport_seg" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L427", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_get_async_event", - "target": "urma_async_event_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L439", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_ack_async_event", - "target": "urma_async_event_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L441", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jetty", - "target": "mock_urma_cpp_urma_jetty_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L441", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_create_jetty", - "target": "mock_urma_cpp_urma_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L420", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_allocateresources", - "target": "mock_urma_urma_create_jetty" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1556", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_globalinitialize", - "target": "mock_urma_urma_create_jetty" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L503", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_bind_jetty", - "target": "mock_urma_cpp_urma_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L458", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_delete_jetty", - "target": "mock_urma_cpp_urma_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L514", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_modify_jetty", - "target": "mock_urma_cpp_urma_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L522", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_post_jetty_send_wr", - "target": "mock_urma_cpp_urma_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L469", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_unbind_jetty", - "target": "mock_urma_cpp_urma_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L128", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaresource_urmaresource", - "target": "mock_urma_urma_delete_jetty" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L478", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "mock_urma_urma_import_jetty", - "target": "mock_urma_cpp_urma_target_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L478", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_import_jetty", - "target": "urma_rjetty_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L532", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_importpeer", - "target": "mock_urma_urma_import_jetty" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L503", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_bind_jetty", - "target": "mock_urma_cpp_urma_target_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L493", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_unimport_jetty", - "target": "mock_urma_cpp_urma_target_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L126", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaresource_urmaresource", - "target": "mock_urma_urma_unimport_jetty" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L514", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_modify_jetty", - "target": "urma_jetty_attr_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L522", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_post_jetty_send_wr", - "target": "urma_jfs_wr_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L642", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", - "target": "mock_urma_urma_post_jetty_send_wr" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L743", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_sendimm", - "target": "mock_urma_urma_post_jetty_send_wr" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "mock_urma.cpp", - "source_location": "L605", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "mock_urma_urma_post_jfr_wr", - "target": "urma_jfr_wr_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L681", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_dopostrecv", - "target": "mock_urma_urma_post_jfr_wr" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L868", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_pollcq", - "target": "mock_urma_urma_poll_jfc" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1358", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_reqnotifycq", - "target": "mock_urma_urma_rearm_jfc" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1329", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_waitcqevent", - "target": "mock_urma_urma_wait_jfc" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L896", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_pollcq", - "target": "mock_urma_urma_ack_jfc" - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_api.h", - "source_location": "L16", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_api", - "target": "sdk_urma_urma_types", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L46", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "sdk_urma_urma_api", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L35", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "sdk_urma_urma_api", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L44", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "sdk_urma_urma_api", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.h", - "source_location": "L31", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_h_urma_helper", - "target": "sdk_urma_urma_api", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L26", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_opcode", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L23", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "atomic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1358", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_active_tp_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1364", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_active_tp_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1145", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_async_event", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1069", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_cas_wr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L358", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_cc_entry", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L383", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_context", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1127", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_cr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1122", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_cr_token", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L364", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_device", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L302", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_device_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L254", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_device_cap", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L396", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_eid_info", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1082", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_faa_wr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1347", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_get_tp_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L298", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_guid", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L85", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_init_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L794", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L782", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jetty_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L726", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jetty_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L724", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jetty_grp", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L840", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L443", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jetty_id", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L788", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jetty_opt", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L481", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfc", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L437", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfc_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L423", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfc_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L467", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfc_opt", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L406", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfce", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L401", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfce_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L664", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L658", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfr_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L639", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfr_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1215", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfr_info", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L625", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfr_opt", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1105", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfr_wr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L568", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfs", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L585", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfs_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L548", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfs_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L534", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfs_opt", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1091", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_jfs_wr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1295", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_net_addr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1306", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_net_addr_info", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L807", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_notifier", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L818", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_notify", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L318", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_ops", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L160", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_port_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L319", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_provider_ops", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L152", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_ref", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L756", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_rjetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L702", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_rjfr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1053", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_rw_wr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L964", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_seg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L954", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_seg_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1201", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_seg_info", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1062", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_send_wr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1014", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_sg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1002", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_sge", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L178", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_sl_info", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L316", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_sysfs_dev", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L765", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_target_jetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L971", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_target_seg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1193", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_target_ur", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L312", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_token", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L946", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_token_id", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L709", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_tp", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1311", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_tp_attr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1376", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_tp_attr_value", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1238", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_tp_cfg", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1354", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_tp_info", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L864", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_ubva", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1184", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_ur", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1207", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_ur_info", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L980", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_user_ctl_in", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L990", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_user_ctl_out", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L996", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "sdk_urma_urma_types_urma_user_target_seg", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast", - "source": "sdk_urma_urma_types", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L36", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "sdk_urma_urma_types", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L27", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "sdk_urma_urma_types", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L45", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "sdk_urma_urma_types", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.h", - "source_location": "L32", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_h_urma_helper", - "target": "sdk_urma_urma_types", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L86", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_init_attr", - "target": "sdk_urma_urma_types_urma_init_attr_token", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L87", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_init_attr", - "target": "sdk_urma_urma_types_urma_init_attr_uasid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L165", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "sdk_urma_urma_types_urma_port_attr_active_mtu", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L164", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "sdk_urma_urma_types_urma_port_attr_active_speed", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L163", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "sdk_urma_urma_types_urma_port_attr_active_width", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L161", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "sdk_urma_urma_types_urma_port_attr_max_mtu", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L162", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "sdk_urma_urma_types_urma_port_attr_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L163", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "urma_link_width_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L161", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "urma_mtu_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L162", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "urma_port_state_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L164", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_port_attr", - "target": "urma_speed_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1317", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "urma_mtu_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L179", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sl_info", - "target": "sdk_urma_urma_types_urma_sl_info_sl", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L180", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sl_info", - "target": "sdk_urma_urma_types_urma_sl_info_tp_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L279", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_atomic_feat", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L282", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_ceq_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L281", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_congestion_ctrl_alg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L255", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_feature", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L272", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_cas_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L284", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_eid_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L274", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_add_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L276", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_and_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L277", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_or_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L275", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_sub_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L278", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_fetch_and_xor_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L259", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jetty", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L260", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jetty_grp", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L261", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jetty_in_jetty_grp", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L256", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfc", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L262", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfc_depth", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L258", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L264", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfr_depth", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L268", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfr_sge", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L257", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfs", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L263", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfs_depth", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L265", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfs_inline_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L267", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfs_rsge", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L266", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_jfs_sge", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L269", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_msg_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L288", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_netaddr_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L286", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_oor_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L270", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_read_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L273", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_swap_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L283", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_tp_in_tpg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L271", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_max_write_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L287", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_mn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L285", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_page_size_cap", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L295", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_priority_info", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L290", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_rc_order_cap", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L292", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_rc_tp_cap", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L289", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_rm_order_cap", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L291", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_rm_tp_cap", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L294", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_tp_feature", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L280", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_trans_mode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L293", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "sdk_urma_urma_types_urma_device_cap_um_tp_cap", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L279", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "urma_atomic_feature_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L255", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "urma_device_feature_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L289", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "urma_order_type_cap_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L294", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "urma_tp_feature_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L291", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_cap", - "target": "urma_tp_type_cap_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L299", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_guid", - "target": "sdk_urma_urma_types_urma_guid_raw", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L304", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_attr", - "target": "sdk_urma_urma_types_urma_device_attr_dev_cap", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L303", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_attr", - "target": "sdk_urma_urma_types_urma_device_attr_guid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L306", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_attr", - "target": "sdk_urma_urma_types_urma_device_attr_port_attr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L305", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_attr", - "target": "sdk_urma_urma_types_urma_device_attr_port_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L308", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_attr", - "target": "sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_max", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L307", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_attr", - "target": "sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_min", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L304", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_attr", - "target": "urma_device_cap_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L303", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device_attr", - "target": "urma_guid_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L313", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token", - "target": "sdk_urma_urma_types_urma_token_token", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L359", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cc_entry", - "target": "sdk_urma_urma_types_urma_cc_entry_alg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L360", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cc_entry", - "target": "sdk_urma_urma_types_urma_cc_entry_cc_pattern_idx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L361", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cc_entry", - "target": "sdk_urma_urma_types_urma_cc_entry_cc_priority", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L359", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cc_entry", - "target": "urma_tp_cc_alg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L365", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device", - "target": "sdk_urma_urma_types_urma_device_name", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L369", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device", - "target": "sdk_urma_urma_types_urma_device_ops", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L367", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device", - "target": "sdk_urma_urma_types_urma_device_path", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L370", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device", - "target": "sdk_urma_urma_types_urma_device_sysfs_dev", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L368", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device", - "target": "sdk_urma_urma_types_urma_device_type", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L368", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_device", - "target": "urma_transport_type_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1329", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "urma_transport_type_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L388", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "pthread_mutex_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L393", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_aggr_mode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L387", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_async_fd", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L384", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_dev", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L386", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_dev_fd", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L389", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L390", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_eid_index", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L388", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_mutex", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L385", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_ops", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L392", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_ref", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L391", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "sdk_urma_urma_types_urma_context_uasid", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L393", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "urma_context_aggr_mode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L389", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_context", - "target": "urma_eid_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L801", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "pthread_mutex_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L856", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "pthread_mutex_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L486", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "pthread_mutex_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L669", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "pthread_mutex_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L573", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "pthread_mutex_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L397", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_eid_info", - "target": "urma_eid_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1350", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_get_tp_cfg", - "target": "urma_eid_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L444", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_id", - "target": "urma_eid_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1217", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_info", - "target": "urma_eid_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L865", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ubva", - "target": "urma_eid_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L397", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_eid_info", - "target": "sdk_urma_urma_types_urma_eid_info_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L398", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_eid_info", - "target": "sdk_urma_urma_types_urma_eid_info_eid_index", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L402", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfce_cfg", - "target": "sdk_urma_urma_types_urma_jfce_cfg_depth", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L403", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfce_cfg", - "target": "sdk_urma_urma_types_urma_jfce_cfg_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L407", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfce", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L408", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfce", - "target": "sdk_urma_urma_types_urma_jfce_fd", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L409", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfce", - "target": "sdk_urma_urma_types_urma_jfce_ref", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L407", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfce", - "target": "sdk_urma_urma_types_urma_jfce_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1147", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_async_event", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L795", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L851", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L482", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L665", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L569", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L808", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notifier", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L766", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L975", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L947", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token_id", - "target": "sdk_urma_urma_types_h_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L428", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_cfg", - "target": "sdk_urma_urma_types_h_urma_jfce_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L426", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_cfg", - "target": "sdk_urma_urma_types_urma_jfc_cfg_ceqn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L424", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_cfg", - "target": "sdk_urma_urma_types_urma_jfc_cfg_depth", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L425", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_cfg", - "target": "sdk_urma_urma_types_urma_jfc_cfg_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L428", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_cfg", - "target": "sdk_urma_urma_types_urma_jfc_cfg_jfce", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L429", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_cfg", - "target": "sdk_urma_urma_types_urma_jfc_cfg_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L425", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_cfg", - "target": "urma_jfc_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L438", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_attr", - "target": "sdk_urma_urma_types_urma_jfc_attr_mask", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L439", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_attr", - "target": "sdk_urma_urma_types_urma_jfc_attr_moderate_count", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L440", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_attr", - "target": "sdk_urma_urma_types_urma_jfc_attr_moderate_period", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L444", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_id", - "target": "sdk_urma_urma_types_urma_jetty_id_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L446", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_id", - "target": "sdk_urma_urma_types_urma_jetty_id_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L445", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_id", - "target": "sdk_urma_urma_types_urma_jetty_id_uasid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L470", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_is_actived", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L468", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_jfc_opt_mask", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L478", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_reserved", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L477", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_ci", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L471", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_cqe_base_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L473", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L474", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_status", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L472", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L475", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L476", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc_opt", - "target": "sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi_type", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L487", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "pthread_cond_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L484", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_h_urma_jfc_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L489", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_async_events_acked", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L488", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_comp_events_acked", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L487", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_event_cond", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L486", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_event_mutex", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L485", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L484", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_jfc_cfg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L483", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_jfc_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L482", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L490", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "sdk_urma_urma_types_urma_jfc_urma_jfc_opt", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L483", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "urma_jfc_id_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L490", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfc", - "target": "urma_jfc_opt_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L802", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "pthread_cond_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L859", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "pthread_cond_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L670", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "pthread_cond_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L574", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "pthread_cond_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L537", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_is_actived", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L535", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_jfs_opt_mask", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L545", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_reserved", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L544", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_ci", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L540", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L541", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_status", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L539", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L542", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L543", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L538", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_opt", - "target": "sdk_urma_urma_types_urma_jfs_opt_urma_jfs_sqe_base_addr", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L564", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_h_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L549", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_depth", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L562", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_err_timeout", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L550", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L564", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_jfc", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L556", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_max_inline_data", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L555", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_max_rsge", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L554", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_max_sge", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L552", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_priority", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L558", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_rnr_retry", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L551", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_trans_mode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L565", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "sdk_urma_urma_types_urma_jfs_cfg_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L550", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "urma_jfs_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L551", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_cfg", - "target": "urma_transport_mode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1349", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_get_tp_cfg", - "target": "urma_transport_mode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L644", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "urma_transport_mode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L758", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "urma_transport_mode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L704", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjfr", - "target": "urma_transport_mode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L769", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "urma_transport_mode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1241", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "urma_transport_mode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L648", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_h_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L575", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_urma_jfs_async_events_acked", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L574", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_urma_jfs_event_cond", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L573", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_urma_jfs_event_mutex", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L572", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_urma_jfs_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L571", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_urma_jfs_jfs_cfg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L570", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_urma_jfs_jfs_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L569", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_urma_jfs_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L576", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "sdk_urma_urma_types_urma_jfs_urma_jfs_opt", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L571", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "urma_jfs_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L570", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "urma_jfs_id_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L576", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs", - "target": "urma_jfs_opt_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L731", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_cfg", - "target": "urma_jfs_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L790", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_opt", - "target": "urma_jfs_opt_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L586", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_attr", - "target": "sdk_urma_urma_types_urma_jfs_attr_mask", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L587", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_attr", - "target": "sdk_urma_urma_types_urma_jfs_attr_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L587", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_attr", - "target": "urma_jfs_state_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L628", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_is_actived", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L626", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_jfr_opt_mask", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L636", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_reserved", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L635", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_ci", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L631", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L632", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_status", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L630", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L633", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L634", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L629", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_opt", - "target": "sdk_urma_urma_types_urma_jfr_opt_urma_jfr_rqe_base_addr", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L649", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_h_urma_token_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L642", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_depth", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L643", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L640", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L648", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_jfc", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L645", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_max_sge", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L646", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_min_rnr_timer", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L649", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_token_value", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L644", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_trans_mode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L650", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "sdk_urma_urma_types_urma_jfr_cfg_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L643", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_cfg", - "target": "urma_jfr_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1124", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr_token", - "target": "sdk_urma_urma_types_h_urma_token_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L843", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "sdk_urma_urma_types_h_urma_token_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L958", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "sdk_urma_urma_types_h_urma_token_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L999", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_target_seg", - "target": "sdk_urma_urma_types_h_urma_token_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L659", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_attr", - "target": "sdk_urma_urma_types_urma_jfr_attr_mask", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L660", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_attr", - "target": "sdk_urma_urma_types_urma_jfr_attr_rx_threshold", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L661", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_attr", - "target": "sdk_urma_urma_types_urma_jfr_attr_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L661", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_attr", - "target": "urma_jfr_state_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L667", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_h_urma_jfr_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L671", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_urma_jfr_async_events_acked", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L670", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_urma_jfr_event_cond", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L669", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_urma_jfr_event_mutex", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L668", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_urma_jfr_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L667", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_urma_jfr_jfr_cfg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L666", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_urma_jfr_jfr_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L665", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_urma_jfr_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L672", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "sdk_urma_urma_types_urma_jfr_urma_jfr_opt", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L666", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "urma_jfr_id_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L672", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr", - "target": "urma_jfr_opt_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L703", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjfr", - "target": "urma_jfr_id_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L705", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjfr", - "target": "sdk_urma_urma_types_urma_rjfr_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L703", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjfr", - "target": "sdk_urma_urma_types_urma_rjfr_jfr_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L706", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjfr", - "target": "sdk_urma_urma_types_urma_rjfr_tp_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L704", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjfr", - "target": "sdk_urma_urma_types_urma_rjfr_trans_mode", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L705", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjfr", - "target": "urma_import_jetty_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L706", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjfr", - "target": "urma_tp_type_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L761", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "urma_import_jetty_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L772", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "urma_import_jetty_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L762", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "urma_tp_type_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L774", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "urma_tp_type_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L710", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp", - "target": "sdk_urma_urma_types_urma_tp_tpn", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L855", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_h_urma_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L860", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_async_events_acked", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L853", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L859", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_event_cond", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L858", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_event_mutex", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L857", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L854", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_jetty_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L852", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_jetty_grp_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L855", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_jetty_list", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L856", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_list_mutex", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L851", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "sdk_urma_urma_types_urma_jetty_grp_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L853", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "urma_jetty_grp_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L852", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp", - "target": "urma_jetty_id_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L728", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_cfg", - "target": "sdk_urma_urma_types_urma_jetty_cfg_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L727", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_cfg", - "target": "sdk_urma_urma_types_urma_jetty_cfg_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L741", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_cfg", - "target": "sdk_urma_urma_types_urma_jetty_cfg_jetty_grp", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L731", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_cfg", - "target": "sdk_urma_urma_types_urma_jetty_cfg_jfs_cfg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L742", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_cfg", - "target": "sdk_urma_urma_types_urma_jetty_cfg_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L728", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_cfg", - "target": "urma_jetty_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L741", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_cfg", - "target": "urma_jetty_grp_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L761", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "sdk_urma_urma_types_urma_rjetty_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L757", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "sdk_urma_urma_types_urma_rjetty_jetty_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L759", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "sdk_urma_urma_types_urma_rjetty_policy", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L762", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "sdk_urma_urma_types_urma_rjetty_tp_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L758", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "sdk_urma_urma_types_urma_rjetty_trans_mode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L760", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "sdk_urma_urma_types_urma_rjetty_type", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L759", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "urma_jetty_grp_policy_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L757", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "urma_jetty_id_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L760", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rjetty", - "target": "urma_target_type_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1135", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "urma_jetty_id_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L796", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "urma_jetty_id_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L767", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "urma_jetty_id_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L846", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "urma_jetty_grp_policy_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L773", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "urma_jetty_grp_policy_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L771", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "urma_target_type_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L772", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L768", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L767", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L773", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_policy", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L770", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_tp", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L774", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_tp_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L769", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_trans_mode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L771", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L766", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "sdk_urma_urma_types_urma_target_jetty_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L770", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_jetty", - "target": "urma_tp_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L783", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_attr", - "target": "sdk_urma_urma_types_urma_jetty_attr_mask", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L784", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_attr", - "target": "sdk_urma_urma_types_urma_jetty_attr_rx_threshold", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L785", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_attr", - "target": "sdk_urma_urma_types_urma_jetty_attr_state", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L785", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_attr", - "target": "urma_jetty_state_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L789", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_opt", - "target": "sdk_urma_urma_types_urma_jetty_opt_is_actived", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L790", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_opt", - "target": "sdk_urma_urma_types_urma_jetty_opt_jfs_opt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L791", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_opt", - "target": "sdk_urma_urma_types_urma_jetty_opt_reserved", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L799", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_h_urma_jetty_cfg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L797", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_h_urma_target_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L803", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_async_events_acked", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L802", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_event_cond", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L801", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_event_mutex", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L800", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L799", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_jetty_cfg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L796", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_jetty_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L797", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_remote_jetty", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L795", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L804", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "sdk_urma_urma_types_urma_jetty_urma_jetty_opt", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L804", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty", - "target": "urma_jetty_opt_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1094", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_wr", - "target": "sdk_urma_urma_types_h_urma_target_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L809", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notifier", - "target": "sdk_urma_urma_types_urma_notifier_fd", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L810", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notifier", - "target": "sdk_urma_urma_types_urma_notifier_incomplete_tjetty_list", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L808", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notifier", - "target": "sdk_urma_urma_types_urma_notifier_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L820", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notify", - "target": "sdk_urma_urma_types_h_urma_status_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L820", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notify", - "target": "sdk_urma_urma_types_urma_notify_status", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L819", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notify", - "target": "sdk_urma_urma_types_urma_notify_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L821", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notify", - "target": "sdk_urma_urma_types_urma_notify_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L819", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_notify", - "target": "urma_notify_type_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L842", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L844", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L841", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_name", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L846", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_policy", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L843", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_token_value", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L847", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "sdk_urma_urma_types_urma_jetty_grp_cfg_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L842", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jetty_grp_cfg", - "target": "urma_jetty_grp_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L865", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ubva", - "target": "sdk_urma_urma_types_urma_ubva_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L866", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ubva", - "target": "sdk_urma_urma_types_urma_ubva_uasid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L867", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ubva", - "target": "sdk_urma_urma_types_urma_ubva_va", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L951", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token_id", - "target": "sdk_urma_urma_types_urma_token_id_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L949", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token_id", - "target": "sdk_urma_urma_types_urma_token_id_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L950", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token_id", - "target": "sdk_urma_urma_types_urma_token_id_ref", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L948", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token_id", - "target": "sdk_urma_urma_types_urma_token_id_token_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L947", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token_id", - "target": "sdk_urma_urma_types_urma_token_id_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L950", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token_id", - "target": "urma_ref_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L951", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_token_id", - "target": "urma_token_id_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L959", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "sdk_urma_urma_types_urma_seg_cfg_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L961", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "sdk_urma_urma_types_urma_seg_cfg_iova", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L956", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "sdk_urma_urma_types_urma_seg_cfg_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L957", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "sdk_urma_urma_types_urma_seg_cfg_token_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L958", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "sdk_urma_urma_types_urma_seg_cfg_token_value", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L960", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "sdk_urma_urma_types_urma_seg_cfg_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L955", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "sdk_urma_urma_types_urma_seg_cfg_va", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L959", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "urma_reg_seg_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L957", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_cfg", - "target": "urma_token_id_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L976", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "urma_token_id_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L967", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg", - "target": "sdk_urma_urma_types_urma_seg_attr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L966", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg", - "target": "sdk_urma_urma_types_urma_seg_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L968", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg", - "target": "sdk_urma_urma_types_urma_seg_token_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L965", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg", - "target": "sdk_urma_urma_types_urma_seg_ubva", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L967", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg", - "target": "urma_seg_attr_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L965", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg", - "target": "urma_ubva_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L997", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_target_seg", - "target": "urma_seg_attr_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L972", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "sdk_urma_urma_types_h_urma_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L977", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "sdk_urma_urma_types_urma_target_seg_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L974", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "sdk_urma_urma_types_urma_target_seg_mva", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L972", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "sdk_urma_urma_types_urma_target_seg_seg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L976", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "sdk_urma_urma_types_urma_target_seg_token_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L975", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "sdk_urma_urma_types_urma_target_seg_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L973", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_seg", - "target": "sdk_urma_urma_types_urma_target_seg_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1202", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_info", - "target": "sdk_urma_urma_types_h_urma_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L981", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_ctl_in", - "target": "sdk_urma_urma_types_urma_user_ctl_in_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L982", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_ctl_in", - "target": "sdk_urma_urma_types_urma_user_ctl_in_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L987", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_ctl_in", - "target": "sdk_urma_urma_types_urma_user_ctl_in_opcode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L991", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_ctl_out", - "target": "sdk_urma_urma_types_urma_user_ctl_out_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L992", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_ctl_out", - "target": "sdk_urma_urma_types_urma_user_ctl_out_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L993", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_ctl_out", - "target": "sdk_urma_urma_types_urma_user_ctl_out_reserved", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L997", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_target_seg", - "target": "sdk_urma_urma_types_urma_user_target_seg_attr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L998", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_target_seg", - "target": "sdk_urma_urma_types_urma_user_target_seg_token_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L999", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_user_target_seg", - "target": "sdk_urma_urma_types_urma_user_target_seg_token_value", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1010", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sge", - "target": "sdk_urma_urma_types_h_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1003", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sge", - "target": "sdk_urma_urma_types_urma_sge_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1004", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sge", - "target": "sdk_urma_urma_types_urma_sge_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1010", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sge", - "target": "sdk_urma_urma_types_urma_sge_tseg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1011", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sge", - "target": "sdk_urma_urma_types_urma_sge_user_tseg", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1011", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sge", - "target": "urma_user_tseg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1066", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_send_wr", - "target": "sdk_urma_urma_types_h_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1197", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_ur", - "target": "sdk_urma_urma_types_h_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1015", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sg", - "target": "sdk_urma_urma_types_h_urma_sge_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1016", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sg", - "target": "sdk_urma_urma_types_urma_sg_num_sge", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1015", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_sg", - "target": "sdk_urma_urma_types_urma_sg_sge", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1070", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cas_wr", - "target": "sdk_urma_urma_types_h_urma_sge_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1083", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_faa_wr", - "target": "sdk_urma_urma_types_h_urma_sge_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1056", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rw_wr", - "target": "sdk_urma_urma_types_urma_rw_wr_dst", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1059", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rw_wr", - "target": "sdk_urma_urma_types_urma_rw_wr_notify_data", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1054", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rw_wr", - "target": "sdk_urma_urma_types_urma_rw_wr_src", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1058", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rw_wr", - "target": "sdk_urma_urma_types_urma_rw_wr_target_hint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1054", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_rw_wr", - "target": "urma_sg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1106", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_wr", - "target": "urma_sg_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1063", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_send_wr", - "target": "urma_sg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1065", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_send_wr", - "target": "sdk_urma_urma_types_urma_send_wr_imm_data", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1063", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_send_wr", - "target": "sdk_urma_urma_types_urma_send_wr_src", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1064", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_send_wr", - "target": "sdk_urma_urma_types_urma_send_wr_target_hint", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1066", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_send_wr", - "target": "sdk_urma_urma_types_urma_send_wr_tseg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1070", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cas_wr", - "target": "sdk_urma_urma_types_urma_cas_wr_dst", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1071", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cas_wr", - "target": "sdk_urma_urma_types_urma_cas_wr_src", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1083", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_faa_wr", - "target": "sdk_urma_urma_types_urma_faa_wr_dst", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1084", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_faa_wr", - "target": "sdk_urma_urma_types_urma_faa_wr_src", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1093", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_wr", - "target": "sdk_urma_urma_types_urma_jfs_wr_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1102", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_wr", - "target": "sdk_urma_urma_types_urma_jfs_wr_next", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1092", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_wr", - "target": "sdk_urma_urma_types_urma_jfs_wr_opcode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1094", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_wr", - "target": "sdk_urma_urma_types_urma_jfs_wr_tjetty", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1095", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_wr", - "target": "sdk_urma_urma_types_urma_jfs_wr_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1093", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_wr", - "target": "urma_jfs_wr_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1092", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfs_wr", - "target": "urma_opcode_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1108", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_wr", - "target": "sdk_urma_urma_types_urma_jfr_wr_next", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1106", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_wr", - "target": "sdk_urma_urma_types_urma_jfr_wr_src", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1107", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_wr", - "target": "sdk_urma_urma_types_urma_jfr_wr_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1123", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr_token", - "target": "sdk_urma_urma_types_urma_cr_token_token_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1124", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr_token", - "target": "sdk_urma_urma_types_urma_cr_token_token_value", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1132", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_completion_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1131", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1134", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_local_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1130", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_opcode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1135", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_remote_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1128", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_status", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1141", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_tpn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1129", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1142", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "sdk_urma_urma_types_urma_cr_user_data", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1131", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "urma_cr_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1130", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "urma_cr_opcode_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1128", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_cr", - "target": "urma_cr_status_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1156", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_async_event", - "target": "sdk_urma_urma_types_urma_async_event_element", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1157", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_async_event", - "target": "sdk_urma_urma_types_urma_async_event_event_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1158", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_async_event", - "target": "sdk_urma_urma_types_urma_async_event_priv", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1147", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_async_event", - "target": "sdk_urma_urma_types_urma_async_event_urma_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1157", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_async_event", - "target": "urma_async_event_type_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1187", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur", - "target": "sdk_urma_urma_types_urma_ur_attr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1185", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur", - "target": "sdk_urma_urma_types_urma_ur_name", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1186", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur", - "target": "sdk_urma_urma_types_urma_ur_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1188", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur", - "target": "sdk_urma_urma_types_urma_ur_token", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1189", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur", - "target": "sdk_urma_urma_types_urma_ur_user_ctx", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1187", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur", - "target": "urma_ur_attr_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1210", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur_info", - "target": "urma_ur_attr_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1198", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_ur", - "target": "sdk_urma_urma_types_urma_target_ur_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1196", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_ur", - "target": "sdk_urma_urma_types_urma_target_ur_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1194", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_ur", - "target": "sdk_urma_urma_types_urma_target_ur_name", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1195", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_ur", - "target": "sdk_urma_urma_types_urma_target_ur_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1197", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_ur", - "target": "sdk_urma_urma_types_urma_target_ur_tseg_list", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1196", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_target_ur", - "target": "urma_import_ur_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1203", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_info", - "target": "sdk_urma_urma_types_urma_seg_info_idx_in_ur", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1202", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_seg_info", - "target": "sdk_urma_urma_types_urma_seg_info_seg", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1210", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur_info", - "target": "sdk_urma_urma_types_urma_ur_info_attr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1211", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur_info", - "target": "sdk_urma_urma_types_urma_ur_info_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1208", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur_info", - "target": "sdk_urma_urma_types_urma_ur_info_name", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1212", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur_info", - "target": "sdk_urma_urma_types_urma_ur_info_seg_list", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1209", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur_info", - "target": "sdk_urma_urma_types_urma_ur_info_size", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1212", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_ur_info", - "target": "urma_seg_info_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1217", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_info", - "target": "sdk_urma_urma_types_urma_jfr_info_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1219", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_info", - "target": "sdk_urma_urma_types_urma_jfr_info_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1216", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_info", - "target": "sdk_urma_urma_types_urma_jfr_info_name", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1218", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_jfr_info", - "target": "sdk_urma_urma_types_urma_jfr_info_uasid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1244", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "sdk_urma_urma_types_urma_tp_cfg_ack_timeout", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1245", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "sdk_urma_urma_types_urma_tp_cfg_dscp", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1239", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "sdk_urma_urma_types_urma_tp_cfg_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1246", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "sdk_urma_urma_types_urma_tp_cfg_oor_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1243", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "sdk_urma_urma_types_urma_tp_cfg_retry_factor", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1242", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "sdk_urma_urma_types_urma_tp_cfg_retry_num", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1241", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "sdk_urma_urma_types_urma_tp_cfg_trans_mode", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1239", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_cfg", - "target": "urma_tp_cfg_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1296", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_net_addr", - "target": "sa_family_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1302", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_net_addr", - "target": "sdk_urma_urma_types_urma_net_addr_mac", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1303", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_net_addr", - "target": "sdk_urma_urma_types_urma_net_addr_prefix_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1296", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_net_addr", - "target": "sdk_urma_urma_types_urma_net_addr_sin_family", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1301", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_net_addr", - "target": "sdk_urma_urma_types_urma_net_addr_vlan", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1308", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_net_addr_info", - "target": "sdk_urma_urma_types_urma_net_addr_info_index", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1307", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_net_addr_info", - "target": "sdk_urma_urma_types_urma_net_addr_info_netaddr", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1307", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_net_addr_info", - "target": "urma_net_addr_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1321", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "urma_net_addr_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1323", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_ack_udp_start", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1318", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_cc_pattern_idx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1322", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_data_udp_start", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1312", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1326", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_flow_label", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1325", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_hop_limit", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1320", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_local_net_addr_idx", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1328", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_mn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1317", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_mtu", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1319", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_oos_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1321", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_peer_net_addr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1313", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_peer_tpn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1329", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_peer_trans_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1327", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_port_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1316", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_rx_psn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1314", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_state", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1315", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_tx_psn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1324", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "sdk_urma_urma_types_urma_tp_attr_udp_range", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1312", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "urma_tp_mod_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1314", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr", - "target": "urma_tp_state_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1348", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_get_tp_cfg", - "target": "sdk_urma_urma_types_urma_get_tp_cfg_flag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1350", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_get_tp_cfg", - "target": "sdk_urma_urma_types_urma_get_tp_cfg_local_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1351", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_get_tp_cfg", - "target": "sdk_urma_urma_types_urma_get_tp_cfg_peer_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1349", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_get_tp_cfg", - "target": "sdk_urma_urma_types_urma_get_tp_cfg_trans_mode", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1348", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_get_tp_cfg", - "target": "urma_get_tp_cfg_flag_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1355", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_info", - "target": "sdk_urma_urma_types_urma_tp_info_tp_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1361", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_active_tp_attr", - "target": "sdk_urma_urma_types_urma_active_tp_attr_reserved", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1360", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_active_tp_attr", - "target": "sdk_urma_urma_types_urma_active_tp_attr_rx_psn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1359", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_active_tp_attr", - "target": "sdk_urma_urma_types_urma_active_tp_attr_tx_psn", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1366", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_active_tp_cfg", - "target": "sdk_urma_urma_types_urma_active_tp_cfg_peer_tp_handle", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1367", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_active_tp_cfg", - "target": "sdk_urma_urma_types_urma_active_tp_cfg_tag", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1368", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_active_tp_cfg", - "target": "sdk_urma_urma_types_urma_active_tp_cfg_tp_attr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1365", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_active_tp_cfg", - "target": "sdk_urma_urma_types_urma_active_tp_cfg_tp_handle", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1368", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_active_tp_cfg", - "target": "urma_active_tp_attr_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1389", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_ack_udp_srcport", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1378", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_at", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1386", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_at_times", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1390", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_data_udp_srcport", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1380", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_dip", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1382", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_dma", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1385", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_dscp", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1396", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_dscp_config_mode", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1394", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_reserve_0", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1397", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_reserve_1", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1398", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_reserved", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1377", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_retry_times_init", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1379", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_sip", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1387", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_sl", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1395", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_sl_bitmap", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1381", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_sma", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1392", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_spray_en", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1388", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_ttl", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1393", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_udp_global_en", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1391", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_udp_srcport_range", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1384", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_vlan_en", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "sdk/urma/urma_types.h", - "source_location": "L1383", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "sdk_urma_urma_types_urma_tp_attr_value", - "target": "sdk_urma_urma_types_urma_tp_attr_value_vlan_id", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L36", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "iobuf", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L45", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L26", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_cpp_string", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_h_urma_endpoint", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L82", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_preparedjetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L89", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_preparedjettycount", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1016", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_tryreadontcpduringurmaest", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1281", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaconnect_run", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1240", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaconnect_startconnect", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1279", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaconnect_stopconnect", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L360", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_allocateresources", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L930", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_applyremotehello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1581", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_bringupjetty", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L590", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_cutfromiobuflist", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L462", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_deallocateresources", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1313", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_debuginfo", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L673", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_dopostrecv", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1051", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_failhandshake", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1042", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_fallbacktotcp", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L261", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_filllocalhellov2", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L282", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_filllocalhellov3", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1293", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_getstatestr", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1505", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_globalinitialize", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1566", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_globalrelease", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L761", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_handlecompletion", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L494", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_importpeer", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L664", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_iswritable", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L239", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_makelocalparsedhello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L953", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_onnewdatafromtcp", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L847", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_pollcq", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1476", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_polleraddcqsid", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1492", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_pollerremovecqsid", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1368", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_pollingmodeinitialize", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1462", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_pollingmoderelease", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L687", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_postrecv", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1072", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_processhandshakeatclient", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1144", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_processhandshakeatserver", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L215", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_pushbacktoreadbuf", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L327", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_readandparsehellov3", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L188", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_readfromfd", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1353", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_reqnotifycq", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L159", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_reset", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L751", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_sendack", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L727", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_sendimm", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1010", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_tryreadontcp", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L138", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1322", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_waitcqevent", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L298", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_writehellov3", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L219", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaendpoint_writetofd", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L546", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaiobuf", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L125", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_endpoint_urmaresource_urmaresource", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L48", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_handshake_h_urma_handshake", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L50", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "urma_helper_h_urma_helper", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L29", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_cpp_urma_endpoint", - "target": "vector", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L83", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_preparedjetty", - "target": "urma_endpoint_preparedjetty_res", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L83", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_preparedjetty", - "target": "urma_endpoint_urmaresource", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1521", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_globalinitialize", - "target": "urma_endpoint_preparedjettycount", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L138", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_urmaendpoint", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L31", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1016", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_tryreadontcpduringurmaest", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1240", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaconnect_startconnect", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1279", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaconnect_stopconnect", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L953", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_onnewdatafromtcp", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L847", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_pollcq", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L33", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "socket", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L312", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_writetofd", - "target": "iobuf", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L239", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_makelocalparsedhello", - "target": "urma_endpoint_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L251", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_makelocalparsedhello", - "target": "urma_helper_getpoolsegfor" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L241", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_makelocalparsedhello", - "target": "urma_helper_geturmarecvblocksize" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L930", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_applyremotehello", - "target": "urma_endpoint_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L494", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_importpeer", - "target": "urma_endpoint_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L327", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_readandparsehellov3", - "target": "urma_endpoint_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L261", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_filllocalhellov2", - "target": "urma_handshake_hellomessage", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L282", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_filllocalhellov3", - "target": "urmahello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L298", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_writehellov3", - "target": "urmahello", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L26", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "iobuf", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L590", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", - "target": "iobuf", - "confidence_score": 1.0 - }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L546", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaiobuf", - "target": "iobuf", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L556", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaiobuf_cut_into_sglist", - "target": "iobuf", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L29", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "iobuf", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L38", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "iobuf", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L351", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_readandparsehellov3", - "target": "urma_handshake_validhello" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L362", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_allocateresources", - "target": "urma_helper_geturmacontext" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L414", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_allocateresources", - "target": "urma_helper_geturmamaxsge" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L495", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_importpeer", - "target": "urma_helper_geturmacontext" - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L556", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaiobuf", - "target": "urma_endpoint_urmaiobuf_cut_into_sglist", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L622", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", - "target": "urma_endpoint_urmaiobuf_cut_into_sglist", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L556", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaiobuf_cut_into_sglist", - "target": "urma_endpoint_cpp_urma_sge_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L564", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaiobuf_cut_into_sglist", - "target": "urma_helper_getpoolsegfor" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L595", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", - "target": "urma_helper_geturmamaxsge" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L617", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_cutfromiobuflist", - "target": "urma_helper_geturmarecvblocksize" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L674", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_dopostrecv", - "target": "urma_helper_getpoolsegfor" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L689", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_postrecv", - "target": "urma_helper_geturmarecvblocksize" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L761", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_handlecompletion", - "target": "urma_endpoint_cpp_urma_cr_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L828", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_handlecompletion", - "target": "urma_helper_geturmarecvblocksize" - }, - { - "relation": "references", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L856", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_pollcq", - "target": "urma_handshake_urmaendpoint" - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1003", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_onnewdatafromtcp", - "target": "urma_endpoint_tryreadontcpduringurmaest", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L971", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_onnewdatafromtcp", - "target": "urma_helper_isurmaavailable" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1042", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_fallbacktotcp", - "target": "urma_endpoint_urmatransport", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1051", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_failhandshake", - "target": "urma_endpoint_urmatransport", - "confidence_score": 1.0 - }, - { - "relation": "references", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1080", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_processhandshakeatclient", - "target": "urma_handshake_urmaendpoint" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1079", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_processhandshakeatclient", - "target": "urma_helper_isurmaavailable" - }, - { - "relation": "references", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1153", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_processhandshakeatserver", - "target": "urma_handshake_urmaendpoint" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1293", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_getstatestr", - "target": "urma_endpoint_cpp_string", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1313", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_debuginfo", - "target": "ostream", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1313", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_debuginfo", - "target": "stringpiece", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1322", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_waitcqevent", - "target": "socketuniqueptr", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1322", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_waitcqevent", - "target": "urma_endpoint_cpp_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1368", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_pollingmodeinitialize", - "target": "urma_endpoint_cpp_bthread_tag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1368", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_pollingmodeinitialize", - "target": "urma_endpoint_cpp_function", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.cpp", - "source_location": "L1462", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_pollingmoderelease", - "target": "urma_endpoint_cpp_bthread_tag_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1519", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_globalinitialize", - "target": "urma_helper_geturmacontext" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1550", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaendpoint_globalinitialize", - "target": "urma_helper_geturmamaxsge" - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L47", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "urma_endpoint_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L56", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "urma_endpoint_urmaconnect", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L100", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "urma_endpoint_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L46", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "urma_endpoint_urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L81", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "urma_endpoint_urmaresource", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L42", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "urma_endpoint_urmatransport", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L37", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "urma_handshake_h_urma_handshake", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L23", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_h_urma_endpoint", - "target": "vector", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L34", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_endpoint_h_urma_endpoint", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L46", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_endpoint_h_urma_endpoint", - "confidence_score": 1.0 - }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L56", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaconnect", - "target": "appconnect", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L72", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaconnect", - "target": "urma_endpoint_urmaconnect_data", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L73", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaconnect", - "target": "urma_endpoint_urmaconnect_error", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L70", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaconnect", - "target": "urma_endpoint_urmaconnect_run", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L59", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaconnect", - "target": "urma_endpoint_urmaconnect_startconnect", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L61", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaconnect", - "target": "urma_endpoint_urmaconnect_stopconnect", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1251", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaconnect_startconnect", - "target": "urma_endpoint_urmaconnect_run" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_endpoint.cpp", - "source_location": "L1254", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaconnect_startconnect", - "target": "urma_helper_isurmaavailable" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L87", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_h_urma_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L84", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_h_urma_jfc_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L85", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_h_urma_jfce_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L86", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_h_urma_jfr_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L89", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_h_urma_target_jetty_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L90", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_h_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L87", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_urmaresource_jetty", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L84", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_urmaresource_jfc", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L85", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_urmaresource_jfce", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L86", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_urmaresource_jfr", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L82", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_urmaresource_next", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L89", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_urmaresource_remote_jetty", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L90", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_urmaresource_remote_seg", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_endpoint.h", - "source_location": "L92", - "weight": 1.0, - "_origin": "ast", - "source": "urma_endpoint_urmaresource", - "target": "urma_endpoint_urmaresource_urmaresource", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L274", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_createclienthandshake", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L282", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_createserverhandshakebymagic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L173", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_drainbytes", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_h_urma_handshake", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L91", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_hellomessage_deserialize", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L72", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_hellomessage_serialize", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L141", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_readbodyandnegotiate", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L196", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L187", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_urmahandshakeclientv2_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L246", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L240", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_urmahandshakeclientv3_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L210", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L215", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_urmahandshakeserverv2_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L258", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L263", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_urmahandshakeserverv3_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L127", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_handshake_validhello", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L35", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_cpp_urma_handshake", - "target": "urma_helper_h_urma_helper", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L163", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_readbodyandnegotiate", - "target": "urma_handshake_validhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L127", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_validhello", - "target": "urma_handshake_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L141", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_readbodyandnegotiate", - "target": "urma_handshake_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L196", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", - "target": "urma_handshake_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L246", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", - "target": "urma_handshake_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L210", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", - "target": "urma_handshake_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L258", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", - "target": "urma_handshake_cpp_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L166", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_readbodyandnegotiate", - "target": "urma_handshake_drainbytes", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_handshake.cpp", - "source_location": "L146", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_readbodyandnegotiate", - "target": "urma_handshake_hellomessage_deserialize" - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L141", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_readbodyandnegotiate", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L207", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", - "target": "urma_handshake_readbodyandnegotiate", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L212", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", - "target": "urma_handshake_readbodyandnegotiate", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L173", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_drainbytes", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L274", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_createclienthandshake", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L274", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "urma_handshake_createclienthandshake", - "target": "urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L282", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "urma_handshake_createserverhandshakebymagic", - "target": "urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.cpp", - "source_location": "L282", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_createserverhandshakebymagic", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L73", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "urma_handshake_hellomessage", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L38", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "urma_handshake_parsedhello", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L32", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L97", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "urma_handshake_urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L114", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "urma_handshake_urmahandshakeclientv2", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L135", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "urma_handshake_urmahandshakeclientv3", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L124", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "urma_handshake_urmahandshakeserverv2", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L145", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_h_urma_handshake", - "target": "urma_handshake_urmahandshakeserverv3", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L121", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L116", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L142", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L137", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L131", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L126", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L152", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L147", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", - "target": "urma_handshake_urmaendpoint", - "confidence_score": 1.0 - }, - { - "relation": "references", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "urma_helper.cpp", - "source_location": "L338", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalrelease", - "target": "urma_handshake_urmaendpoint" - }, - { - "relation": "references", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "urma_helper.cpp", - "source_location": "L500", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "urma_handshake_urmaendpoint" - }, - { - "relation": "references", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "urma_helper.cpp", - "source_location": "L565", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_initpollingmodewithtag", - "target": "urma_handshake_urmaendpoint" - }, - { - "relation": "references", - "context": "call", - "confidence": "EXTRACTED", - "confidence_score": 1.0, - "source_file": "urma_helper.cpp", - "source_location": "L571", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_releasepollingmodewithtag", - "target": "urma_handshake_urmaendpoint" - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L39", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_buffer_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L42", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L41", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_jetty_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L40", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_recv_buffer_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L47", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_seg_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L50", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_seg_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L51", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_seg_token_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L48", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_seg_uasid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L49", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_seg_va", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L44", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_tp_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L43", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_parsedhello", - "target": "urma_handshake_parsedhello_uasid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L77", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_buffer_size", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L91", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_deserialize", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L80", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L75", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_hello_ver", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L76", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_impl_ver", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L79", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_jetty_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L74", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_msg_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L83", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_pad", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L78", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_recv_buffer_cnt", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L84", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_seg_eid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L87", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_seg_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L88", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_seg_token_id", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L85", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_seg_uasid", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L86", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_seg_va", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L90", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_serialize", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L82", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_tp_type", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L81", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_hellomessage", - "target": "urma_handshake_hellomessage_uasid", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_handshake.cpp", - "source_location": "L192", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2_sendlocalhello", - "target": "urma_handshake_hellomessage_serialize" - }, - { - "relation": "calls", - "context": "call", - "confidence": "INFERRED", - "confidence_score": 0.8, - "source_file": "urma_handshake.cpp", - "source_location": "L230", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2_sendlocalhello", - "target": "urma_handshake_hellomessage_serialize" - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L100", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshake", - "target": "urma_handshake_urmahandshake_protocolversion", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L110", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshake", - "target": "urma_handshake_urmahandshake_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L104", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshake", - "target": "urma_handshake_urmahandshake_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L99", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshake", - "target": "urma_handshake_urmahandshake_urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L114", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2", - "target": "urma_handshake_urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L135", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3", - "target": "urma_handshake_urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L124", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2", - "target": "urma_handshake_urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "inherits", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L145", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3", - "target": "urma_handshake_urmahandshake", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L121", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2", - "target": "urma_handshake_urmahandshakeclientv2_ep", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L117", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2", - "target": "urma_handshake_urmahandshakeclientv2_protocolversion", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L119", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2", - "target": "urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L118", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2", - "target": "urma_handshake_urmahandshakeclientv2_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L116", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv2", - "target": "urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L131", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2", - "target": "urma_handshake_urmahandshakeserverv2_ep", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L127", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2", - "target": "urma_handshake_urmahandshakeserverv2_protocolversion", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L129", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2", - "target": "urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L128", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2", - "target": "urma_handshake_urmahandshakeserverv2_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L126", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv2", - "target": "urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L142", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3", - "target": "urma_handshake_urmahandshakeclientv3_ep", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L138", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3", - "target": "urma_handshake_urmahandshakeclientv3_protocolversion", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L140", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3", - "target": "urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L139", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3", - "target": "urma_handshake_urmahandshakeclientv3_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L137", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeclientv3", - "target": "urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L152", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3", - "target": "urma_handshake_urmahandshakeserverv3_ep", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L148", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3", - "target": "urma_handshake_urmahandshakeserverv3_protocolversion", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L150", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3", - "target": "urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L149", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3", - "target": "urma_handshake_urmahandshakeserverv3_sendlocalhello", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_handshake.h", - "source_location": "L147", - "weight": 1.0, - "_origin": "ast", - "source": "urma_handshake_urmahandshakeserverv3", - "target": "urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L29", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "atomic", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L160", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_alignup", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L174", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_bufferpool", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L25", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_cpp_string", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L613", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_deregistermemoryforurma", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L313", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_getpoolsegfor", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L622", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_getseghandle", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L552", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_geturmacontext", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L553", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_geturmamaxsge", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L554", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_geturmarecvblocksize", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L544", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_globaldisableurma", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L324", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_globalrelease", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L372", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_globalurmainitializeimpl", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L521", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_globalurmainitializeordie", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L18", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_h_urma_helper", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L560", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_initpollingmodewithtag", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L259", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_initpool", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L540", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_isurmaavailable", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L155", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_pagesize", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L200", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_poolallocate", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L227", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_pooldeallocate", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L193", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_preferredshard", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L578", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_registermemoryforurma", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L570", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_releasepollingmodewithtag", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L186", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_shardfor", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L548", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_supportedbyurma", - "confidence_score": 1.0 - }, - { - "relation": "contains", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L139", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "urma_helper_userseg", - "confidence_score": 1.0 - }, - { - "relation": "imports", - "context": "import", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L32", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_cpp_urma_helper", - "target": "vector", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L140", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_userseg", - "target": "urma_helper_cpp_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L141", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_userseg", - "target": "urma_helper_userseg_base", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L142", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_userseg", - "target": "urma_helper_userseg_len", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L140", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_userseg", - "target": "urma_helper_userseg_tseg", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L313", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "urma_helper_getpoolsegfor", - "target": "urma_helper_cpp_urma_target_seg_t", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L264", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_initpool", - "target": "urma_helper_pagesize", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L265", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_initpool", - "target": "urma_helper_alignup", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L178", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_bufferpool", - "target": "atomic", - "confidence_score": 1.0 - }, - { - "relation": "method", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L180", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_bufferpool", - "target": "urma_helper_bufferpool_buffer_count", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L176", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_bufferpool", - "target": "urma_helper_bufferpool_free_lists", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L177", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_bufferpool", - "target": "urma_helper_bufferpool_in_use", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L175", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_bufferpool", - "target": "urma_helper_bufferpool_mutexes", - "confidence_score": 1.0 - }, - { - "relation": "defines", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L178", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_bufferpool", - "target": "urma_helper_bufferpool_outstanding", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L175", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_bufferpool", - "target": "urma_helper_cpp_mutex", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L176", - "weight": 1.0, - "context": "field", - "_origin": "ast", - "source": "urma_helper_bufferpool", - "target": "vector", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L514", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "urma_helper_bufferpool_buffer_count", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L261", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_initpool", - "target": "urma_helper_bufferpool_buffer_count", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L242", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_pooldeallocate", - "target": "urma_helper_shardfor", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L209", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_poolallocate", - "target": "urma_helper_preferredshard", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L485", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "urma_helper_initpool", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L529", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeordie", - "target": "urma_helper_globalrelease", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L414", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeimpl", - "target": "urma_helper_cpp_string", - "confidence_score": 1.0 - }, - { - "relation": "calls", - "context": "call", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L527", - "weight": 1.0, - "_origin": "ast", - "source": "urma_helper_globalurmainitializeordie", - "target": "urma_helper_globalurmainitializeimpl", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L548", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_helper_supportedbyurma", - "target": "urma_helper_cpp_string", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L552", - "weight": 1.0, - "context": "return_type", - "_origin": "ast", - "source": "urma_helper_geturmacontext", - "target": "urma_helper_cpp_urma_context_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L560", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_helper_initpollingmodewithtag", - "target": "urma_helper_cpp_bthread_tag_t", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L560", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_helper_initpollingmodewithtag", - "target": "urma_helper_cpp_function", - "confidence_score": 1.0 - }, - { - "relation": "references", - "confidence": "EXTRACTED", - "source_file": "urma_helper.cpp", - "source_location": "L570", - "weight": 1.0, - "context": "parameter_type", - "_origin": "ast", - "source": "urma_helper_releasepollingmodewithtag", - "target": "urma_helper_cpp_bthread_tag_t", - "confidence_score": 1.0 - } - ], - "hyperedges": [], - "built_at_commit": "170c03dafa7d8e4e625b158ec4069a9a58f28f64" -} \ No newline at end of file diff --git a/graphify-out/manifest.json b/graphify-out/manifest.json deleted file mode 100644 index 3014a6540a..0000000000 --- a/graphify-out/manifest.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "mock_urma.cpp": { - "mtime": 1785291503.4057467, - "ast_hash": "807946403b95d9ffeba42b3f5ebfd7c7", - "semantic_hash": "807946403b95d9ffeba42b3f5ebfd7c7" - }, - "sdk/urma/urma_api.h": { - "mtime": 1785227626.4640763, - "ast_hash": "863fa78e87e6c2cf060e57aba182b5ec", - "semantic_hash": "863fa78e87e6c2cf060e57aba182b5ec" - }, - "sdk/urma/urma_opcode.h": { - "mtime": 1785226861.7041552, - "ast_hash": "4d3ccd0716c7d37af65185809ca9deba", - "semantic_hash": "4d3ccd0716c7d37af65185809ca9deba" - }, - "sdk/urma/urma_types.h": { - "mtime": 1785227626.5065477, - "ast_hash": "5670d4c6bf1dcfe06d470f713aba6ac0", - "semantic_hash": "5670d4c6bf1dcfe06d470f713aba6ac0" - }, - "urma_endpoint.cpp": { - "mtime": 1785309099.9902904, - "ast_hash": "cd2c96ab882dc8e8a535dc70add2ef81", - "semantic_hash": "cd2c96ab882dc8e8a535dc70add2ef81" - }, - "urma_endpoint.h": { - "mtime": 1785309036.5279553, - "ast_hash": "a6ac6cfe89074744f21ac1d0d3369077", - "semantic_hash": "a6ac6cfe89074744f21ac1d0d3369077" - }, - "urma_handshake.cpp": { - "mtime": 1785291857.3837256, - "ast_hash": "eb7077067c00151dbe2879894cf68e85", - "semantic_hash": "eb7077067c00151dbe2879894cf68e85" - }, - "urma_handshake.h": { - "mtime": 1785291144.2091112, - "ast_hash": "5ed41efa6c47b34afbeacf646d4c4752", - "semantic_hash": "5ed41efa6c47b34afbeacf646d4c4752" - }, - "urma_helper.cpp": { - "mtime": 1785307850.78223, - "ast_hash": "c50ea7e6c9e5a1585fe836d0ac6a3f46", - "semantic_hash": "c50ea7e6c9e5a1585fe836d0ac6a3f46" - }, - "urma_helper.h": { - "mtime": 1785290825.5598035, - "ast_hash": "f2c8cf5ed5743992b36e4be9e28750bf", - "semantic_hash": "f2c8cf5ed5743992b36e4be9e28750bf" - } -} \ No newline at end of file diff --git "a/graphify-out/memory/query_20260730_025012_send_buffer_size\346\216\222\346\237\245\344\270\213__\346\210\221\345\221\275\344\273\244\351\205\215\347\275\256\347\232\2044096\344\275\206\346\230\257\346\210\221\347\234\213\344\273\243\347\240\201\345\217\221\351\200\201buffer\345\244\247\345\260\217_\346\230\2578.md" "b/graphify-out/memory/query_20260730_025012_send_buffer_size\346\216\222\346\237\245\344\270\213__\346\210\221\345\221\275\344\273\244\351\205\215\347\275\256\347\232\2044096\344\275\206\346\230\257\346\210\221\347\234\213\344\273\243\347\240\201\345\217\221\351\200\201buffer\345\244\247\345\260\217_\346\230\2578.md" deleted file mode 100644 index 4ada67c846..0000000000 --- "a/graphify-out/memory/query_20260730_025012_send_buffer_size\346\216\222\346\237\245\344\270\213__\346\210\221\345\221\275\344\273\244\351\205\215\347\275\256\347\232\2044096\344\275\206\346\230\257\346\210\221\347\234\213\344\273\243\347\240\201\345\217\221\351\200\201buffer\345\244\247\345\260\217_\346\230\2578.md" +++ /dev/null @@ -1,27 +0,0 @@ ---- -type: "query" -date: "2026-07-30T02:50:12.073028+00:00" -question: "send buffer_size排查下, 我命令配置的4096但是我看代码发送buffer大小 是8*1024" -contributor: "graphify" -outcome: "useful" -source_nodes: ["GlobalUrmaInitializeImpl()", "GetUrmaRecvBlockSize()", "UrmaEndpoint::MakeLocalParsedHello()", "UrmaEndpoint::ApplyRemoteHello()", "UrmaEndpoint::CutFromIOBufList()", "UrmaEndpoint::PostRecv()"] ---- - -# Q: send buffer_size排查下, 我命令配置的4096但是我看代码发送buffer大小 是8*1024 - -## Answer - -Expanded from original query via vocab: [urma, buffer, size, send, block, pool, recv, cut, sge, initialize]. 结论:8*1024只出现在urma_buffer_size默认值和g_recv_block_size初始化前默认值。命令行4096在GlobalUrmaInitializeImpl中生效:pool raw block为4096,IOBuf默认块改为4096,扣除32字节IOBuf::Block头后GetUrmaRecvBlockSize为4064。握手广告4064,ApplyRemoteHello保存对端值,CutFromIOBufList以_remote_recv_block_size为单个SEND WR总payload上限,所以双方都配置4096时SEND不会超过4064;一端仍为默认8192时,向该端发送的上限会是8160。示例在创建Channel/Server前解析gflags,初始化时序正确。 - -## Outcome - -- Signal: useful - -## Source Nodes - -- GlobalUrmaInitializeImpl() -- GetUrmaRecvBlockSize() -- UrmaEndpoint::MakeLocalParsedHello() -- UrmaEndpoint::ApplyRemoteHello() -- UrmaEndpoint::CutFromIOBufList() -- UrmaEndpoint::PostRecv() \ No newline at end of file diff --git "a/graphify-out/memory/query_20260730_025925_event\346\250\241\345\274\217\346\262\241\346\234\211\346\224\266\345\210\260_urma_completion______direction_recv.md" "b/graphify-out/memory/query_20260730_025925_event\346\250\241\345\274\217\346\262\241\346\234\211\346\224\266\345\210\260_urma_completion______direction_recv.md" deleted file mode 100644 index 2f28ceb110..0000000000 --- "a/graphify-out/memory/query_20260730_025925_event\346\250\241\345\274\217\346\262\241\346\234\211\346\224\266\345\210\260_urma_completion______direction_recv.md" +++ /dev/null @@ -1,26 +0,0 @@ ---- -type: "query" -date: "2026-07-30T02:59:25.159516+00:00" -question: "event模式没有收到 URMA completion: ... direction=recv ... length=37" -contributor: "graphify" -outcome: "useful" -source_nodes: ["UrmaEndpoint::PollCq()", "UrmaEndpoint::WaitCqEvent()", "UrmaEndpoint::ReqNotifyCq()", "UrmaEndpoint::HandleCompletion()", "urma_wait_jfc()"] ---- - -# Q: event模式没有收到 URMA completion: ... direction=recv ... length=37 - -## Answer - -Expanded from original query via vocab: [event, wait, poll, completion, recv, jfc, rearm, notify, handle, endpoint]. 客户端第一条JFC事件和SEND completion证明事件通道、CQ和回调均可工作。根因是bonding JFCE fd本身为聚合epoll fd,brpc又以EPOLLET监听;WaitCqEvent调用urma_wait_jfc(..., jfc_cnt=1)一次只消费一个物理JFC事件。PollCq原先在处理一个事件后立即依赖MoreReadEvents,内层JFCE若仍可读不会产生新的外层边沿,后续37字节RECV completion被留在队列。修复为处理完事件后继续非阻塞WaitCqEvent,直到返回0才调用MoreReadEvents重置外层事件计数;同时增加JFCE queue drained日志。Yalanting使用level/one-shot async_wait,每轮重新等待,因此不会依赖同样的外层ET计数。 - -## Outcome - -- Signal: useful - -## Source Nodes - -- UrmaEndpoint::PollCq() -- UrmaEndpoint::WaitCqEvent() -- UrmaEndpoint::ReqNotifyCq() -- UrmaEndpoint::HandleCompletion() -- urma_wait_jfc() \ No newline at end of file diff --git "a/graphify-out/memory/query_20260730_032442_\350\267\237\344\273\245\345\211\215\346\211\223\347\232\204\346\227\245\345\277\227\346\230\257\344\270\200\346\240\267\347\232\204.md" "b/graphify-out/memory/query_20260730_032442_\350\267\237\344\273\245\345\211\215\346\211\223\347\232\204\346\227\245\345\277\227\346\230\257\344\270\200\346\240\267\347\232\204.md" deleted file mode 100644 index 51a272df96..0000000000 --- "a/graphify-out/memory/query_20260730_032442_\350\267\237\344\273\245\345\211\215\346\211\223\347\232\204\346\227\245\345\277\227\346\230\257\344\270\200\346\240\267\347\232\204.md" +++ /dev/null @@ -1,26 +0,0 @@ ---- -type: "query" -date: "2026-07-30T03:24:42.007884+00:00" -question: "跟以前打的日志是一样的" -contributor: "graphify" -outcome: "corrected" -correction: "测试日志若没有新加入的URMA JFCE event queue drained标记且仍使用旧源码行号,说明urma_performance链接了旧libbrpc;应先验证并重新链接新库,再判断JFCE/rearm逻辑。" -source_nodes: ["UrmaEndpoint::PollCq()", "UrmaEndpoint::WaitCqEvent()", "UrmaEndpoint::ReqNotifyCq()"] ---- - -# Q: 跟以前打的日志是一样的 - -## Answer - -Expanded from original query via vocab: [event, wait, poll, polling, completion, cqe, rearm, notify, recv]. 新源码在PollCq处理首个事件后必然再次调用WaitCqEvent;若无第二事件且urma_trace_verbose=true,必然打印URMA JFCE event queue drained。当前源码行号也已变化:WaitCqEvent在1685、prepared jetty日志在1925,而旧日志分别为1681和1895。若测试日志完全相同且没有新marker,实际运行的client仍链接旧libbrpc。urma_performance的CMake通过find_library缓存BRPC_LIB,只重编example不会重编或切换brpc库。先用strings检查marker和cmake cache中的BRPC_LIB,再显式指向刚构建的output/lib/libbrpc.a重新链接。上一结论把相同日志直接归因于内层JFCE未drain不够严谨,必须先排除旧二进制。 - -## Outcome - -- Signal: corrected -- Correction: 测试日志若没有新加入的URMA JFCE event queue drained标记且仍使用旧源码行号,说明urma_performance链接了旧libbrpc;应先验证并重新链接新库,再判断JFCE/rearm逻辑。 - -## Source Nodes - -- UrmaEndpoint::PollCq() -- UrmaEndpoint::WaitCqEvent() -- UrmaEndpoint::ReqNotifyCq() \ No newline at end of file diff --git "a/graphify-out/memory/query_20260730_033833_\351\207\215\346\226\260\347\274\226\350\257\221\344\272\206_strings___build_urma_performance_client___gr.md" "b/graphify-out/memory/query_20260730_033833_\351\207\215\346\226\260\347\274\226\350\257\221\344\272\206_strings___build_urma_performance_client___gr.md" deleted file mode 100644 index d10b99e80a..0000000000 --- "a/graphify-out/memory/query_20260730_033833_\351\207\215\346\226\260\347\274\226\350\257\221\344\272\206_strings___build_urma_performance_client___gr.md" +++ /dev/null @@ -1,23 +0,0 @@ ---- -type: "query" -date: "2026-07-30T03:38:33.172347+00:00" -question: "重新编译了,strings ./build/urma_performance_client | grep -F URMA JFCE event queue drained 输出是空的" -contributor: "graphify" -outcome: "useful" -source_nodes: ["UrmaEndpoint", "urma_endpoint.cpp"] ---- - -# Q: 重新编译了,strings ./build/urma_performance_client | grep -F URMA JFCE event queue drained 输出是空的 - -## Answer - -Expanded from original query via vocab: [client, link, urma]. 当前源码包含日志标记;可执行文件中没有标记说明必须核对 CMakeCache.txt 和 link.txt 中实际 BRPC_LIB。若动态链接,标记应在 libbrpc.so 而非 client;若静态链接且选中库也无标记,则是旧库或未以 BRPC_WITH_URMA 重编译。Make 构建应先生成 libbrpc.a、output/include 和 output/lib,再清理示例 CMake 缓存并显式指定 BRPC_INCLUDE_PATH 与 BRPC_LIB。 - -## Outcome - -- Signal: useful - -## Source Nodes - -- UrmaEndpoint -- urma_endpoint.cpp \ No newline at end of file diff --git "a/graphify-out/memory/query_20260730_062000_\345\234\250urma_jfc_event_drained_log\346\227\245\345\277\227\345\212\240\344\270\212\345\275\223\345\211\215\347\211\210\346\234\254commit\345\217\267.md" "b/graphify-out/memory/query_20260730_062000_\345\234\250urma_jfc_event_drained_log\346\227\245\345\277\227\345\212\240\344\270\212\345\275\223\345\211\215\347\211\210\346\234\254commit\345\217\267.md" deleted file mode 100644 index 5f7cffda88..0000000000 --- "a/graphify-out/memory/query_20260730_062000_\345\234\250urma_jfc_event_drained_log\346\227\245\345\277\227\345\212\240\344\270\212\345\275\223\345\211\215\347\211\210\346\234\254commit\345\217\267.md" +++ /dev/null @@ -1,23 +0,0 @@ ---- -type: "query" -date: "2026-07-30T06:20:00.366442+00:00" -question: "在URMA JFC event drained log日志加上当前版本commit号" -contributor: "graphify" -outcome: "useful" -source_nodes: ["UrmaEndpoint", "urma_endpoint.cpp"] ---- - -# Q: 在URMA JFC event drained log日志加上当前版本commit号 - -## Answer - -Expanded from original query via vocab: [version, urma, jfce, event, drain]. 复用仓库已有 BRPC_REVISION 编译宏,在 URMA JFCE event queue drained 日志中追加 build_revision;其格式包含 release、branch、短 commit 和提交时间,未定义时输出 undefined。 - -## Outcome - -- Signal: useful - -## Source Nodes - -- UrmaEndpoint -- urma_endpoint.cpp \ No newline at end of file diff --git a/graphify-out/reflections/LESSONS.md b/graphify-out/reflections/LESSONS.md deleted file mode 100644 index 95cc790c34..0000000000 --- a/graphify-out/reflections/LESSONS.md +++ /dev/null @@ -1,32 +0,0 @@ -# Lessons - -_Auto-generated by `graphify reflect` from 4 session memories in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._ - -## Summary - -- 3 useful · 0 dead ends · 1 corrected · 0 unmarked - -## Lessons - -**Tentative** — useful in fewer than 2 results; verify before relying. - -- `UrmaEndpoint` (1× useful) -- `urma_endpoint.cpp` (1× useful) -- `UrmaEndpoint::HandleCompletion()` (1× useful) -- `urma_wait_jfc()` (1× useful) -- `GetUrmaRecvBlockSize()` (1× useful) -- `GlobalUrmaInitializeImpl()` (1× useful) -- `UrmaEndpoint::ApplyRemoteHello()` (1× useful) -- `UrmaEndpoint::CutFromIOBufList()` (1× useful) -- `UrmaEndpoint::MakeLocalParsedHello()` (1× useful) -- `UrmaEndpoint::PostRecv()` (1× useful) - -**Contested** — mixed signals; recency decides. - -- `UrmaEndpoint::PollCq()` — 1× useful, 1× dead end/corrected → recency leans **dead end** (latest 2026-07-30) -- `UrmaEndpoint::ReqNotifyCq()` — 1× useful, 1× dead end/corrected → recency leans **dead end** (latest 2026-07-30) -- `UrmaEndpoint::WaitCqEvent()` — 1× useful, 1× dead end/corrected → recency leans **dead end** (latest 2026-07-30) - -**Corrections** — do these differently. - -- "跟以前打的日志是一样的" → 测试日志若没有新加入的URMA JFCE event queue drained标记且仍使用旧源码行号,说明urma_performance链接了旧libbrpc;应先验证并重新链接新库,再判断JFCE/rearm逻辑。 diff --git a/src/brpc/channel.h b/src/brpc/channel.h index d4ea8dbd25..62bc6bfb49 100644 --- a/src/brpc/channel.h +++ b/src/brpc/channel.h @@ -106,8 +106,8 @@ struct ChannelOptions { const ChannelSSLOptions& ssl_options() const { return *_ssl_options; } ChannelSSLOptions* mutable_ssl_options(); - // Let this channel choose a transport: - // 0 SOCKET_MODE_TCP, 1 SOCKET_MODE_RDMA, 2 SOCKET_MODE_URMA. + // Let this channel choose a transport. + // See SocketMode for supported values. // Default: SOCKET_MODE_TCP SocketMode socket_mode; diff --git a/src/brpc/controller.cpp b/src/brpc/controller.cpp index 9e3f71d153..0bcfb4122d 100644 --- a/src/brpc/controller.cpp +++ b/src/brpc/controller.cpp @@ -95,8 +95,7 @@ DEFINE_bool(graceful_quit_on_sigterm, false, "Register SIGTERM handle func to quit graceful"); DEFINE_bool(graceful_quit_on_sighup, false, "Register SIGHUP handle func to quit graceful"); -DEFINE_bool(log_idle_progressive_read_close, false, - "Print log when an idle progressive read is closed"); + const IdlNames idl_single_req_single_res = { "req", "res" }; const IdlNames idl_single_req_multi_res = { "req", "" }; const IdlNames idl_multi_req_single_res = { "", "res" }; @@ -175,80 +174,6 @@ class IgnoreAllRead : public ProgressiveReader { void OnEndOfMessage(const butil::Status&) {} }; -class ProgressiveTimeoutReader : public ProgressiveReader { -public: - explicit ProgressiveTimeoutReader(SocketId id, int32_t read_timeout_ms, ProgressiveReader* reader): - _socket_id(id), - _read_timeout_ms(read_timeout_ms), - _reader(reader), - _timeout_id(0), - _is_read_timeout(false) { - AddIdleReadTimeoutMonitor(); - } - - ~ProgressiveTimeoutReader() { - if(_timeout_id > 0) { - bthread_timer_del(_timeout_id); - } - } - - butil::Status OnReadOnePart(const void* data, size_t length) { - return _reader->OnReadOnePart(data, length); - } - - void OnEndOfMessage(const butil::Status& status) { - if (_is_read_timeout) { - _reader->OnEndOfMessage(butil::Status(EPROGREADTIMEOUT, "The progressive read timeout")); - } else { - _reader->OnEndOfMessage(status); - } - if(_timeout_id > 0) { - bthread_timer_del(_timeout_id); - _timeout_id = 0; - } - } - -private: - static void HandleIdleProgressiveReader(void* arg) { - if(arg == nullptr){ - LOG(ERROR) << "Controller::HandleIdleProgressiveReader arg is null."; - return; - } - ProgressiveTimeoutReader* reader = static_cast(arg); - SocketUniquePtr s; - if (Socket::Address(reader->_socket_id, &s) != 0) { - LOG(ERROR) << "not found the socket id : " << reader->_socket_id; - return; - } - auto log_idle = FLAGS_log_idle_progressive_read_close; - reader->_is_read_timeout = true; - LOG_IF(INFO, log_idle) << "progressive read timeout socket id : " << reader->_socket_id - << " progressive read timeout us : " << reader->_read_timeout_ms; - if (s->parsing_context() != NULL) { - s->parsing_context()->Destroy(); - } - s->ReleaseReferenceIfIdle(0); - } - void AddIdleReadTimeoutMonitor() { - if (_read_timeout_ms <= 0) { - return; - } - bthread_timer_add(&_timeout_id, - butil::milliseconds_from_now(_read_timeout_ms), - HandleIdleProgressiveReader, - this - ); - } - -private: - SocketId _socket_id; - int32_t _read_timeout_ms; - ProgressiveReader* _reader; - // Timer registered to trigger progressive timeout event - bthread_timer_t _timeout_id; - butil::atomic _is_read_timeout; -}; - static IgnoreAllRead* s_ignore_all_read = NULL; static pthread_once_t s_ignore_all_read_once = PTHREAD_ONCE_INIT; static void CreateIgnoreAllRead() { s_ignore_all_read = new IgnoreAllRead; } @@ -336,7 +261,6 @@ void Controller::ResetPods() { _backup_request_ms = UNSET_MAGIC_NUM; _backup_request_policy = NULL; _connect_timeout_ms = UNSET_MAGIC_NUM; - _progressive_read_timeout_ms = UNSET_MAGIC_NUM; _real_timeout_ms = UNSET_MAGIC_NUM; _deadline_us = -1; _timeout_id = 0; @@ -412,15 +336,6 @@ void Controller::Call::Reset() { stream_user_data = NULL; } -void Controller::set_progressive_read_timeout_ms(int32_t progressive_read_timeout_ms){ - if(progressive_read_timeout_ms <= 0x7fffffff){ - _progressive_read_timeout_ms = progressive_read_timeout_ms; - } else { - _progressive_read_timeout_ms = 0x7fffffff; - LOG(WARNING) << "progressive_read_timeout_seconds is limited to 0x7fffffff"; - } -} - void Controller::set_timeout_ms(int64_t timeout_ms) { if (timeout_ms <= 0x7fffffff) { _timeout_ms = timeout_ms; @@ -1155,7 +1070,6 @@ void Controller::SubmitSpan() { } } - void Controller::HandleSendFailed() { if (!FailedInline()) { SetFailed("Must be SetFailed() before calling HandleSendFailed()"); @@ -1697,10 +1611,6 @@ void Controller::ReadProgressiveAttachmentBy(ProgressiveReader* r) { __FUNCTION__)); } add_flag(FLAGS_PROGRESSIVE_READER); - if (progressive_read_timeout_ms() > 0) { - auto reader = new ProgressiveTimeoutReader(_rpa->GetSocketId(), _progressive_read_timeout_ms, r); - return _rpa->ReadProgressiveAttachmentBy(reader); - } return _rpa->ReadProgressiveAttachmentBy(r); } diff --git a/src/brpc/controller.h b/src/brpc/controller.h index c4a4924758..cb518706ed 100644 --- a/src/brpc/controller.h +++ b/src/brpc/controller.h @@ -48,6 +48,7 @@ #include "brpc/grpc.h" #include "brpc/kvmap.h" #include "brpc/rpc_dump.h" + // EAUTH is defined in MAC #ifndef EAUTH #define EAUTH ERPCAUTH @@ -178,6 +179,7 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); uint64_t log_id; std::string request_id; }; + public: Controller(); Controller(const Inheritable& parent_ctx); @@ -191,9 +193,6 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); // Set/get timeout in milliseconds for the RPC call. Use // ChannelOptions.timeout_ms on unset. - void set_progressive_read_timeout_ms(int32_t progressive_read_timeout_ms); - int32_t progressive_read_timeout_ms() const { return _progressive_read_timeout_ms; } - void set_timeout_ms(int64_t timeout_ms); int64_t timeout_ms() const { return _timeout_ms; } @@ -340,9 +339,7 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); // Make the RPC end when the HTTP response has complete headers and let // user read the remaining body by using ReadProgressiveAttachmentBy(). - void response_will_be_read_progressively() { - add_flag(FLAGS_READ_PROGRESSIVELY); - } + void response_will_be_read_progressively() { add_flag(FLAGS_READ_PROGRESSIVELY); } // Make the RPC end when the HTTP request has complete headers and let // user read the remaining body by using ReadProgressiveAttachmentBy(). void request_will_be_read_progressively() { add_flag(FLAGS_READ_PROGRESSIVELY); } @@ -881,7 +878,6 @@ friend void policy::ProcessThriftRequest(InputMessageBase*); int32_t _timeout_ms; int32_t _connect_timeout_ms; int32_t _backup_request_ms; - int32_t _progressive_read_timeout_ms; // Priority: `_backup_request_policy' > `_backup_request_ms'. BackupRequestPolicy* _backup_request_policy; // If this rpc call has retry/backup request,this var save the real timeout for current call diff --git a/src/brpc/errno.proto b/src/brpc/errno.proto index 45e0c00568..26ffadc201 100644 --- a/src/brpc/errno.proto +++ b/src/brpc/errno.proto @@ -41,8 +41,7 @@ enum Errno { ESSL = 1016; // SSL related error EH2RUNOUTSTREAMS = 1017; // The H2 socket was run out of streams EREJECT = 1018; // The Request is rejected - EPROGREADTIMEOUT = 1019; // The Progressive read timeout - + // Errno caused by server EINTERNAL = 2001; // Internal Server Error ERESPONSE = 2002; // Bad Response diff --git a/src/brpc/input_messenger.cpp b/src/brpc/input_messenger.cpp index 9106544a24..8ed0246e90 100644 --- a/src/brpc/input_messenger.cpp +++ b/src/brpc/input_messenger.cpp @@ -297,11 +297,11 @@ int InputMessenger::ProcessNewMessage( num_bthread_created = 0; } } - // In RDMA polling mode, all messages must be executed in a new bthread and - // not in the bthread where the polling bthread is located, because the - // method for processing messages may call synchronization primitives, - // causing the polling bthread to be scheduled out. - if (m->_socket_mode == SOCKET_MODE_RDMA || m->_socket_mode == SOCKET_MODE_UBRING || m->_socket_mode == SOCKET_MODE_URMA) { + // These transports may deliver messages from completion pollers. Process + // the messages in another bthread so user code cannot block the poller. + if (m->_socket_mode == SOCKET_MODE_RDMA || + m->_socket_mode == SOCKET_MODE_UBRING || + m->_socket_mode == SOCKET_MODE_URMA) { m->_transport->QueueMessage(last_msg, &num_bthread_created, true); } if (num_bthread_created) { diff --git a/src/brpc/input_messenger.h b/src/brpc/input_messenger.h index 4e19bf0a5c..a0163d0698 100644 --- a/src/brpc/input_messenger.h +++ b/src/brpc/input_messenger.h @@ -33,6 +33,7 @@ class RdmaEndpoint; namespace urma { class UrmaEndpoint; } + namespace ubring { class UBShmEndpoint; } diff --git a/src/brpc/policy/http_rpc_protocol.cpp b/src/brpc/policy/http_rpc_protocol.cpp index 3fb9408850..8cbe06980f 100644 --- a/src/brpc/policy/http_rpc_protocol.cpp +++ b/src/brpc/policy/http_rpc_protocol.cpp @@ -1201,7 +1201,6 @@ ParseResult ParseHttpMessage(butil::IOBuf *source, Socket *socket, LOG(FATAL) << "Fail to new HttpContext"; return MakeParseError(PARSE_ERROR_NO_RESOURCE); } - http_imsg->SetSocketId(socket->id()); // Parsing http is costly, parsing an incomplete http message from the // beginning repeatedly should be avoided, otherwise the cost may reach // O(n^2) in the worst case. Save incomplete http messages in sockets diff --git a/src/brpc/policy/http_rpc_protocol.h b/src/brpc/policy/http_rpc_protocol.h index 2b2e9296ab..bc8bd06593 100644 --- a/src/brpc/policy/http_rpc_protocol.h +++ b/src/brpc/policy/http_rpc_protocol.h @@ -87,20 +87,11 @@ class HttpContext : public ReadableProgressiveAttachment , public InputMessageBase , public HttpMessage { public: - SocketId GetSocketId() override { - return _socket_id; - } - - void SetSocketId(SocketId id) { - _socket_id = id; - } - explicit HttpContext(bool read_body_progressively, HttpMethod request_method = HTTP_METHOD_GET) : InputMessageBase() , HttpMessage(read_body_progressively, request_method) - , _is_stage2(false) - , _socket_id(0) { + , _is_stage2(false) { // add one ref for Destroy butil::intrusive_ptr(this).detach(); } @@ -131,7 +122,6 @@ class HttpContext : public ReadableProgressiveAttachment private: bool _is_stage2; - SocketId _socket_id; }; // Implement functions required in protocol.h diff --git a/src/brpc/progressive_reader.h b/src/brpc/progressive_reader.h index 860068e2e6..6f54ae68a7 100644 --- a/src/brpc/progressive_reader.h +++ b/src/brpc/progressive_reader.h @@ -20,7 +20,6 @@ #define BRPC_PROGRESSIVE_READER_H #include "brpc/shared_object.h" -#include "brpc/socket.h" namespace brpc { @@ -85,7 +84,6 @@ class ReadableProgressiveAttachment : public SharedObject { // Any error occurred should destroy the reader by calling r->Destroy(). // r->Destroy() should be guaranteed to be called once and only once. virtual void ReadProgressiveAttachmentBy(ProgressiveReader* r) = 0; - virtual SocketId GetSocketId() = 0; }; } // namespace brpc diff --git a/src/brpc/server.cpp b/src/brpc/server.cpp index feb2eb8ab4..230c228416 100644 --- a/src/brpc/server.cpp +++ b/src/brpc/server.cpp @@ -1136,11 +1136,11 @@ int Server::StartInternal(const butil::EndPoint& endpoint, continue; } if (port_range.min_port != port_range.max_port) { - PLOG(ERROR) << "Fail to listen " << _listen_addr.ip - << ":[" << port_range.min_port << '-' - << port_range.max_port << ']'; + LOG(ERROR) << "Fail to listen " << _listen_addr.ip + << ":[" << port_range.min_port << '-' + << port_range.max_port << ']'; } else { - PLOG(ERROR) << "Fail to listen " << _listen_addr; + LOG(ERROR) << "Fail to listen " << _listen_addr; } return -1; } @@ -1201,7 +1201,7 @@ int Server::StartInternal(const butil::EndPoint& endpoint, butil::fd_guard sockfd(tcp_listen(internal_point, SetSocketBufferOptions)); if (sockfd < 0) { - PLOG(ERROR) << "Fail to listen " << internal_point << " (internal)"; + LOG(ERROR) << "Fail to listen " << internal_point << " (internal)"; return -1; } if (NULL == _internal_am) { diff --git a/src/brpc/server.h b/src/brpc/server.h index 6da32dc482..08083037ac 100644 --- a/src/brpc/server.h +++ b/src/brpc/server.h @@ -224,7 +224,7 @@ struct ServerOptions { // Force ssl for all connections of the port to Start(). bool force_ssl; - // the server socket mode uses tcp or rdma or ubring or urma + // Transport used by accepted sockets. // Default: SOCKET_MODE_TCP SocketMode socket_mode; diff --git a/src/brpc/socket_mode.h b/src/brpc/socket_mode.h index 0c88bfe1d5..1ea12a57e3 100644 --- a/src/brpc/socket_mode.h +++ b/src/brpc/socket_mode.h @@ -24,5 +24,6 @@ enum SocketMode { SOCKET_MODE_UBRING = 2, SOCKET_MODE_URMA = 3 }; -} // namespace brpc -#endif //BRPC_SOCKET_MODE_H \ No newline at end of file +} // namespace brpc + +#endif // BRPC_SOCKET_MODE_H diff --git a/src/brpc/transport_factory.cpp b/src/brpc/transport_factory.cpp index 3d9392cb87..31bb168801 100644 --- a/src/brpc/transport_factory.cpp +++ b/src/brpc/transport_factory.cpp @@ -16,36 +16,35 @@ // under the License. #include "brpc/transport_factory.h" -#include "brpc/tcp_transport.h" #include "brpc/rdma_transport.h" -#include "brpc/urma_transport.h" +#include "brpc/tcp_transport.h" #include "brpc/ubshm_transport.h" +#include "brpc/urma_transport.h" + namespace brpc { -int TransportFactory::ContextInitOrDie(SocketMode mode, bool serverOrNot, const void* _options) { + +int TransportFactory::ContextInitOrDie( + SocketMode mode, bool server_or_not, const void* options) { if (mode == SOCKET_MODE_TCP) { return 0; } #if BRPC_WITH_RDMA - else if (mode == SOCKET_MODE_RDMA) { - return RdmaTransport::ContextInitOrDie(serverOrNot, _options); + if (mode == SOCKET_MODE_RDMA) { + return RdmaTransport::ContextInitOrDie(server_or_not, options); } #endif - #if BRPC_WITH_URMA - else if (mode == SOCKET_MODE_URMA) { - return UrmaTransport::ContextInitOrDie(serverOrNot, _options); + if (mode == SOCKET_MODE_URMA) { + return UrmaTransport::ContextInitOrDie(server_or_not, options); } #endif - #if BRPC_WITH_UBRING - else if (mode == SOCKET_MODE_UBRING) { - return UBShmTransport::ContextInitOrDie(serverOrNot, _options); + if (mode == SOCKET_MODE_UBRING) { + return UBShmTransport::ContextInitOrDie(server_or_not, options); } #endif - else { - LOG(ERROR) << "unknown transport type " << mode; - return 1; - } + LOG(ERROR) << "Unknown transport type " << mode; + return 1; } std::unique_ptr TransportFactory::CreateTransport(SocketMode mode) { @@ -53,26 +52,22 @@ std::unique_ptr TransportFactory::CreateTransport(SocketMode mode) { return std::unique_ptr(new TcpTransport()); } #if BRPC_WITH_RDMA - else if (mode == SOCKET_MODE_RDMA) { + if (mode == SOCKET_MODE_RDMA) { return std::unique_ptr(new RdmaTransport()); } #endif - #if BRPC_WITH_URMA - else if (mode == SOCKET_MODE_URMA) { + if (mode == SOCKET_MODE_URMA) { return std::unique_ptr(new UrmaTransport()); } #endif - #if BRPC_WITH_UBRING - else if (mode == SOCKET_MODE_UBRING) { + if (mode == SOCKET_MODE_UBRING) { return std::unique_ptr(new UBShmTransport()); - } #endif - else { - LOG(ERROR) << "socket_mode set error"; - return nullptr; - } + LOG(ERROR) << "Unknown transport type " << mode; + return nullptr; } -} // namespace brpc \ No newline at end of file + +} // namespace brpc diff --git a/src/brpc/transport_factory.h b/src/brpc/transport_factory.h index d933a130e1..84b047daac 100644 --- a/src/brpc/transport_factory.h +++ b/src/brpc/transport_factory.h @@ -22,13 +22,16 @@ #include "brpc/transport.h" namespace brpc { -// TransportFactory to create transport instance with socket_mode {TCP, RDMA} + +// Creates transport instances for a SocketMode. class TransportFactory { public: - static int ContextInitOrDie(SocketMode mode, bool serverOrNot, const void* _options); + static int ContextInitOrDie(SocketMode mode, bool server_or_not, + const void* options); // Create transport instance with socket mode. static std::unique_ptr CreateTransport(SocketMode mode); }; -} // namespace brpc -#endif //BRPC_TRANSPORT_FACTORY_H \ No newline at end of file +} // namespace brpc + +#endif // BRPC_TRANSPORT_FACTORY_H diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31.json deleted file mode 100644 index dc93d7be43..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_opcode_h", "label": "urma_opcode.h", "file_type": "code", "source_file": "sdk/urma/urma_opcode.h", "source_location": "L1"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_opcode_h", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_opcode.h", "source_location": "L14", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422.json deleted file mode 100644 index ebff288857..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "label": "urma_helper.h", "file_type": "code", "source_file": "urma_helper.h", "source_location": "L1"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "cstddef", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L21", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "cstdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "functional", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L24", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_h", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.h", "source_location": "L32", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54.json deleted file mode 100644 index 4bfad372ec..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "label": "urma_handshake.cpp", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "label": "HelloMessage::Serialize()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L72", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "label": "HelloMessage::Deserialize()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L91", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_validhello", "label": "ValidHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L127", "_callable": true}, {"id": "parsedhello", "label": "ParsedHello", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "label": "ReadBodyAndNegotiate()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L141", "_callable": true}, {"id": "urmaendpoint", "label": "UrmaEndpoint", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "label": "DrainBytes()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L173", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "label": "UrmaHandshakeClientV2::SendLocalHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L187", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "label": "UrmaHandshakeClientV2::ReceiveAndParseRemoteHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L196", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "label": "UrmaHandshakeServerV2::ReceiveAndParseRemoteHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L210", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "label": "UrmaHandshakeServerV2::SendLocalHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L215", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "label": "UrmaHandshakeClientV3::SendLocalHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L240", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "label": "UrmaHandshakeClientV3::ReceiveAndParseRemoteHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L246", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "label": "UrmaHandshakeServerV3::ReceiveAndParseRemoteHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L258", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "label": "UrmaHandshakeServerV3::SendLocalHello()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L263", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createclienthandshake", "label": "CreateClientHandshake()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L274", "_callable": true}, {"id": "urmahandshake", "label": "UrmaHandshake", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "label": "CreateServerHandshakeByMagic()", "file_type": "code", "source_file": "urma_handshake.cpp", "source_location": "L282", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L18", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "algorithm", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "cstring", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "limits", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L24", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "gflags", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L28", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "iobuf", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L29", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L30", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "sys_byteorder", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L33", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_endpoint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L34", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_helper", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L35", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L36", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "urma_transport", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L37", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L72", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L91", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_validhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L127", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_validhello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L127", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L141", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "target": "urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L141", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L141", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L173", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "target": "urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L173", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L187", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L196", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L196", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L210", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L210", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L215", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L240", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L246", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L246", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L258", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L258", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L263", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createclienthandshake", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L274", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createclienthandshake", "target": "urmahandshake", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L274", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createclienthandshake", "target": "urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L274", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L282", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "target": "urmahandshake", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L282", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "target": "urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L282", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_validhello", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L163", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L166", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L207", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_handshake.cpp", "source_location": "L212", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L74", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L75", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L76", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L77", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L78", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L79", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L80", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L81", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "memset", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L83", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L84", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L85", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet64", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L86", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet64", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L87", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L88", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L93", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L94", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost16", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L95", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L96", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L97", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L98", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L99", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L100", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L103", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L104", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost64", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L105", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost64", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L106", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L107", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L144", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "callee": "Deserialize", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L146", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L155", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_readbodyandnegotiate", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L158", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_drainbytes", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L177", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "callee": "FillLocalHelloV2", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L189", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L191", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "callee": "Serialize", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L192", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "callee": "WriteToFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L193", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L200", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "callee": "memcmp", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L201", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "callee": "PushBackToReadBuf", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L204", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "FillLocalHelloV2", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L217", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "get", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L218", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "load", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L219", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "memcpy", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L229", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "Serialize", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L230", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "callee": "WriteToFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L231", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "callee": "FillLocalHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L242", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "callee": "WriteHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L243", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L250", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "callee": "memcmp", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L251", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "callee": "PushBackToReadBuf", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L252", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "callee": "ReadAndParseHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L255", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "callee": "ReadAndParseHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L260", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "callee": "FillLocalHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L265", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "callee": "WriteHelloV3", "is_member_call": true, "source_file": "urma_handshake.cpp", "source_location": "L267", "receiver": "_ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "callee": "memcmp", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L284", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_createserverhandshakebymagic", "callee": "memcmp", "is_member_call": false, "source_file": "urma_handshake.cpp", "source_location": "L287", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp", "table": {"p": "ParsedHello", "m": "HelloMessage", "msg": "UrmaHello"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e.json deleted file mode 100644 index 9e5c46ae91..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "label": "urma_helper.cpp", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "label": "UserSeg", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L139", "_callable": true}, {"id": "urma_target_seg_t", "label": "urma_target_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_tseg", "label": "tseg", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L140"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_base", "label": "base", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L141"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_len", "label": "len", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L142"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pagesize", "label": "PageSize()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L155", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_alignup", "label": "AlignUp()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L160", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "label": "BufferPool", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L174", "_callable": true}, {"id": "mutex", "label": "Mutex", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_mutexes", "label": "mutexes", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L175"}, {"id": "vector", "label": "vector", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_free_lists", "label": "free_lists", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L176"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_in_use", "label": "in_use", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L177"}, {"id": "atomic", "label": "atomic", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_outstanding", "label": "outstanding", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L178"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "label": ".buffer_count()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L180", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_shardfor", "label": "ShardFor()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L186", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_preferredshard", "label": "PreferredShard()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L193", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "label": "PoolAllocate()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L200", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "label": "PoolDeallocate()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L227", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "label": "InitPool()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L259", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getpoolsegfor", "label": "GetPoolSegFor()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L313", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "label": "GlobalRelease()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L324", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "label": "GlobalUrmaInitializeImpl()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L372", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "label": "GlobalUrmaInitializeOrDie()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L521", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_isurmaavailable", "label": "IsUrmaAvailable()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L540", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globaldisableurma", "label": "GlobalDisableUrma()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L544", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_supportedbyurma", "label": "SupportedByUrma()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L548", "_callable": true}, {"id": "string", "label": "string", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmacontext", "label": "GetUrmaContext()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L552", "_callable": true}, {"id": "urma_context_t", "label": "urma_context_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmamaxsge", "label": "GetUrmaMaxSge()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L553", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmarecvblocksize", "label": "GetUrmaRecvBlockSize()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L554", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "label": "InitPollingModeWithTag()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L560", "_callable": true}, {"id": "bthread_tag_t", "label": "bthread_tag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "function", "label": "function", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_releasepollingmodewithtag", "label": "ReleasePollingModeWithTag()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L570", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "label": "RegisterMemoryForUrma()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L578", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "label": "DeregisterMemoryForUrma()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L613", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "label": "GetSegHandle()", "file_type": "code", "source_file": "urma_helper.cpp", "source_location": "L622", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "urma_helper", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L18", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "errno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "stdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L24", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L25", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "mman", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "atomic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L29", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "new", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L30", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "utility", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "vector", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L32", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "gflags", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L34", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L36", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "flat_map", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L37", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "iobuf", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L39", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "macros", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L40", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "scoped_lock", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L41", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "lock", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L42", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L44", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L45", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "urma_endpoint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L46", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L139", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L140", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_tseg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L140", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_base", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L141", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_userseg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L142", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pagesize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L155", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_alignup", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L160", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L174", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "mutex", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L175", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_mutexes", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L175", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "vector", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L176", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_free_lists", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L176", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "vector", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L177", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_in_use", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L177", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "atomic", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L178", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_outstanding", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L178", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L180", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_shardfor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L186", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_preferredshard", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L193", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L200", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L227", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L259", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getpoolsegfor", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L313", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getpoolsegfor", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L313", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L324", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L372", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L521", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_isurmaavailable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L540", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globaldisableurma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L544", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_supportedbyurma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L548", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_supportedbyurma", "target": "string", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L548", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmacontext", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L552", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmacontext", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L552", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmamaxsge", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L553", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_geturmarecvblocksize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L554", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "target": "bthread_tag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L560", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_releasepollingmodewithtag", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L570", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_releasepollingmodewithtag", "target": "bthread_tag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L570", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L578", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L613", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L622", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "cstdlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L653", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L655", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L660", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_preferredshard", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L209", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_shardfor", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L242", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L261", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pagesize", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L264", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_alignup", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L265", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "target": "string", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L414", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L485", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L514", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L527", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_helper.cpp", "source_location": "L529", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pagesize", "callee": "sysconf", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L156", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_bufferpool_buffer_count", "callee": "size", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L181", "receiver": "in_use", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_preferredshard", "callee": "pthread_self", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L196", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L201", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "g_mem_alloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L202", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "malloc", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L202", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "g_mem_alloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L207", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "malloc", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L207", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L212", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "empty", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L214", "receiver": "fl", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "back", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L215", "receiver": "fl", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "pop_back", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L216", "receiver": "fl", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "size", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L219", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L220", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L223", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "g_mem_alloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L224", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_poolallocate", "callee": "malloc", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L224", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L228", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "g_mem_dealloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L229", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "free", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L230", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "g_mem_dealloc_orig", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L238", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "free", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L239", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L243", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "size", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L245", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L247", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "push_back", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L252", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "load", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L253", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_pooldeallocate", "callee": "fetch_sub", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L254", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "mmap", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L267", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "PLOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L270", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "urma_register_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L290", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "PLOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L292", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "munmap", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L293", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "assign", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L297", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "push_back", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L300", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpool", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L303", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L325", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "SetDefaultBlockSize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L335", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "GlobalRelease", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L338", "receiver": "UrmaEndpoint", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "urma_unregister_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L340", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "munmap", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L344", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "urma_delete_context", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L355", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "urma_uninit", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L359", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalrelease", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L361", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L373", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L374", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L381", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_init", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L387", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L390", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L398", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_get_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L405", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L407", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L408", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "empty", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L413", "receiver": "FLAGS_urma_device", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L420", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L421", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_query_device", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L427", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L428", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L429", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_get_eid_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L434", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L436", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_eid_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L437", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L438", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_create_context", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L442", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_eid_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L443", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "urma_free_device_list", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L444", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L447", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L457", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "init", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L471", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L472", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "assign", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L481", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "reserve", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L483", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L486", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "GetDefaultBlockSize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L495", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "SetDefaultBlockSize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L498", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "GlobalInitialize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L500", "receiver": "UrmaEndpoint", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L501", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L505", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeimpl", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L511", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "load", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L523", "receiver": "g_init_once", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "compare_exchange_strong", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L524", "receiver": "g_init_once", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L526", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L528", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L531", "receiver": "g_init_once", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "load", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L534", "receiver": "g_init_once", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_isurmaavailable", "callee": "load", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L541", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globaldisableurma", "callee": "store", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L545", "receiver": "g_urma_available", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L564", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "PollingModeInitialize", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L565", "receiver": "UrmaEndpoint", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "move", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L566", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "move", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L566", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_initpollingmodewithtag", "callee": "move", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L567", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_releasepollingmodewithtag", "callee": "PollingModeRelease", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L571", "receiver": "UrmaEndpoint", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L579", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "urma_register_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L595", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "PLOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L597", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L600", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "insert", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L605", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L606", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_registermemoryforurma", "callee": "urma_unregister_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L607", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "BAIDU_UNLIKELY", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L614", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L615", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "seek", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L616", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "urma_unregister_seg", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L618", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_deregistermemoryforurma", "callee": "erase", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L619", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L633", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "callee": "begin", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L635", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_getseghandle", "callee": "end", "is_member_call": true, "source_file": "urma_helper.cpp", "source_location": "L635", "receiver": "g_user_segs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "LOG", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L661", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_helper_globalurmainitializeordie", "callee": "exit", "is_member_call": false, "source_file": "urma_helper.cpp", "source_location": "L662", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp", "table": {"us": "UserSeg"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0.json deleted file mode 100644 index 5dc5ce90e5..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "label": "mock_urma.cpp", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "label": "JfcState", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L54", "_callable": true}, {"id": "mutex", "label": "mutex", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_mutex", "label": "mutex", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L55"}, {"id": "deque", "label": "deque", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_cr_t", "label": "urma_cr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_completions", "label": "completions", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L56"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_event_pending", "label": "event_pending", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L57"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "label": "PendingRecv", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L60", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_addr", "label": "addr", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L61"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_len", "label": "len", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L62"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L63"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "label": "PushCompletion()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L83", "_callable": true}, {"id": "urma_jfc_t", "label": "urma_jfc_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_init", "label": "urma_init()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L122", "_callable": true}, {"id": "urma_status_t", "label": "urma_status_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_init_attr_t", "label": "urma_init_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "label": "urma_uninit()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L131", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "label": "urma_get_device_list()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L155", "_callable": true}, {"id": "urma_device_t", "label": "urma_device_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "label": "urma_get_device_by_name()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L195", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_device_list", "label": "urma_free_device_list()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L233", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "label": "urma_query_device()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L239", "_callable": true}, {"id": "urma_device_attr_t", "label": "urma_device_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "label": "urma_get_eid_list()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L252", "_callable": true}, {"id": "urma_eid_info_t", "label": "urma_eid_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_eid_list", "label": "urma_free_eid_list()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L262", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_context", "label": "urma_create_context()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L268", "_callable": true}, {"id": "urma_context_t", "label": "urma_context_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "label": "urma_delete_context()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L280", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "label": "urma_create_jfce()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L290", "_callable": true}, {"id": "urma_jfce_t", "label": "urma_jfce_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "label": "urma_delete_jfce()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L308", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "label": "urma_create_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L319", "_callable": true}, {"id": "urma_jfc_cfg_t", "label": "urma_jfc_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "label": "urma_delete_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L337", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "label": "urma_create_jfr()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L348", "_callable": true}, {"id": "urma_jfr_t", "label": "urma_jfr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_jfr_cfg_t", "label": "urma_jfr_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "label": "urma_delete_jfr()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L364", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "label": "urma_register_seg()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L376", "_callable": true}, {"id": "urma_target_seg_t", "label": "urma_target_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_seg_cfg_t", "label": "urma_seg_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "label": "urma_unregister_seg()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L392", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "label": "urma_import_seg()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L402", "_callable": true}, {"id": "urma_seg_t", "label": "urma_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_token_t", "label": "urma_token_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_import_seg_flag_t", "label": "urma_import_seg_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "label": "urma_unimport_seg()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L417", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "label": "urma_get_async_event()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L427", "_callable": true}, {"id": "urma_async_event_t", "label": "urma_async_event_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_async_event", "label": "urma_ack_async_event()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L439", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "label": "urma_create_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L441", "_callable": true}, {"id": "urma_jetty_t", "label": "urma_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_jetty_cfg_t", "label": "urma_jetty_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "label": "urma_delete_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L458", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "label": "urma_unbind_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L469", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "label": "urma_import_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L478", "_callable": true}, {"id": "urma_target_jetty_t", "label": "urma_target_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "urma_rjetty_t", "label": "urma_rjetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "label": "urma_unimport_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L493", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "label": "urma_bind_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L503", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "label": "urma_modify_jetty()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L514", "_callable": true}, {"id": "urma_jetty_attr_t", "label": "urma_jetty_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "label": "urma_post_jetty_send_wr()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L522", "_callable": true}, {"id": "urma_jfs_wr_t", "label": "urma_jfs_wr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "label": "urma_post_jfr_wr()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L605", "_callable": true}, {"id": "urma_jfr_wr_t", "label": "urma_jfr_wr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "label": "urma_poll_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L627", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_rearm_jfc", "label": "urma_rearm_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L647", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "label": "urma_wait_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L651", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_jfc", "label": "urma_ack_jfc()", "file_type": "code", "source_file": "mock_urma.cpp", "source_location": "L674", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "algorithm", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L40", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "atomic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L41", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "cerrno", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L42", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "cstring", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L43", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "deque", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L44", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "map", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L45", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "mutex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L46", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "shared_mutex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L47", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "eventfd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L48", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L49", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "vector", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L50", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L54", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "mutex", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L55", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L55", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "deque", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L56", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "urma_cr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L56", "weight": 1.0, "context": "generic_arg"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_completions", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L56", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate_event_pending", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L57", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L60", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L61", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L62", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pendingrecv_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L63", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L83", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L83", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_jfcstate", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L83", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "target": "urma_cr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L83", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_init", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L122", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_init", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L122", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_init", "target": "urma_init_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L122", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L131", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L131", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L155", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L155", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L195", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L195", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_device_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L233", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_device_list", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L233", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L239", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L239", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L239", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "target": "urma_device_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L239", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L252", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "target": "urma_eid_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L252", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L252", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_eid_list", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L262", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_free_eid_list", "target": "urma_eid_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L262", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_context", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L268", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_context", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L268", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_context", "target": "urma_device_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L268", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L280", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L280", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L280", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L290", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L290", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L290", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L308", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L308", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L308", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L319", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L319", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L319", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "target": "urma_jfc_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L319", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L337", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L337", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L337", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L348", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "target": "urma_jfr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L348", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L348", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "target": "urma_jfr_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L348", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L364", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L364", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "target": "urma_jfr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L364", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L376", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L376", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L376", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "target": "urma_seg_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L376", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L392", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L392", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L392", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "target": "urma_import_seg_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L402", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L417", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L417", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L417", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L427", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L427", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L427", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "target": "urma_async_event_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L427", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_async_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L439", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_async_event", "target": "urma_async_event_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L439", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L441", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L441", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L441", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "target": "urma_jetty_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L441", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L458", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L458", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L458", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L469", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L469", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L469", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "target": "urma_rjetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L478", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L493", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L493", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L493", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L503", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L503", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L503", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L503", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L514", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L514", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L514", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "target": "urma_jetty_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L514", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "urma_jfs_wr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "urma_jfs_wr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L522", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "target": "urma_jfr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "target": "urma_jfr_wr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "target": "urma_jfr_wr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L605", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L627", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L627", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "target": "urma_cr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L627", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_rearm_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L647", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_rearm_jfc", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L647", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_rearm_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L647", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L651", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L651", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L651", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L674", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_ack_jfc", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L674", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "mock_urma.cpp", "source_location": "L543", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "callee": "push_back", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L88", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_pushcompletion", "callee": "write", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L97", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L137", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L138", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L139", "receiver": "jfce_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L143", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L144", "receiver": "jfr_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L145", "receiver": "jfr_jfc_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L146", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L147", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L148", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L149", "receiver": "jetty_id_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "clear", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L150", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_uninit", "callee": "store", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L151", "receiver": "next_jetty_id", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L162", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L163", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L164", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L165", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L177", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "strcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L179", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "strcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L180", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "push_back", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L184", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L186", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L187", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_list", "callee": "size", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L188", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L201", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "strcmp", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L203", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L215", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "strcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L217", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "strcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L218", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "push_back", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L222", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "strcmp", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L225", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_device_by_name", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L229", "receiver": "device_list", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_query_device", "callee": "memcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L248", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_eid_list", "callee": "memcpy", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L258", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L282", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L282", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_context", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L285", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L292", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L292", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfce", "callee": "eventfd", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L299", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L310", "receiver": "jfce_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L310", "receiver": "jfce_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L313", "receiver": "jfce_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfce", "callee": "close", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L314", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L321", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L321", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfc", "callee": "memset", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L325", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L339", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L339", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfc", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L343", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L350", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jfr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L350", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L366", "receiver": "jfr_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L366", "receiver": "jfr_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L369", "receiver": "jfr_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L370", "receiver": "jfr_jfc_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jfr", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L371", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L378", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L378", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_register_seg", "callee": "memset", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L382", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L394", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L394", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unregister_seg", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L397", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L407", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_seg", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L407", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L419", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L419", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_seg", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L422", "receiver": "seg_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L433", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_get_async_event", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L433", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L443", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L443", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "callee": "memset", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L447", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_create_jetty", "callee": "fetch_add", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L450", "receiver": "next_jetty_id", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L460", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L460", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L463", "receiver": "jetty_id_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_delete_jetty", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L464", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L471", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unbind_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L471", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L483", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_import_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L483", "receiver": "context_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L495", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L495", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_unimport_jetty", "callee": "erase", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L498", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L506", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L506", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L507", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_bind_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L507", "receiver": "target_jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L516", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_modify_jetty", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L516", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L525", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L527", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L528", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L529", "receiver": "jetty_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L530", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "unlock", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L535", "receiver": "read_lock", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L552", "receiver": "jetty_id_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L553", "receiver": "jetty_id_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L558", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L559", "receiver": "jfr_jfc_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L560", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L560", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L561", "receiver": "jfr_jfc_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "front", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L564", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "pop_front", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L565", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "memcpy", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L574", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L582", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jetty_send_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L583", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L608", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L609", "receiver": "jfr_recv_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_post_jfr_wr", "callee": "push_back", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L618", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "find", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L631", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "end", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L632", "receiver": "jfc_state_map", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L637", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "front", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L638", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "pop_front", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L639", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_poll_jfc", "callee": "empty", "is_member_call": true, "source_file": "mock_urma.cpp", "source_location": "L641", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_mock_urma_urma_wait_jfc", "callee": "read", "is_member_call": false, "source_file": "mock_urma.cpp", "source_location": "L658", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp", "table": {"remote_state": "JfcState", "recv": "PendingRecv", "local_state": "JfcState", "state": "JfcState"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca.json deleted file mode 100644 index 9ccaeb8d17..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "label": "urma_types.h", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr", "label": "urma_init_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L85", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr_token", "label": "token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L86"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L87"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ref", "label": "urma_ref", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L152", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "label": "urma_port_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L160", "_callable": true}, {"id": "urma_mtu_t", "label": "urma_mtu_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_max_mtu", "label": "max_mtu", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L161"}, {"id": "urma_port_state_t", "label": "urma_port_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L162"}, {"id": "urma_link_width_t", "label": "urma_link_width_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_width", "label": "active_width", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L163"}, {"id": "urma_speed_t", "label": "urma_speed_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_speed", "label": "active_speed", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L164"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_mtu", "label": "active_mtu", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L165"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info", "label": "urma_sl_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L178", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info_sl", "label": "SL", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L179"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info_tp_type", "label": "tp_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L180"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "label": "urma_device_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L254", "_callable": true}, {"id": "urma_device_feature_t", "label": "urma_device_feature_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_feature", "label": "feature", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L255"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfc", "label": "max_jfc", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L256"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs", "label": "max_jfs", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L257"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr", "label": "max_jfr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L258"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty", "label": "max_jetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L259"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty_grp", "label": "max_jetty_grp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L260"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty_in_jetty_grp", "label": "max_jetty_in_jetty_grp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L261"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfc_depth", "label": "max_jfc_depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L262"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_depth", "label": "max_jfs_depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L263"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr_depth", "label": "max_jfr_depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L264"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_inline_len", "label": "max_jfs_inline_len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L265"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_sge", "label": "max_jfs_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L266"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_rsge", "label": "max_jfs_rsge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L267"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr_sge", "label": "max_jfr_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L268"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_msg_size", "label": "max_msg_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L269"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_read_size", "label": "max_read_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L270"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_write_size", "label": "max_write_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L271"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_cas_size", "label": "max_cas_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L272"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_swap_size", "label": "max_swap_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L273"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_add_size", "label": "max_fetch_and_add_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L274"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_sub_size", "label": "max_fetch_and_sub_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L275"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_and_size", "label": "max_fetch_and_and_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L276"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_or_size", "label": "max_fetch_and_or_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L277"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_xor_size", "label": "max_fetch_and_xor_size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L278"}, {"id": "urma_atomic_feature_t", "label": "urma_atomic_feature_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_atomic_feat", "label": "atomic_feat", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L279"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L280"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_congestion_ctrl_alg", "label": "congestion_ctrl_alg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L281"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_ceq_cnt", "label": "ceq_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L282"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_tp_in_tpg", "label": "max_tp_in_tpg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L283"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_eid_cnt", "label": "max_eid_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L284"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_page_size_cap", "label": "page_size_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L285"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_oor_cnt", "label": "max_oor_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L286"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_mn", "label": "mn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L287"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_netaddr_cnt", "label": "max_netaddr_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L288"}, {"id": "urma_order_type_cap_t", "label": "urma_order_type_cap_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rm_order_cap", "label": "rm_order_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L289"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rc_order_cap", "label": "rc_order_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L290"}, {"id": "urma_tp_type_cap_t", "label": "urma_tp_type_cap_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rm_tp_cap", "label": "rm_tp_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L291"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rc_tp_cap", "label": "rc_tp_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L292"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_um_tp_cap", "label": "um_tp_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L293"}, {"id": "urma_tp_feature_t", "label": "urma_tp_feature_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_tp_feature", "label": "tp_feature", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L294"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_priority_info", "label": "priority_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L295"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid", "label": "urma_guid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L298", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid_raw", "label": "raw", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L299"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "label": "urma_device_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L302", "_callable": true}, {"id": "urma_guid_t", "label": "urma_guid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_guid", "label": "guid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L303"}, {"id": "urma_device_cap_t", "label": "urma_device_cap_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_dev_cap", "label": "dev_cap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L304"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_port_cnt", "label": "port_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L305"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_port_attr", "label": "port_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L306"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_min", "label": "reserved_jetty_id_min", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L307"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_max", "label": "reserved_jetty_id_max", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L308"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token", "label": "urma_token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L312", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_token", "label": "token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L313"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sysfs_dev", "label": "urma_sysfs_dev", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L316", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ops", "label": "urma_ops", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L318", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_provider_ops", "label": "urma_provider_ops", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L319", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "label": "urma_cc_entry", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L358", "_callable": true}, {"id": "urma_tp_cc_alg_t", "label": "urma_tp_cc_alg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_alg", "label": "alg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L359"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_cc_pattern_idx", "label": "cc_pattern_idx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L360"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_cc_priority", "label": "cc_priority", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L361"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "label": "urma_device", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L364", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L365"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_path", "label": "path", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L367"}, {"id": "urma_transport_type_t", "label": "urma_transport_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_type", "label": "type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L368"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_ops", "label": "ops", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L369"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_sysfs_dev", "label": "sysfs_dev", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L370"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "label": "urma_context", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L383", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_dev", "label": "dev", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L384"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_ops", "label": "ops", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L385"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_dev_fd", "label": "dev_fd", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L386"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_async_fd", "label": "async_fd", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L387"}, {"id": "pthread_mutex_t", "label": "pthread_mutex_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_mutex", "label": "mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L388"}, {"id": "urma_eid_t", "label": "urma_eid_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L389"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_eid_index", "label": "eid_index", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L390"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L391"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_ref", "label": "ref", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L392"}, {"id": "urma_context_aggr_mode_t", "label": "urma_context_aggr_mode_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_aggr_mode", "label": "aggr_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L393"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "label": "urma_eid_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L396", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L397"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info_eid_index", "label": "eid_index", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L398"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg", "label": "urma_jfce_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L401", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg_depth", "label": "depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L402"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L403"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "label": "urma_jfce", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L406", "_callable": true}, {"id": "urma_context_t", "label": "urma_context_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L407"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_fd", "label": "fd", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L408"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_ref", "label": "ref", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L409"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "label": "urma_jfc_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L423", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_depth", "label": "depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L424"}, {"id": "urma_jfc_flag_t", "label": "urma_jfc_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L425"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_ceqn", "label": "ceqn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L426"}, {"id": "urma_jfce_t", "label": "urma_jfce_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_jfce", "label": "jfce", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L428"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L429"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "label": "urma_jfc_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L437", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_mask", "label": "mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L438"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_moderate_count", "label": "moderate_count", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L439"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_moderate_period", "label": "moderate_period", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L440"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "label": "urma_jetty_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L443", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L444"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L445"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L446"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "label": "urma_jfc_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L467", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_jfc_opt_mask", "label": "jfc_opt_mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L468"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_is_actived", "label": "is_actived", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L470"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_cqe_base_addr", "label": "urma_jfc_cqe_base_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L471"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_id", "label": "urma_jfc_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L472"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_addr", "label": "urma_jfc_db_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L473"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_status", "label": "urma_jfc_db_status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L474"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi", "label": "urma_jfc_pi", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L475"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi_type", "label": "urma_jfc_pi_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L476"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_ci", "label": "urma_jfc_ci", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L477"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L478"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "label": "urma_jfc", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L481", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L482"}, {"id": "urma_jfc_id_t", "label": "urma_jfc_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_jfc_id", "label": "jfc_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L483"}, {"id": "urma_jfc_cfg_t", "label": "urma_jfc_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_jfc_cfg", "label": "jfc_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L484"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L485"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L486"}, {"id": "pthread_cond_t", "label": "pthread_cond_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L487"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_comp_events_acked", "label": "comp_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L488"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L489"}, {"id": "urma_jfc_opt_t", "label": "urma_jfc_opt_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_urma_jfc_opt", "label": "urma_jfc_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L490"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "label": "urma_jfs_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L534", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_jfs_opt_mask", "label": "jfs_opt_mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L535"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_is_actived", "label": "is_actived", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L537"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_sqe_base_addr", "label": "urma_jfs_sqe_base_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L538"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_id", "label": "urma_jfs_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L539"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_addr", "label": "urma_jfs_db_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L540"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_status", "label": "urma_jfs_db_status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L541"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi", "label": "urma_jfs_pi", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L542"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi_type", "label": "urma_jfs_pi_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L543"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_ci", "label": "urma_jfs_ci", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L544"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L545"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "label": "urma_jfs_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L548", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_depth", "label": "depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L549"}, {"id": "urma_jfs_flag_t", "label": "urma_jfs_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L550"}, {"id": "urma_transport_mode_t", "label": "urma_transport_mode_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L551"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_priority", "label": "priority", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L552"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_sge", "label": "max_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L554"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_rsge", "label": "max_rsge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L555"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_inline_data", "label": "max_inline_data", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L556"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_rnr_retry", "label": "rnr_retry", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L558"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_err_timeout", "label": "err_timeout", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L562"}, {"id": "urma_jfc_t", "label": "urma_jfc_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_jfc", "label": "jfc", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L564"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L565"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "label": "urma_jfs", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L568", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L569"}, {"id": "urma_jfs_id_t", "label": "urma_jfs_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_jfs_id", "label": "jfs_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L570"}, {"id": "urma_jfs_cfg_t", "label": "urma_jfs_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_jfs_cfg", "label": "jfs_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L571"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L572"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L573"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L574"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L575"}, {"id": "urma_jfs_opt_t", "label": "urma_jfs_opt_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_urma_jfs_opt", "label": "urma_jfs_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L576"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "label": "urma_jfs_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L585", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr_mask", "label": "mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L586"}, {"id": "urma_jfs_state_t", "label": "urma_jfs_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L587"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "label": "urma_jfr_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L625", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_jfr_opt_mask", "label": "jfr_opt_mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L626"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_is_actived", "label": "is_actived", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L628"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_rqe_base_addr", "label": "urma_jfr_rqe_base_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L629"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_id", "label": "urma_jfr_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L630"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_addr", "label": "urma_jfr_db_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L631"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_status", "label": "urma_jfr_db_status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L632"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi", "label": "urma_jfr_pi", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L633"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi_type", "label": "urma_jfr_pi_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L634"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_ci", "label": "urma_jfr_ci", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L635"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L636"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "label": "urma_jfr_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L639", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L640"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_depth", "label": "depth", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L642"}, {"id": "urma_jfr_flag_t", "label": "urma_jfr_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L643"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L644"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_max_sge", "label": "max_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L645"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_min_rnr_timer", "label": "min_rnr_timer", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L646"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_jfc", "label": "jfc", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L648"}, {"id": "urma_token_t", "label": "urma_token_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L649"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L650"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "label": "urma_jfr_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L658", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_mask", "label": "mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L659"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_rx_threshold", "label": "rx_threshold", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L660"}, {"id": "urma_jfr_state_t", "label": "urma_jfr_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L661"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "label": "urma_jfr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L664", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L665"}, {"id": "urma_jfr_id_t", "label": "urma_jfr_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_jfr_id", "label": "jfr_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L666"}, {"id": "urma_jfr_cfg_t", "label": "urma_jfr_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_jfr_cfg", "label": "jfr_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L667"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L668"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L669"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L670"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L671"}, {"id": "urma_jfr_opt_t", "label": "urma_jfr_opt_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_urma_jfr_opt", "label": "urma_jfr_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L672"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "label": "urma_rjfr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L702", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_jfr_id", "label": "jfr_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L703"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L704"}, {"id": "urma_import_jetty_flag_t", "label": "urma_import_jetty_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L705"}, {"id": "urma_tp_type_t", "label": "urma_tp_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_tp_type", "label": "tp_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L706"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp", "label": "urma_tp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L709", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_tpn", "label": "tpn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L710"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "label": "urma_jetty_grp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L724", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "label": "urma_jetty_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L726", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L727"}, {"id": "urma_jetty_flag_t", "label": "urma_jetty_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L728"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_jfs_cfg", "label": "jfs_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L731"}, {"id": "urma_jetty_grp_t", "label": "urma_jetty_grp_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_jetty_grp", "label": "jetty_grp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L741"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L742"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "label": "urma_rjetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L756", "_callable": true}, {"id": "urma_jetty_id_t", "label": "urma_jetty_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_jetty_id", "label": "jetty_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L757"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L758"}, {"id": "urma_jetty_grp_policy_t", "label": "urma_jetty_grp_policy_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_policy", "label": "policy", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L759"}, {"id": "urma_target_type_t", "label": "urma_target_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_type", "label": "type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L760"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L761"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_tp_type", "label": "tp_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L762"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "label": "urma_target_jetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L765", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L766"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L767"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L768"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L769"}, {"id": "urma_tp_t", "label": "urma_tp_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_tp", "label": "tp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L770"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_type", "label": "type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L771"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L772"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_policy", "label": "policy", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L773"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_tp_type", "label": "tp_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L774"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "label": "urma_jetty_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L782", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_mask", "label": "mask", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L783"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_rx_threshold", "label": "rx_threshold", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L784"}, {"id": "urma_jetty_state_t", "label": "urma_jetty_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L785"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "label": "urma_jetty_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L788", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_is_actived", "label": "is_actived", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L789"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_jfs_opt", "label": "jfs_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L790"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L791"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "label": "urma_jetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L794", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L795"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_jetty_id", "label": "jetty_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L796"}, {"id": "urma_target_jetty_t", "label": "urma_target_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_remote_jetty", "label": "remote_jetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L797"}, {"id": "urma_jetty_cfg_t", "label": "urma_jetty_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_jetty_cfg", "label": "jetty_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L799"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L800"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L801"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L802"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L803"}, {"id": "urma_jetty_opt_t", "label": "urma_jetty_opt_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_urma_jetty_opt", "label": "urma_jetty_opt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L804"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "label": "urma_notifier", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L807", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L808"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_fd", "label": "fd", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L809"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_incomplete_tjetty_list", "label": "incomplete_tjetty_list", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L810"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "label": "urma_notify", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L818", "_callable": true}, {"id": "urma_notify_type_t", "label": "urma_notify_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_type", "label": "type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L819"}, {"id": "urma_status_t", "label": "urma_status_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_status", "label": "status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L820"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L821"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "label": "urma_jetty_grp_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L840", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L841"}, {"id": "urma_jetty_grp_flag_t", "label": "urma_jetty_grp_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L842"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L843"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L844"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_policy", "label": "policy", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L846"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L847"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L851"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_grp_id", "label": "jetty_grp_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L852"}, {"id": "urma_jetty_grp_cfg_t", "label": "urma_jetty_grp_cfg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_cnt", "label": "jetty_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L854"}, {"id": "urma_jetty_t", "label": "urma_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_list", "label": "jetty_list", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L855"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_list_mutex", "label": "list_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L856"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L857"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_event_mutex", "label": "event_mutex", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L858"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_event_cond", "label": "event_cond", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L859"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_async_events_acked", "label": "async_events_acked", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L860"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "label": "urma_ubva", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L864", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L865"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L866"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_va", "label": "va", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L867"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "label": "urma_token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L946", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L947"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L948"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L949"}, {"id": "urma_ref_t", "label": "urma_ref_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_ref", "label": "ref", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L950"}, {"id": "urma_token_id_flag_t", "label": "urma_token_id_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L951"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "label": "urma_seg_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L954", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_va", "label": "va", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L955"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L956"}, {"id": "urma_token_id_t", "label": "urma_token_id_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L957"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L958"}, {"id": "urma_reg_seg_flag_t", "label": "urma_reg_seg_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L959"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L960"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_iova", "label": "iova", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L961"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "label": "urma_seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L964", "_callable": true}, {"id": "urma_ubva_t", "label": "urma_ubva_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_ubva", "label": "ubva", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L965"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L966"}, {"id": "urma_seg_attr_t", "label": "urma_seg_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_attr", "label": "attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L967"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L968"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "label": "urma_target_seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L971", "_callable": true}, {"id": "urma_seg_t", "label": "urma_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_seg", "label": "seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L972"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L973"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_mva", "label": "mva", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L974"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L975"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L976"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_handle", "label": "handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L977"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "label": "urma_user_ctl_in", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L980", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_addr", "label": "addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L981"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L982"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_opcode", "label": "opcode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L987"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "label": "urma_user_ctl_out", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L990", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_addr", "label": "addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L991"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L992"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L993"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "label": "urma_user_target_seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L996", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_attr", "label": "attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L997"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L998"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L999"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "label": "urma_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1002", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_addr", "label": "addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1003"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_len", "label": "len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1004"}, {"id": "urma_target_seg_t", "label": "urma_target_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_tseg", "label": "tseg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1010"}, {"id": "urma_user_tseg_t", "label": "urma_user_tseg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_user_tseg", "label": "user_tseg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1011"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "label": "urma_sg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1014", "_callable": true}, {"id": "urma_sge_t", "label": "urma_sge_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg_sge", "label": "sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1015"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg_num_sge", "label": "num_sge", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1016"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "label": "urma_rw_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1053", "_callable": true}, {"id": "urma_sg_t", "label": "urma_sg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1054"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_dst", "label": "dst", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1056"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_target_hint", "label": "target_hint", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1058"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_notify_data", "label": "notify_data", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1059"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "label": "urma_send_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1062", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1063"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_target_hint", "label": "target_hint", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1064"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_imm_data", "label": "imm_data", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1065"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_tseg", "label": "tseg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1066"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "label": "urma_cas_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1069", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr_dst", "label": "dst", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1070"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1071"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "label": "urma_faa_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1082", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr_dst", "label": "dst", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1083"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1084"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "label": "urma_jfs_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1091", "_callable": true}, {"id": "urma_opcode_t", "label": "urma_opcode_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_opcode", "label": "opcode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1092"}, {"id": "urma_jfs_wr_flag_t", "label": "urma_jfs_wr_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1093"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_tjetty", "label": "tjetty", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1094"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1095"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_next", "label": "next", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1102"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "label": "urma_jfr_wr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1105", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_src", "label": "src", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1106"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1107"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_next", "label": "next", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1108"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "label": "urma_cr_token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1122", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token_token_id", "label": "token_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1123"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token_token_value", "label": "token_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1124"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "label": "urma_cr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1127", "_callable": true}, {"id": "urma_cr_status_t", "label": "urma_cr_status_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_status", "label": "status", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1128"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1129"}, {"id": "urma_cr_opcode_t", "label": "urma_cr_opcode_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_opcode", "label": "opcode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1130"}, {"id": "urma_cr_flag_t", "label": "urma_cr_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1131"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_completion_len", "label": "completion_len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1132"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_local_id", "label": "local_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1134"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_remote_id", "label": "remote_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1135"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_tpn", "label": "tpn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1141"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_user_data", "label": "user_data", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1142"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "label": "urma_async_event", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1145", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_urma_ctx", "label": "urma_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1147"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_element", "label": "element", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1156"}, {"id": "urma_async_event_type_t", "label": "urma_async_event_type_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_event_type", "label": "event_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1157"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_priv", "label": "priv", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1158"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "label": "urma_ur", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1184", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1185"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_size", "label": "size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1186"}, {"id": "urma_ur_attr_t", "label": "urma_ur_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_attr", "label": "attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1187"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_token", "label": "token", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1188"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_user_ctx", "label": "user_ctx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1189"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "label": "urma_target_ur", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1193", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1194"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_size", "label": "size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1195"}, {"id": "urma_import_ur_flag_t", "label": "urma_import_ur_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1196"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_tseg_list", "label": "tseg_list", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1197"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_cnt", "label": "cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1198"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "label": "urma_seg_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1201", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info_seg", "label": "seg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1202"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info_idx_in_ur", "label": "idx_in_ur", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1203"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "label": "urma_ur_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1207", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1208"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_size", "label": "size", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1209"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_attr", "label": "attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1210"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_cnt", "label": "cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1211"}, {"id": "urma_seg_info_t", "label": "urma_seg_info_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_seg_list", "label": "seg_list", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1212"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "label": "urma_jfr_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1215", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_name", "label": "name", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1216"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_eid", "label": "eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1217"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_uasid", "label": "uasid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1218"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_id", "label": "id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1219"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "label": "urma_tp_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1238", "_callable": true}, {"id": "urma_tp_cfg_flag_t", "label": "urma_tp_cfg_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1239"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1241"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_retry_num", "label": "retry_num", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1242"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_retry_factor", "label": "retry_factor", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1243"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_ack_timeout", "label": "ack_timeout", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1244"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_dscp", "label": "dscp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1245"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_oor_cnt", "label": "oor_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1246"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "label": "urma_net_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1295", "_callable": true}, {"id": "sa_family_t", "label": "sa_family_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_sin_family", "label": "sin_family", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1296"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_vlan", "label": "vlan", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1301"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_mac", "label": "mac", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1302"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_prefix_len", "label": "prefix_len", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1303"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "label": "urma_net_addr_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1306", "_callable": true}, {"id": "urma_net_addr_t", "label": "urma_net_addr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info_netaddr", "label": "netaddr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1307"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info_index", "label": "index", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1308"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "label": "urma_tp_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1311", "_callable": true}, {"id": "urma_tp_mod_flag_t", "label": "urma_tp_mod_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1312"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_tpn", "label": "peer_tpn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1313"}, {"id": "urma_tp_state_t", "label": "urma_tp_state_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_state", "label": "state", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1314"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_tx_psn", "label": "tx_psn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1315"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_rx_psn", "label": "rx_psn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1316"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_mtu", "label": "mtu", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1317"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_cc_pattern_idx", "label": "cc_pattern_idx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1318"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_oos_cnt", "label": "oos_cnt", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1319"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_local_net_addr_idx", "label": "local_net_addr_idx", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1320"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_net_addr", "label": "peer_net_addr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1321"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_data_udp_start", "label": "data_udp_start", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1322"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_ack_udp_start", "label": "ack_udp_start", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1323"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_udp_range", "label": "udp_range", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1324"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_hop_limit", "label": "hop_limit", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1325"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_flow_label", "label": "flow_label", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1326"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_port_id", "label": "port_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1327"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_mn", "label": "mn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1328"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_trans_type", "label": "peer_trans_type", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1329"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "label": "urma_get_tp_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1347", "_callable": true}, {"id": "urma_get_tp_cfg_flag_t", "label": "urma_get_tp_cfg_flag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_flag", "label": "flag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1348"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_trans_mode", "label": "trans_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1349"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_local_eid", "label": "local_eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1350"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_peer_eid", "label": "peer_eid", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1351"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info", "label": "urma_tp_info", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1354", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info_tp_handle", "label": "tp_handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1355"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "label": "urma_active_tp_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1358", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_tx_psn", "label": "tx_psn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1359"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_rx_psn", "label": "rx_psn", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1360"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1361"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "label": "urma_active_tp_cfg", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1364", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tp_handle", "label": "tp_handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1365"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_peer_tp_handle", "label": "peer_tp_handle", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1366"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tag", "label": "tag", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1367"}, {"id": "urma_active_tp_attr_t", "label": "urma_active_tp_attr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tp_attr", "label": "tp_attr", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1368"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "label": "urma_tp_attr_value", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1376", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_retry_times_init", "label": "retry_times_init", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1377"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_at", "label": "at", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1378"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sip", "label": "sip", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1379"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dip", "label": "dip", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1380"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sma", "label": "sma", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1381"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dma", "label": "dma", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1382"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_vlan_id", "label": "vlan_id", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1383"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_vlan_en", "label": "vlan_en", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1384"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dscp", "label": "dscp", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1385"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_at_times", "label": "at_times", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1386"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sl", "label": "sl", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1387"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_ttl", "label": "ttl", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1388"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_ack_udp_srcport", "label": "ack_udp_srcport", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1389"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_data_udp_srcport", "label": "data_udp_srcport", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1390"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_udp_srcport_range", "label": "udp_srcport_range", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1391"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_spray_en", "label": "spray_en", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1392"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_udp_global_en", "label": "udp_global_en", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1393"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserve_0", "label": "reserve_0", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1394"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sl_bitmap", "label": "sl_bitmap", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1395"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dscp_config_mode", "label": "dscp_config_mode", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1396"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserve_1", "label": "reserve_1", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1397"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserved", "label": "reserved", "file_type": "code", "source_file": "sdk/urma/urma_types.h", "source_location": "L1398"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "inet", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L14", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "pthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L15", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L16", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L17", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L18", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "stdatomic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L21", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "atomic", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "urma_opcode", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L85", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr_token", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L86", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_init_attr_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L87", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ref", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L152", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L160", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_mtu_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L161", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_max_mtu", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L161", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_port_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L162", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L162", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_link_width_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L163", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_width", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L163", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_speed_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L164", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_speed", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L164", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "urma_mtu_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L165", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_port_attr_active_mtu", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L165", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L178", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info_sl", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L179", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sl_info_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L180", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L254", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_device_feature_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L255", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_feature", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L255", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfc", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L256", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L257", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L258", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L259", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty_grp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L260", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jetty_in_jetty_grp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L261", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfc_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L262", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L263", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L264", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_inline_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L265", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L266", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfs_rsge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L267", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_jfr_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L268", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_msg_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L269", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_read_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L270", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_write_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L271", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_cas_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L272", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_swap_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L273", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_add_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L274", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_sub_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L275", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_and_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L276", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_or_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L277", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_fetch_and_xor_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L278", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_atomic_feature_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L279", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_atomic_feat", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L279", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L280", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_congestion_ctrl_alg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L281", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_ceq_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L282", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_tp_in_tpg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L283", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_eid_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L284", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_page_size_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L285", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_oor_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L286", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_mn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L287", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_max_netaddr_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L288", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_order_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L289", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rm_order_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L289", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_order_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L290", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rc_order_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L290", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_tp_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L291", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rm_tp_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L291", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_tp_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L292", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_rc_tp_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L292", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_tp_type_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L293", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_um_tp_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L293", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "urma_tp_feature_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L294", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_tp_feature", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L294", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_cap_priority_info", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L295", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L298", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_guid_raw", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L299", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L302", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "urma_guid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L303", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_guid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L303", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "urma_device_cap_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L304", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_dev_cap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L304", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_port_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L305", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_port_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L306", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_min", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L307", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_attr_reserved_jetty_id_max", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L308", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L312", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_token", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L313", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sysfs_dev", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L316", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ref", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L317", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L318", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_provider_ops", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L319", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L358", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "target": "urma_tp_cc_alg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L359", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_alg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L359", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_cc_pattern_idx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L360", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cc_entry_cc_priority", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L361", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L364", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L365", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_path", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L367", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "urma_transport_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L368", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L368", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_ops", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L369", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_device_sysfs_dev", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L370", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L383", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_dev", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L384", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_ops", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L385", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_dev_fd", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L386", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_async_fd", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L387", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L388", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L388", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L389", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L389", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_eid_index", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L390", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L391", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_ref", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L392", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "urma_context_aggr_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L393", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_context_aggr_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L393", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L396", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L397", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L397", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_eid_info_eid_index", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L398", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L401", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L402", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L403", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L406", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L407", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L407", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_fd", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L408", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfce_ref", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L409", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L423", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L424", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "urma_jfc_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L425", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L425", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_ceqn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L426", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L428", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_jfce", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L428", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L429", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L437", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L438", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_moderate_count", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L439", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_attr_moderate_period", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L440", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L443", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L444", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L444", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L445", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L446", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L449", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L450", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L451", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L467", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_jfc_opt_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L468", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_is_actived", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L470", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_cqe_base_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L471", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L472", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L473", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_db_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L474", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L475", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_pi_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L476", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_urma_jfc_ci", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L477", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_opt_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L478", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L481", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L482", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L482", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "urma_jfc_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L483", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_jfc_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L483", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "urma_jfc_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L484", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_jfc_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L484", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L485", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L486", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L486", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L487", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L487", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_comp_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L488", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L489", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "urma_jfc_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L490", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfc_urma_jfc_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L490", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L534", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_jfs_opt_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L535", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_is_actived", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L537", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_sqe_base_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L538", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L539", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L540", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_db_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L541", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L542", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_pi_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L543", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_urma_jfs_ci", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L544", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_opt_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L545", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L548", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L549", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "urma_jfs_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L550", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L550", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L551", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L551", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_priority", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L552", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L554", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_rsge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L555", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_max_inline_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L556", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_rnr_retry", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L558", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_err_timeout", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L562", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L564", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_jfc", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L564", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L565", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L568", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L569", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L569", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "urma_jfs_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L570", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_jfs_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L570", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "urma_jfs_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L571", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_jfs_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L571", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L572", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L573", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L573", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L574", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L574", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L575", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "urma_jfs_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L576", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_urma_jfs_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L576", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L585", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L586", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "target": "urma_jfs_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L587", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L587", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L625", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_jfr_opt_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L626", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_is_actived", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L628", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_rqe_base_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L629", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L630", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L631", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_db_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L632", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L633", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_pi_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L634", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_urma_jfr_ci", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L635", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_opt_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L636", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L639", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L640", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_depth", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L642", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "urma_jfr_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L643", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L643", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L644", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L644", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_max_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L645", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_min_rnr_timer", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L646", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L648", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_jfc", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L648", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L649", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L649", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L650", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L658", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L659", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_rx_threshold", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L660", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "target": "urma_jfr_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L661", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L661", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L664", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L665", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L665", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "urma_jfr_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L666", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_jfr_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L666", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "urma_jfr_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L667", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_jfr_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L667", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L668", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L669", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L669", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L670", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L670", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L671", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "urma_jfr_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L672", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_urma_jfr_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L672", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L702", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "urma_jfr_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L703", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_jfr_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L703", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L704", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L704", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "urma_import_jetty_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L705", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L705", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "urma_tp_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L706", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjfr_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L706", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L709", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_tpn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L710", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L724", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L726", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L727", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "urma_jetty_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L728", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L728", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "urma_jfs_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L731", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_jfs_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L731", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "urma_jetty_grp_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L741", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_jetty_grp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L741", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L742", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L756", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L757", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L757", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L758", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L758", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_jetty_grp_policy_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L759", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_policy", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L759", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_target_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L760", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L760", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_import_jetty_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L761", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L761", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "urma_tp_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L762", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rjetty_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L762", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L765", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L766", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L766", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L767", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L767", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L768", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L769", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L769", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_tp_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L770", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_tp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L770", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_target_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L771", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L771", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_import_jetty_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L772", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L772", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_jetty_grp_policy_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L773", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_policy", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L773", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "urma_tp_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L774", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_jetty_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L774", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L782", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_mask", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L783", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_rx_threshold", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L784", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "target": "urma_jetty_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L785", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L785", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L788", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_is_actived", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L789", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "target": "urma_jfs_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L790", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_jfs_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L790", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_opt_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L791", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L794", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L795", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L795", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L796", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L796", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L797", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_remote_jetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L797", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_jetty_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L799", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_jetty_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L799", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L800", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L801", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L801", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L802", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L802", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L803", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "urma_jetty_opt_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L804", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_urma_jetty_opt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L804", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L807", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L808", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L808", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_fd", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L809", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notifier_incomplete_tjetty_list", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L810", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L818", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "urma_notify_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L819", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L819", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "urma_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L820", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L820", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_notify_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L821", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L840", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L841", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "urma_jetty_grp_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L842", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L842", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L843", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L843", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L844", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "urma_jetty_grp_policy_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L846", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_policy", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L846", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L847", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L850", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L851", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L851", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L852", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_grp_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L852", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "urma_jetty_grp_cfg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L853", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_cfg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L853", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L854", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L855", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_jetty_list", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L855", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L856", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_list_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L856", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L857", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "pthread_mutex_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L858", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_event_mutex", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L858", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "pthread_cond_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L859", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_event_cond", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L859", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jetty_grp_async_events_acked", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L860", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L864", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L865", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L865", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L866", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ubva_va", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L867", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L946", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L947", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L947", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L948", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L949", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "urma_ref_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L950", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_ref", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L950", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "urma_token_id_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L951", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_token_id_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L951", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L954", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_va", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L955", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L956", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "urma_token_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L957", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L957", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L958", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L958", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "urma_reg_seg_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L959", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L959", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L960", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_cfg_iova", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L961", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L964", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "urma_ubva_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L965", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_ubva", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L965", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L966", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "urma_seg_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L967", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L967", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L968", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L971", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "urma_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L972", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_seg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L972", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L973", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_mva", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L974", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L975", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L975", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "urma_token_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L976", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L976", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_seg_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L977", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L980", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L981", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L982", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_in_opcode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L987", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L990", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L991", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L992", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_ctl_out_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L993", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L996", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "urma_seg_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L997", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L997", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L998", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L999", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_user_target_seg_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L999", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1002", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1003", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1004", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1010", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_tseg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1010", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "urma_user_tseg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1011", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sge_user_tseg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1011", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1014", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1015", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1015", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_sg_num_sge", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1016", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1053", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "urma_sg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1054", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1054", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "urma_sg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1056", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_dst", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1056", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_target_hint", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1058", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_rw_wr_notify_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1059", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1062", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "urma_sg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1063", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1063", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_target_hint", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1064", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_imm_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1065", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1066", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_send_wr_tseg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1066", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1069", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1070", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr_dst", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1070", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1071", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cas_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1071", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1082", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1083", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr_dst", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1083", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1084", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_faa_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1084", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1091", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "urma_opcode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1092", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_opcode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1092", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "urma_jfs_wr_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1093", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1093", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1094", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_tjetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1094", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1095", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfs_wr_next", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1102", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1105", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "target": "urma_sg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1106", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_src", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1106", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1107", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_wr_next", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1108", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1122", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1123", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "target": "urma_token_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1124", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_token_token_value", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1124", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1127", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "urma_cr_status_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1128", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_status", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1128", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1129", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "urma_cr_opcode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1130", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_opcode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1130", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "urma_cr_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1131", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1131", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_completion_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1132", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_local_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1134", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "urma_jetty_id_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1135", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_remote_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1135", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_tpn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1141", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_cr_user_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1142", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1145", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "urma_context_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1147", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_urma_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1147", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_element", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1156", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "urma_async_event_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1157", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_event_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1157", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_async_event_priv", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1158", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1184", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1185", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1186", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "urma_ur_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1187", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1187", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_token", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1188", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_user_ctx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1189", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1193", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1194", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1195", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "urma_import_ur_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1196", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1196", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1197", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_tseg_list", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1197", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_target_ur_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1198", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1201", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "target": "urma_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1202", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info_seg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1202", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_seg_info_idx_in_ur", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1203", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1207", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1208", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1209", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "urma_ur_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1210", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1210", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1211", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "urma_seg_info_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1212", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_ur_info_seg_list", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1212", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1215", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_name", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1216", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1217", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1217", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1218", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_jfr_info_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1219", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1238", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "urma_tp_cfg_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1239", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1239", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1241", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1241", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_retry_num", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1242", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_retry_factor", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1243", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_ack_timeout", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1244", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_dscp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1245", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_cfg_oor_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1246", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1295", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "sa_family_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1296", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_sin_family", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1296", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_vlan", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1301", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_mac", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1302", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_prefix_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1303", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1306", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "target": "urma_net_addr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1307", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info_netaddr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1307", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_net_addr_info_index", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1308", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1311", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_tp_mod_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1312", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1312", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_tpn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1313", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_tp_state_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1314", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_state", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1314", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_tx_psn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1315", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_rx_psn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1316", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_mtu_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1317", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_mtu", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1317", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_cc_pattern_idx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1318", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_oos_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1319", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_local_net_addr_idx", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1320", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_net_addr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1321", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_net_addr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1321", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_data_udp_start", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1322", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_ack_udp_start", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1323", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_udp_range", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1324", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_hop_limit", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1325", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_flow_label", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1326", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_port_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1327", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_mn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1328", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "urma_transport_type_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1329", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_peer_trans_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1329", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1347", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "urma_get_tp_cfg_flag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1348", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_flag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1348", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "urma_transport_mode_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1349", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_trans_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1349", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1350", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_local_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1350", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "urma_eid_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1351", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_get_tp_cfg_peer_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1351", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1354", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_info_tp_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1355", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1358", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_tx_psn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1359", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_rx_psn", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1360", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_attr_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1361", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1364", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tp_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1365", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_peer_tp_handle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1366", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tag", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1367", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "urma_active_tp_attr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1368", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg_tp_attr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1368", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1371", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1372", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_active_tp_cfg", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1373", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "relation": "contains", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1376", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_retry_times_init", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1377", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_at", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1378", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sip", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1379", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dip", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1380", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sma", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1381", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dma", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1382", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_vlan_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1383", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_vlan_en", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1384", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dscp", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1385", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_at_times", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1386", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sl", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1387", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_ttl", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1388", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_ack_udp_srcport", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1389", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_data_udp_srcport", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1390", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_udp_srcport_range", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1391", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_spray_en", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1392", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_udp_global_en", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1393", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserve_0", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1394", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_sl_bitmap", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1395", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_dscp_config_mode", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1396", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserve_1", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1397", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_types_urma_tp_attr_value_reserved", "relation": "defines", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_types.h", "source_location": "L1398", "weight": 1.0, "context": "field"}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed.json deleted file mode 100644 index 0ffde6c745..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "label": "urma_endpoint.h", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmatransport", "label": "UrmaTransport", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L42", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmahandshake", "label": "UrmaHandshake", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L46", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_parsedhello", "label": "ParsedHello", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L47", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "label": "UrmaConnect", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L56", "_callable": true}, {"id": "appconnect", "label": "AppConnect", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "label": "StartConnect", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L59"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "label": "StopConnect", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L61"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "label": "Run", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L70"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_data", "label": "_data", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L72"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_error", "label": "_error", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L73"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "label": "UrmaResource", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L81", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_next", "label": "next", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L82"}, {"id": "urma_jfc_t", "label": "urma_jfc_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfc", "label": "jfc", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L84"}, {"id": "urma_jfce_t", "label": "urma_jfce_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfce", "label": "jfce", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L85"}, {"id": "urma_jfr_t", "label": "urma_jfr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfr", "label": "jfr", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L86"}, {"id": "urma_jetty_t", "label": "urma_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jetty", "label": "jetty", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L87"}, {"id": "urma_target_jetty_t", "label": "urma_target_jetty_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_remote_jetty", "label": "remote_jetty", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L89"}, {"id": "urma_target_seg_t", "label": "urma_target_seg_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_remote_seg", "label": "remote_seg", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L90"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "label": ".UrmaResource()", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L92", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint", "label": "UrmaEndpoint()", "file_type": "code", "source_file": "urma_endpoint.h", "source_location": "L100", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "cstdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L21", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "functional", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "vector", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L25", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "iobuf", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "macros", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "mpsc_queue", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L28", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L29", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L35", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L36", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L37", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmatransport", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L42", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmahandshake", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L46", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_parsedhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L47", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L56", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "appconnect", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L56", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L59", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L61", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L70", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_data", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L72", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_error", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L73", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L81", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_next", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L82", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L84", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfc", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L84", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_jfce_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L85", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfce", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L85", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_jfr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L86", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jfr", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L86", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L87", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_jetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L87", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_target_jetty_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L89", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_remote_jetty", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L89", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "urma_target_seg_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L90", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_remote_seg", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L90", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L92", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L100", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.h", "source_location": "L344", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint", "callee": "DISALLOW_COPY_AND_ASSIGN", "is_member_call": false, "source_file": "urma_endpoint.h", "source_location": "L334", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h", "table": {"_rbuf": "IOBuf>", "_sbuf": "IOBuf>", "_cq_sid": "SocketId", "_resource": "UrmaResource", "_socket": "Socket"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1.json deleted file mode 100644 index 52450abd22..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "label": "urma_handshake.h", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "label": "UrmaEndpoint", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L32", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "label": "ParsedHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L38", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_buffer_size", "label": "buffer_size", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L39"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_recv_buffer_cnt", "label": "recv_buffer_cnt", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L40"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_jetty_id", "label": "jetty_id", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L41"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_eid", "label": "eid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L42"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_uasid", "label": "uasid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L43"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_tp_type", "label": "tp_type", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L44"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_eid", "label": "seg_eid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L47"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_uasid", "label": "seg_uasid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L48"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_va", "label": "seg_va", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L49"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_len", "label": "seg_len", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L50"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_token_id", "label": "seg_token_id", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L51"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "label": "HelloMessage", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L73", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_msg_len", "label": "msg_len", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L74"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_hello_ver", "label": "hello_ver", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L75"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_impl_ver", "label": "impl_ver", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L76"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_buffer_size", "label": "buffer_size", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L77"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_recv_buffer_cnt", "label": "recv_buffer_cnt", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L78"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_jetty_id", "label": "jetty_id", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L79"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_eid", "label": "eid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L80"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_uasid", "label": "uasid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L81"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_tp_type", "label": "tp_type", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L82"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_pad", "label": "pad", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L83"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_eid", "label": "seg_eid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L84"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_uasid", "label": "seg_uasid", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L85"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_va", "label": "seg_va", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L86"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_len", "label": "seg_len", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L87"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_token_id", "label": "seg_token_id", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L88"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "label": "Serialize", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L90"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "label": "Deserialize", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L91"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "label": "UrmaHandshake", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L97", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_urmahandshake", "label": ".~UrmaHandshake()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L99", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_protocolversion", "label": "ProtocolVersion", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L100"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L104"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L110"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "label": "UrmaHandshakeClientV2", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L114", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", "label": ".UrmaHandshakeClientV2()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L116", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_protocolversion", "label": ".ProtocolVersion()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L117", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L118"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L119"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_ep", "label": "_ep", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L121"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "label": "UrmaHandshakeServerV2", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L124", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", "label": ".UrmaHandshakeServerV2()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L126", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_protocolversion", "label": ".ProtocolVersion()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L127", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L128"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L129"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_ep", "label": "_ep", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L131"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "label": "UrmaHandshakeClientV3", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L135", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", "label": ".UrmaHandshakeClientV3()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L137", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_protocolversion", "label": ".ProtocolVersion()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L138", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L139"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L140"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_ep", "label": "_ep", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L142"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "label": "UrmaHandshakeServerV3", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L145", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", "label": ".UrmaHandshakeServerV3()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L147", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_protocolversion", "label": ".ProtocolVersion()", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L148", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "label": "SendLocalHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L149"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "label": "ReceiveAndParseRemoteHello", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L150"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_ep", "label": "_ep", "file_type": "code", "source_file": "urma_handshake.h", "source_location": "L152"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "cstdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L21", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "cstring", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L32", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_buffer_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L39", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_recv_buffer_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L40", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L41", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L42", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L43", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L44", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L47", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L48", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_va", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L49", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L50", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_parsedhello_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L51", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L73", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_msg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L74", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_hello_ver", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L75", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_impl_ver", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L76", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_buffer_size", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L77", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_recv_buffer_cnt", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L78", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_jetty_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L79", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L80", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L81", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_tp_type", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L82", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_pad", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L83", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_eid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L84", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_uasid", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L85", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_va", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L86", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_len", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L87", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_seg_token_id", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L88", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_serialize", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L90", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_hellomessage_deserialize", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L91", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L97", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_urmahandshake", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L99", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_protocolversion", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L100", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L104", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L110", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L114", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L114", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L116", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L116", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_protocolversion", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L117", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L118", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L119", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L121", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv2_ep", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L121", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L124", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L124", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L126", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L126", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_protocolversion", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L127", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L128", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L129", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L131", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv2_ep", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L131", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L135", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L135", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L137", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L137", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_protocolversion", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L138", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L139", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L140", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L142", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeclientv3_ep", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L142", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_h", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L145", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshake", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L145", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L147", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L147", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_protocolversion", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L148", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_sendlocalhello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L149", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_receiveandparseremotehello", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L150", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmaendpoint", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L152", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_handshake_urmahandshakeserverv3_ep", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_handshake.h", "source_location": "L152", "weight": 1.0, "context": "field"}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833.json deleted file mode 100644 index 3373b3214b..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "label": "urma_endpoint.cpp", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty", "label": "PreparedJetty", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L82", "_callable": true}, {"id": "urmaresource", "label": "UrmaResource", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty_res", "label": "res", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L83"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "label": "PreparedJettyCount()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L89", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "label": "UrmaResource::~UrmaResource()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L125", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "label": "UrmaEndpoint::UrmaEndpoint()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L138", "_callable": true}, {"id": "socket", "label": "Socket", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "label": "UrmaEndpoint::Reset()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L159", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "label": "UrmaEndpoint::ReadFromFd()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L188", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pushbacktoreadbuf", "label": "UrmaEndpoint::PushBackToReadBuf()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L215", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "label": "UrmaEndpoint::WriteToFd()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L219", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "label": "UrmaEndpoint::MakeLocalParsedHello()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L239", "_callable": true}, {"id": "parsedhello", "label": "ParsedHello", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "label": "UrmaEndpoint::FillLocalHelloV2()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L261", "_callable": true}, {"id": "hellomessage", "label": "HelloMessage", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "label": "UrmaEndpoint::FillLocalHelloV3()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L282", "_callable": true}, {"id": "urmahello", "label": "UrmaHello", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "label": "UrmaEndpoint::WriteHelloV3()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L298", "_callable": true}, {"id": "iobuf", "label": "IOBuf", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "label": "UrmaEndpoint::ReadAndParseHelloV3()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L327", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "label": "UrmaEndpoint::AllocateResources()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L360", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "label": "UrmaEndpoint::DeallocateResources()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L462", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "label": "UrmaEndpoint::ImportPeer()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L494", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf", "label": "UrmaIOBuf", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L546", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "label": ".cut_into_sglist()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L556", "_callable": true}, {"id": "urma_sge_t", "label": "urma_sge_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "label": "UrmaEndpoint::CutFromIOBufList()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L590", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_iswritable", "label": "UrmaEndpoint::IsWritable()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L664", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_dopostrecv", "label": "UrmaEndpoint::DoPostRecv()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L673", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "label": "UrmaEndpoint::PostRecv()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L687", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "label": "UrmaEndpoint::SendImm()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L727", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "label": "UrmaEndpoint::SendAck()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L751", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "label": "UrmaEndpoint::HandleCompletion()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L761", "_callable": true}, {"id": "urma_cr_t", "label": "urma_cr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "label": "UrmaEndpoint::PollCq()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L847", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "label": "UrmaEndpoint::ApplyRemoteHello()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L930", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "label": "UrmaEndpoint::OnNewDataFromTcp()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L953", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_tryreadontcp", "label": "UrmaEndpoint::TryReadOnTcp()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1010", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "label": "TryReadOnTcpDuringUrmaEst()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1016", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "label": "UrmaEndpoint::FallbackToTcp()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1042", "_callable": true}, {"id": "urmatransport", "label": "UrmaTransport", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "label": "UrmaEndpoint::FailHandshake()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1051", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "label": "UrmaEndpoint::ProcessHandshakeAtClient()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1072", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "label": "UrmaEndpoint::ProcessHandshakeAtServer()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1144", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "label": "UrmaConnect::StartConnect()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1240", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "label": "UrmaConnect::StopConnect()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1279", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "label": "UrmaConnect::Run()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1281", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_getstatestr", "label": "UrmaEndpoint::GetStateStr()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1293", "_callable": true}, {"id": "string", "label": "string", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "label": "UrmaEndpoint::DebugInfo()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1313", "_callable": true}, {"id": "ostream", "label": "ostream", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "stringpiece", "label": "StringPiece", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "label": "UrmaEndpoint::WaitCqEvent()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1322", "_callable": true}, {"id": "socketuniqueptr", "label": "SocketUniquePtr", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "urma_jfc_t", "label": "urma_jfc_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "label": "UrmaEndpoint::ReqNotifyCq()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1353", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "label": "UrmaEndpoint::PollingModeInitialize()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "_callable": true}, {"id": "bthread_tag_t", "label": "bthread_tag_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "function", "label": "function", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp"}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "label": "UrmaEndpoint::PollingModeRelease()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1462", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "label": "UrmaEndpoint::PollerAddCqSid()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1476", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "label": "UrmaEndpoint::PollerRemoveCqSid()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1492", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "label": "UrmaEndpoint::GlobalInitialize()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1505", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "label": "UrmaEndpoint::GlobalRelease()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1566", "_callable": true}, {"id": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_bringupjetty", "label": "UrmaEndpoint::BringUpJetty()", "file_type": "code", "source_file": "urma_endpoint.cpp", "source_location": "L1581", "_callable": true}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_endpoint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L18", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "algorithm", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L22", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "cstring", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L23", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "iostream", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L24", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "memory", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L25", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "string", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L26", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "unordered_set", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L27", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "utility", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L28", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "vector", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L29", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "resource", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L30", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "unistd", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L31", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "gflags", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L33", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "atomicops", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L35", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "iobuf", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L36", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "logging", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L37", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "macros", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L38", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "sys_byteorder", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L39", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L40", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "bthread", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L41", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "butex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L42", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "input_messenger", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L44", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "socket", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L45", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_api", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L46", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_endpoint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L47", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L48", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_handshake", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L49", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_helper", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L50", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "urma_transport", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L51", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L82", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty", "target": "urmaresource", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L83", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjetty_res", "relation": "defines", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L83", "weight": 1.0, "context": "field"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L89", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L125", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L138", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L138", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L151", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L159", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L188", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pushbacktoreadbuf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L215", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L219", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L239", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L239", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L261", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "target": "hellomessage", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L261", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L282", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "target": "urmahello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L282", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L298", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "target": "urmahello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L298", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L312", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "target": "iobuf", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L312", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L327", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L327", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L360", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L462", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L494", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L494", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L546", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf", "target": "iobuf", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L546", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "relation": "method", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L556", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "target": "urma_sge_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L556", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "target": "iobuf", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L556", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L590", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "target": "iobuf", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L590", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_iswritable", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L664", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_dopostrecv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L673", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L687", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L727", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L751", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L761", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "target": "urma_cr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L761", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L847", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L847", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L930", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "target": "parsedhello", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L930", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L953", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L953", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_tryreadontcp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1010", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1016", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1016", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1042", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "target": "urmatransport", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1042", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1051", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "target": "urmatransport", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1051", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1072", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1144", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1240", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1240", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1279", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_stopconnect", "target": "socket", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1279", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1281", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_getstatestr", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1293", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_getstatestr", "target": "string", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1293", "weight": 1.0, "context": "return_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1313", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "target": "ostream", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1313", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "target": "stringpiece", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1313", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1322", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "target": "socketuniqueptr", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1322", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "target": "urma_jfc_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1322", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1353", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "target": "bthread_tag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "target": "function", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1368", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1462", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "target": "bthread_tag_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1462", "weight": 1.0, "context": "parameter_type"}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1476", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1492", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1505", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1566", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_cpp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_bringupjetty", "relation": "contains", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1581", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L622", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1003", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "target": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "urma_endpoint.cpp", "source_location": "L1521", "weight": 1.0}], "raw_calls": [{"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "callee": "getrlimit", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L97", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_preparedjettycount", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L113", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_unimport_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L126", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_unimport_seg", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L127", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_delete_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L128", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_delete_jfr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L129", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_delete_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L130", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaresource_urmaresource", "callee": "urma_delete_jfce", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L131", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "callee": "butex_create_checked>", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L147", "receiver": "bthread", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L148", "receiver": "_read_butex", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "callee": "DeallocateResources", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L152", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_urmaendpoint", "callee": "butex_destroy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L154", "receiver": "bthread", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "DeallocateResources", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L160", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L166", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L167", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L168", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L177", "receiver": "_sbuf", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L178", "receiver": "_rbuf", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L179", "receiver": "_rbuf_data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reset", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L180", "receiver": "_read_butex", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L192", "receiver": "_read_butex", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "milliseconds_from_now", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L193", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L194", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "read", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L195", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readfromfd", "callee": "butex_wait", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L198", "receiver": "bthread", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pushbacktoreadbuf", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L216", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "milliseconds_from_now", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L223", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L224", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "write", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L225", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "WaitEpollOut", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L228", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "callee": "GetUrmaRecvBlockSize", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L241", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L246", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "callee": "GetPoolSegFor", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L251", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_makelocalparsedhello", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L253", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "callee": "MakeLocalParsedHello", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L267", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L272", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov2", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L275", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "MakeLocalParsedHello", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L284", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_buffer_size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L285", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_recv_buffer_cnt", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L286", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_jetty_id", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L287", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L288", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_uasid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L289", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_tp_type", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L290", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L291", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_uasid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L292", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_va", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L293", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_len", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L294", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_filllocalhellov3", "callee": "set_seg_token_id", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L295", "receiver": "out", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L300", "receiver": "packet", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "SerializeToString", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L302", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L303", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L306", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L306", "receiver": "body", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L307", "receiver": "packet", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L308", "receiver": "packet", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writehellov3", "callee": "WriteToFd", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L309", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L314", "receiver": "data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "milliseconds_from_now", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L315", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L316", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "cut_into_file_descriptor", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L317", "receiver": "data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_writetofd", "callee": "WaitEpollOut", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L320", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "ReadFromFd", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L330", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L331", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "ReadFromFd", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L334", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "ParseFromArray", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L336", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "data", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L336", "receiver": "body", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L336", "receiver": "body", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L339", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L339", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L339", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L339", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "buffer_size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L340", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "recv_buffer_cnt", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L341", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "jetty_id", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L342", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L343", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "data", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L343", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L343", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "uasid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L344", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "tp_type", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L345", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L346", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "data", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L346", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_eid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L346", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_uasid", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L347", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_va", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L348", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_len", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L349", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "seg_token_id", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L350", "receiver": "msg", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_readandparsehellov3", "callee": "ValidHello", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L351", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "GetUrmaContext", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L362", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L371", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "urma_create_jfce", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L385", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L388", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "urma_create_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L396", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L397", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "urma_create_jfr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L405", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L406", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "GetUrmaMaxSge", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L414", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "urma_create_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L420", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L421", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "resize", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L424", "receiver": "_sbuf", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "resize", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L425", "receiver": "_rbuf", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "resize", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L426", "receiver": "_rbuf_data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L431", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "ReqNotifyCq", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L435", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "keytable_pool", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L440", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "Create", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L443", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L444", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "keytable_pool", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L451", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "Create", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L453", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L454", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_allocateresources", "callee": "PollerAddCqSid", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L457", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "PollerRemoveCqSid", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L466", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "Address", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L472", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L473", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "RemoveConsumer", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L474", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_deallocateresources", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L478", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "GetUrmaContext", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L495", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L502", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "urma_import_seg", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L512", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L514", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "memcpy", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L520", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "urma_import_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L532", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_importpeer", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L534", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "_ref_num", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L560", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "_ref_at", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L561", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "fetch1", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L562", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "GetPoolSegFor", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L564", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "get_first_data_meta", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L567", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaiobuf_cut_into_sglist", "callee": "cutn", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L582", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "GetUrmaMaxSge", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L595", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "alloca", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L599", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L605", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L606", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "GetUrmaRecvBlockSize", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L617", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L621", "receiver": "data", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "memset", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L631", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "exchange", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L633", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "urma_post_jetty_send_wr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L642", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L644", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L645", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "GetUrmaMaxSge", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L647", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L652", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L655", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "fetch_sub", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L657", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_cutfromiobuflist", "callee": "fetch_sub", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L658", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_iswritable", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L665", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_iswritable", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L666", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_dopostrecv", "callee": "GetPoolSegFor", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L674", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_dopostrecv", "callee": "urma_post_jfr_wr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L681", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "GetUrmaRecvBlockSize", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L689", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L691", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "Next", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L696", "receiver": "zcis", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "DoPostRecv", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L702", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L705", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "Next", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L711", "receiver": "zcos", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_postrecv", "callee": "DoPostRecv", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L718", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "callee": "memset", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L735", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "callee": "urma_post_jetty_send_wr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L743", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendimm", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L744", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L753", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "callee": "SendImm", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L756", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_sendack", "callee": "exchange", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L756", "receiver": "_new_rq_wrs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L763", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L771", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L773", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "SendAck", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L782", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "clear", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L787", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "subtle::MemoryBarrier", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L790", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L791", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L792", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "WakeAsEpollOut", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L794", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L801", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L807", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L810", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "compare_exchange_weak", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L814", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L820", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "WakeAsEpollOut", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L821", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L824", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "GetUrmaRecvBlockSize", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L828", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L829", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "cutn", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L838", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "append", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L840", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "PostRecv", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L842", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_handlecompletion", "callee": "SendAck", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L843", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "user", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L848", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "Address", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L851", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "Failed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L852", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "WaitCqEvent", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L856", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "min", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L866", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "urma_poll_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L868", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L874", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L876", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "Failed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L878", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "HandleCompletion", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L882", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "urma_ack_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L896", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "ReqNotifyCq", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L897", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "Failed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L902", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L903", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "cpuwide_time_us", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L908", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "gettimeofday_us", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L909", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "user", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L910", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "ProcessNewMessage", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L913", "receiver": "messenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L913", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L915", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L918", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L920", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollcq", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L921", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "callee": "min", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L934", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L942", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_applyremotehello", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L944", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L954", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "OnNewMessages", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L961", "receiver": "InputMessenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L967", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "CreatedByConnect", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L969", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "IsUrmaAvailable", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L971", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "OnNewMessages", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L974", "receiver": "InputMessenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "ReAddress", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L978", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "bthread_attr_set_name", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L982", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "bthread_start_background", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L983", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L986", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "release", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L988", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "fetch_add", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L996", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "butex_wake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L997", "receiver": "bthread", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "OnNewMessages", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1000", "receiver": "InputMessenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_onnewdatafromtcp", "callee": "MoreReadEvents", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1006", "receiver": "m", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_tryreadontcp", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1011", "receiver": "_state", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_tryreadontcp", "callee": "OnNewMessages", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1012", "receiver": "InputMessenger", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "read", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1020", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "fd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1020", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1024", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "berror", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1025", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "MoreReadEvents", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1028", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "SetEOF", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1032", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_tryreadontcpduringurmaest", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1035", "receiver": "socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1044", "receiver": "_state", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "callee": "DeallocateResources", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1045", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_fallbacktotcp", "callee": "TryReadOnTcp", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1047", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1053", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "GetStateStr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1053", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1054", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "berror", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1056", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1058", "receiver": "_state", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "DeallocateResources", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1059", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1061", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_failhandshake", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1065", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1075", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1076", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1077", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1078", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "IsUrmaAvailable", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1079", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1080", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "AllocateResources", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1084", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1085", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "PostRecv", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1089", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1090", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1093", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1094", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "ProtocolVersion", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1097", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "SendLocalHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1098", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1100", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1103", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1104", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "ReceiveAndParseRemoteHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1108", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1110", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1114", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1117", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1118", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "ApplyRemoteHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1119", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "ImportPeer", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1121", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1123", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1126", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1127", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "HostToNet32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1130", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "WriteToFd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1131", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1133", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1138", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatclient", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1140", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1147", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1148", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1149", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1150", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1153", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1155", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "PushBackToReadBuf", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1161", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1162", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ProtocolVersion", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1165", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ReceiveAndParseRemoteHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1168", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1170", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1174", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1177", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1178", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "AllocateResources", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1180", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1182", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "PostRecv", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1185", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1187", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1190", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1191", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ApplyRemoteHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1192", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ImportPeer", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1194", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1196", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1199", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1200", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "SendLocalHello", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1202", "receiver": "hs", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1204", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1207", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1208", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "ReadFromFd", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1211", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1213", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "NetToHost32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1216", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1219", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FailHandshake", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1222", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1227", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1229", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_processhandshakeatserver", "callee": "FallbackToTcp", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1231", "receiver": "ep", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "Address", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1243", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1249", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "Run", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1251", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "IsUrmaAvailable", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1254", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "Run", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1260", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "bthread_attr_set_name", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1265", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "bthread_start_background", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1266", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "Run", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1271", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_startconnect", "callee": "release", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1275", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaconnect_run", "callee": "cb", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1285", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_getstatestr", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1294", "receiver": "_state", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "callee": "GetStateStr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1314", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1317", "receiver": "_sq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_debuginfo", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1318", "receiver": "_remote_rq_window_size", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "urma_wait_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1329", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1335", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1336", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1337", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "berror", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1338", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1343", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1343", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1345", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "LOG_IF", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1348", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_waitcqevent", "callee": "description", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1349", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "callee": "urma_rearm_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1358", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "callee": "PLOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1361", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "callee": "SetFailed", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1362", "receiver": "_socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_reqnotifycq", "callee": "berror", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1362", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1374", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1375", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "compare_exchange_strong", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1381", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "init_fn", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1396", "receiver": "poller", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "load", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1398", "receiver": "running", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "Dequeue", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1399", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "emplace", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1401", "receiver": "cq_sids", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "erase", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1403", "receiver": "cq_sids", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "Address", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1408", "receiver": "Socket", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "PollCq", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1409", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1409", "receiver": "s", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "callback", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1413", "receiver": "poller", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1415", "receiver": "cq_sids", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_yield", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1416", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "release_fn", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1420", "receiver": "poller", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1426", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1433", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_join", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1435", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_attr_set_name", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1445", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_start_background", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1446", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "get", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1447", "receiver": "args", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1449", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "bthread_join", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1451", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmodeinitialize", "callee": "release", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1457", "receiver": "args", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1463", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "callee": "store", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1467", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollingmoderelease", "callee": "bthread_join", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1470", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1477", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "bthread_self_tag", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1480", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1481", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1485", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "fmix32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1487", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1487", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_polleraddcqsid", "callee": "Enqueue", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1488", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1493", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1494", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1498", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "fmix32", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1500", "receiver": "butil", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1500", "receiver": "pollers", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_pollerremovecqsid", "callee": "Enqueue", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1501", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "empty", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1508", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1510", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "vector", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1516", "receiver": "std", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "GetUrmaContext", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1519", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "urma_create_jfce", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1525", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "urma_create_jfc", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1534", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "urma_create_jfr", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1542", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "GetUrmaMaxSge", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1550", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "urma_create_jetty", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1556", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalinitialize", "callee": "LOG", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1562", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "callee": "BAIDU_SCOPED_LOCK", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1568", "receiver": null, "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "callee": "size", "is_member_call": true, "source_file": "urma_endpoint.cpp", "source_location": "L1576", "receiver": "_poller_groups", "lang": "cpp"}, {"caller_nid": "c_workspace_code_opensource_brpc_src_brpc_urma_urma_endpoint_urmaendpoint_globalrelease", "callee": "PollingModeRelease", "is_member_call": false, "source_file": "urma_endpoint.cpp", "source_location": "L1577", "receiver": null, "lang": "cpp"}], "cpp_type_table": {"path": "C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp", "table": {"p": "ParsedHello", "packet": "IOBuf", "msg": "UrmaHello", "options": "SocketOptions", "next": "UrmaResource", "s": "SocketUniquePtr", "r": "BlockRef", "to": "IOBuf", "zcos": "IOBufAsZeroCopyOutputStream", "zcis": "IOBufAsZeroCopyOutputStream", "last_msg": "InputMessageClosure", "state": "State", "ep": "UrmaEndpoint", "remote": "ParsedHello", "guard": "RunGuard"}}} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804.json b/src/brpc/urma/graphify-out/cache/ast/v0.9.23/f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804.json deleted file mode 100644 index fa3caa7fdb..0000000000 --- a/src/brpc/urma/graphify-out/cache/ast/v0.9.23/f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804.json +++ /dev/null @@ -1 +0,0 @@ -{"nodes": [{"id": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_api_h", "label": "urma_api.h", "file_type": "code", "source_file": "sdk/urma/urma_api.h", "source_location": "L1"}], "edges": [{"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_api_h", "target": "stdbool", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_api.h", "source_location": "L13", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_api_h", "target": "stdint", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_api.h", "source_location": "L14", "weight": 1.0}, {"source": "c_workspace_code_opensource_brpc_src_brpc_urma_sdk_urma_urma_api_h", "target": "urma_types", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "sdk/urma/urma_api.h", "source_location": "L16", "weight": 1.0}], "raw_calls": []} \ No newline at end of file diff --git a/src/brpc/urma/graphify-out/cache/stat-index.json b/src/brpc/urma/graphify-out/cache/stat-index.json deleted file mode 100644 index 6e429df537..0000000000 --- a/src/brpc/urma/graphify-out/cache/stat-index.json +++ /dev/null @@ -1 +0,0 @@ -{"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\mock_urma.cpp":{"size":22422,"mtime_ns":1785291503405746700,"word_count":2055,"hashes":{"mock_urma.cpp":"608feeb18131c6633a1d3bae5ce1bdaf944a337cafc10e12152fa2915751f7d0"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_api.h":{"size":47786,"mtime_ns":1785227626464076200,"word_count":6750,"hashes":{"sdk/urma/urma_api.h":"f822344e09f50ff082a2ebbaa0f37defc274c585af039c0e7b995bfe7f0bf804"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_opcode.h":{"size":10591,"mtime_ns":1785226861704155300,"word_count":1138,"hashes":{"sdk/urma/urma_opcode.h":"01ccfd37e3d64cd110462f1203e0d20642510e3e3d14a570a041257996772a31"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\sdk\\urma\\urma_types.h":{"size":54318,"mtime_ns":1785227626506547800,"word_count":6079,"hashes":{"sdk/urma/urma_types.h":"6870b34881c2bda6a7406307467705c41b2381b7a5af286fab00d3241d6a5eca"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.cpp":{"size":58559,"mtime_ns":1785309099990290300,"word_count":5389,"hashes":{"urma_endpoint.cpp":"bb7775d86173e02925fc786db010956f4dd08aef5a92ffdbffd70a11effd1833"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_endpoint.h":{"size":13432,"mtime_ns":1785309036527955400,"word_count":1577,"hashes":{"urma_endpoint.h":"7899e48f9378edf160c448d2d8eb8cdaa14683461e3f2562a4ce8dedce8721ed"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.cpp":{"size":11297,"mtime_ns":1785291857383725700,"word_count":1138,"hashes":{"urma_handshake.cpp":"3dcbdee4a792ca85149ae0eada9ea3f39bb1c3f972074cfdeb983ed964bc1f54"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_handshake.h":{"size":6762,"mtime_ns":1785291144209111300,"word_count":893,"hashes":{"urma_handshake.h":"9ead6eae6b7ea7f4b18e3757e1e7d33a73a6879dca40078e12765880de1061a1"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.cpp":{"size":24053,"mtime_ns":1785307850782229900,"word_count":2487,"hashes":{"urma_helper.cpp":"5af18e30c1f05aae06e4f45bf09d4d6ab3654daf64631c4821071a362adf2f1e"}},"C:\\workspace\\code\\opensource\\brpc\\src\\brpc\\urma\\urma_helper.h":{"size":3392,"mtime_ns":1785290825559803600,"word_count":452,"hashes":{"urma_helper.h":"1df09f4812201fd3151eb13e804615a74b896364be016d8a28ec657f714e1422"}}} \ No newline at end of file diff --git a/src/brpc/urma/mock_urma.cpp b/src/brpc/urma/mock_urma.cpp index 47d46f8514..daff6e24e4 100644 --- a/src/brpc/urma/mock_urma.cpp +++ b/src/brpc/urma/mock_urma.cpp @@ -528,7 +528,9 @@ urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, : jfc_state_map.end(); if (!jetty || !wr || local_it == jetty_map.end() || local_jfc_it == jfc_state_map.end()) { - if (bad_wr) { *bad_wr = wr; } + if (bad_wr) { + *bad_wr = wr; + } return URMA_EINVAL; } JfcState* local_state = local_jfc_it->second; @@ -544,7 +546,9 @@ urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, local_state, send_cr); } - if (!current->tjetty) { continue; } + if (!current->tjetty) { + continue; + } PendingRecv recv{}; urma_jfc_t* remote_jfc = nullptr; { @@ -598,7 +602,9 @@ urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, PushCompletion(remote_jfc, remote_state, recv_cr); } } - if (bad_wr) { *bad_wr = nullptr; } + if (bad_wr) { + *bad_wr = nullptr; + } return URMA_SUCCESS; } @@ -607,12 +613,16 @@ urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, std::unique_lock lock(g_rw_mutex); auto recv_it = jfr_recv_map.find(jfr); if (!jfr || !wr || recv_it == jfr_recv_map.end()) { - if (bad_wr) { *bad_wr = wr; } + if (bad_wr) { + *bad_wr = wr; + } return URMA_EINVAL; } for (urma_jfr_wr_t* current = wr; current; current = current->next) { if (current->src.num_sge == 0 || !current->src.sge) { - if (bad_wr) { *bad_wr = current; } + if (bad_wr) { + *bad_wr = current; + } return URMA_EINVAL; } recv_it->second.push_back(PendingRecv{ @@ -620,7 +630,9 @@ urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, current->src.sge[0].len, current->user_ctx}); } - if (bad_wr) { *bad_wr = nullptr; } + if (bad_wr) { + *bad_wr = nullptr; + } return URMA_SUCCESS; } @@ -631,7 +643,9 @@ urma_status_t urma_post_jetty_recv_wr(urma_jetty_t *jetty, { std::shared_lock lock(g_rw_mutex); if (!jetty || jetty_map.find(jetty) == jetty_map.end()) { - if (bad_wr) { *bad_wr = wr; } + if (bad_wr) { + *bad_wr = wr; + } return URMA_EINVAL; } shared_jfr = jetty->jetty_cfg.shared.jfr; @@ -644,7 +658,9 @@ int urma_poll_jfc(urma_jfc_t *jfc, int num_entries, urma_cr_t *cr_list) { { std::shared_lock lock(g_rw_mutex); auto it = jfc_state_map.find(jfc); - if (it == jfc_state_map.end()) { return -1; } + if (it == jfc_state_map.end()) { + return -1; + } state = it->second; } std::lock_guard lock(state->mutex); @@ -691,4 +707,4 @@ void urma_ack_jfc(urma_jfc_t*[], uint32_t[], uint32_t) { } // extern "C" -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 7ea42e8ea7..6b817ea706 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -19,18 +19,18 @@ #if BRPC_WITH_URMA +#include +#include + #include #include #include -#include #include #include #include #include #include #include -#include -#include #include @@ -43,11 +43,11 @@ #include "bthread/bthread.h" #include "bthread/butex.h" +#include "urma/urma_api.h" + #include "brpc/input_messenger.h" #include "brpc/socket.h" -#include "urma/urma_api.h" #include "brpc/urma/urma_bonding.h" -#include "brpc/urma/urma_endpoint.h" #include "brpc/urma/urma_handshake.h" #include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma/urma_helper.h" @@ -58,12 +58,6 @@ DECLARE_int32(task_group_ntags); namespace brpc { namespace urma { -// Extern helpers from urma_helper.cpp (not in the public header to keep it -// small): expose the per-buffer pool segment pointer and a user-seg handle -// lookup so the send path can build urma_sge_t.tseg without reaching into -// the helper's file-static state. -extern urma_target_seg_t* GetPoolSegFor(void* buf); - // Flags used here are declared in urma_endpoint.h (urma_use_polling, // urma_poller_num, urma_disable_bthread). Declare the rest here. DECLARE_int32(urma_sq_size); @@ -73,7 +67,6 @@ DECLARE_bool(urma_recv_zerocopy); DECLARE_int32(urma_zerocopy_min_size); DECLARE_int32(urma_prepared_jetty_cnt); DECLARE_bool(urma_poller_yield); -DECLARE_bool(urma_trace_verbose); // ---- Constants shared with the handshake module ---- static const int WAIT_TIMEOUT_MS = 50; @@ -126,12 +119,24 @@ std::vector UrmaEndpoint::_poller_groups; // ============================================================================ UrmaResource::~UrmaResource() { - if (remote_jetty) { urma_unimport_jetty(remote_jetty); } - if (remote_seg) { urma_unimport_seg(remote_seg); } - if (jetty) { urma_delete_jetty(jetty); } - if (jfr) { urma_delete_jfr(jfr); } - if (jfc) { urma_delete_jfc(jfc); } - if (jfce) { urma_delete_jfce(jfce); } + if (remote_jetty) { + urma_unimport_jetty(remote_jetty); + } + if (remote_seg) { + urma_unimport_seg(remote_seg); + } + if (jetty) { + urma_delete_jetty(jetty); + } + if (jfr) { + urma_delete_jfr(jfr); + } + if (jfc) { + urma_delete_jfc(jfc); + } + if (jfce) { + urma_delete_jfce(jfce); + } } // ============================================================================ @@ -171,12 +176,8 @@ void UrmaEndpoint::Reset() { _new_rq_wrs.store(0, butil::memory_order_relaxed); _sq_imm_window_size = 0; _sq_current = 0; - _sq_unsignaled = 0; _sq_sent = 0; _rq_received = 0; - _accumulated_ack = 0; - _unsolicited = 0; - _unsolicited_bytes = 0; _pending_received_bytes.store(0, butil::memory_order_relaxed); _sbuf.clear(); _rbuf.clear(); @@ -195,8 +196,8 @@ int UrmaEndpoint::ReadFromFd(void* data, size_t len) { while (received < len) { const int expected_val = _read_butex->load(butil::memory_order_acquire); const timespec duetime = butil::milliseconds_from_now(WAIT_TIMEOUT_MS); - int fd = _socket->fd(); - ssize_t nr = read(fd, p + received, len - received); + const int fd = _socket->fd(); + const ssize_t nr = read(fd, p + received, len - received); if (nr < 0) { if (errno == EAGAIN || errno == EWOULDBLOCK) { int rc = bthread::butex_wait(_read_butex, expected_val, &duetime); @@ -225,10 +226,15 @@ int UrmaEndpoint::WriteToFd(void* data, size_t len) { size_t written = 0; while (written < len) { const timespec duetime = butil::milliseconds_from_now(WAIT_TIMEOUT_MS); - int fd = _socket->fd(); - ssize_t nw = write(fd, p + written, len - written); - if (nw >= 0) { written += nw; continue; } - if (errno != EAGAIN && errno != EWOULDBLOCK) { return -1; } + const int fd = _socket->fd(); + const ssize_t nw = write(fd, p + written, len - written); + if (nw >= 0) { + written += nw; + continue; + } + if (errno != EAGAIN && errno != EWOULDBLOCK) { + return -1; + } if (_socket->WaitEpollOut(fd, true, &duetime) != 0 && errno != ETIMEDOUT) { return -1; } @@ -256,7 +262,6 @@ void UrmaEndpoint::MakeLocalParsedHello(ParsedHello* out) const { } out->tp_type = static_cast(URMA_CTP); // Pool segment: flatten g_pool_seg's seg fields. - extern urma_target_seg_t* GetPoolSegFor(void*); urma_target_seg_t* pool = GetPoolSegFor(nullptr); if (pool) { std::memcpy(out->seg_eid, pool->seg.ubva.eid.raw, 16); @@ -265,30 +270,6 @@ void UrmaEndpoint::MakeLocalParsedHello(ParsedHello* out) const { out->seg_len = pool->seg.len; out->seg_token_id = pool->seg.token_id; } - if (FLAGS_urma_trace_verbose && _resource && _resource->jetty) { - char advertised_eid[URMA_EID_STR_LEN + 1] = {}; - char jetty_eid[URMA_EID_STR_LEN + 1] = {}; - char segment_eid[URMA_EID_STR_LEN + 1] = {}; - std::snprintf(advertised_eid, sizeof(advertised_eid), EID_FMT, - EID_RAW_ARGS(out->eid)); - std::snprintf(jetty_eid, sizeof(jetty_eid), EID_FMT, - EID_ARGS(_resource->jetty->jetty_id.eid)); - std::snprintf(segment_eid, sizeof(segment_eid), EID_FMT, - EID_RAW_ARGS(out->seg_eid)); - LOG(INFO) << "URMA local hello identity: eid_source=" - << (GetUrmaLocalEid() != nullptr ? "selected_device" - : "jetty_fallback") - << " advertised_eid=" << advertised_eid - << " jetty_eid=" << jetty_eid - << " advertised_matches_jetty=" - << (std::memcmp(out->eid, - _resource->jetty->jetty_id.eid.raw, - sizeof(out->eid)) == 0) - << " segment_eid=" << segment_eid - << " uasid=" << out->uasid - << " jetty_id=" << out->jetty_id - << " on " << _socket->description(); - } } void UrmaEndpoint::FillLocalHelloV2(v2_wire::HelloMessage* out) const { @@ -298,7 +279,6 @@ void UrmaEndpoint::FillLocalHelloV2(v2_wire::HelloMessage* out) const { out->impl_ver = v2_wire::IMPL_V2_VERSION; ParsedHello p; MakeLocalParsedHello(&p); - out->msg_len = v2_wire::HELLO_PACKET_LEN; out->buffer_size = p.buffer_size; out->recv_buffer_cnt = p.recv_buffer_cnt; out->jetty_id = p.jetty_id; @@ -346,10 +326,14 @@ int UrmaEndpoint::WriteToFd(butil::IOBuf& data) { // Write out the IOBuf in a single WriteToFd-style loop. while (!data.empty()) { const timespec duetime = butil::milliseconds_from_now(WAIT_TIMEOUT_MS); - int fd = _socket->fd(); - ssize_t nw = data.cut_into_file_descriptor(fd); - if (nw >= 0) { continue; } - if (errno != EAGAIN && errno != EWOULDBLOCK) { return -1; } + const int fd = _socket->fd(); + const ssize_t nw = data.cut_into_file_descriptor(fd); + if (nw >= 0) { + continue; + } + if (errno != EAGAIN && errno != EWOULDBLOCK) { + return -1; + } if (_socket->WaitEpollOut(fd, true, &duetime) != 0 && errno != ETIMEDOUT) { return -1; } @@ -360,16 +344,24 @@ int UrmaEndpoint::WriteToFd(butil::IOBuf& data) { int UrmaEndpoint::ReadAndParseHelloV3(ParsedHello* out, bool* negotiated) { *negotiated = false; uint32_t pb_size_be = 0; - if (ReadFromFd(&pb_size_be, sizeof(pb_size_be)) < 0) { return -1; } - uint32_t pb_size = butil::NetToHost32(pb_size_be); - if (pb_size == 0 || pb_size > 4096) { return 0; } + if (ReadFromFd(&pb_size_be, sizeof(pb_size_be)) < 0) { + return -1; + } + const uint32_t pb_size = butil::NetToHost32(pb_size_be); + if (pb_size == 0 || pb_size > 4096) { + return 0; + } std::string body(pb_size, '\0'); - if (ReadFromFd(&body[0], pb_size) < 0) { return -1; } + if (ReadFromFd(&body[0], pb_size) < 0) { + return -1; + } UrmaHello msg; if (!msg.ParseFromArray(body.data(), static_cast(body.size()))) { return 0; } - if (msg.eid().size() != 16 || msg.seg_eid().size() != 16) { return 0; } + if (msg.eid().size() != 16 || msg.seg_eid().size() != 16) { + return 0; + } out->buffer_size = msg.buffer_size(); out->recv_buffer_cnt = msg.recv_buffer_cnt(); out->jetty_id = msg.jetty_id(); @@ -381,7 +373,9 @@ int UrmaEndpoint::ReadAndParseHelloV3(ParsedHello* out, bool* negotiated) { out->seg_va = msg.seg_va(); out->seg_len = msg.seg_len(); out->seg_token_id = msg.seg_token_id(); - if (!ValidHello(*out)) { return 0; } + if (!ValidHello(*out)) { + return 0; + } *negotiated = true; return 0; } @@ -391,12 +385,19 @@ int UrmaEndpoint::ReadAndParseHelloV3(ParsedHello* out, bool* negotiated) { // ============================================================================ int UrmaEndpoint::AllocateResources() { - if (_resource) { return 0; } + if (_resource) { + return 0; + } urma_context_t* ctx = GetUrmaContext(); - if (!ctx) { errno = ENODEV; return -1; } + if (!ctx) { + errno = ENODEV; + return -1; + } _resource = new (std::nothrow) UrmaResource(); - if (!_resource) { return -1; } + if (!_resource) { + return -1; + } // Try the prepared pool first (sized sq/rq match). if (_sq_size <= static_cast(FLAGS_urma_sq_size) && @@ -427,7 +428,10 @@ int UrmaEndpoint::AllocateResources() { jfc_cfg.depth = static_cast(_sq_size + _rq_size); jfc_cfg.jfce = _resource->jfce; _resource->jfc = urma_create_jfc(ctx, &jfc_cfg); - if (!_resource->jfc) { PLOG(ERROR) << "urma_create_jfc"; return -1; } + if (!_resource->jfc) { + PLOG(ERROR) << "urma_create_jfc"; + return -1; + } urma_jfr_cfg_t jfr_cfg{}; jfr_cfg.depth = static_cast(_rq_size); @@ -436,7 +440,10 @@ int UrmaEndpoint::AllocateResources() { jfr_cfg.min_rnr_timer = URMA_TYPICAL_MIN_RNR_TIMER; jfr_cfg.jfc = _resource->jfc; _resource->jfr = urma_create_jfr(ctx, &jfr_cfg); - if (!_resource->jfr) { PLOG(ERROR) << "urma_create_jfr"; return -1; } + if (!_resource->jfr) { + PLOG(ERROR) << "urma_create_jfr"; + return -1; + } urma_jetty_cfg_t jetty_cfg{}; jetty_cfg.flag.bs.share_jfr = 1; @@ -451,7 +458,10 @@ int UrmaEndpoint::AllocateResources() { jetty_cfg.shared.jfr = _resource->jfr; jetty_cfg.shared.jfc = _resource->jfc; _resource->jetty = urma_create_jetty(ctx, &jetty_cfg); - if (!_resource->jetty) { PLOG(ERROR) << "urma_create_jetty"; return -1; } + if (!_resource->jetty) { + PLOG(ERROR) << "urma_create_jetty"; + return -1; + } } _sbuf.resize(_sq_size - RESERVED_WR_NUM); @@ -493,7 +503,9 @@ int UrmaEndpoint::AllocateResources() { } void UrmaEndpoint::DeallocateResources() { - if (!_resource) { return; } + if (!_resource) { + return; + } if (FLAGS_urma_use_polling) { PollerRemoveCqSid(); @@ -526,7 +538,10 @@ void UrmaEndpoint::DeallocateResources() { int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { urma_context_t* ctx = GetUrmaContext(); - if (!ctx) { errno = ENODEV; return -1; } + if (!ctx) { + errno = ENODEV; + return -1; + } // 1. urma_import_seg FIRST so the kernel establishes TP routing for the // remote EID. Without this the first SEND is rejected by hardware with @@ -576,10 +591,6 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { bonding_remote.jetty = _resource->jetty; _resource->remote_jetty = urma_import_jetty(ctx, &bonding_remote.base, &token); - if (_resource->remote_jetty) { - LOG(INFO) << "URMA bonding remote jetty import succeeded" - << " remote_jetty_id=" << peer.jetty_id; - } #else LOG(ERROR) << "Bonding remote jetty import requires provider header " "urma/urma_ubagg.h"; @@ -589,7 +600,9 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { _resource->remote_jetty = urma_import_jetty(ctx, &remote, &token); } if (!_resource->remote_jetty) { - if (errno == 0) { errno = EIO; } + if (errno == 0) { + errno = EIO; + } char remote_eid[URMA_EID_STR_LEN + 1] = {}; std::snprintf(remote_eid, sizeof(remote_eid), EID_FMT, EID_RAW_ARGS(peer.eid)); @@ -602,27 +615,6 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { << " bonding_extension=" << use_bonding_extension; return -1; } - char peer_eid[URMA_EID_STR_LEN + 1] = {}; - char peer_seg_eid[URMA_EID_STR_LEN + 1] = {}; - std::snprintf(peer_eid, sizeof(peer_eid), EID_FMT, - EID_RAW_ARGS(peer.eid)); - std::snprintf(peer_seg_eid, sizeof(peer_seg_eid), EID_FMT, - EID_RAW_ARGS(peer.seg_eid)); - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA peer import details: bonding=" << use_bonding_extension - << " peer_eid=" << peer_eid - << " peer_seg_eid=" << peer_seg_eid - << " local_jetty_id=" << _resource->jetty->jetty_id.id - << " remote_jetty_id=" << _resource->remote_jetty->id.id - << " remote_handle=" << _resource->remote_jetty->handle - << " provider_associated_remote=" - << static_cast(_resource->jetty->remote_jetty) - << " requested_trans_mode=" << remote.trans_mode - << " imported_trans_mode=" << _resource->remote_jetty->trans_mode - << " requested_tp_type=" << remote.tp_type - << " imported_tp_type=" << _resource->remote_jetty->tp_type - << " state=" << GetStateStr() - << " on " << _socket->description(); return 0; } @@ -664,7 +656,9 @@ class UrmaIOBuf : private butil::IOBuf { return -1; } size_t this_len = r.length; - if (len + this_len > max_len) { this_len = max_len - len; } + if (len + this_len > max_len) { + this_len = max_len - len; + } sglist[*sge_index].addr = reinterpret_cast(start); sglist[*sge_index].len = static_cast(this_len); sglist[*sge_index].tseg = tseg; @@ -682,11 +676,16 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { return -1; } int max_sge = GetUrmaMaxSge(); - if (max_sge < 1) { max_sge = 1; } + if (max_sge < 1) { + max_sge = 1; + } urma_sge_t* sglist = static_cast( alloca(sizeof(urma_sge_t) * max_sge)); - if (!sglist) { errno = ENOMEM; return -1; } + if (!sglist) { + errno = ENOMEM; + return -1; + } size_t current = 0; ssize_t total_len = 0; @@ -694,7 +693,9 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { uint16_t remote_wnd = _remote_rq_window_size.load(butil::memory_order_relaxed); uint16_t sq_wnd = _sq_window_size.load(butil::memory_order_relaxed); if (remote_wnd == 0 || sq_wnd == 0) { - if (total_len > 0) { break; } + if (total_len > 0) { + break; + } errno = EAGAIN; return -1; } @@ -707,24 +708,28 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { while (sge_index < static_cast(max_sge) && this_len < max_len && current < ndata) { auto* data = reinterpret_cast(from[current]); - if (data->empty()) { current++; continue; } + if (data->empty()) { + ++current; + continue; + } ssize_t n = data->cut_into_sglist(sglist, &sge_index, to, max_sge, max_len - this_len); - if (n < 0) { return -1; } + if (n < 0) { + return -1; + } this_len += n; } - if (sge_index == 0) { break; } + if (sge_index == 0) { + break; + } urma_sg_t sg{sglist, static_cast(sge_index)}; urma_jfs_wr_t wr{}; std::memset(&wr, 0, sizeof(wr)); - // Match yalantinglibs' payload path: normal data is sent with - // URMA_OPC_SEND. Receive credits are flushed separately by SendImm() - // after SendAck() reaches its threshold. Piggybacking credits turns - // every payload into SEND_IMM and has shown asymmetric completion - // behavior with the bonding provider. - const uint32_t pending_ack = - _new_rq_wrs.load(butil::memory_order_relaxed); + // Send payload with URMA_OPC_SEND. Receive credits are flushed + // separately by SendImm() after SendAck() reaches its threshold. + // Piggybacking credits turns every payload into SEND_IMM and can + // produce asymmetric completions with the bonding provider. wr.opcode = URMA_OPC_SEND; wr.flag.bs.complete_enable = 1; wr.tjetty = _resource->remote_jetty; @@ -734,28 +739,6 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { const uint16_t sq_slot = _sq_current; const uint32_t local_jetty_id = _resource->jetty->jetty_id.id; const uint32_t remote_jetty_id = _resource->remote_jetty->id.id; - LOG_IF(WARNING, - FLAGS_urma_trace_verbose && IsUrmaBondingDevice() && - _state.load(butil::memory_order_acquire) != ESTABLISHED) - << "URMA bonding SEND is being posted before handshake " - "establishment: state=" - << GetStateStr() << " sq_slot=" << sq_slot - << " payload_size=" << this_len - << " local_jetty_id=" << local_jetty_id - << " remote_jetty_id=" << remote_jetty_id - << " on " << _socket->description(); - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA posting SEND: sq_slot=" << sq_slot - << " opcode=" << static_cast(wr.opcode) - << " payload_size=" << this_len - << " num_sge=" << sge_index - << " pending_ack=" << pending_ack - << " local_jetty_id=" << local_jetty_id - << " remote_jetty_id=" << remote_jetty_id - << " state=" << GetStateStr() - << " sq_window=" << sq_wnd - << " remote_rq_window=" << remote_wnd - << " on " << _socket->description(); // Reserve both credits before making the WR visible to the provider. // In polling mode a completion (and even the peer's receive-credit @@ -763,11 +746,8 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { // Decrementing after post therefore creates a transient capacity + 1 // window and makes the strict credit check tear down a healthy // connection. - const uint16_t remote_wnd_after = - _remote_rq_window_size.fetch_sub( - 1, butil::memory_order_relaxed) - 1; - const uint16_t sq_wnd_after = - _sq_window_size.fetch_sub(1, butil::memory_order_relaxed) - 1; + _remote_rq_window_size.fetch_sub(1, butil::memory_order_relaxed); + _sq_window_size.fetch_sub(1, butil::memory_order_relaxed); int rc = urma_post_jetty_send_wr(_resource->jetty, &wr, &bad_wr); if (rc != URMA_SUCCESS) { const int provider_errno = errno; @@ -791,18 +771,6 @@ ssize_t UrmaEndpoint::CutFromIOBufList(butil::IOBuf** from, size_t ndata) { errno = rc; return -1; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA posted SEND: sq_slot=" << sq_slot - << " payload_size=" << this_len - << " num_sge=" << sge_index - << " opcode=" << static_cast(wr.opcode) - << " pending_ack=" << pending_ack - << " local_jetty_id=" << local_jetty_id - << " remote_jetty_id=" << remote_jetty_id - << " state=" << GetStateStr() - << " sq_window_after=" << sq_wnd_after - << " remote_rq_window_after=" << remote_wnd_after - << " on " << _socket->description(); _sq_current = (_sq_current + 1) % (_sq_size - RESERVED_WR_NUM); total_len += static_cast(this_len); } @@ -820,15 +788,18 @@ bool UrmaEndpoint::IsWritable() const { int UrmaEndpoint::DoPostRecv(void* block, size_t block_size) { urma_target_seg_t* tseg = GetPoolSegFor(block); - if (!tseg) { errno = ERDMAMEM; return -1; } + if (!tseg) { + errno = ERDMAMEM; + return -1; + } urma_sge_t sge{reinterpret_cast(block), static_cast(block_size), tseg, nullptr}; urma_sg_t sg{&sge, 1}; urma_jfr_wr_t wr{sg, 0, nullptr}; urma_jfr_wr_t* bad = nullptr; - // Match yalantinglibs' shared-JFR path on every device, including bonding. - // The bonding provider owns physical receive scheduling for the JFR; a - // local jetty-to-target association is not part of the RM receive API. + // Use the shared-JFR path on every device, including bonding. The bonding + // provider owns physical receive scheduling for the JFR; a local + // jetty-to-target association is not part of the RM receive API. const urma_status_t status = urma_post_jfr_wr(_resource->jfr, &wr, &bad); if (status != URMA_SUCCESS) { @@ -849,7 +820,6 @@ int UrmaEndpoint::DoPostRecv(void* block, size_t block_size) { } int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { - const uint16_t first_rq_slot = _rq_received; for (uint32_t i = 0; i < num; ++i) { size_t block_size = GetUrmaRecvBlockSize(); if (zerocopy) { @@ -864,7 +834,9 @@ int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { return -1; } _rbuf_data[_rq_received] = data; - if (DoPostRecv(data, block_size) < 0) { return -1; } + if (DoPostRecv(data, block_size) < 0) { + return -1; + } } else { if (_rbuf_data[_rq_received] == nullptr) { _rbuf[_rq_received].clear(); @@ -886,25 +858,16 @@ int UrmaEndpoint::PostRecv(uint32_t num, bool zerocopy) { } _rq_received = (_rq_received + 1) % _rq_size; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA posted RECV: count=" << num - << " first_rq_slot=" << first_rq_slot - << " next_rq_slot=" << _rq_received - << " block_size=" << GetUrmaRecvBlockSize() - << " zerocopy=" << zerocopy - << " api=urma_post_jfr_wr" - << " local_jetty_id=" << _resource->jetty->jetty_id.id - << " provider_associated_remote=" - << static_cast(_resource->jetty->remote_jetty) - << " state=" << GetStateStr() - << " on " << _socket->description(); return 0; } int UrmaEndpoint::SendImm(uint32_t imm) { - if (imm == 0) { return 0; } + if (imm == 0) { + return 0; + } if (!_resource || !_resource->jetty || !_resource->remote_jetty) { - errno = ENOTCONN; return -1; + errno = ENOTCONN; + return -1; } if (_sq_imm_window_size == 0) { errno = EAGAIN; @@ -946,12 +909,6 @@ int UrmaEndpoint::SendImm(uint32_t imm) { errno = status; return -1; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA posted credit ACK: imm=" << imm - << " local_jetty_id=" << _resource->jetty->jetty_id.id - << " remote_jetty_id=" << _resource->remote_jetty->id.id - << " state=" << GetStateStr() - << " on " << _socket->description(); return 0; } @@ -967,24 +924,6 @@ int UrmaEndpoint::SendAck(int num) { ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { bool zerocopy = FLAGS_urma_recv_zerocopy; - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA completion: status=" << cr.status - << " direction=" << (cr.flag.bs.s_r ? "recv" : "send") - << " opcode=" - << (cr.flag.bs.s_r ? static_cast(cr.opcode) : -1) - << " length=" << cr.completion_len - << " imm=" << (cr.flag.bs.s_r ? cr.imm_data : 0) - << " user_ctx=" << cr.user_ctx - << " local_id=" << cr.local_id - << " remote_id=" << (cr.flag.bs.s_r ? cr.remote_id.id : 0) - << " tpn=" << cr.tpn - << " provider_user_data=" << cr.user_data - << " state=" << GetStateStr() - << " sq_window=" - << _sq_window_size.load(butil::memory_order_relaxed) - << " remote_rq_window=" - << _remote_rq_window_size.load(butil::memory_order_relaxed) - << " on " << _socket->description(); if (cr.status != URMA_CR_SUCCESS) { LOG(WARNING) << "URMA completion failed, status=" << cr.status; errno = EIO; @@ -1090,8 +1029,12 @@ ssize_t UrmaEndpoint::HandleCompletion(const urma_cr_t& cr) { } else { _socket->_read_buf.append(_rbuf_data[_rq_received], cr.completion_len); } - if (PostRecv(1, zerocopy) < 0) { return -1; } - if (cr.completion_len > 0) { SendAck(1); } + if (PostRecv(1, zerocopy) < 0) { + return -1; + } + if (cr.completion_len > 0) { + SendAck(1); + } return static_cast(cr.completion_len); } @@ -1104,12 +1047,6 @@ void UrmaEndpoint::DispatchReceivedBytes(SocketUniquePtr& s, ssize_t bytes) { const State state = _state.load(butil::memory_order_acquire); if (state != ESTABLISHED) { - LOG_IF(INFO, FLAGS_urma_trace_verbose && bytes > 0) - << "URMA deferred " << bytes - << " received byte(s) until handshake establishment" - << " pending_bytes=" << pending - << " state=" << GetStateStr() - << " on " << s->description(); return; } @@ -1136,27 +1073,25 @@ void UrmaEndpoint::DispatchReceivedBytes(SocketUniquePtr& s, ssize_t bytes) { const int64_t received_us = butil::cpuwide_time_us(); const int64_t base_realtime = butil::gettimeofday_us() - received_us; InputMessageClosure last_msg; - const int rc = - messenger->ProcessNewMessage(s.get(), static_cast(pending), - false, received_us, base_realtime, - last_msg); - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA dispatched " << pending - << " byte(s) to InputMessenger, rc=" << rc - << " state=" << GetStateStr() - << " on " << s->description(); + messenger->ProcessNewMessage(s.get(), static_cast(pending), + false, received_us, base_realtime, last_msg); } void UrmaEndpoint::PollCq(Socket* m) { auto* ep = static_cast(m->user()); - if (!ep || !ep->_resource || !ep->_resource->jfc) { return; } + if (!ep || !ep->_resource || !ep->_resource->jfc) { + return; + } SocketUniquePtr s; - if (Socket::Address(ep->_socket->id(), &s) != 0) { return; } - if (s->Failed()) { return; } + if (Socket::Address(ep->_socket->id(), &s) != 0) { + return; + } + if (s->Failed()) { + return; + } const bool event_mode = !FLAGS_urma_use_polling; int progress = Socket::PROGRESS_INIT; - int drained_events = 0; while (true) { urma_jfc_t* event_jfc = nullptr; if (event_mode) { @@ -1165,28 +1100,14 @@ void UrmaEndpoint::PollCq(Socket* m) { return; } if (event_count == 0) { - LOG_IF(INFO, FLAGS_urma_trace_verbose && drained_events > 0) - << "URMA JFCE event queue drained: events=" - << drained_events -#if defined(BRPC_REVISION) - << " build_revision=" << BRPC_REVISION -#else - << " build_revision=undefined" -#endif - << " on " << s->description(); if (!m->MoreReadEvents(&progress)) { return; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA JFCE has additional edge-triggered event(s), " - << "progress=" << progress << " on " << s->description(); continue; } - drained_events += event_count; } ssize_t bytes = 0; - int total_completions = 0; auto drain_cq = [&]() -> int { while (true) { const int n = @@ -1197,12 +1118,9 @@ void UrmaEndpoint::PollCq(Socket* m) { if (cnt < 0) { return EIO; } - if (cnt == 0) { return 0; } - total_completions += cnt; - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA polled " << cnt << " completion(s) on " - << s->description() - << " state=" << ep->GetStateStr(); + if (cnt == 0) { + return 0; + } for (int i = 0; i < cnt; ++i) { if (s->Failed()) { return ECANCELED; @@ -1225,27 +1143,15 @@ void UrmaEndpoint::PollCq(Socket* m) { uint32_t nevents = 1; urma_ack_jfc(&event_jfc, &nevents, 1); if (completion_error == 0) { - const int completions_before_rearm = total_completions; if (ep->ReqNotifyCq() != 0) { return; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA JFC event drained, acknowledged and rearmed: " - << "completions=" << completions_before_rearm - << " on " << s->description(); // Close the drain/rearm race. A completion that arrived while // the JFC was unarmed may not produce an edge on every // provider. The JFC is armed now, so a final nonblocking drain // is safe. completion_error = drain_cq(); - LOG_IF(INFO, FLAGS_urma_trace_verbose && - total_completions > - completions_before_rearm) - << "URMA drained " - << (total_completions - completions_before_rearm) - << " completion(s) after JFC rearm on " - << s->description(); } } @@ -1299,7 +1205,9 @@ static void TryReadOnTcpDuringUrmaEst(Socket* socket); void UrmaEndpoint::OnNewDataFromTcp(Socket* m) { auto* tp = static_cast(m->_transport.get()); - if (!tp) { return; } + if (!tp) { + return; + } // Access _urma_ep directly (OnNewDataFromTcp is a friend of UrmaTransport); // GetUrmaEp() CHECKs non-null which would crash on TCP-fallback sockets. UrmaEndpoint* ep = tp->_urma_ep; @@ -1350,7 +1258,9 @@ void UrmaEndpoint::OnNewDataFromTcp(Socket* m) { TryReadOnTcpDuringUrmaEst(m); return; } - if (!m->MoreReadEvents(&progress)) { break; } + if (!m->MoreReadEvents(&progress)) { + break; + } } } @@ -1421,8 +1331,6 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { SocketUniquePtr s(ep->_socket); auto* tp = static_cast(s->_transport.get()); UrmaConnect::RunGuard guard(static_cast(s->_app_connect.get())); - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "Start URMA client handshake on " << s->description(); if (!IsUrmaAvailable()) { ep->FallbackToTcp(tp, true); return nullptr; @@ -1432,16 +1340,12 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FallbackToTcp(tp, true); return nullptr; } - const bool bonding = IsUrmaBondingDevice(); - // Yalanting preposts the shared JFR before sending the client hello. This - // gives the peer a ready receive queue as soon as its import completes. + // Prepost the shared JFR before sending the client hello so the peer sees + // a ready receive queue as soon as its import completes. if (ep->PostRecv(ep->_rq_size, FLAGS_urma_recv_zerocopy) < 0) { ep->FallbackToTcp(tp, true); return nullptr; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA client resources ready (bonding=" << bonding - << ") on " << s->description(); ep->_state = C_HELLO_SEND; std::unique_ptr hs(CreateClientHandshake(ep)); ep->_handshake_version = hs->ProtocolVersion(); @@ -1450,8 +1354,6 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FailHandshake(tp, saved_errno, "send client hello"); return nullptr; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA client hello sent on " << s->description(); ep->_state = C_HELLO_WAIT; ParsedHello remote; bool negotiated = false; @@ -1464,8 +1366,6 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FallbackToTcp(tp, true); return nullptr; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA client received server hello on " << s->description(); ep->ApplyRemoteHello(remote); ep->_state = C_IMPORT_PEER; if (ep->ImportPeer(remote) < 0) { @@ -1473,12 +1373,6 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { ep->FailHandshake(tp, saved_errno, "import server resources"); return nullptr; } - LOG_IF(INFO, FLAGS_urma_trace_verbose && bonding) - << "URMA client initial receives were preposted via shared JFR before " - "hello on " - << s->description(); - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA client imported server resources on " << s->description(); ep->_state = C_ACK_SEND; uint32_t flags = HELLO_ACK_URMA_OK; uint32_t flags_be = butil::HostToNet32(flags); @@ -1489,9 +1383,6 @@ void* UrmaEndpoint::ProcessHandshakeAtClient(void* arg) { } tp->_urma_state = UrmaTransport::URMA_ON; ep->_state = ESTABLISHED; - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA client handshake established (v" - << ep->_handshake_version << ") on " << s->description(); ep->DispatchReceivedBytes(s, 0); return nullptr; } @@ -1501,8 +1392,6 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { SocketUniquePtr s(ep->_socket); auto* tp = static_cast(s->_transport.get()); UrmaConnect::RunGuard guard(static_cast(s->_app_connect.get())); - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "Start URMA server handshake on " << s->description(); ep->_state = S_HELLO_WAIT; uint8_t magic[v2_wire::MAGIC_STR_LEN]; if (ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { @@ -1529,8 +1418,6 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->FailHandshake(tp, EPROTO, "invalid client hello"); return nullptr; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA server received client hello on " << s->description(); ep->_state = S_ALLOC_RES; if (ep->AllocateResources() < 0) { const int saved_errno = errno ? errno : EIO; @@ -1544,9 +1431,6 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->FailHandshake(tp, saved_errno, "post server receives"); return nullptr; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA server resources ready (bonding=" << bonding - << ") on " << s->description(); ep->ApplyRemoteHello(remote); ep->_state = S_IMPORT_PEER; if (ep->ImportPeer(remote) < 0) { @@ -1560,20 +1444,12 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { ep->FailHandshake(tp, saved_errno, "post server receives"); return nullptr; } - LOG_IF(INFO, FLAGS_urma_trace_verbose && bonding) - << "URMA server initial receives posted via shared JFR after peer " - "import on " - << s->description(); - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA server imported client resources on " << s->description(); ep->_state = S_HELLO_SEND; if (hs->SendLocalHello() < 0) { const int saved_errno = errno ? errno : EIO; ep->FailHandshake(tp, saved_errno, "send server hello"); return nullptr; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA server hello sent on " << s->description(); ep->_state = S_ACK_WAIT; uint32_t flags_be = 0; if (ep->ReadFromFd(&flags_be, HELLO_ACK_LEN) < 0) { @@ -1592,9 +1468,6 @@ void* UrmaEndpoint::ProcessHandshakeAtServer(void* arg) { } tp->_urma_state = UrmaTransport::URMA_ON; ep->_state = ESTABLISHED; - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA server handshake established (v" - << ep->_handshake_version << ") on " << s->description(); ep->DispatchReceivedBytes(s, 0); } else { ep->FallbackToTcp(tp, true); @@ -1707,15 +1580,15 @@ int UrmaEndpoint::WaitCqEvent(SocketUniquePtr& s, berror(saved_errno)); return -1; } - if (count == 0) { return 0; } + if (count == 0) { + return 0; + } if (*event_jfc != _resource->jfc) { LOG(ERROR) << "Unexpected URMA JFC event on " << s->description(); errno = EPROTO; s->SetFailed(EPROTO, "Unexpected URMA JFC event"); return -1; } - LOG_IF(INFO, FLAGS_urma_trace_verbose) - << "URMA JFC event received on " << s->description(); return 1; } @@ -1851,7 +1724,9 @@ void UrmaEndpoint::PollerAddCqSid() { return; } auto& pollers = _poller_groups[_poller_tag].pollers; - if (pollers.empty()) { return; } + if (pollers.empty()) { + return; + } const size_t index = butil::fmix32(_cq_sid) % pollers.size(); pollers[index].op_queue.Enqueue( @@ -1864,7 +1739,9 @@ void UrmaEndpoint::PollerRemoveCqSid() { return; } auto& pollers = _poller_groups[_poller_tag].pollers; - if (pollers.empty()) { return; } + if (pollers.empty()) { + return; + } const size_t index = butil::fmix32(_cq_sid) % pollers.size(); pollers[index].op_queue.Enqueue( @@ -1881,16 +1758,24 @@ int UrmaEndpoint::GlobalInitialize() { return -1; } size_t ntags = static_cast(FLAGS_task_group_ntags); - if (ntags == 0) { ntags = 1; } + if (ntags == 0) { + ntags = 1; + } _poller_groups = std::vector(ntags); } - if (g_prepared_cnt > 0) { return 0; } + if (g_prepared_cnt > 0) { + return 0; + } urma_context_t* ctx = GetUrmaContext(); - if (!ctx) { return 0; } + if (!ctx) { + return 0; + } const int prepared_jetty_count = PreparedJettyCount(); for (int i = 0; i < prepared_jetty_count; ++i) { auto* r = new (std::nothrow) UrmaResource(); - if (!r) { break; } + if (!r) { + break; + } r->jfce = urma_create_jfce(ctx); if (!r->jfce || (!FLAGS_urma_use_polling && r->jfce->fd < 0)) { @@ -1901,7 +1786,10 @@ int UrmaEndpoint::GlobalInitialize() { jfc_cfg.depth = static_cast(FLAGS_urma_sq_size + FLAGS_urma_rq_size); jfc_cfg.jfce = r->jfce; r->jfc = urma_create_jfc(ctx, &jfc_cfg); - if (!r->jfc) { delete r; break; } + if (!r->jfc) { + delete r; + break; + } urma_jfr_cfg_t jfr_cfg{}; jfr_cfg.depth = static_cast(FLAGS_urma_rq_size); jfr_cfg.trans_mode = URMA_TM_RM; @@ -1909,7 +1797,10 @@ int UrmaEndpoint::GlobalInitialize() { jfr_cfg.min_rnr_timer = URMA_TYPICAL_MIN_RNR_TIMER; jfr_cfg.jfc = r->jfc; r->jfr = urma_create_jfr(ctx, &jfr_cfg); - if (!r->jfr) { delete r; break; } + if (!r->jfr) { + delete r; + break; + } urma_jetty_cfg_t jetty_cfg{}; jetty_cfg.flag.bs.share_jfr = 1; jetty_cfg.jfs_cfg.depth = static_cast(FLAGS_urma_sq_size); @@ -1923,12 +1814,14 @@ int UrmaEndpoint::GlobalInitialize() { jetty_cfg.shared.jfr = r->jfr; jetty_cfg.shared.jfc = r->jfc; r->jetty = urma_create_jetty(ctx, &jetty_cfg); - if (!r->jetty) { delete r; break; } + if (!r->jetty) { + delete r; + break; + } r->next = g_prepared_list; g_prepared_list = r; ++g_prepared_cnt; } - LOG(INFO) << "URMA prepared jetty pool: " << g_prepared_cnt; return 0; } @@ -1947,12 +1840,7 @@ void UrmaEndpoint::GlobalRelease() { } } -int UrmaEndpoint::BringUpJetty() { - // URMA jetty is created in READY state; no RESET->INIT->RTR->RTS needed. - return 0; -} - } // namespace urma } // namespace brpc -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index b3f5a09e4e..382839dfd8 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -20,12 +20,13 @@ #include #include +#include #include #include "butil/atomicops.h" +#include "butil/containers/mpsc_queue.h" #include "butil/iobuf.h" #include "butil/macros.h" -#include "butil/containers/mpsc_queue.h" #include "butil/synchronization/lock.h" #include "bthread/types.h" @@ -106,8 +107,8 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { friend class UrmaHandshakeServerV2; friend class UrmaHandshakeClientV3; friend class UrmaHandshakeServerV3; - friend int DrainBytes(UrmaEndpoint*, size_t); - friend int ReadBodyAndNegotiate(UrmaEndpoint*, ParsedHello*, bool*); + friend int DrainBytes(UrmaEndpoint*, size_t); + friend int ReadBodyAndNegotiate(UrmaEndpoint*, ParsedHello*, bool*); public: explicit UrmaEndpoint(Socket* s); @@ -152,9 +153,9 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // Initialize the per-tag polling infrastructure (polling mode). static int PollingModeInitialize(bthread_tag_t tag, - std::function callback, - std::function init_fn, - std::function release_fn); + std::function callback, + std::function init_fn, + std::function release_fn); static void PollingModeRelease(bthread_tag_t tag); // ---- Handshake IO helpers (also used by urma_handshake.cpp) ---- @@ -264,9 +265,6 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { // Construct a ParsedHello from local state (used by SendLocalHello). void MakeLocalParsedHello(ParsedHello* out) const; - // Bring the jetty from RESET to READY (URMA jetty state machine). - int BringUpJetty(); - std::string GetStateStr() const; // Not owned. @@ -306,18 +304,12 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { butil::atomic _new_rq_wrs{0}; // new recv WRs (to ack) uint16_t _sq_imm_window_size{0}; // budget for pure-ack WRs - // SQ producer / signaled / consumer indices. + // SQ producer / consumer indices. uint16_t _sq_current{0}; - uint16_t _sq_unsignaled{0}; uint16_t _sq_sent{0}; // RQ consumer index. uint16_t _rq_received{0}; - // Batched receive-credit ACK counters. - uint16_t _accumulated_ack{0}; - uint16_t _unsolicited{0}; - uint32_t _unsolicited_bytes{0}; - // Butex for waking the handshake bthread parked in ReadFromFd. butil::atomic* _read_butex{nullptr}; @@ -350,7 +342,7 @@ class BAIDU_CACHELINE_ALIGNMENT UrmaEndpoint : public SocketUser { } // namespace urma } // namespace brpc -#else // if BRPC_WITH_URMA +#else // BRPC_WITH_URMA namespace brpc { namespace urma { @@ -358,6 +350,6 @@ class UrmaEndpoint {}; } // namespace urma } // namespace brpc -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA #endif // BRPC_URMA_ENDPOINT_H diff --git a/src/brpc/urma/urma_handshake.cpp b/src/brpc/urma/urma_handshake.cpp index 48a85b3494..07a02f3bc1 100644 --- a/src/brpc/urma/urma_handshake.cpp +++ b/src/brpc/urma/urma_handshake.cpp @@ -71,40 +71,80 @@ namespace v2_wire { void HelloMessage::Serialize(void* buf) const { uint8_t* p = static_cast(buf); - *(uint16_t*)p = butil::HostToNet16(msg_len); p += 2; - *(uint16_t*)p = butil::HostToNet16(hello_ver); p += 2; - *(uint16_t*)p = butil::HostToNet16(impl_ver); p += 2; - *(uint32_t*)p = butil::HostToNet32(buffer_size); p += 4; - *(uint32_t*)p = butil::HostToNet32(recv_buffer_cnt); p += 4; - *(uint32_t*)p = butil::HostToNet32(jetty_id); p += 4; - memcpy(p, eid, 16); p += 16; - *(uint32_t*)p = butil::HostToNet32(uasid); p += 4; - *p = tp_type; p += 1; - memset(p, 0, 3); p += 3; // pad - memcpy(p, seg_eid, 16); p += 16; - *(uint32_t*)p = butil::HostToNet32(seg_uasid); p += 4; - *(uint64_t*)p = butil::HostToNet64(seg_va); p += 8; - *(uint64_t*)p = butil::HostToNet64(seg_len); p += 8; - *(uint32_t*)p = butil::HostToNet32(seg_token_id); p += 4; + auto write16 = [&p](uint16_t value) { + value = butil::HostToNet16(value); + std::memcpy(p, &value, sizeof(value)); + p += sizeof(value); + }; + auto write32 = [&p](uint32_t value) { + value = butil::HostToNet32(value); + std::memcpy(p, &value, sizeof(value)); + p += sizeof(value); + }; + auto write64 = [&p](uint64_t value) { + value = butil::HostToNet64(value); + std::memcpy(p, &value, sizeof(value)); + p += sizeof(value); + }; + + write16(msg_len); + write16(hello_ver); + write16(impl_ver); + write32(buffer_size); + write32(recv_buffer_cnt); + write32(jetty_id); + std::memcpy(p, eid, sizeof(eid)); + p += sizeof(eid); + write32(uasid); + *p++ = tp_type; + std::memset(p, 0, sizeof(pad)); + p += sizeof(pad); + std::memcpy(p, seg_eid, sizeof(seg_eid)); + p += sizeof(seg_eid); + write32(seg_uasid); + write64(seg_va); + write64(seg_len); + write32(seg_token_id); } void HelloMessage::Deserialize(const void* buf) { const uint8_t* p = static_cast(buf); - msg_len = butil::NetToHost16(*(uint16_t*)p); p += 2; - hello_ver = butil::NetToHost16(*(uint16_t*)p); p += 2; - impl_ver = butil::NetToHost16(*(uint16_t*)p); p += 2; - buffer_size = butil::NetToHost32(*(uint32_t*)p); p += 4; - recv_buffer_cnt = butil::NetToHost32(*(uint32_t*)p); p += 4; - jetty_id = butil::NetToHost32(*(uint32_t*)p); p += 4; - memcpy(eid, p, 16); p += 16; - uasid = butil::NetToHost32(*(uint32_t*)p); p += 4; - tp_type = *p; p += 1; - p += 3; // pad - memcpy(seg_eid, p, 16); p += 16; - seg_uasid = butil::NetToHost32(*(uint32_t*)p); p += 4; - seg_va = butil::NetToHost64(*(uint64_t*)p); p += 8; - seg_len = butil::NetToHost64(*(uint64_t*)p); p += 8; - seg_token_id = butil::NetToHost32(*(uint32_t*)p); p += 4; + auto read16 = [&p]() { + uint16_t value; + std::memcpy(&value, p, sizeof(value)); + p += sizeof(value); + return butil::NetToHost16(value); + }; + auto read32 = [&p]() { + uint32_t value; + std::memcpy(&value, p, sizeof(value)); + p += sizeof(value); + return butil::NetToHost32(value); + }; + auto read64 = [&p]() { + uint64_t value; + std::memcpy(&value, p, sizeof(value)); + p += sizeof(value); + return butil::NetToHost64(value); + }; + + msg_len = read16(); + hello_ver = read16(); + impl_ver = read16(); + buffer_size = read32(); + recv_buffer_cnt = read32(); + jetty_id = read32(); + std::memcpy(eid, p, sizeof(eid)); + p += sizeof(eid); + uasid = read32(); + tp_type = *p++; + p += sizeof(pad); + std::memcpy(seg_eid, p, sizeof(seg_eid)); + p += sizeof(seg_eid); + seg_uasid = read32(); + seg_va = read64(); + seg_len = read64(); + seg_token_id = read32(); } } // namespace v2_wire @@ -125,13 +165,21 @@ constexpr uint32_t MAX_V3_PB_SIZE = 4096; } // namespace bool ValidHello(const ParsedHello& h) { - if (h.buffer_size < MIN_BUFFER_SIZE) { return false; } + if (h.buffer_size < MIN_BUFFER_SIZE) { + return false; + } if (h.recv_buffer_cnt < MIN_BUFFER_CNT || h.recv_buffer_cnt > MAX_BUFFER_CNT) { return false; } - if (h.jetty_id == 0) { return false; } - if (h.tp_type > static_cast(URMA_UTP)) { return false; } - if (h.seg_len == 0 || h.seg_va == 0) { return false; } + if (h.jetty_id == 0) { + return false; + } + if (h.tp_type > static_cast(URMA_UTP)) { + return false; + } + if (h.seg_len == 0 || h.seg_va == 0) { + return false; + } return true; } @@ -141,7 +189,9 @@ bool ValidHello(const ParsedHello& h) { int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated) { *negotiated = false; uint8_t body[v2_wire::HELLO_BODY_LEN]; - if (ep->ReadFromFd(body, v2_wire::HELLO_BODY_LEN) < 0) { return -1; } + if (ep->ReadFromFd(body, v2_wire::HELLO_BODY_LEN) < 0) { + return -1; + } v2_wire::HelloMessage m; m.Deserialize(body); if (m.msg_len < v2_wire::HELLO_MSG_LEN_MIN || @@ -152,18 +202,22 @@ int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated) { p.buffer_size = m.buffer_size; p.recv_buffer_cnt = m.recv_buffer_cnt; p.jetty_id = m.jetty_id; - memcpy(p.eid, m.eid, 16); + std::memcpy(p.eid, m.eid, 16); p.uasid = m.uasid; p.tp_type = m.tp_type; - memcpy(p.seg_eid, m.seg_eid, 16); + std::memcpy(p.seg_eid, m.seg_eid, 16); p.seg_uasid = m.seg_uasid; p.seg_va = m.seg_va; p.seg_len = m.seg_len; p.seg_token_id = m.seg_token_id; - if (!ValidHello(p)) { return 0; } + if (!ValidHello(p)) { + return 0; + } // Drain trailing bytes if msg_len advertises more than the fixed body. if (m.msg_len > v2_wire::HELLO_PACKET_LEN) { - if (DrainBytes(ep, m.msg_len - v2_wire::HELLO_PACKET_LEN) < 0) { return -1; } + if (DrainBytes(ep, m.msg_len - v2_wire::HELLO_PACKET_LEN) < 0) { + return -1; + } } *out = p; *negotiated = true; @@ -174,7 +228,9 @@ int DrainBytes(UrmaEndpoint* ep, size_t n) { char buf[4096]; while (n > 0) { size_t want = std::min(n, sizeof(buf)); - if (ep->ReadFromFd(buf, want) < 0) { return -1; } + if (ep->ReadFromFd(buf, want) < 0) { + return -1; + } n -= want; } return 0; @@ -188,7 +244,7 @@ int UrmaHandshakeClientV2::SendLocalHello() { v2_wire::HelloMessage m; _ep->FillLocalHelloV2(&m); uint8_t packet[v2_wire::HELLO_PACKET_LEN]; - memcpy(packet, "URMA", 4); + std::memcpy(packet, "URMA", 4); m.Serialize(packet + 4); return _ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); } @@ -197,8 +253,10 @@ int UrmaHandshakeClientV2::ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) { *negotiated = false; uint8_t magic[v2_wire::MAGIC_STR_LEN]; - if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } - if (memcmp(magic, "URMA", 4) != 0) { + if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { + return -1; + } + if (std::memcmp(magic, "URMA", 4) != 0) { // Peer is not URMA-capable; push the magic back so the TCP input // messenger can re-parse it. _ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); @@ -226,7 +284,7 @@ int UrmaHandshakeServerV2::SendLocalHello() { m.buffer_size = 0; } uint8_t packet[v2_wire::HELLO_PACKET_LEN]; - memcpy(packet, "URMA", 4); + std::memcpy(packet, "URMA", 4); m.Serialize(packet + 4); return _ep->WriteToFd(packet, v2_wire::HELLO_PACKET_LEN); } @@ -247,8 +305,10 @@ int UrmaHandshakeClientV3::ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) { *negotiated = false; uint8_t magic[v2_wire::MAGIC_STR_LEN]; - if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { return -1; } - if (memcmp(magic, "URM3", 4) != 0) { + if (_ep->ReadFromFd(magic, v2_wire::MAGIC_STR_LEN) < 0) { + return -1; + } + if (std::memcmp(magic, "URM3", 4) != 0) { _ep->PushBackToReadBuf(magic, v2_wire::MAGIC_STR_LEN); return 0; } @@ -281,10 +341,10 @@ UrmaHandshake* CreateClientHandshake(UrmaEndpoint* ep) { UrmaHandshake* CreateServerHandshakeByMagic(UrmaEndpoint* ep, const uint8_t magic[v2_wire::MAGIC_STR_LEN]) { - if (memcmp(magic, "URMA", 4) == 0) { + if (std::memcmp(magic, "URMA", 4) == 0) { return new UrmaHandshakeServerV2(ep); } - if (memcmp(magic, "URM3", 4) == 0) { + if (std::memcmp(magic, "URM3", 4) == 0) { return new UrmaHandshakeServerV3(ep); } return nullptr; @@ -293,4 +353,4 @@ UrmaHandshake* CreateServerHandshakeByMagic(UrmaEndpoint* ep, } // namespace urma } // namespace brpc -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA diff --git a/src/brpc/urma/urma_handshake.h b/src/brpc/urma/urma_handshake.h index 6ada472944..954faae711 100644 --- a/src/brpc/urma/urma_handshake.h +++ b/src/brpc/urma/urma_handshake.h @@ -18,9 +18,8 @@ #ifndef BRPC_URMA_HANDSHAKE_H #define BRPC_URMA_HANDSHAKE_H +#include #include -#include -#include #if BRPC_WITH_URMA @@ -39,12 +38,12 @@ struct ParsedHello { uint32_t buffer_size = 0; // peer recv buffer size in bytes (per WR) uint32_t recv_buffer_cnt = 0; // peer recv buffer count (RQ depth - 1) uint32_t jetty_id = 0; // peer jetty id - uint8_t eid[16] = {0}; // peer EID (network order) + uint8_t eid[16] = {0}; // peer EID (network order) uint32_t uasid = 0; // peer uasid - uint8_t tp_type = 0; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP + uint8_t tp_type = 0; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP // Flattened peer buffer-pool segment. - uint8_t seg_eid[16] = {0}; // EID owning the peer segment + uint8_t seg_eid[16] = {0}; // EID owning the peer segment uint32_t seg_uasid = 0; // uasid owning the peer segment uint64_t seg_va = 0; // segment virtual address uint64_t seg_len = 0; // segment length in bytes @@ -77,18 +76,18 @@ struct HelloMessage { uint32_t buffer_size; uint32_t recv_buffer_cnt; uint32_t jetty_id; - uint8_t eid[16]; + uint8_t eid[16]; uint32_t uasid; - uint8_t tp_type; - uint8_t pad[3]; // keep the struct 4-byte aligned - uint8_t seg_eid[16]; + uint8_t tp_type; + uint8_t pad[3]; // keep the struct 4-byte aligned + uint8_t seg_eid[16]; uint32_t seg_uasid; uint64_t seg_va; uint64_t seg_len; uint32_t seg_token_id; void Serialize(void* buf) const; // host -> network order, write to buf - void Deserialize(const void* buf); // network -> host order, read from buf + void Deserialize(const void* buf); // network -> host order, read from buf }; } // namespace v2_wire @@ -117,6 +116,7 @@ class UrmaHandshakeClientV2 : public UrmaHandshake { int ProtocolVersion() const override { return 2; } int SendLocalHello() override; int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; + private: UrmaEndpoint* _ep; }; @@ -127,6 +127,7 @@ class UrmaHandshakeServerV2 : public UrmaHandshake { int ProtocolVersion() const override { return 2; } int SendLocalHello() override; int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; + private: UrmaEndpoint* _ep; }; @@ -138,6 +139,7 @@ class UrmaHandshakeClientV3 : public UrmaHandshake { int ProtocolVersion() const override { return 3; } int SendLocalHello() override; int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; + private: UrmaEndpoint* _ep; }; @@ -148,6 +150,7 @@ class UrmaHandshakeServerV3 : public UrmaHandshake { int ProtocolVersion() const override { return 3; } int SendLocalHello() override; int ReceiveAndParseRemoteHello(ParsedHello* out, bool* negotiated) override; + private: UrmaEndpoint* _ep; }; @@ -172,6 +175,6 @@ int ReadBodyAndNegotiate(UrmaEndpoint* ep, ParsedHello* out, bool* negotiated); } // namespace urma } // namespace brpc -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA #endif // BRPC_URMA_HANDSHAKE_H diff --git a/src/brpc/urma/urma_handshake.proto b/src/brpc/urma/urma_handshake.proto index cdaf1c8c2a..f6d4a6d1ea 100644 --- a/src/brpc/urma/urma_handshake.proto +++ b/src/brpc/urma/urma_handshake.proto @@ -27,19 +27,19 @@ option java_outer_classname = "UrmaHandshakeProto"; // are the magic "URM3" (v3) followed by a 4-byte big-endian length prefix // and then the protobuf-encoded UrmaHello. message UrmaHello { - required uint32 buffer_size = 1; // recv buffer size in bytes (per recv WR) - required uint32 recv_buffer_cnt = 2; // number of recv buffers posted - required uint32 jetty_id = 3; // local jetty id - required bytes eid = 4; // 16-byte local EID (network order) - required uint32 uasid = 5; // local uasid - required uint32 tp_type = 6; // urma_tp_type_t: URMA_RTP / URMA_CTP / URMA_UTP + required uint32 buffer_size = 1; // recv buffer size in bytes (per WR) + required uint32 recv_buffer_cnt = 2; // number of recv buffers posted + required uint32 jetty_id = 3; // local jetty id + required bytes eid = 4; // 16-byte local EID (network order) + required uint32 uasid = 5; // local uasid + required uint32 tp_type = 6; // urma_tp_type_t // Flattened peer buffer-pool segment (urma_seg_t + token). The receiver // calls urma_import_seg with these fields BEFORE urma_import_jetty, so // the kernel establishes the transport path (TP) routing for the remote // EID. Otherwise the first SEND is rejected by hardware with // URMA_CR_RNR_RETRY_CNT_EXC_ERR (status=10). - required bytes seg_eid = 7; // 16-byte EID owning the segment + required bytes seg_eid = 7; // 16-byte EID owning the segment required uint32 seg_uasid = 8; // uasid owning the segment required uint64 seg_va = 9; // segment virtual address required uint64 seg_len = 10; // segment length in bytes diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 35359e641b..4b31314877 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -65,8 +65,6 @@ DEFINE_int32(urma_poller_num, 1, "Number of poller bthreads per bthread tag (polling mode only)"); DEFINE_bool(urma_disable_bthread, false, "Run the message-processing callback inline (no bthread spawned)"); -DEFINE_bool(urma_trace_verbose, false, - "Print verbose logs for URMA handshake and completions"); DEFINE_int32(urma_sq_size, 128, "Depth of the local send jetty (JFS). [16, 4096]"); @@ -82,35 +80,26 @@ DEFINE_int32(urma_zerocopy_min_size, 512, DEFINE_string(urma_device, "", "The name of the URMA device to use. Empty means the first one."); DEFINE_int32(urma_max_sge, 0, - "Max SGEs per WR. 0 means the device maximum."); + "Max SGEs per WR. 0 means the device maximum."); DEFINE_int32(urma_bonding_mode, 0, - "Bonding mode for bonding devices: 0=standalone, " - "1=active-backup, 2=balance."); + "Bonding mode for bonding devices: 0=standalone, " + "1=active-backup, 2=balance."); DEFINE_int32(urma_bonding_level, 0, - "Bonding level for bonding devices: 0=IODIE, 1=port."); + "Bonding level for bonding devices: 0=IODIE, 1=port."); DEFINE_int32(urma_prepared_jetty_cnt, 8, - "Requested number of pre-allocated Jetty+CQ sets for fast " - "connect; capped automatically according to RLIMIT_NOFILE"); + "Requested number of pre-allocated Jetty+CQ sets for fast " + "connect; capped automatically according to RLIMIT_NOFILE"); DEFINE_int32(urma_buffer_size, 8 * 1024, - "Per-buffer size in the URMA buffer pool (bytes). " - "Must match IOBuf block size to keep zero-copy working."); + "Per-buffer size in the URMA buffer pool (bytes). " + "Must match IOBuf block size to keep zero-copy working."); DEFINE_int32(urma_buffer_count, 65536, - "Number of buffers in the URMA buffer pool."); -DEFINE_bool(urma_buffer_pool_user_specified, false, - "If true, the pool is not auto-grown; user must call " - "ExtendUrmaBufferPoolByUser."); + "Number of buffers in the URMA buffer pool."); DEFINE_bool(urma_poller_yield, false, - "Yield (bthread_yield) in the busy poll loop to let other " - "bthreads run"); + "Yield (bthread_yield) in the busy poll loop to let other " + "bthreads run"); -DEFINE_bool(urma_event_mode, true, - "Use JFCE event mode (true) or busy polling (false). " - "Only effective when --urma_use_polling is false."); - -// EAGAIN-like errno used by the send path to signal window-full. -constexpr int kErrnoUrmaWindowFull = EAGAIN; constexpr size_t kIOBufBlockHeaderLen = 32; // Set to true to skip real URMA hardware initialization (unit tests). When @@ -131,8 +120,8 @@ static urma_device_attr_t g_device_attr{}; static int g_max_sge = 1; static size_t g_recv_block_size = 8 * 1024; static bool g_is_bonding_device = false; -// Yalanting uses priority 6 for CTP. Prefer the device capability table when -// available, and retain 6 as the compatibility fallback. +// Prefer the device capability table and retain priority 6 as a compatibility +// fallback for CTP providers that do not report a priority. static uint8_t g_jetty_priority = 6; // urma_init/urma_uninit manage process-global liburma state. Only uninitialize // it when this helper performed the successful initialization; URMA_EEXIST @@ -201,10 +190,6 @@ bool ConfigureBondingMode(const std::string& device_name) { g_is_bonding_device = IsBondingDeviceName(device_name.c_str()) || IsBondingDeviceName(context_device_name); - LOG(INFO) << "URMA device mode detected: selected_device=" << device_name - << " context_device=" - << (context_device_name != nullptr ? context_device_name : "") - << " bonding=" << g_is_bonding_device; if (!g_is_bonding_device) { return true; } @@ -242,9 +227,6 @@ bool ConfigureBondingMode(const std::string& device_name) { errno = status > 0 ? status : EIO; return false; } - LOG(INFO) << "URMA bonding mode configured: device=" << device_name - << " mode=" << FLAGS_urma_bonding_mode - << " level=" << FLAGS_urma_bonding_level; return true; #else LOG(ERROR) << "URMA bonding device " << device_name @@ -262,7 +244,7 @@ bool ConfigureBondingMode(const std::string& device_name) { namespace { -// Free list with 64 shards to reduce contention (modeled on yalantinglibs). +// Shard the free list to reduce contention between allocator threads. constexpr size_t kShardCount = 64; struct BufferPool { butil::Mutex mutexes[kShardCount]; @@ -304,23 +286,31 @@ void* PoolAllocate(size_t size) { auto shard = (start + i) % kShardCount; BAIDU_SCOPED_LOCK(g_pool->mutexes[shard]); auto& fl = g_pool->free_lists[shard]; - if (fl.empty()) { continue; } + if (fl.empty()) { + continue; + } void* buf = fl.back(); fl.pop_back(); auto idx = (static_cast(buf) - static_cast(g_pool_base)) / g_pool_buffer_size; - if (idx < g_pool->in_use.size()) { g_pool->in_use[idx] = 1; } + if (idx < g_pool->in_use.size()) { + g_pool->in_use[idx] = 1; + } g_pool->outstanding.fetch_add(1, butil::memory_order_relaxed); return buf; } - LOG(WARNING) << "URMA buffer pool exhausted; falling back to malloc"; + LOG_EVERY_SECOND(WARNING) + << "URMA buffer pool exhausted; falling back to malloc"; return g_mem_alloc_orig ? g_mem_alloc_orig(size) : malloc(size); } void PoolDeallocate(void* buf) { if (BAIDU_UNLIKELY(g_skip_urma_init)) { - if (g_mem_dealloc_orig) { g_mem_dealloc_orig(buf); } - else { free(buf); } + if (g_mem_dealloc_orig) { + g_mem_dealloc_orig(buf); + } else { + free(buf); + } return; } auto* base = static_cast(g_pool_base); @@ -328,8 +318,11 @@ void PoolDeallocate(void* buf) { if (!base || p < base || p >= base + g_pool_size || static_cast(p - base) % g_pool_buffer_size != 0) { // Not a pool buffer -- hand back to the original allocator. - if (g_mem_dealloc_orig) { g_mem_dealloc_orig(buf); } - else { free(buf); } + if (g_mem_dealloc_orig) { + g_mem_dealloc_orig(buf); + } else { + free(buf); + } return; } auto shard = ShardFor(buf); @@ -350,9 +343,13 @@ void PoolDeallocate(void* buf) { // Register the pool: mmap one large region and urma_register_seg it. bool InitPool() { - if (g_pool_buffer_size == 0 || g_pool == nullptr) { return false; } + if (g_pool_buffer_size == 0 || g_pool == nullptr) { + return false; + } size_t count = g_pool->buffer_count(); - if (count == 0) { return false; } + if (count == 0) { + return false; + } size_t raw = g_pool_buffer_size * count; size_t page = PageSize(); g_pool_size = AlignUp(raw, page); @@ -393,8 +390,6 @@ bool InitPool() { g_pool->free_lists[shard].push_back( static_cast(g_pool_base) + i * g_pool_buffer_size); } - LOG(INFO) << "URMA buffer pool ready: " << count << " buffers of " - << g_pool_buffer_size << " bytes, one segment of " << g_pool_size; return true; } @@ -404,8 +399,12 @@ bool InitPool() { // All pool buffers share the same segment, so we return g_pool_seg for any // pool address; the per-WR length selects the slice. urma_target_seg_t* GetPoolSegFor(void* buf) { - if (g_skip_urma_init || !g_pool_seg || !g_pool_base) { return nullptr; } - if (buf == nullptr) { return g_pool_seg; } + if (g_skip_urma_init || !g_pool_seg || !g_pool_base) { + return nullptr; + } + if (buf == nullptr) { + return g_pool_seg; + } const uintptr_t base = reinterpret_cast(g_pool_base); const uintptr_t p = reinterpret_cast(buf); if (p >= base && p - base < g_pool_size) { @@ -533,15 +532,9 @@ static bool GlobalUrmaInitializeImpl() { g_jetty_priority = static_cast(ctp_priority); } else { LOG(WARNING) << "URMA device does not report a CTP priority; " - "falling back to Yalanting-compatible priority " + "falling back to compatibility priority " << static_cast(g_jetty_priority); } - const auto& selected_priority = - g_device_attr.dev_cap.priority_info[g_jetty_priority]; - LOG(INFO) << "URMA selected CTP jetty priority=" - << static_cast(g_jetty_priority) - << " tp_cap=" << selected_priority.tp_type.value - << " sl=" << selected_priority.SL; uint32_t eid_cnt = 0; urma_eid_info_t* eids = urma_get_eid_list(found, &eid_cnt); if (!eids || eid_cnt == 0) { @@ -551,10 +544,9 @@ static bool GlobalUrmaInitializeImpl() { g_device = nullptr; return false; } - // Retain the exact EID used to create the context. Yalanting advertises - // this device EID during its handshake instead of jetty_id.eid. The - // distinction matters for a bonding virtual device whose jetty can carry - // a provider-selected physical EID. + // Retain the exact EID used to create the context and advertise it in the + // handshake. This matters for a bonding virtual device whose jetty can + // carry a provider-selected physical EID. g_local_eid = eids[0].eid; g_has_local_eid = true; g_context = urma_create_context(found, eids[0].eid_index); @@ -571,9 +563,13 @@ static bool GlobalUrmaInitializeImpl() { return false; } uint32_t device_max_sge = g_device_attr.dev_cap.max_jfs_sge; - if (device_max_sge == 0) { device_max_sge = 1; } + if (device_max_sge == 0) { + device_max_sge = 1; + } // urma_jfs_cfg_t::max_sge is uint8_t. - if (device_max_sge > 255) { device_max_sge = 255; } + if (device_max_sge > 255) { + device_max_sge = 255; + } g_max_sge = static_cast(device_max_sge); if (FLAGS_urma_max_sge > 0) { if (FLAGS_urma_max_sge > g_max_sge) { @@ -644,7 +640,9 @@ static butil::Mutex g_init_mutex; void GlobalUrmaInitializeOrDie() { int expected = 0; - if (g_init_once.load(butil::memory_order_acquire) == 2) { return; } + if (g_init_once.load(butil::memory_order_acquire) == 2) { + return; + } if (g_init_once.compare_exchange_strong(expected, 1, butil::memory_order_acq_rel)) { BAIDU_SCOPED_LOCK(g_init_mutex); @@ -669,7 +667,7 @@ void GlobalDisableUrma() { g_urma_available.store(false, butil::memory_order_release); } -bool SupportedByUrma(std::string protocol) { +bool SupportedByUrma(const std::string& protocol) { return protocol == "baidu_std"; } @@ -698,10 +696,12 @@ size_t GetUrmaRecvBlockSize() { return g_recv_block_size; } // ============================================================================ bool InitPollingModeWithTag(bthread_tag_t tag, - std::function callback, - std::function init_fn, - std::function release_fn) { - if (BAIDU_UNLIKELY(g_skip_urma_init)) { return true; } + std::function callback, + std::function init_fn, + std::function release_fn) { + if (BAIDU_UNLIKELY(g_skip_urma_init)) { + return true; + } return UrmaEndpoint::PollingModeInitialize( tag, std::move(callback), std::move(init_fn), std::move(release_fn)) == 0; @@ -716,7 +716,9 @@ void ReleasePollingModeWithTag(bthread_tag_t tag) { // ============================================================================ uint64_t RegisterMemoryForUrma(void* buf, size_t len) { - if (BAIDU_UNLIKELY(g_skip_urma_init) || !g_context) { return 0; } + if (BAIDU_UNLIKELY(g_skip_urma_init) || !g_context) { + return 0; + } urma_reg_seg_flag_t flag{}; flag.bs.token_policy = URMA_TOKEN_NONE; flag.bs.cacheable = URMA_NON_CACHEABLE; @@ -751,44 +753,22 @@ uint64_t RegisterMemoryForUrma(void* buf, size_t len) { } void DeregisterMemoryForUrma(void* buf) { - if (BAIDU_UNLIKELY(g_skip_urma_init) || !g_user_segs) { return; } + if (BAIDU_UNLIKELY(g_skip_urma_init) || !g_user_segs) { + return; + } BAIDU_SCOPED_LOCK(*g_user_segs_lock); UserSeg* us = g_user_segs->seek(buf); - if (!us) { return; } + if (!us) { + return; + } urma_unregister_seg(us->tseg); g_user_segs->erase(buf); } -uint64_t GetSegHandle(void* buf) { - // Pool buffer? - if (g_pool_seg) { - const uintptr_t base = reinterpret_cast(g_pool_base); - const uintptr_t p = reinterpret_cast(buf); - if (p >= base && p - base < g_pool_size) { - return static_cast(reinterpret_cast(g_pool_seg)); - } - } - // User-registered buffer? - if (g_user_segs) { - BAIDU_SCOPED_LOCK(*g_user_segs_lock); - // Find the segment whose [base, base+len) contains buf. - for (auto it = g_user_segs->begin(); it != g_user_segs->end(); ++it) { - const uintptr_t base = - reinterpret_cast(it->second.base); - const uintptr_t p = reinterpret_cast(buf); - if (p >= base && p - base < it->second.len) { - return static_cast( - reinterpret_cast(it->second.tseg)); - } - } - } - return 0; -} - } // namespace urma } // namespace brpc -#else // if BRPC_WITH_URMA +#else // BRPC_WITH_URMA #include @@ -805,4 +785,4 @@ void GlobalUrmaInitializeOrDie() { } // namespace urma } // namespace brpc -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index 4ca474ccb7..4fc81a0beb 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -43,9 +43,9 @@ void GlobalUrmaInitializeOrDie(); // Initialize URMA polling mode for a given bthread tag. // Returns false on failure. bool InitPollingModeWithTag(bthread_tag_t tag, - std::function callback = nullptr, - std::function init_fn = nullptr, - std::function release_fn = nullptr); + std::function callback = nullptr, + std::function init_fn = nullptr, + std::function release_fn = nullptr); void ReleasePollingModeWithTag(bthread_tag_t tag); @@ -58,19 +58,18 @@ uint64_t RegisterMemoryForUrma(void* buf, size_t len); // Deregister a previously registered user buffer. void DeregisterMemoryForUrma(void* buf); -// Return the registered-segment handle for a given address, or 0 if the -// address is not in any region managed by the URMA buffer pool or the user-mr -// table. The handle is carried by urma_sge_t.tseg on the send path. -uint64_t GetSegHandle(void* buf); +// Return the target segment for a buffer-pool address. Passing nullptr returns +// the segment backing the whole pool. Returns nullptr for any other address. +urma_target_seg_t* GetPoolSegFor(void* buf); // Get the global URMA context (the urma_context_t created on the selected -// device / EID). Returns NULL if URMA is not initialized. +// device / EID). Returns nullptr if URMA is not initialized. urma_context_t* GetUrmaContext(); // Get the EID selected when the global context was created. This is the // device EID that must be advertised to peers, especially for bonding // devices where a created jetty may expose a provider-specific physical EID. -// Returns NULL if URMA is not initialized. +// Returns nullptr if URMA is not initialized. const urma_eid_t* GetUrmaLocalEid(); // Return true when the selected URMA device is a bonding provider device. @@ -92,7 +91,7 @@ void GlobalDisableUrma(); // If the given protocol is supported by UrmaTransport. // Currently only "baidu_std" is supported. -bool SupportedByUrma(std::string protocol); +bool SupportedByUrma(const std::string& protocol); // Return the configured recv buffer size (one URMA recv WR's payload size). size_t GetUrmaRecvBlockSize(); @@ -103,7 +102,7 @@ int GetUrmaMaxSge(); } // namespace urma } // namespace brpc -#else // if BRPC_WITH_URMA +#else // BRPC_WITH_URMA namespace brpc { namespace urma { @@ -115,6 +114,6 @@ void GlobalUrmaInitializeOrDie(); } // namespace urma } // namespace brpc -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA #endif // BRPC_URMA_HELPER_H diff --git a/src/brpc/urma_transport.cpp b/src/brpc/urma_transport.cpp index 9f34661c2a..311786e8eb 100644 --- a/src/brpc/urma_transport.cpp +++ b/src/brpc/urma_transport.cpp @@ -105,15 +105,17 @@ ssize_t UrmaTransport::CutFromIOBufList(butil::IOBuf** buf, size_t ndata) { } } -int UrmaTransport::WaitEpollOut(butil::atomic* _epollout_butex, +int UrmaTransport::WaitEpollOut(butil::atomic* epollout_butex, bool pollin, const timespec duetime) { if (_urma_state.load(butil::memory_order_acquire) == URMA_ON) { - const int expected_val = _epollout_butex->load(butil::memory_order_acquire); + const int expected_val = + epollout_butex->load(butil::memory_order_acquire); CHECK(_urma_ep != nullptr); if (!_urma_ep->IsWritable()) { // Same caveat as RDMA: URMA cannot detect failure by writing, so // after a failed butex wait we must re-check _socket->Failed(). - int rc = bthread::butex_wait(_epollout_butex, expected_val, &duetime); + int rc = + bthread::butex_wait(epollout_butex, expected_val, &duetime); if (rc < 0 && errno != EWOULDBLOCK && errno != ETIMEDOUT) { const int saved_errno = errno; PLOG(ERROR) << "Fail to wait epollout butex"; @@ -128,9 +130,8 @@ int UrmaTransport::WaitEpollOut(butil::atomic* _epollout_butex, return 0; } return 0; - } else { - return _tcp_transport->WaitEpollOut(_epollout_butex, pollin, duetime); } + return _tcp_transport->WaitEpollOut(epollout_butex, pollin, duetime); } void UrmaTransport::ProcessEvent(bthread_attr_t attr) { @@ -186,18 +187,20 @@ void UrmaTransport::Debug(std::ostream& os) { } } -int UrmaTransport::ContextInitOrDie(bool serverOrNot, const void* _options) { - if (serverOrNot) { - if (!OptionsAvailableOverUrma(static_cast(_options))) { +int UrmaTransport::ContextInitOrDie(bool server_or_not, const void* options) { + if (server_or_not) { + if (!OptionsAvailableOverUrma( + static_cast(options))) { return -1; } urma::GlobalUrmaInitializeOrDie(); if (!urma::InitPollingModeWithTag( - static_cast(_options)->bthread_tag)) { + static_cast(options)->bthread_tag)) { return -1; } } else { - if (!OptionsAvailableForUrma(static_cast(_options))) { + if (!OptionsAvailableForUrma( + static_cast(options))) { return -1; } urma::GlobalUrmaInitializeOrDie(); @@ -242,4 +245,4 @@ bool UrmaTransport::OptionsAvailableOverUrma(const ServerOptions* opt) { } // namespace brpc -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA diff --git a/src/brpc/urma_transport.h b/src/brpc/urma_transport.h index 152cf8ef3f..9a496d56be 100644 --- a/src/brpc/urma_transport.h +++ b/src/brpc/urma_transport.h @@ -18,12 +18,11 @@ #ifndef BRPC_URMA_TRANSPORT_H #define BRPC_URMA_TRANSPORT_H -#include "brpc/socket.h" -#include "brpc/channel.h" -#include "brpc/transport.h" - #if BRPC_WITH_URMA +#include "brpc/channel.h" +#include "brpc/socket.h" +#include "brpc/transport.h" #include "brpc/urma/urma_endpoint.h" namespace brpc { @@ -34,13 +33,14 @@ namespace brpc { // the per-connection urma::UrmaEndpoint. Negotiation runs over the TCP fd and // resolves _urma_state to URMA_ON or URMA_OFF. class UrmaTransport : public Transport { -friend class TransportFactory; -friend class urma::UrmaEndpoint; -friend class urma::UrmaConnect; -friend class urma::UrmaHandshakeServerV2; -friend class urma::UrmaHandshakeClientV2; -friend class urma::UrmaHandshakeServerV3; -friend class urma::UrmaHandshakeClientV3; + friend class TransportFactory; + friend class urma::UrmaEndpoint; + friend class urma::UrmaConnect; + friend class urma::UrmaHandshakeServerV2; + friend class urma::UrmaHandshakeClientV2; + friend class urma::UrmaHandshakeServerV3; + friend class urma::UrmaHandshakeClientV3; + public: void Init(Socket* socket, const SocketOptions& options) override; void Release() override; @@ -48,10 +48,10 @@ friend class urma::UrmaHandshakeClientV3; std::shared_ptr Connect() override; int CutFromIOBuf(butil::IOBuf* buf) override; ssize_t CutFromIOBufList(butil::IOBuf** buf, size_t ndata) override; - int WaitEpollOut(butil::atomic* _epollout_butex, bool pollin, - const timespec duetime) override; + int WaitEpollOut(butil::atomic* epollout_butex, bool pollin, + const timespec duetime) override; void ProcessEvent(bthread_attr_t attr) override; - void QueueMessage(InputMessageClosure& inputMsg, int* num_bthread_created, + void QueueMessage(InputMessageClosure& input_msg, int* num_bthread_created, bool last_msg) override; void Debug(std::ostream& os) override; @@ -60,7 +60,7 @@ friend class urma::UrmaHandshakeClientV3; return _urma_ep; } - static int ContextInitOrDie(bool serverOrNot, const void* _options); + static int ContextInitOrDie(bool server_or_not, const void* options); private: static bool OptionsAvailableForUrma(const ChannelOptions* opt); @@ -80,5 +80,5 @@ friend class urma::UrmaHandshakeClientV3; } // namespace brpc -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA #endif // BRPC_URMA_TRANSPORT_H diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index 37ef6eb69f..4a543edcd8 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -51,10 +51,14 @@ TEST(UrmaHandshakeTest, v2_serialize_deserialize_roundtrip) { m.buffer_size = 8192; m.recv_buffer_cnt = 127; m.jetty_id = 0x12345678; - for (int i = 0; i < 16; ++i) { m.eid[i] = static_cast(i + 1); } + for (int i = 0; i < 16; ++i) { + m.eid[i] = static_cast(i + 1); + } m.uasid = 0xdeadbeef; m.tp_type = 1; // URMA_CTP - for (int i = 0; i < 16; ++i) { m.seg_eid[i] = static_cast(16 - i); } + for (int i = 0; i < 16; ++i) { + m.seg_eid[i] = static_cast(16 - i); + } m.seg_uasid = 0xcafebabe; m.seg_va = 0x1122334455667788ULL; m.seg_len = 1ULL << 20; @@ -100,12 +104,16 @@ TEST(UrmaHandshakeTest, v3_protobuf_roundtrip) { msg.set_recv_buffer_cnt(127); msg.set_jetty_id(0x12345678); uint8_t eid[16]; - for (int i = 0; i < 16; ++i) { eid[i] = static_cast(i + 1); } + for (int i = 0; i < 16; ++i) { + eid[i] = static_cast(i + 1); + } msg.set_eid(eid, 16); msg.set_uasid(0xdeadbeef); msg.set_tp_type(1); uint8_t seg_eid[16]; - for (int i = 0; i < 16; ++i) { seg_eid[i] = static_cast(16 - i); } + for (int i = 0; i < 16; ++i) { + seg_eid[i] = static_cast(16 - i); + } msg.set_seg_eid(seg_eid, 16); msg.set_seg_uasid(0xcafebabe); msg.set_seg_va(0x1122334455667788ULL); @@ -519,8 +527,8 @@ TEST_F(UrmaMockTest, EXPECT_EQ(13u, receiver_cr[1].imm_data); EXPECT_EQ(0u, receiver_cr[1].completion_len); - // Exercise the response direction as well. Production follows - // yalantinglibs and posts all receive WRs through the shared JFR. + // Exercise the response direction as well. Production posts all receive + // WRs through the shared JFR. urma_rjetty_t sender_remote = remote; sender_remote.jetty_id = sender->jetty_id; urma_target_jetty_t* sender_target = @@ -575,13 +583,13 @@ TEST_F(UrmaMockTest, urma_free_device_list(devices); } -#else // if BRPC_WITH_URMA +#else // BRPC_WITH_URMA // When URMA is not compiled in, the test file is a no-op so the build stays // clean. The brpc_urma_unittest target still links (against brpc-shared which // provides the empty stubs). -#endif // if BRPC_WITH_URMA +#endif // BRPC_WITH_URMA int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); From dacec97b49f6e86c0d3eeb268353b357add28601 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 16:10:26 +0800 Subject: [PATCH 44/45] fix ut --- src/brpc/urma/mock_urma.cpp | 10 ++++-- test/brpc_urma_unittest.cpp | 65 ++++++++++++++++++++----------------- 2 files changed, 43 insertions(+), 32 deletions(-) diff --git a/src/brpc/urma/mock_urma.cpp b/src/brpc/urma/mock_urma.cpp index daff6e24e4..f7be1ec60a 100644 --- a/src/brpc/urma/mock_urma.cpp +++ b/src/brpc/urma/mock_urma.cpp @@ -537,6 +537,13 @@ urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, read_lock.unlock(); for (urma_jfs_wr_t* current = wr; current; current = current->next) { + if (!current->tjetty) { + if (bad_wr) { + *bad_wr = current; + } + return URMA_EINVAL; + } + urma_cr_t send_cr{}; send_cr.status = URMA_CR_SUCCESS; send_cr.user_ctx = current->user_ctx; @@ -546,9 +553,6 @@ urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, local_state, send_cr); } - if (!current->tjetty) { - continue; - } PendingRecv recv{}; urma_jfc_t* remote_jfc = nullptr; { diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index 4a543edcd8..b5f68b850e 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -272,36 +272,56 @@ TEST(UrmaHandshakeTest, supported_by_urma_protocol_allowlist) { // --------------------------------------------------------------------------- // URMA mock smoke test: drives urma_init / device enumeration / context / -// jetty / post / poll. This works against either the real liburma (hardware -// env) or the bundled mock_urma.cpp (CI, no liburma). The mock returns -// device->name == "mock_urma_device" and completes posted WRs immediately. +// jetty / post / poll. These tests rely on mock semantics and are skipped +// when the test binary links a real liburma provider. // --------------------------------------------------------------------------- class UrmaMockTest : public ::testing::Test { protected: void SetUp() override { - // Allow the (possibly mock) urma_init to run for this suite. urma::g_skip_urma_init = false; + + urma_init_attr_t init_attr{}; + const urma_status_t status = urma_init(&init_attr); + ASSERT_TRUE(status == URMA_SUCCESS || status == URMA_EEXIST); + _owns_urma_init = status == URMA_SUCCESS; + + int num_devices = 0; + urma_device_t** devices = urma_get_device_list(&num_devices); + ASSERT_NE(nullptr, devices); + ASSERT_GT(num_devices, 0); + const bool using_mock = + strcmp(devices[0]->name, "mock_urma_device") == 0; + urma_free_device_list(devices); + if (!using_mock) { + if (_owns_urma_init) { + EXPECT_EQ(URMA_SUCCESS, urma_uninit()); + _owns_urma_init = false; + } + GTEST_SKIP() << "UrmaMockTest requires the bundled URMA mock"; + } } + void TearDown() override { - // Restore the skip flag for other suites. + if (_owns_urma_init) { + EXPECT_EQ(URMA_SUCCESS, urma_uninit()); + } urma::g_skip_urma_init = true; urma::g_urma_available.store(true, butil::memory_order_relaxed); } + +private: + bool _owns_urma_init{false}; }; TEST_F(UrmaMockTest, init_and_enumerate_device) { urma_init_attr_t init_attr{}; - urma_status_t st = urma_init(&init_attr); - // URMA_SUCCESS on first init; URMA_EEXIST acceptable if already inited. - ASSERT_TRUE(st == URMA_SUCCESS || st == URMA_EEXIST); + EXPECT_EQ(URMA_EEXIST, urma_init(&init_attr)); int num_devices = 0; urma_device_t** devices = urma_get_device_list(&num_devices); ASSERT_NE(nullptr, devices); ASSERT_GE(num_devices, 1); - // The mock names its device "mock_urma_device"; the real library exposes - // whatever URMA NIC is present. Either way the name must be non-empty. - EXPECT_GT(strlen(devices[0]->name), 0u); + EXPECT_STREQ("mock_urma_device", devices[0]->name); urma_free_device_list(devices); } @@ -329,9 +349,9 @@ TEST_F(UrmaMockTest, create_context_and_query_device) { urma_free_device_list(devices); } -TEST_F(UrmaMockTest, post_and_poll_completion) { - // Create context -> jfc -> jfr -> jetty (share jfr) -> post a send WR - // -> poll_jfc should return the user_ctx as a send completion. +TEST_F(UrmaMockTest, rejects_send_without_target_jetty) { + // A SEND without a target jetty is invalid. Keeping the mock strict here + // prevents tests from relying on input that a real provider cannot post. int num_devices = 0; urma_device_t** devices = urma_get_device_list(&num_devices); ASSERT_NE(nullptr, devices); @@ -373,7 +393,6 @@ TEST_F(UrmaMockTest, post_and_poll_completion) { urma_jetty_t* jetty = urma_create_jetty(ctx, &jetty_cfg); ASSERT_NE(nullptr, jetty); - // Post a single send WR with user_ctx = 0xABCD. urma_jfs_wr_t wr{}; memset(&wr, 0, sizeof(wr)); wr.opcode = URMA_OPC_SEND; @@ -381,18 +400,10 @@ TEST_F(UrmaMockTest, post_and_poll_completion) { wr.user_ctx = 0xABCD; wr.next = nullptr; urma_jfs_wr_t* bad = nullptr; - ASSERT_EQ(URMA_SUCCESS, urma_post_jetty_send_wr(jetty, &wr, &bad)); + EXPECT_EQ(URMA_EINVAL, urma_post_jetty_send_wr(jetty, &wr, &bad)); + EXPECT_EQ(&wr, bad); - // Poll: the mock should hand back the completion immediately. urma_cr_t crs[4]; - int n = urma_poll_jfc(jfc, 4, crs); - EXPECT_EQ(1, n); - if (n == 1) { - EXPECT_EQ(URMA_CR_SUCCESS, crs[0].status); - EXPECT_EQ(0xABCDULL, crs[0].user_ctx); - } - - // A second poll with nothing posted should return 0. EXPECT_EQ(0, urma_poll_jfc(jfc, 4, crs)); urma_delete_jetty(jetty); @@ -409,10 +420,6 @@ TEST_F(UrmaMockTest, urma_device_t** devices = urma_get_device_list(&num_devices); ASSERT_NE(nullptr, devices); ASSERT_GT(num_devices, 0); - if (strcmp(devices[0]->name, "mock_urma_device") != 0) { - urma_free_device_list(devices); - GTEST_SKIP() << "This test exercises the bundled URMA mock"; - } urma_context_t* ctx = urma_create_context(devices[0], 0); ASSERT_NE(nullptr, ctx); From cafa4afd8004c01763f0fa4a395836e4a345a635 Mon Sep 17 00:00:00 2001 From: Gzure <740684863@qq.com> Date: Thu, 30 Jul 2026 16:56:09 +0800 Subject: [PATCH 45/45] =?UTF-8?q?=E5=8E=BB=E6=8E=89urma=20sdk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BUILD.bazel | 14 +- CMakeLists.txt | 67 +- MODULE.bazel | 11 + WORKSPACE | 9 +- bazel/third_party/umdk/umdk.BUILD | 28 + config_brpc.sh | 14 +- docs/cn/urma.md | 10 +- docs/en/urma.md | 14 +- example/urma_performance/CMakeLists.txt | 15 +- src/brpc/urma/mock_urma.cpp | 9 +- src/brpc/urma/sdk/urma/urma_api.h | 1147 ------------------ src/brpc/urma/sdk/urma/urma_opcode.h | 260 ----- src/brpc/urma/sdk/urma/urma_types.h | 1430 ----------------------- src/brpc/urma/urma_bonding.h | 8 +- src/brpc/urma/urma_endpoint.cpp | 4 +- src/brpc/urma/urma_endpoint.h | 4 +- src/brpc/urma/urma_handshake.h | 2 +- src/brpc/urma/urma_helper.cpp | 6 +- src/brpc/urma/urma_helper.h | 4 +- test/brpc_urma_unittest.cpp | 6 +- 20 files changed, 147 insertions(+), 2915 deletions(-) create mode 100644 bazel/third_party/umdk/umdk.BUILD delete mode 100644 src/brpc/urma/sdk/urma/urma_api.h delete mode 100644 src/brpc/urma/sdk/urma/urma_opcode.h delete mode 100644 src/brpc/urma/sdk/urma/urma_types.h diff --git a/BUILD.bazel b/BUILD.bazel index af3f8ca304..042883273d 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -551,14 +551,7 @@ cc_library( "src/brpc/event_dispatcher_kqueue.cpp", ]), copts = COPTS, - includes = [ - "src/", - ] + select({ - "//bazel/config:brpc_with_urma": [ - "src/brpc/urma/sdk/", - ], - "//conditions:default": [], - }), + includes = ["src/"], linkopts = LINKOPTS, visibility = ["//visibility:public"], deps = [ @@ -570,6 +563,11 @@ cc_library( ":mcpack2pb", "@com_github_google_leveldb//:leveldb", ] + select({ + "//bazel/config:brpc_with_urma": [ + "@umdk//:urma_headers", + ], + "//conditions:default": [], + }) + select({ "//bazel/config:brpc_with_thrift": [ "@org_apache_thrift//:thrift", ], diff --git a/CMakeLists.txt b/CMakeLists.txt index 2087db98dc..3f5838205f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,9 @@ option(WITH_BTHREAD_TRACER "With bthread tracer supported" OFF) option(WITH_SNAPPY "With snappy" OFF) option(WITH_RDMA "With RDMA" OFF) option(WITH_URMA "With URMA (openEuler Unified Remote Memory Access)" OFF) +option(DOWNLOAD_URMA_HEADERS + "Download UMDK headers when WITH_URMA is enabled and headers are absent" + ON) option(WITH_UBRING "With UB" OFF) option(WITH_DEBUG_BTHREAD_SCHE_SAFETY "With debugging bthread sche safety" OFF) option(WITH_DEBUG_LOCK "With debugging lock" OFF) @@ -317,21 +320,51 @@ if(WITH_RDMA) endif() if(WITH_URMA) - # Find the URMA SDK headers (urma/urma_api.h) and library. - # If liburma is not installed, fall back to the bundled mock - # (src/brpc/urma/mock_urma.cpp) so CI can build and test UrmaTransport - # on hosts without URMA hardware. The mock provides link-time stubs of - # every urma_* symbol the transport calls. - find_path(URMA_INCLUDE_PATH NAMES urma/urma_api.h + # UrmaTransport and its link-time mock both compile against the upstream + # UMDK API. Prefer installed headers; otherwise fetch a pinned upstream + # release, following Mooncake's URMA mock setup. + find_path(URMA_INCLUDE_PATH NAMES urma_api.h + HINTS ENV URMA_ROOT PATHS /usr/include /usr/local/include - PATH_SUFFIXES ub/umdk ub/umdk/urma umdk umdk/urma) - find_library(URMA_LIB NAMES urma) - if(URMA_INCLUDE_PATH AND URMA_LIB) - message(STATUS "Found URMA SDK: ${URMA_INCLUDE_PATH}, ${URMA_LIB}") + PATH_SUFFIXES ub/umdk/urma umdk/urma urma + src/urma/lib/urma/core/include) + find_path(URMA_BOND_INCLUDE_PATH NAMES urma_ubagg.h + HINTS ENV URMA_ROOT + PATHS /usr/include /usr/local/include + PATH_SUFFIXES ub/umdk/urma umdk/urma urma + src/urma/lib/urma/bond/include) + if(NOT URMA_INCLUDE_PATH AND DOWNLOAD_URMA_HEADERS) + include(FetchContent) + FetchContent_Declare( + urma_headers + GIT_REPOSITORY https://atomgit.com/openeuler/umdk.git + GIT_TAG v26.06.0_CAM + GIT_SHALLOW TRUE) + FetchContent_GetProperties(urma_headers) + if(NOT urma_headers_POPULATED) + FetchContent_Populate(urma_headers) + endif() + set(URMA_INCLUDE_PATH + "${urma_headers_SOURCE_DIR}/src/urma/lib/urma/core/include") + set(URMA_BOND_INCLUDE_PATH + "${urma_headers_SOURCE_DIR}/src/urma/lib/urma/bond/include") + message(STATUS "Using downloaded UMDK headers: ${URMA_INCLUDE_PATH}") + endif() + if(NOT URMA_INCLUDE_PATH) + message(FATAL_ERROR + "Fail to find urma_api.h. Install UMDK headers, set URMA_ROOT, " + "or enable DOWNLOAD_URMA_HEADERS.") + endif() + + find_library(URMA_LIB NAMES urma + HINTS ENV URMA_ROOT + PATH_SUFFIXES lib lib64) + if(URMA_LIB) + message(STATUS "Found URMA library: ${URMA_LIB}") set(URMA_USE_MOCK 0) else() message(STATUS - "URMA SDK not found; building with the bundled mock") + "liburma not found; building with the URMA link-time mock") set(URMA_USE_MOCK 1) endif() endif() @@ -361,11 +394,9 @@ list(APPEND BRPC_COMMON_INCLUDE_DIRS ${LEVELDB_INCLUDE_PATH} ) if(WITH_URMA) - if(URMA_USE_MOCK) - list(APPEND BRPC_COMMON_INCLUDE_DIRS - ${PROJECT_SOURCE_DIR}/src/brpc/urma/sdk) - else() - list(APPEND BRPC_COMMON_INCLUDE_DIRS ${URMA_INCLUDE_PATH}) + list(APPEND BRPC_COMMON_INCLUDE_DIRS ${URMA_INCLUDE_PATH}) + if(URMA_BOND_INCLUDE_PATH) + list(APPEND BRPC_COMMON_INCLUDE_DIRS ${URMA_BOND_INCLUDE_PATH}) endif() endif() @@ -608,9 +639,9 @@ file(GLOB_RECURSE BRPC_SOURCES CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/brpc file(GLOB_RECURSE THRIFT_SOURCES CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/brpc/thrift*.cpp") file(GLOB_RECURSE EXCLUDE_SOURCES CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/brpc/event_dispatcher_*.cpp") -# When building with the real liburma, exclude the bundled mock so its urma_* +# When building with the real liburma, exclude the link-time mock so its urma_* # symbols do not clash with the library. When liburma is absent, keep it so CI -# can build/test UrmaTransport without URMA hardware. +# can build and test UrmaTransport without URMA hardware. if(WITH_URMA AND NOT URMA_USE_MOCK) list(REMOVE_ITEM BRPC_SOURCES "${PROJECT_SOURCE_DIR}/src/brpc/urma/mock_urma.cpp") diff --git a/MODULE.bazel b/MODULE.bazel index 6f7b01a86e..657b7ceb43 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -52,3 +52,14 @@ git_override( remote = 'https://github.com/hedronvision/bazel-compile-commands-extractor.git', commit = '1e08f8e0507b6b6b1f4416a9a22cf5c28beaba93', # Jun 28, 2024 ) + +git_repository = use_repo_rule( + '@bazel_tools//tools/build_defs/repo:git.bzl', + 'git_repository', +) +git_repository( + name = 'umdk', + build_file = '//bazel/third_party/umdk:umdk.BUILD', + remote = 'https://atomgit.com/openeuler/umdk.git', + tag = 'v26.06.0_CAM', +) diff --git a/WORKSPACE b/WORKSPACE index 78a6c2836a..b197d666f6 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -279,6 +279,13 @@ http_archive( urls = ["https://archive.apache.org/dist/thrift/0.15.0/thrift-0.15.0.tar.gz"], ) +git_repository( + name = "umdk", + build_file = "//bazel/third_party/umdk:umdk.BUILD", + remote = "https://atomgit.com/openeuler/umdk.git", + tag = "v26.06.0_CAM", +) + # Header-only JSON library used by iobuf_unittest's IOBuf<->std::iostream # adapter tests. Keep version in sync with MODULE.bazel. http_archive( @@ -317,4 +324,4 @@ http_archive( sha256 = "3cd0e49f0f4a6d406c1d74b53b7616f5e24f5fd319eafc1bf8eee6e14124d115", ) load("@hedron_compile_commands//:workspace_setup.bzl", "hedron_compile_commands_setup") -hedron_compile_commands_setup() \ No newline at end of file +hedron_compile_commands_setup() diff --git a/bazel/third_party/umdk/umdk.BUILD b/bazel/third_party/umdk/umdk.BUILD new file mode 100644 index 0000000000..410e6a2736 --- /dev/null +++ b/bazel/third_party/umdk/umdk.BUILD @@ -0,0 +1,28 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//visibility:public"]) + +cc_library( + name = "urma_headers", + hdrs = glob([ + "src/urma/lib/urma/bond/include/*.h", + "src/urma/lib/urma/core/include/*.h", + ]), + includes = [ + "src/urma/lib/urma/bond/include", + "src/urma/lib/urma/core/include", + ], +) diff --git a/config_brpc.sh b/config_brpc.sh index ff2ef7afc1..ce46bf7a8e 100755 --- a/config_brpc.sh +++ b/config_brpc.sh @@ -540,19 +540,21 @@ fi if [ $WITH_URMA != 0 ]; then URMA_LIB=$(find_dir_of_lib urma) - URMA_HDR=$(find_dir_of_header urma/urma_api.h) + URMA_HDR=$(find_dir_of_header_or_die urma_api.h) + URMA_BOND_HDR=$(find_dir_of_header urma_ubagg.h) CPPFLAGS="${CPPFLAGS} -DBRPC_WITH_URMA=1" append_to_output "WITH_URMA=1" - if [ -n "$URMA_LIB" ] && [ -n "$URMA_HDR" ]; then + append_to_output_headers "$URMA_HDR" + if [ -n "$URMA_BOND_HDR" ]; then + append_to_output_headers "$URMA_BOND_HDR" + fi + if [ -n "$URMA_LIB" ]; then append_to_output_libs "$URMA_LIB" - append_to_output_headers "$URMA_HDR" append_to_output "DYNAMIC_LINKINGS+=-lurma" append_to_output "URMA_USE_MOCK=0" else - URMA_MOCK_HDR="$(${REALPATH} src/brpc/urma/sdk)" - append_to_output_headers "$URMA_MOCK_HDR" append_to_output "URMA_USE_MOCK=1" - print_info "liburma not found; using bundled URMA mock" + print_info "liburma not found; using URMA link-time mock" fi fi diff --git a/docs/cn/urma.md b/docs/cn/urma.md index 32d0e6ad69..a9be634ec7 100644 --- a/docs/cn/urma.md +++ b/docs/cn/urma.md @@ -30,9 +30,11 @@ cmake -B build make -C build -j$(nproc) ``` -若系统存在 URMA SDK,`WITH_URMA=ON` 会添加 `-DBRPC_WITH_URMA=1` 并链接 -`liburma`。SDK 不存在时,CMake 使用仓库内置 mock,使 URMA 代码和测试仍可 -在无硬件环境编译;mock 不提供硬件数据通路。 +`WITH_URMA=ON` 使用上游 UMDK 头文件进行编译。CMake 优先使用系统安装的 +SDK;找不到头文件时,会参照 Mooncake 的 mock 构建方式下载固定版本的 +UMDK,可通过 `DOWNLOAD_URMA_HEADERS=OFF` 禁止下载。找到 `liburma` 时使用 +真实硬件数据通路,否则链接 brpc 的 mock,使 URMA 代码和测试仍可在无硬件 +环境编译。 ## 使用 @@ -122,7 +124,7 @@ block 都由注册 segment 支撑,发送路径可直接从 IOBuf block refs 设备名以 `bonding` 开头时,brpc 会在创建 context 后、创建 segment 和队列 前配置 provider。默认 standalone+IODIE 配置与 UMDK 性能工具保持一致。 -bonding 支持需要 provider 扩展头文件 `urma/urma_ubagg.h`。 +bonding 支持需要 provider 扩展头文件 `urma_ubagg.h`。 ## 与 UBRing 协同 diff --git a/docs/en/urma.md b/docs/en/urma.md index 62536aba02..964f648bd2 100644 --- a/docs/en/urma.md +++ b/docs/en/urma.md @@ -30,10 +30,13 @@ cmake -B build make -C build -j$(nproc) ``` -When the URMA SDK is available, `WITH_URMA=ON` adds -`-DBRPC_WITH_URMA=1` and links `liburma`. If the SDK is unavailable, CMake -uses the bundled mock implementation so URMA code and tests can still be -built without hardware. The mock does not provide a hardware data path. +`WITH_URMA=ON` compiles against upstream UMDK headers. CMake prefers an +installed SDK and, following Mooncake's mock setup, downloads a pinned UMDK +release when the headers are unavailable. Set `DOWNLOAD_URMA_HEADERS=OFF` to +disable downloading. +When `liburma` is found it is linked for the hardware data path. Otherwise, +brpc uses its link-time mock so URMA code and tests can still be built without +hardware. ## Usage @@ -131,8 +134,7 @@ All flags use the `urma_` prefix (mirroring RDMA's `rdma_` prefix): For a device whose name starts with `bonding`, brpc configures the provider immediately after context creation and before creating segments or queues. The default standalone+IODIE combination matches the UMDK performance tool. -Bonding support requires the provider extension header -`urma/urma_ubagg.h`. +Bonding support requires the provider extension header `urma_ubagg.h`. ## Coexistence with UBRing diff --git a/example/urma_performance/CMakeLists.txt b/example/urma_performance/CMakeLists.txt index dca6e02478..154970fbd3 100644 --- a/example/urma_performance/CMakeLists.txt +++ b/example/urma_performance/CMakeLists.txt @@ -26,16 +26,12 @@ brpc_example_find_common_deps(DYNAMIC_LIB) protobuf_generate_cpp(PROTO_SRC PROTO_HEADER test.proto) set(BRPC_EXAMPLE_WITH_URMA ON) -find_path(URMA_INCLUDE_PATH NAMES urma/urma_api.h - PATHS /usr/include /usr/local/include - PATH_SUFFIXES ub/umdk ub/umdk/urma umdk umdk/urma) find_library(URMA_LIB NAMES urma) -if(URMA_INCLUDE_PATH AND URMA_LIB) - set(BRPC_EXAMPLE_URMA_SDK_FOUND ON) +if(URMA_LIB) list(APPEND DYNAMIC_LIB ${URMA_LIB}) else() message(STATUS - "URMA SDK not found; using the URMA implementation linked into brpc") + "liburma not found; using the URMA implementation linked into brpc") endif() add_executable(urma_performance_client client.cpp ${PROTO_SRC} ${PROTO_HEADER}) @@ -43,12 +39,5 @@ brpc_example_configure_target(urma_performance_client) add_executable(urma_performance_server server.cpp ${PROTO_SRC} ${PROTO_HEADER}) brpc_example_configure_target(urma_performance_server) -if(BRPC_EXAMPLE_URMA_SDK_FOUND) - target_include_directories(urma_performance_client PRIVATE - ${URMA_INCLUDE_PATH}) - target_include_directories(urma_performance_server PRIVATE - ${URMA_INCLUDE_PATH}) -endif() - target_link_libraries(urma_performance_client PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB}) target_link_libraries(urma_performance_server PRIVATE ${BRPC_LIB} ${DYNAMIC_LIB}) diff --git a/src/brpc/urma/mock_urma.cpp b/src/brpc/urma/mock_urma.cpp index f7be1ec60a..266c08b19a 100644 --- a/src/brpc/urma/mock_urma.cpp +++ b/src/brpc/urma/mock_urma.cpp @@ -16,10 +16,9 @@ // under the License. // Link-time mock of the URMA user-level C API, modeled on Mooncake's -// mock_urma.cpp. When liburma.so is not available, this TU is compiled into -// brpc and provides fake implementations of every urma_* symbol the transport -// calls. It lets CI run UrmaTransport unit tests on hosts without URMA -// hardware. +// mock_urma.cpp. It compiles against upstream UMDK headers and is linked into +// brpc when liburma.so is unavailable. It lets CI run UrmaTransport unit tests +// without URMA hardware. // // Design (same as Mooncake): // - Link-time substitution: the symbols are literally named urma_create_jfc @@ -35,7 +34,7 @@ #if BRPC_WITH_URMA -#include "urma/urma_api.h" +#include "urma_api.h" #include #include diff --git a/src/brpc/urma/sdk/urma/urma_api.h b/src/brpc/urma/sdk/urma/urma_api.h deleted file mode 100644 index d070c0e80c..0000000000 --- a/src/brpc/urma/sdk/urma/urma_api.h +++ /dev/null @@ -1,1147 +0,0 @@ -/* - * SPDX-License-Identifier: MIT - * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. - * Description: URMA API - * Author: Ouyang changchun, Bojie Li, Yan Fangfang, Qian Guoxin - * Create: 2021-07-13 - * Note: - * History: 2021-07-13 Create File - */ -#ifndef URMA_API_H -#define URMA_API_H - -#include -#include - -#include "urma/urma_types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Init urma environment. - * @param[in] [Required] conf: urma init attr, a random uasid will be assigned when conf is null. - * Return: 0 on success, other value on error - */ -urma_status_t urma_init(urma_init_attr_t *conf); - -/** - * Un-init urma environment, it will free uasid. - * Return: 0 on success, other value on error - */ -urma_status_t urma_uninit(void); - -/* Device Manage API */ - /** - * Get device list. - * @param[out] num_devices: number of urma device; - * Return: pointer array of urma_device; NULL means no device returned; - * Note: urma_free_device_list() needs to be called to free memory; - */ -urma_device_t **urma_get_device_list(int *num_devices); - -/** -* free device list. -* @param[in] [Required] device_list: pointer array of urma_device,return value of urma_get_device_list. - Can be called after using urma_device list; -* Return: void; -*/ -void urma_free_device_list(urma_device_t **device_list); - -/** -* Get eid list. -* @param[in] [Required] dev: device pointer -* @param[out] cnt: Return the number of valid eids; -* Return: If it succeeds, it will return the eid_info array pointer, and the number of elements -* is cnt; if it fails, it will return NULL; it will be released by the user calling -*/ -urma_eid_info_t *urma_get_eid_list(urma_device_t *dev, uint32_t *cnt); - -/** -* free eid list. -* @param[in] [Required] eid_list: The eid array pointer to be released -* Return: void; -*/ -void urma_free_eid_list(urma_eid_info_t *eid_list); - -/** - * Get device by device name. - * @param[in] [Required] dev_name: device's name; - * Return: urma_device; NULL means no device returned; - */ -urma_device_t *urma_get_device_by_name(char *dev_name); - - /** - * Get device by device eid. - * @param[in] [Required] eid: device's eid; - * @param[in] [Required] type: device's transport type; - * Return: urma_device; NULL means no device returned; - */ -urma_device_t *urma_get_device_by_eid(urma_eid_t eid, urma_transport_type_t type); - -/** - * Query the attributes and capabilities of urma devices. - * @param[in] [Required] dev: urma_device; - * @param[out] dev_attr: Return device attributes, user needs to allocate and free the memory; - * Return: 0 on success, other value on error - */ -urma_status_t urma_query_device(urma_device_t *dev, urma_device_attr_t *dev_attr); - -/** - * Create an urma context on the urma device. - * @param[in] [Required] dev: urma device, by get_device apis. - * @param[in] [Required] eid_index: device's eid index. - * Return urma context pointer on success, NULL on error. - */ -urma_context_t *urma_create_context(urma_device_t *dev, uint32_t eid_index); - -/** - * Delete the created urma context. - * @param[in] [Required] ctx: handle of the created context. - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_context(urma_context_t *ctx); - -/** - * Set option of urma context. - * @param[in] [Required] ctx: handle of the created context. - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_context_opt(urma_context_t *ctx, urma_opt_name_t opt_name, const void *opt_value, - size_t opt_len); - -/** - * Create a jetty for completion (jfc). - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] jfc_cfg: configuration including: depth, flag, jfce, user context; - * Return: the handle of created jfc, not NULL on success; NULL on error - */ -urma_jfc_t *urma_create_jfc(urma_context_t *ctx, urma_jfc_cfg_t *jfc_cfg); - -/** - * Modify JFC attributes. - * @param[in] [Required] jfc: specify JFC; - * @param[in] [Required] attr: attributes to be modified; - * Return: 0 on success, other value on error - */ -urma_status_t urma_modify_jfc(urma_jfc_t *jfc, urma_jfc_attr_t *attr); - -/** - * Delete the created jfc. - * @param[in] [Required] jfc: handle of the created jfc; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jfc(urma_jfc_t *jfc); - -/** - * Alloc a jfc. - * @param[in] [Required] urma_ctx: the urma context created before; - * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; - * @param[out] [Required] jfc: handle of the allocated jfc; - * Return: 0 on success, other value on error - */ -urma_status_t urma_alloc_jfc(urma_context_t *urma_ctx, urma_jfc_cfg_t *cfg, urma_jfc_t **jfc); - -/** - * Set the opt of jfc. - * @param[in] [Required] jfc: the jfc allocated before; - * @param[in] [Required] opt: the opt to change cfg of jfc; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[in] [Required] buf: the buffer containing the value to set; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_jfc_opt(urma_jfc_t *jfc, uint64_t opt, void *buf, uint32_t len); - -/** - * Active the allocated jfc. - * @param[in] [Required] jfc: the jfc allocated before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_active_jfc(urma_jfc_t *jfc); - -/** - * Get the opt of jfc. - * @param[in] [Required] jfc: the jfc allocated before; - * @param[in] [Required] opt: the opt to change cfg of jfc; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[out] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_jfc_opt(urma_jfc_t *jfc, uint64_t opt, void *buf, uint32_t len); - -/** - * Deactive the created jfc. - * @param[in] [Required] jfc: the jfc actived before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_deactive_jfc(urma_jfc_t *jfc); - -/** - * Free the created jfc. - * @param[in] [Required] jfc: the jfc allocated before; - * After free, the jfc pointer is no longer allowed to be accessed. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_jfc(urma_jfc_t *jfc); - -/** - * Delete the created jfc in a batch. - * @param[in] [Required] jfc_arr: the array of the jfc pointer; - * @param[in] [Required] jfc_num: array length; - * @param[out] [Required] bad_jfc: the address of the first failed jfc pointer; - * Return: 0 on success, EINVAL on invalid parameter, other value on other batch - * delete errors. - * If delete error happens(except invalid parameter), stop at the first failed - * jfc and return, these jfc before the failed jfc will be deleted normally. - */ -urma_status_t urma_delete_jfc_batch(urma_jfc_t **jfc_arr, int jfc_num, urma_jfc_t **bad_jfc); - -/** - * Create a jetty for send (jfs). - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] jfs_cfg: address to pu the jfs config; - * Return: the handle of created jfs, not NULL on success, NULL on error - */ -urma_jfs_t *urma_create_jfs(urma_context_t *ctx, urma_jfs_cfg_t *jfs_cfg); - -/** - * Modify a jetty for send (jfs). - * @param[in] [Required] jfs: the jfs created before; - * @param[in] [Required] attr: attributes to be modified; - * Return: 0 on success, other value on error - */ -urma_status_t urma_modify_jfs(urma_jfs_t *jfs, urma_jfs_attr_t *attr); - -/** - * Query a jetty for send (jfs). - * @param[in] [Required] jfs: the jfs created before; - * @param[out] [Required] cfg: config of jfs; - * @param[out] [Required] attr: attributes of jfs; - * Return: 0 on success, other value on error - */ -urma_status_t urma_query_jfs(urma_jfs_t *jfs, urma_jfs_cfg_t *cfg, urma_jfs_attr_t *attr); - -/** - * Delete the created jfs. - * @param[in] [Required] jfs: the jfs created before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jfs(urma_jfs_t *jfs); - -/** - * Delete the created jfs in a batch. - * @param[in] [Required] jfs_arr: the array of the jfs pointer; - * @param[in] [Required] jfs_num: array length; - * @param[out] [Required] bad_jfs: the address of the first failed jfs pointer; - * Return: 0 on success, EINVAL on invalid parameter, other value on other batch - * delete errors. - * If delete error happens(except invalid parameter), stop at the first failed - * jfs and return, these jfs before the failed jfs will be deleted normally. - */ -urma_status_t urma_delete_jfs_batch(urma_jfs_t **jfs_arr, int jfs_num, urma_jfs_t **bad_jfs); - -/** - * Poll the CRs for all the WRs that posted to JFS, but are not completed. - * Call the API after modify JFS to error, or polled a suspened done CR. - * CRs with status of URMA_CR_WR_FLUSH_ERR will be returned on success. - * @param[in] [Required] jfs: the jfs created before; - * @param[in] [Required] cr_cnt: Number of CR expected to be received.; - * @param[out] [Required] cr: Address for storing CR; - * Return: the number of CR returned, 0 means no CR returned, -1 on error - */ -int urma_flush_jfs(urma_jfs_t *jfs, int cr_cnt, urma_cr_t *cr); - -/** - * Alloc a jfs. - * @param[in] [Required] urma_ctx: the urma context created before; - * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; - * @param[out] [Required] jfs: handle of the allocated jfs; - * Return: 0 on success, other value on error - */ -urma_status_t urma_alloc_jfs(urma_context_t *urma_ctx, urma_jfs_cfg_t *cfg, urma_jfs_t **jfs); - -/** - * Set the opt of jfs. - * @param[in] [Required] jfs: the jfs allocated before; - * @param[in] [Required] opt: the opt to change cfg of jfs; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[in] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_jfs_opt(urma_jfs_t *jfs, uint64_t opt, void *buf, uint32_t len); - -/** - * Active the created jfs. - * @param[in] [Required] jfs: the jfs allocated before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_active_jfs(urma_jfs_t *jfs); - -/** - * Get the opt of jfs. - * @param[in] [Required] jfs: the jfs allocated before; - * @param[in] [Required] opt: the opt to change cfg of jfs; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[out] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_jfs_opt(urma_jfs_t *jfs, uint64_t opt, void *buf, uint32_t len); - -/** - * Deactive the created jfs. - * @param[in] [Required] jfs: the jfs actived before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_deactive_jfs(urma_jfs_t *jfs); - -/** - * Free the created jfs. - * @param[in] [Required] jfs: the jfs allocated before; - * After free, the jfs pointer is no longer allowed to be accessed. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_jfs(urma_jfs_t *jfs); - - /** - * Create a jetty for receive (jfr). - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] jfr_cfg: address to put the jfr config; - * Return: the handle of created jfr, not NULL on success, NULL on error - */ -urma_jfr_t *urma_create_jfr(urma_context_t *ctx, urma_jfr_cfg_t *jfr_cfg); - -/** - * Modify JFR attributes. - * @param[in] [Required] jfr: specify JFR; - * @param[in] [Required] attr: attributes to be modified; - * Return: 0 on success, other value on error - */ -urma_status_t urma_modify_jfr(urma_jfr_t *jfr, urma_jfr_attr_t *attr); - -/** - * Query a jetty for recv(jfr). - * @param[in] [Required] jfr: the jfr created before; - * @param[out] [Required] cfg: config of jfr; - * @param[out] [Required] attr: attributes of jfr; - * Return: 0 on success, other value on error - */ -urma_status_t urma_query_jfr(urma_jfr_t *jfr, urma_jfr_cfg_t *cfg, urma_jfr_attr_t *attr); - -/** - * Delete the created jfr. - * @param[in] [Required] jfr: the jfr created before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jfr(urma_jfr_t *jfr); - -/** - * Delete the created jfr in a batch. - * @param[in] [Required] jfr_arr: the array of the jfr pointer; - * @param[in] [Required] jfr_num: array length; - * @param[out] [Required] bad_jfr: the address of the first failed jfr pointer; - * Return: 0 on success, EINVAL on invalid parameter, other value on other batch - * delete errors. - * If delete error happens(except invalid parameter), stop at the first failed - * jfr and return, these jfr before the failed jfr will be deleted normally. - */ -urma_status_t urma_delete_jfr_batch(urma_jfr_t **jfr_arr, int jfr_num, urma_jfr_t **bad_jfr); - -/** - * Import a remote jfr to local node. - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] rjfr: the information of remote jfr to import into user node, trans_mode required, - * trans_mode same to create_jfr trans_mode; - * @param[in] [Required] token_value: token to put into output jetty/protection table; - * Return: the address of target jfr, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jfr(urma_context_t *ctx, urma_rjfr_t *rjfr, urma_token_t *token_value); - -/** - * Import a remote jfr to local node by control plane. - * Note: trans_mode from rjfr should be the same as the trans_mode of get_tp_list, - * users should obey this rule in case of unexpected errors. - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] rjfr: the information of remote jfr to import into user node, trans_mode required, - * trans_mode same to create_jfr trans_mode; - * @param[in] [Required] token_value: token to put into output jetty/protection table; - * @param[in] [Required] cfg: tp active configuration to exchange with target; - * Return: the address of target jfr, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jfr_ex(urma_context_t *ctx, urma_rjfr_t *rjfr, urma_token_t *token_value, - urma_import_jfr_ex_cfg_t *cfg); - -/** - * Unimport the imported remote jfr. - * @param[in] [Required] target_jfr: the target jfr to unimport; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unimport_jfr(urma_target_jetty_t *target_jfr); - -/** - * Advise jfr: construct the transport channel for jfs and remote jfr. - * @param[in] [Required] jfs: jfs to use to construct the transport channel; - * @param[in] [Required] tjfr: target jfr information including full qualified jfr id; - * Return: 0 on success, URMA_EEXIST if the jfr has been advised, other value on error - */ -urma_status_t urma_advise_jfr(urma_jfs_t *jfs, urma_target_jetty_t *tjfr); - -/** - * Async API for urma_advise_jfr - * Advise jfr: construct the transport channel for jfs and remote jfr. - * @param[in] [Required] jfs: jfs to use to construct the transport channel; - * @param[in] [Required] tjfr: target jfr information including full qulified jfr id; - * @param[in] [Required] cb_func: user defined callback function. - * @param[in] [Required] cb_arg: user defined arguments for the callback function. - * Return: 0 on success, URMA_EEXIST if the jfr has been advised, other value on error. - * Note: User must define callback function to handle result, - * as the async respone will call the cb_func and pass the result to it. - */ -urma_status_t urma_advise_jfr_async(urma_jfs_t *jfs, urma_target_jetty_t *tjfr, urma_advise_async_cb_func cb_fun, - void *cb_arg); - -/** - * Unadvise jfr: disconnect the transport channel for jfs and remote jfr. Optional API for optimization - * @param[in] [Required] jfs: jfs to use to construct the transport channel; - * @param[in] [Required] tjfr: target jfr information including full qualified jfr id; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unadvise_jfr(urma_jfs_t *jfs, urma_target_jetty_t *tjfr); - -/** - * Alloc a jfr. - * @param[in] [Required] urma_ctx: the urma context created before; - * @param[in] [Required] cfg: configuration including: depth, flag, jfce, user context; - * @param[out] [Required] jfr: handle of the allocated jfr; - * Return: 0 on success, other value on error - */ -urma_status_t urma_alloc_jfr(urma_context_t *urma_ctx, urma_jfr_cfg_t *cfg, urma_jfr_t **jfr); - -/** - * Set the opt of jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * @param[in] [Required] opt: the opt to change cfg of jfr; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[in] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_jfr_opt(urma_jfr_t *jfr, uint64_t opt, void *buf, uint32_t len); - -/** - * Active the allocated jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * Return: 0 on success, other value on error - */ -urma_status_t urma_active_jfr(urma_jfr_t *jfr); - -/** - * Get the opt of jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * @param[in] [Required] opt: the opt to change cfg of jfr; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[out] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_jfr_opt(urma_jfr_t *jfr, uint64_t opt, void *buf, uint32_t len); - -/** - * Deactive the actived jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * Return: 0 on success, other value on error - */ -urma_status_t urma_deactive_jfr(urma_jfr_t *jfr); - -/** - * Free the allocated jfr. - * @param[in] [Required] jfr: handle of the allocated jfr; - * After free, the jfr pointer is no longer allowed to be accessed. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_jfr(urma_jfr_t *jfr); - -/** - ******************** Beginning of URMA JETTY APIs *************************** - */ - -/** - * Create jetty, which is a pair of jfs and jfr - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] jetty_cfg: pointer of the jetty config; - * Return: the handle of created jetty, not NULL on success, NULL on error - */ -urma_jetty_t *urma_create_jetty(urma_context_t *ctx, urma_jetty_cfg_t *jetty_cfg); - -/** - * Modify jetty attributes. - * @param[in] [Required] jetty: specify jetty; - * @param[in] [Required] attr: attributes to be modified; - * Return: 0 on success, other value on error - */ -urma_status_t urma_modify_jetty(urma_jetty_t *jetty, urma_jetty_attr_t *attr); - -/** - * Query jetty attributes. - * @param[in] [Required] jetty: specify jetty; - * @param[out] [Required] cfg: cconfig to query; - * @param[out] [Required] attr: attributes to query; - * Return: 0 on success, other value on error - */ -urma_status_t urma_query_jetty(urma_jetty_t *jetty, urma_jetty_cfg_t *cfg, urma_jetty_attr_t *attr); - -/** - * Delete the created jetty. - * @param[in] [Required] jetty: the jetty created before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jetty(urma_jetty_t *jetty); - -/** - * Delete the created jetty in a batch. - * @param[in] [Required] jetty_arr: the array of the jetty pointer; - * @param[in] [Required] jetty_num: array length; - * @param[out] [Required] bad_jetty: the address of the first failed jetty pointer; - * Return: 0 on success, EINVAL on invalid parameter, other value on other batch - * delete errors. - * If delete error happens(except invalid parameter), stop at the first failed - * jetty and return, these jetty before the failed jetty will be deleted normally. - */ -urma_status_t urma_delete_jetty_batch(urma_jetty_t **jetty_arr, int jetty_num, urma_jetty_t **bad_jetty); - -/** - * Import a remote jetty. - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, - * trans_mode same to create_jetty trans_mode; - * @param[in] [Required] token_value: token to put into output jetty protection table; - * Return: the address of target jetty, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jetty(urma_context_t *ctx, urma_rjetty_t *rjetty, urma_token_t *token_value); - -/** - * Import a remote jetty by control plane. - * Note: trans_mode from rjetty should be the same as the trans_mode of get_tp_list, - * users should obey this rule in case of unexpected errors. - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, - * trans_mode same to create_jetty trans_mode; - * @param[in] [Required] token_value: token to put into output jetty protection table; - * @param[in] [Required] cfg: tp active configuration to exchange with target; - * Return: the address of target jetty, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jetty_ex(urma_context_t *ctx, urma_rjetty_t *rjetty, urma_token_t *token_value, - urma_import_jetty_ex_cfg_t *cfg); - -/** - * Unimport the imported remote jetty. - * @param[in] [Required] tjetty: the target jetty to unimport; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unimport_jetty(urma_target_jetty_t *tjetty); - -/** - * Advise jetty: construct the transport channel between local jetty and remote jetty. - * @param[in] [Required] jetty: local jetty to construct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * Return: 0 on success, URMA_EEXIST if the jetty has been advised, other value on error - * Note: A local jetty can be advised with several remote jetties. A connectionless jetty is free to call the adivse API - */ -/* todo: available after implementing URMA_TM_RM(IB_RC) */ -urma_status_t urma_advise_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); - -/** - * Unadvise jetty: deconstruct the transport channel between local jetty and remote jetty. - * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * Return: 0 on success, other value on error - */ -/* todo: available after implementing URMA_TM_RM(IB_RC) */ -urma_status_t urma_unadvise_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); - -/** - * Bind jetty: construct the transport channel between local jetty and remote jetty. - * @param[in] [Required] jetty: local jetty to construct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error - * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. - */ -urma_status_t urma_bind_jetty(urma_jetty_t *jetty, urma_target_jetty_t *tjetty); - -/** - * Bind jetty: construct the transport channel between local jetty and remote jetty by control plane. - * Note: trans_mode from tjetty should be the same as the trans_mode of get_tp_list, - * users should obey this rule in case of unexpected errors. - * @param[in] [Required] jetty: local jetty to construct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error; - * @param[in] [Required] cfg: tp active configuration to exchange with target; - * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. - */ -urma_status_t urma_bind_jetty_ex(urma_jetty_t *jetty, urma_target_jetty_t *tjetty, urma_bind_jetty_ex_cfg_t *cfg); - -/** - * Unbind jetty: deconstruct the transport channel between local jetty and remote jetty. - * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unbind_jetty(urma_jetty_t *jetty); - -/** - * Poll the CRs for all the WRs that posted to Jetty, but are not completed. - * Call the API after modify Jetty to error, or polled a suspened done CR. - * CRs with status of URMA_CR_WR_FLUSH_ERR will be returned on success. - * @param[in] [Required] jetty: the jetty created before; - * @param[in] [Required] cr_cnt: Number of CR expected to be received.; - * @param[out] [Required] cr: Address for storing CR; - * Return: the number of CR returned, 0 means no CR returned, -1 on error - */ -int urma_flush_jetty(urma_jetty_t *jetty, int cr_cnt, urma_cr_t *cr); - -/** - * Import a remote jetty asynchronously. - * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; - * @param[in] [Required] rjetty: information of remote jetty to import, including jetty id and trans_mode, - * trans_mode same to create_jetty trans_mode; - * @param[in] [Required] token_value: token to put into output jetty protection table; - * @param[in] [Required] user_ctx: user_ctx create by user; - * @param[in] [Required] timeout: task timeout set by user (milliseconds); - * Return: the address of target jetty, not NULL on success, NULL on error - */ -urma_target_jetty_t *urma_import_jetty_async(urma_notifier_t *notifier, const urma_rjetty_t *rjetty, - const urma_token_t *token_value, uint64_t user_ctx, int timeout); - -/** - * Unimport the imported remote jetty asynchronously. - * @param[in] [Required] tjetty: the target jetty to unimport; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unimport_jetty_async(urma_target_jetty_t *tjetty); - -/** - * Bind jetty asynchronously: construct the transport channel between local jetty and remote jetty. - * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; - * @param[in] [Required] jetty: local jetty to construct the transport channel; - * @param[in] [Required] tjetty: target jetty imported before; - * @param[in] [Required] user_ctx: user_ctx create by user; - * @param[in] [Required] timeout: task timeout set by user (milliseconds); - * Return: 0 on success, URMA_EEXIST if the jetty has been binded, other value on error - * Note: A local jetty can be binded with only one remote jetty. Only supported by jetty under URMA_TM_RC. - */ -urma_status_t urma_bind_jetty_async(urma_notifier_t *notifier, urma_jetty_t *jetty, urma_target_jetty_t *tjetty, - uint64_t user_ctx, int timeout); - -/** - * Unbind jetty: deconstruct the transport channel between local jetty and remote jetty asynchronously. - * @param[in] [Required] jetty: local jetty to deconstruct the transport channel; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unbind_jetty_async(urma_jetty_t *jetty); - -/** - * Create a data structure for sensing asynchronous link establishment results. - * @param[in] [Required] ctx: the urma context created before; - * Return: the address of urma notifier, not NULL on success, NULL on error - */ -urma_notifier_t *urma_create_notifier(urma_context_t *ctx); - -/** - * Delete the created notifier. - * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_notifier(urma_notifier_t *notifier); - -/** - * Alloc a jetty. - * @param[in] [Required] urma_ctx: the urma context created before; - * @param[in] [Required] jetty_cfg: configuration including: depth, flag, jfce, user context; - * @param[out] [Required] jetty: handle of the allocated jetty; - * Return: 0 on success, other value on error - */ -urma_status_t urma_alloc_jetty(urma_context_t *urma_ctx, urma_jetty_cfg_t *cfg, urma_jetty_t **jetty); - -/** - * Set the opt of jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * @param[in] [Required] opt: the opt to change cfg of jetty; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[in] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_jetty_opt(urma_jetty_t *jetty, uint64_t opt, void *buf, uint32_t len); - -/** - * Active the allocated jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * Return: 0 on success, other value on error - */ -urma_status_t urma_active_jetty(urma_jetty_t *jetty); - -/** - * Get the opt of jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * @param[in] [Required] opt: the opt to change cfg of jetty; - * @param[in] [Required] len: the len of the opt value(byte); - * @param[out] [Required] buf: the buffer to store the value; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_jetty_opt(urma_jetty_t *jetty, uint64_t opt, void *buf, uint32_t len); - -/** - * Deactive the actived jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * Return: 0 on success, other value on error - */ -urma_status_t urma_deactive_jetty(urma_jetty_t *jetty); - -/** - * Free the allocated jetty. - * @param[in] [Required] jetty: handle of the allocated jetty; - * After free, the jfc pointer is no longer allowed to be accessed. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_jetty(urma_jetty_t *jetty); - -/** - * Wait for asynchronous event notification to obtain the connection establishment result. - * @param[in] [Required] notifier: data structure used for sensing asynchronous link establishment results; - * @param[in] [Required] cnt: expected number of target jetty to return; - * @param[in] [Required] timeout: max time to wait (milliseconds), - timeout = 0: return immediately even if no events are ready, - timeout = -1: an infinite timeout; - * @param[out] [Required] notify: created by user to store target jetty results; - * Return: the number of target jetty returned, 0 means no target jetty returned, -1 on error - */ -int urma_wait_notify(urma_notifier_t *notifier, uint32_t cnt, urma_notify_t *notify, int timeout); - -/** - * This interface is no longer functional and will be removed later. - * Keep parameter checks to ensure the function works as before. - */ -urma_status_t urma_ack_notify(urma_context_t *ctx, uint32_t cnt, urma_notify_t *notify); - -/** - ******************** Beginning of URMA JETTY GROUP APIs *************************** - */ - -/** - * Create jetty group - * @param[in] [Required] ctx: the urma context created before; - * @param[in] [Required] cfg: pointer of the jetty group config; - * Return: the handle of created jetty group, not NULL on success, NULL on error - */ -urma_jetty_grp_t *urma_create_jetty_grp(urma_context_t *ctx, urma_jetty_grp_cfg_t *cfg); - -/** - * Destroy jetty group - * @param[in] [Required] jetty_grp: the Jetty group created before; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jetty_grp(urma_jetty_grp_t *jetty_grp); - -/** - * Create a jfce - * @param[in] [Required] ctx: the urma context created before; - * Return: the address of created jfce, not NULL on success, NULL on error - */ -urma_jfce_t *urma_create_jfce(urma_context_t *ctx); - -/** - * Delete a jfce - * @param[in] [Required] jfce: the jfce to be deleted; - * Return: 0 on success, other value on error - */ -urma_status_t urma_delete_jfce(urma_jfce_t *jfce); - -/** - * Get asyn event. - * @param[in] [Required] ctx: handle of the created urma context; - * @param[out] [Required] event: the address to put event - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_async_event(urma_context_t *ctx, urma_async_event_t *event); - -/** - * Ack asyn event. - * @param[in] [Required] event: the address to ack event; - * Return: void - */ -void urma_ack_async_event(urma_async_event_t *event); - -/** - * Request to assign a token id. token id is used to register the segment with the protection table. - * @param[in] [Required] ctx: specifies the urma context. - * Return: pointer to key id on success, NULL on error. - */ -urma_token_id_t *urma_alloc_token_id(urma_context_t *ctx); - -/** - * Request to assign a token id. token id is used to register multiple segments with the protection table. - * Can use table mode or entry mode based on flag. - * @param[in] [Required] ctx: specifies the urma context. - * @param[in] [Required] flag: decides the mode of token id. use table mode if enable multi_seg in flag. - * Return: pointer to key id on success, NULL on error. - * Note: if use table mode, the VA address page alignment is required when register the segments. - */ -urma_token_id_t *urma_alloc_token_id_ex(urma_context_t *ctx, urma_token_id_flag_t flag); - -/** - * Request to release token id. - * @param[in] [Required] token_id: Specifies the token id to be released. - * Return: 0 on success, other value on error - */ -urma_status_t urma_free_token_id(urma_token_id_t *token_id); - -/** - * Register a memory segment on specified va address for local or remote access. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] seg_cfg: Specify cfg of seg to be registered, including address, len, token, and so on; - * Return: pointer to target segment on success, NULL on error - * And the immedidate data wrote from clients is polled from this common jfc. - */ -urma_target_seg_t *urma_register_seg(urma_context_t *ctx, urma_seg_cfg_t *seg_cfg); - -/** - * Unregister a local memory segment on specified va address. - * @param[in] [Required] target_seg: target segment to be unregistered; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unregister_seg(urma_target_seg_t *target_seg); - -/** - * Import a memory segment on specified ubva address. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] seg: handle of memory segment to import; - * @param[in] [Required] token_value: token of remote side to put into output protection table; - * @param[in] [Optional] addr: the virtual address to which the segment will be mapped; - * @param[in] [Required] flag: flag to indicate the import attribute of memory segment; - * Return: pointer to target segment on success, NULL on error - */ -urma_target_seg_t *urma_import_seg(urma_context_t *ctx, urma_seg_t *seg, urma_token_t *token_value, uint64_t addr, - urma_import_seg_flag_t flag); - -/** - * Unimport a memory segment on specified ubva address. - * @param[in] [Required] tseg: the address of the target segment to unimport; - * Return: 0 on success, other value on error - */ -urma_status_t urma_unimport_seg(urma_target_seg_t *tseg); - -/** - * post a request to read, write, atomic or send data. - * @param[in] jfs: the jfs created before, which is used to put command; - * @param[in] wr: the posting request all information, including src addr, dst addr, len, jfc, flag, ordering etc. - * @param[in] bad_wr: the first of failure request. - * Return: 0 on success, other value on error - */ -urma_status_t urma_post_jfs_wr(urma_jfs_t *jfs, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr); - -/** - * post a request to recv data. - * @param[in] jfr: the jfr created before, which is used to put command; - * @param[in] wr: the posting request all information, including sge, flag. - * @param[in] bad_wr: the first of failure request. - * Return: 0 on success, other value on error - */ -urma_status_t urma_post_jfr_wr(urma_jfr_t *jfr, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr); - -/** - * post a request to read, write, atomic or send data. - * @param[in] jetty: the jetty created before, which is used to put command; - * @param[in] wr: the posting request all information, including src addr, dst addr, len, jfc, flag, ordering etc. - * @param[in] bad_wr: the first of failure request. - * Return: 0 on success, other value on error - */ -urma_status_t urma_post_jetty_send_wr(urma_jetty_t *jetty, urma_jfs_wr_t *wr, urma_jfs_wr_t **bad_wr); - -/** - * post a request to recv data. - * @param[in] jetty: the jetty created before, which is used to put command; - * @param[in] wr: the posting request all information, including sge, flag. - * @param[in] bad_wr: the first of failure request. - * Return: 0 on success, other value on error - */ -urma_status_t urma_post_jetty_recv_wr(urma_jetty_t *jetty, urma_jfr_wr_t *wr, urma_jfr_wr_t **bad_wr); - -/** - * Write data to remote node. - * @param[in] jfs: the jfs created before, which is used to put command; - * @param[in] target_jfr: destination jetty receiver; - * @param[in] dst_tseg: the dst target seg imported before; - * @param[in] src_tseg: the src target seg registered before; - * @param[in] dst: destination address(mapping va on user node or rva in ubva on home node) to be written into - * @param[in] src: source address(local process address space) to fetch data - * @param[in] len: the data len to be written - * @param[in] flag: flag to control jfs work request attritube - * @param[in] user_ctx: the user context, such as request id(rid) etc. - * Return: 0 on success, other value on error - */ -urma_status_t urma_write(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *dst_tseg, - urma_target_seg_t *src_tseg, uint64_t dst, uint64_t src, uint32_t len, urma_jfs_wr_flag_t flag, - uint64_t user_ctx); - -/** - * Read data from remote node. - * @param[in] jfs: the jfs created before, which is used to put command; - * @param[in] target_jfr: destination jetty receiver; - * @param[in] dst_tseg: the seg registered before; - * @param[in] src_tseg: the target seg imported before; - * @param[in] dst: destination address(local process address space) to be written into - * @param[in] src: source address(mapping va or rva in ubva) to fetch data - * @param[in] len: the data len to be written - * @param[in] flag: the flag to control jfs work request attritube - * @param[in] user_ctx: the user context, such as request id(rid) etc. - * Return: 0 on success, other value on error - */ -urma_status_t urma_read(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *dst_tseg, - urma_target_seg_t *src_tseg, uint64_t dst, uint64_t src, uint32_t len, urma_jfs_wr_flag_t flag, - uint64_t user_ctx); - -/** - * Send data to remote node. - * @param[in] jfs: the jfs created before, which is used to put command; - * @param[in] target_jfr: destination jetty receiver(with full qualifed jfr id); - * @param[in] src_tseg: the seg registered before, can be NULL only when flag.bs.inline_flag == URMA_INLINE_ENABLE - * @param[in] src: source address for sending; - * @param[in] len: data length; - * @param[in] flag: flag to control jfs work request attritube - * @param[in] user_ctx: the user context, such as request id(rid) etc; - * Return: 0 on success, other value on error. - */ -urma_status_t urma_send(urma_jfs_t *jfs, urma_target_jetty_t *target_jfr, urma_target_seg_t *src_tseg, uint64_t src, - uint32_t len, urma_jfs_wr_flag_t flag, uint64_t user_ctx); - -/** - * Assign local buffer to receive data from remote node. - * @param[in] jfr: jetty receiver; - * @param[in] recv_tseg: the locally registered segment before for receiving; - * @param[in] buf: buffer address for receiving; - * @param[in] len: buffer length; - * @param[in] user_ctx: the user context, such as request id(rid) etc; - * Return: 0 on success, other value on error. - */ -urma_status_t urma_recv(urma_jfr_t *jfr, urma_target_seg_t *recv_tseg, uint64_t buf, uint32_t len, uint64_t user_ctx); - -/** - * Poll jfc to get completion record. - * @param[in] jfc: jetty completion queue to poll - * @param[in] cr_cnt: the expected number of completion record to get - * @param[out] cr: the completion record array to fill at least cr_cnt completion records - * Return: the number of completion record returned, 0 means no completion record returned, less than 0 on error - * Note that: at most 16 completion records can be polled for RDMA device - */ -int urma_poll_jfc(urma_jfc_t *jfc, int cr_cnt, urma_cr_t *cr); - -/** - * Arm jfc with interrupt mode. - * @param[in] jfc: jetty completion queue to arm to interrupt mode - * @param[in] solicited_only: indicate it will trigger event only for packets with solicited flag. - * Return: 0 on success, other value on error - */ -urma_status_t urma_rearm_jfc(urma_jfc_t *jfc, bool solicited_only); - -/** - * Wait jfce for event of any completion message is generated. - * @param[in] jfce: jetty event channel to wait on - * @param[in] jfc_cnt: expected jfc count to return - * @param[in] time_out: max time to wait (milliseconds), - * timeout = 0: return immediately even if no events are ready, - * timeout = -1: an infinite timeout - * @param[out] jfc: address to put the jfc handle - * Return: the number of jfc returned, 0 means no jfc returned, -1 on error - * Note: User should check error when wait_jfc returns 0, errno ERESTARTSYS(512) - * means wait operation was interrupted by a signal and this error should - * be ignored, users should continue to wait jfc. - */ -int urma_wait_jfc(urma_jfce_t *jfce, uint32_t jfc_cnt, int time_out, urma_jfc_t *jfc[]); - -/** - * Confirm that a JFC generated event has been processed. - * @param[in] jfc: jfc pointer array to be acknowledged - * @param[in] nevents: event count array to be acknowledged - * @param[in] jfc_cnt: number of elements in the array - * Return: void - */ -void urma_ack_jfc(urma_jfc_t *jfc[], uint32_t nevents[], uint32_t jfc_cnt); - -/** - * Get or allocate a uasid. - * @param[out] uasid: the address to put uasid - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_uasid(uint32_t *uasid); - -/** - * User defined control of the context. - * @param[in] ctx: the created urma context pointer; - * @param[in] in: user ioctl cmd; - * @param[out] out: result of execution; - * Return: 0 on success, other value on error - * Note: This API only supports UB hardware currently. - */ -urma_status_t urma_user_ctl(urma_context_t *ctx, urma_user_ctl_in_t *in, urma_user_ctl_out_t *out); - -/** - * User register own log function, default rsyslog. - * @param[in] func: log callback func; - * Return: 0 on success, other value on error - */ -urma_status_t urma_register_log_func(urma_log_cb_t func); - -/** - * User register location log function with file, function and line info. - * @param[in] func: location log callback function; - * Return: 0 on success, other value on error - * Note: If both urma_register_log_func and urma_register_loc_log_func are called, - * the last registered function will be used. - */ -urma_status_t urma_register_loc_log_func(urma_loc_log_cb func); - -/** - * User unregister own log function, use rsyslog. - * Return: 0 on success, other value on error - */ -urma_status_t urma_unregister_log_func(void); - -/** - * get log level. - * Return: urma_vlog_level_t - */ -urma_vlog_level_t urma_log_get_level(void); - -/** - * set log level. - * @param[in] level: log level to set; - */ -void urma_log_set_level(urma_vlog_level_t level); - -/** - * get log thread tag. - * Return: const char * - */ -const char *urma_log_get_thread_tag(void); - -/** - * set log thread tag. - * @param[in] tag: log tag per thread; - */ -void urma_log_set_thread_tag(const char *tag); - -/** - * User tp only. - * Get tpn of tp created when creating jetty. - * @param[in] jetty: the created jetty pointer; - * Return: >= 0 on success, return as tpn; < 0 on error - */ -int urma_get_tpn(urma_jetty_t *jetty); - -/** - * Get net address info list, user tp only. - * @param[in] ctx: the created urma context pointer; - * @param[out] cnt: numer of net address info; - * Return: pointer of net address list; NULL on error - */ -urma_net_addr_info_t *urma_get_net_addr_list(urma_context_t *ctx, uint32_t *cnt); - -/** - * Free net address info list. - * @param[in] net_addr_list: pointer of net address list - */ -void urma_free_net_addr_list(urma_net_addr_info_t *net_addr_list); - -/** - * Modify tp by user connection. - * @param[in] ctx: the created urma context pointer; - * @param[in] tpn: tpn of tp created before; - * @param[in] cfg: tp configurations filled by user; - * @param[in] attr: tp attributes filled by user; - * @param[in] mask: bitmap configurations for tp attributes; - * Return: 0 on success; other values on error - */ -int urma_modify_tp(urma_context_t *ctx, uint32_t tpn, urma_tp_cfg_t *cfg, urma_tp_attr_t *attr, - urma_tp_attr_mask_t mask); - -/** - * get available tp list from control plane. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] tp_cfg: tp configuration to get; - * @param[in && out] [Required] tp_cnt: tp_cnt is the length of tp_list buffer as in parameter; - * tp_cnt is the number of tp as out parameter; - * @param[out] [Required] tp_list: tp list to get, the buffer is allocated by user; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_tp_list(urma_context_t *ctx, urma_get_tp_cfg_t *cfg, uint32_t *tp_cnt, urma_tp_info_t *tp_list); - -/** - * set tp attribution values in control plane. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] tp_handle: tp_handle got by urma_get_tp_list; - * @param[in] [Required] tp_attr_cnt: number of tp attributions; - * @param[in] [Required] tp_attr_bitmap: tp attributions bitmap, current bitmap is as follow: - * 0-retry_times_init: 3 bit 1-at: 5 bit 2-SIP: 128 bit - * 3-DIP: 128 bit 4-SMA: 48 bit 5-DMA: 48 bit - * 6-vlan_id: 12 bit 7-vlan_en: 1 bit 8-dscp: 6 bit - * 9-at_times: 5 bit 10-sl: 4 bit 11-ttl: 8 bit - * @param[in] [Required] tp_attr: tp attribution values to set; - * Return: 0 on success, other value on error - */ -urma_status_t urma_set_tp_attr(const urma_context_t *ctx, const uint64_t tp_handle, const uint8_t tp_attr_cnt, - const uint32_t tp_attr_bitmap, const urma_tp_attr_value_t *tp_attr); - -/** - * get tp attribution values in control plane. - * @param[in] [Required] ctx: the created urma context pointer; - * @param[in] [Required] tp_handle: tp_handle got by urma_get_tp_list; - * @param[out] [Required] tp_attr_cnt: number of tp attributions; - * @param[out] [Required] tp_attr_bitmap: tp attributions bitmap, current bitmap is as follow: - * 0-retry_times_init: 3 bit 1-at: 5 bit 2-SIP: 128 bit - * 3-DIP: 128 bit 4-SMA: 48 bit 5-DMA: 48 bit - * 6-vlan_id: 12 bit 7-vlan_en: 1 bit 8-dscp: 6 bit - * 9-at_times: 5 bit 10-sl: 4 bit 11-ttl: 8 bit - * @param[out] [Required] tp_attr: tp attribution values to get; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_tp_attr(const urma_context_t *ctx, const uint64_t tp_handle, uint8_t *tp_attr_cnt, - uint32_t *tp_attr_bitmap, urma_tp_attr_value_t *tp_attr); - -/** - * get eid by ip info - * @param[in] ctx: the created urma context pointer; - * @param[in] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); - * @param[out] eid: device's eid; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_eid_by_ip(const urma_context_t *ctx, const urma_net_addr_t *net_addr, urma_eid_t *eid); - -/** - * get ip info by eid. - * @param[in] ctx: the created urma context pointer; - * @param[in] eid: device's eid; - * @param[out] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_ip_by_eid(const urma_context_t *ctx, const urma_eid_t *eid, urma_net_addr_t *net_addr); - - -/** - * get source mac address. - - * @param[in] ctx: the created urma context pointer; - * @param[out] mac: the mac address of source; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_smac(const urma_context_t *ctx, uint8_t *mac); - -/** - * get dest mac address. - * @param[in] ctx: the created urma context pointer; - * @param[in] net_addr: the ip info (type and net_addr are valid, vlan, mac, prefix_len will not be used); - * @param[out] mac: the mac address of dest; - * Return: 0 on success, other value on error - */ -urma_status_t urma_get_dmac(const urma_context_t *ctx, const urma_net_addr_t *net_addr, uint8_t *mac); - -#ifdef __cplusplus - } -#endif - -#endif diff --git a/src/brpc/urma/sdk/urma/urma_opcode.h b/src/brpc/urma/sdk/urma/urma_opcode.h deleted file mode 100644 index a707951d27..0000000000 --- a/src/brpc/urma/sdk/urma/urma_opcode.h +++ /dev/null @@ -1,260 +0,0 @@ -/* - * SPDX-License-Identifier: MIT - * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. - * Description: URMA opcode header file - * Author: Ouyang Changchun, Yan Fangfang, Qian Guoxin - * Create: 2021-09-26 - * Note: - * History: 2021-09-26 Create File - */ - -#ifndef URMA_OPCODE_H -#define URMA_OPCODE_H - -#include - -/* urma bit field value */ -#define URMA_TOKEN_NONE 0 /* Indicates the verification policy of the key. */ -#define URMA_TOKEN_PLAIN_TEXT 1 -#define URMA_TOKEN_SIGNED 2 -#define URMA_TOKEN_ALL_ENCRYPTED 3 -#define URMA_TOKEN_RESERVED 4 - -#define URMA_TOKEN_ID_INVALID 0 -#define URMA_TOKEN_ID_VALID 1 - -#define URMA_DSVA_DISABLE 0 /* Indicates whether it is a segment of dsva. */ -#define URMA_DSVA_ENABLE 1 - -#define URMA_NON_CACHEABLE 0 /* Indicates whether the segment can be cached by multiple hosts. */ -#define URMA_CACHEABLE 1 - -/* If URMA_ACCESS_LOCAL_ONLY is set, local access will have all the permissions of - * READ, WRITE, and ATOMIC but external access is denied. - * If URMA_ACCESS_LOCAL_ONLY is not set, in addition to having all permissions for local access, - * the configuration of external access permissions is determined by the following three types, and - * it takes effect according to the combination of READ, WRITE, and ATOMIC configured by the user. - */ -#define URMA_ACCESS_LOCAL_ONLY (0x1 << 0) -#define URMA_ACCESS_READ (0x1 << 1) -#define URMA_ACCESS_WRITE (0x1 << 2) -#define URMA_ACCESS_ATOMIC (0x1 << 3) - -#define URMA_LOCAL_MEMORY 0 /* Indicates that the physical memory is remote. */ -#define URMA_REMOTE_MEMORY 1 - -#define URMA_SEG_NOMAP 0 /* Indicates that the current process has mapped this segment */ -#define URMA_SEG_MAPPED 1 - -#define URMA_ADDR_TYPE_MVA 0 -#define URMA_ADDR_TYPE_UBVA 1 - -#define URMA_COMPLETE_ENABLE 1 /* Notify the source after the task is completed. */ -#define URMA_COMPLETE_DISABLE 0 /* Do not notify the source after the task is complete. */ - -#define URMA_COMPLETE_TYPE_JFC 0 /* Complete notification via JFC. */ -#define URMA_COMPLETE_TYPE_CF 1 /* Complete notification via DDR address */ - -#define URMA_DEPENDENCY_NONE 0 /* There is no dependency between commands. */ -#define URMA_DEPENDENCY_FIRST \ - 1 /* Subsequent commands depend on the execution result \ - of the current command. */ -#define URMA_DEPENDENCY_DELAY \ - 2 /* The current command is executed only when the command \ - that the preamble depends on is executed successfully. */ - -#define URMA_NOTIFY_DISABLE 0 /* The destination is not notified when the task is completed. */ -#define URMA_NOTIFY_ENABLE 1 /* Notify the destination when the task is completed. */ - -#define URMA_NOTIFY_TYPE_JFC 0 /* Complete notification via JFC. */ -#define URMA_NOTIFY_TYPE_RVA 1 /* Complete notification via DDR address. */ - -#define URMA_INLINE_DISABLE 0 /* The data is generated by source_address assignment. */ -#define URMA_INLINE_ENABLE 1 /* The data is carried in the command. */ - -#define URMA_SOLICITED_DISABLE 0 /* There is no interruption when notifying through JFC. */ -#define URMA_SOLICITED_ENABLE 1 /* Interrupt occurred while notifying via JFC. */ - -#define URMA_FENCE_DISABLE 0 /* There is no fence. */ -#define URMA_FENCE_ENABLE 1 /* Fence with previous WRs. */ - -#define URMA_REGULAR 1 /* regular, specifies stride format. */ -#define URMA_IRREGULAR 0 /* irregular, specifies S/G format. */ - -#define URMA_NO_TAG_MATCHING 0 -#define URMA_WITH_TAG_MATCHING 1 - -#define URMA_NONPOST_LS 0 -#define URMA_POST_LS 1 - -#define URMA_NO_SHARE_JFR 0 -#define URMA_SHARE_JFR 1 - -#define URMA_TYPICAL_RNR_RETRY 7 /* typical value of rnr retry for jfs cfg */ -#define URMA_TYPICAL_ERR_TIMEOUT 17 /* typical value of err_timeout for jfs cfg */ -#define URMA_TYPICAL_MIN_RNR_TIMER 12 /* typical value of min_rnr_timer for jfr cfg */ -#define URMA_MAX_PRIORITY 15 - -/* operation information */ -typedef enum urma_place_order { - URMA_NO_ORDER = 0, // No order - URMA_RELAX_ORDER, // Relax order - URMA_STRONG_ORDER // Strong order -} urma_place_order_t; - -/* opcode definition */ -typedef enum urma_opcode { - URMA_OPC_WRITE = 0x00, - URMA_OPC_WRITE_IMM = 0x01, - URMA_OPC_WRITE_NOTIFY = 0x02, // not support result will return for URMA_OPC_WRITE_NOTIFY - URMA_OPC_READ = 0x10, - URMA_OPC_CAS = 0x20, - URMA_OPC_SWAP = 0x21, - URMA_OPC_FADD = 0x22, - URMA_OPC_FSUB = 0x23, - URMA_OPC_FAND = 0x24, - URMA_OPC_FOR = 0x25, - URMA_OPC_FXOR = 0x26, - URMA_OPC_SEND = 0x40, // remote JFR/jetty ID - URMA_OPC_SEND_IMM = 0x41, // remote JFR/jetty ID - URMA_OPC_SEND_INVALIDATE = 0x42, // remote JFR/jetty ID and seg token id - URMA_OPC_NOP = 0x51, - URMA_OPC_WRITE_ATOMIC = 0x60, // Non-standard definition of OPCODE - URMA_OPC_LAST -} urma_opcode_t; - -typedef int urma_status_t; -#define URMA_SUCCESS 0 -#define URMA_EAGAIN EAGAIN // Resource temporarily unavailable -#define URMA_ENOMEM ENOMEM // Failed to allocate memory -#define URMA_ENOPERM EPERM // Operation not permitted -#define URMA_ETIMEOUT ETIMEDOUT // Operation time out -#define URMA_EINVAL EINVAL // Invalid argument -#define URMA_EEXIST EEXIST // Exist -#define URMA_EINPROGRESS EINPROGRESS -#define URMA_FAIL 0x1000 /* 0x1000 */ - -/* completion information */ -typedef enum urma_cr_status { // completion record status - URMA_CR_SUCCESS = 0, - URMA_CR_UNSUPPORTED_OPCODE_ERR, /* Opcode in the WR is not supported */ - URMA_CR_LOC_LEN_ERR, /* Local data too long error */ - URMA_CR_LOC_OPERATION_ERR, /* Local operation err */ - URMA_CR_LOC_ACCESS_ERR, /* Access to local memory error */ - URMA_CR_REM_RESP_LEN_ERR, /* Local Operation Error, with sub-status of Remote Response Length Error */ - URMA_CR_REM_UNSUPPORTED_REQ_ERR, - URMA_CR_REM_OPERATION_ERR, /* Error when target jetty can not complete the operation */ - URMA_CR_REM_ACCESS_ABORT_ERR, /* Error when target jetty access memory error or abort the operation */ - URMA_CR_ACK_TIMEOUT_ERR, /* Retransmission exceeds the maximum number of times */ - URMA_CR_RNR_RETRY_CNT_EXC_ERR, /* RNR retries exceeded the maximum number: remote jfr has no buffer */ - URMA_CR_WR_FLUSH_ERR, /* Jetty in the error state, and the hardware has processed the WR. */ - URMA_CR_WR_SUSPEND_DONE, /* Hardware constructs a fake CQE, and user_ctx is invalid. */ - URMA_CR_WR_FLUSH_ERR_DONE, /* Hardware constructs a fake CQE, and user_ctx is invalid. */ - URMA_CR_WR_UNHANDLED, /* Return of flush jetty/jfs, and the hardware has not processed the WR. */ - URMA_CR_LOC_DATA_POISON, /* Local Data Poison */ - URMA_CR_REM_DATA_POISON, /* Remote Data Poison */ -} urma_cr_status_t; - -typedef enum urma_cr_opcode { - URMA_CR_OPC_SEND = 0x00, - URMA_CR_OPC_SEND_WITH_IMM, - URMA_CR_OPC_SEND_WITH_INV, - URMA_CR_OPC_WRITE_WITH_IMM, -} urma_cr_opcode_t; - -/* event information */ -typedef enum urma_async_event_type { - URMA_EVENT_JFC_ERR, - URMA_EVENT_JFS_ERR, - URMA_EVENT_JFR_ERR, - URMA_EVENT_JFR_LIMIT, - URMA_EVENT_JETTY_ERR, - URMA_EVENT_JETTY_LIMIT, - URMA_EVENT_JETTY_GRP_ERR, - URMA_EVENT_PORT_ACTIVE, - URMA_EVENT_PORT_DOWN, - URMA_EVENT_DEV_FATAL, - URMA_EVENT_EID_CHANGE, // eid change, HNM and other management roles will be modified. - URMA_EVENT_ELR_ERR, /* Entity level error */ - URMA_EVENT_ELR_DONE /* Entity flush done */ -} urma_async_event_type_t; - -typedef enum urma_jfc_state { - URMA_JFC_STATE_INVALID = 0, - URMA_JFC_STATE_VALID, - URMA_JFC_STATE_ERROR -} urma_jfc_state_t; - -typedef enum urma_jetty_state { - URMA_JETTY_STATE_RESET = 0, - URMA_JETTY_STATE_READY, - URMA_JETTY_STATE_SUSPENDED, - URMA_JETTY_STATE_ERROR -} urma_jetty_state_t; - -typedef enum urma_jfr_state { - URMA_JFR_STATE_RESET = 0, - URMA_JFR_STATE_READY, - URMA_JFR_STATE_ERROR -} urma_jfr_state_t; - -#define URMA_JFS_DEPTH 0x0001 -#define URMA_JFS_FLAG 0x0002 -#define URMA_JFS_TRANS_MODE 0x0003 -#define URMA_JFS_PRIORITY 0x0004 -#define URMA_JFS_MAX_SGE 0x0005 -#define URMA_JFS_MAX_RSGE 0x0006 -#define URMA_JFS_MAX_INLINE_DATA 0x0007 -#define URMA_JFS_RNR_RETRY 0x0008 -#define URMA_JFS_ERR_TIMEOUT 0x0009 -#define URMA_JFS_BIND_JFC 0x000a -#define URMA_JFS_USER_CTX 0x000b -#define URMA_JFS_SQE_BASE_ADDR 0x000c -#define URMA_JFS_ID 0x000d -#define URMA_JFS_DB_ADDR 0x000e -#define URMA_JFS_DB_STATUS 0x000f -#define URMA_JFS_PI 0x0010 -#define URMA_JFS_PI_TYPE 0x0011 -#define URMA_JFS_CI 0x0012 -#define URMA_JFS_FULL_CTX 0x0013 - -#define URMA_JFR_DEPTH 0x1001 -#define URMA_JFR_FLAG 0x1002 -#define URMA_JFR_TRANS_MODE 0x1003 -#define URMA_JFR_MAX_SGE 0x1004 -#define URMA_JFR_MIN_RNR_TIMER 0x1005 -#define URMA_JFR_BIND_JFC 0x1006 -#define URMA_JFR_TOKEN_VALUE 0x1007 -#define URMA_JFR_USER_CTX 0x1008 -#define URMA_JFR_RQE_BASE_ADDR 0x1009 -#define URMA_JFR_ID 0x100a -#define URMA_JFR_DB_ADDR 0x100b -#define URMA_JFR_DB_STATUS 0x100c -#define URMA_JFR_PI 0x100d -#define URMA_JFR_PI_TYPE 0x100e -#define URMA_JFR_CI 0x100f -#define URMA_JFR_FULL_CTX 0x1010 - -#define URMA_JFC_DEPTH 0x2001 -#define URMA_JFC_CEQN 0x2002 -#define URMA_JFC_FLAG 0x2003 -#define URMA_JFC_BIND_JFCE 0x2004 -#define URMA_JFC_USER_CTX 0x2005 -#define URMA_JFC_CQE_BASE_ADDR 0x2006 -#define URMA_JFC_ID 0x2007 -#define URMA_JFC_DB_ADDR 0x2008 -#define URMA_JFC_DB_STATUS 0x2009 -#define URMA_JFC_PI 0x200a -#define URMA_JFC_PI_TYPE 0x200b -#define URMA_JFC_CI 0x200c -#define URMA_JFC_FULL_CTX 0x200d - -#define URMA_JETTY_ID 0x3001 -#define URMA_JETTY_FLAG 0x3002 -#define URMA_JETTY_BIND_JFR 0x3003 -#define URMA_JETTY_BIND_RX_JFC 0x3004 -#define URMA_JETTY_BIND_JTG 0x3005 -#define URMA_JETTY_USER_CTX 0x3006 -#define URMA_JETTY_FULL_CTX 0x3007 - -#endif // URMA_OPCODE_H diff --git a/src/brpc/urma/sdk/urma/urma_types.h b/src/brpc/urma/sdk/urma/urma_types.h deleted file mode 100644 index c093f22565..0000000000 --- a/src/brpc/urma/sdk/urma/urma_types.h +++ /dev/null @@ -1,1430 +0,0 @@ -/* - * SPDX-License-Identifier: MIT - * Copyright (c) Huawei Technologies Co., Ltd. 2021-2025. All rights reserved. - * Description: URMA type header file - * Author: Ouyang Changchun, Bojie Li, Yan Fangfang, Qian Guoxin - * Create: 2021-07-13 - * Note: - * History: 2021-07-13 Create File - */ - -#ifndef URMA_TYPES_H -#define URMA_TYPES_H - -#include -#include -#include -#include -#include - -#ifndef __cplusplus -#include -#else -#include -#endif - -#include "urma/urma_opcode.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define URMA_GET_VERSION(a, b) (((a) << 16) + ((b) > 65535 ? 65535 : (b))) -#define URMA_API_VERSION ((0 << 16) + 9) // Current Version: 0.9 -#define MAX_PORT_CNT 8 -#define URMA_MAX_JETTY_IN_JETTY_GRP 32U -#define URMA_MAX_NAME 64 -#define URMA_MAX_PATH 4096 -#define URMA_EID_SIZE (16) -#define URMA_MAX_PRIORITY_CNT 16 -#define URMA_IPV4_MAP_IPV6_PREFIX (0x0000ffff) -#define URMA_MAX_EID_CNT 1024 /* refer to UBCORE_MAX_SIP */ -#define URMA_CC_IDX_TABLE_SIZE 81 /* support 9 priorities and 9 algorithms */ - /* same as UBCORE_CC_IDX_TABLE_SIZE */ -#define URMA_OPT_REVERSED_NUM 4 - -#define URMA_EID_STR_LEN (39) -#define EID_FMT "%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x" -#define EID_RAW_ARGS(eid) \ - eid[0], eid[1], eid[2], eid[3], eid[4], eid[5], eid[6], eid[7], eid[8], eid[9], eid[10], eid[11], eid[12], \ - eid[13], eid[14], eid[15] -#define EID_ARGS(eid) EID_RAW_ARGS((eid).raw) -#define URMA_SEG_TOKEN_ID_INVALID 0xffffffff - -/* refer to UBCORE_MAX_DEV_NAME */ -#define URMA_MAX_DEV_NAME 64 -#define URMA_GUID_SIZE (16) - -#define URMA_IP_ADDR_BYTES 16 /* refer to UBCORE_IP_ADDR_BYTES */ -#define URMA_MAC_BYTES 6 /* refer to UBCORE_MAC_BYTES */ - -#define URMA_JFS_SQE_BASE_ADDR_MASK (1ULL << 0) -#define URMA_JFS_ID_MASK (1ULL << 1) -#define URMA_JFS_DB_ADDR_MASK (1ULL << 2) -#define URMA_JFS_DB_STATUS_MASK (1ULL << 3) -#define URMA_JFS_PI_MASK (1ULL << 4) -#define URMA_JFS_PI_TYPE_MASK (1ULL << 5) -#define URMA_JFS_CI_MASK (1ULL << 6) - -#define URMA_JFR_RQE_BASE_ADDR_MASK (1ULL << 0) -#define URMA_JFR_ID_MASK (1ULL << 1) -#define URMA_JFR_DB_ADDR_MASK (1ULL << 2) -#define URMA_JFR_DB_STATUS_MASK (1ULL << 3) -#define URMA_JFR_PI_MASK (1ULL << 4) -#define URMA_JFR_PI_TYPE_MASK (1ULL << 5) -#define URMA_JFR_CI_MASK (1ULL << 6) - -#define URMA_JFC_CQE_BASE_ADDR_MASK (1ULL << 0) -#define URMA_JFC_ID_MASK (1ULL << 1) -#define URMA_JFC_DB_ADDR_MASK (1ULL << 2) -#define URMA_JFC_DB_STATUS_MASK (1ULL << 3) -#define URMA_JFC_PI_MASK (1ULL << 4) -#define URMA_JFC_PI_TYPE_MASK (1ULL << 5) -#define URMA_JFC_CI_MASK (1ULL << 6) - -typedef struct urma_init_attr { - uint64_t token; /* [Optional] security token */ - uint32_t uasid; /* [Optional] uasid to set and reserve. If the parameter is 0, - the system will randomly assign a non-0 value. */ -} urma_init_attr_t; - -/* device information */ -typedef enum urma_mtu { - URMA_MTU_256 = 1, - URMA_MTU_512, - URMA_MTU_1024, - URMA_MTU_2048, - URMA_MTU_4096, - URMA_MTU_8192, -} urma_mtu_t; - -typedef enum urma_port_state { - URMA_PORT_NOP = 0, - URMA_PORT_DOWN, - URMA_PORT_INIT, - URMA_PORT_ARMED, - URMA_PORT_ACTIVE, - URMA_PORT_ACTIVE_DEFER, -} urma_port_state_t; - -typedef enum urma_speed { - URMA_SP_10M = 0, - URMA_SP_100M, - URMA_SP_1G, - URMA_SP_2_5G, - URMA_SP_5G, - URMA_SP_10G, - URMA_SP_14G, - URMA_SP_25G, - URMA_SP_40G, - URMA_SP_50G, - URMA_SP_100G, - URMA_SP_200G, - URMA_SP_400G, - URMA_SP_800G, -} urma_speed_t; - -typedef enum urma_link_width { - URMA_LINK_X1 = 0x1, - URMA_LINK_X2 = 0x1 << 1, - URMA_LINK_X4 = 0x1 << 2, - URMA_LINK_X8 = 0x1 << 3, - URMA_LINK_X16 = 0x1 << 4, - URMA_LINK_X32 = 0x1 << 5, -} urma_link_width_t; - -typedef union urma_eid { - uint8_t raw[URMA_EID_SIZE]; /* Network Order */ - struct { - uint64_t reserved; /* If IPv4 mapped to IPv6, == 0 */ - uint32_t prefix; /* If IPv4 mapped to IPv6, == 0x0000ffff */ - uint32_t addr; /* If IPv4 mapped to IPv6, == IPv4 addr */ - } in4; - struct { - uint64_t subnet_prefix; - uint64_t interface_id; - } in6; -} urma_eid_t; - -void urma_u32_to_eid(uint32_t ipv4, urma_eid_t *eid); -int urma_str_to_eid(const char *buf, urma_eid_t *eid); - -typedef struct urma_ref { -#ifndef __cplusplus - atomic_ulong atomic_cnt; -#else - std::atomic_ulong atomic_cnt; -#endif -} urma_ref_t; - -typedef struct urma_port_attr { - urma_mtu_t max_mtu; /* [Public] MTU_256, MTU_512, MTU_1024 etc. */ - urma_port_state_t state; /* [Public] PORT_DOWN, PORT_INIT, PORT_ACTIVE */ - urma_link_width_t active_width; /* [Public] link width: X1, X2, X4. */ - urma_speed_t active_speed; /* [Public] bandwidth. */ - urma_mtu_t active_mtu; /* [Public] current effective mtu. */ -} urma_port_attr_t; - -union urma_tp_type_en { - struct { - uint32_t rtp : 1; - uint32_t ctp : 1; - uint32_t utp : 1; - uint32_t reserved : 29; - } bs; - uint32_t value; -}; - -struct urma_sl_info { - uint32_t SL; - union urma_tp_type_en tp_type; -}; - -typedef union urma_device_feature { - struct { - uint32_t oor : 1; /* [Public] URMA_OUT_OF_ORDER_RECEIVING. */ - uint32_t jfc_per_wr : 1; /* [Public] URMA_JFC_PER_WR. */ - uint32_t stride_op : 1; /* [Public] URMA_STRIDE_OP. */ - uint32_t load_store_op : 1; /* [Public] URMA_LOAD_STORE_OP. */ - uint32_t non_pin : 1; /* [Public] URMA_NON_PIN. */ - uint32_t pmem : 1; /* [Public] URMA_PERSISTENCE_MEM. */ - uint32_t jfc_inline : 1; /* [Public] URMA_JFC_INLINE. */ - uint32_t spray_en : 1; /* [Public] URMA_SPRAY_ENABLE for UDP port. */ - uint32_t selective_retrans : 1; /* [Public] URMA_SELECTIVE_RETRANS. */ - uint32_t live_migrate : 1; /* [Public] support live migration. */ - uint32_t dca : 1; /* [Public] for user tp */ - uint32_t jetty_grp : 1; /* [Public] support jetty group. */ - uint32_t error_suspend : 1; /* [Public] support suspend jetty or jfs on error. */ - uint32_t outorder_comp : 1; /* [Public] support out-of-order completion. */ - uint32_t mn : 1; /* [Public] for user tp */ - uint32_t clan : 1; /* [Public] for user tp */ - uint32_t muti_seg_per_token_id : 1; - uint32_t ipourma_en : 1; - uint32_t ctp_en : 1; - uint32_t uboe : 1; - uint32_t reserved : 12; - } bs; - uint32_t value; -} urma_device_feature_t; - -typedef union urma_atomic_feature { - struct { - uint32_t cas : 1; - uint32_t swap : 1; - uint32_t fetch_and_add : 1; - uint32_t fetch_and_sub : 1; - uint32_t fetch_and_and : 1; - uint32_t fetch_and_or : 1; - uint32_t fetch_and_xor : 1; - uint32_t reserved : 25; - } bs; - uint32_t value; -} urma_atomic_feature_t; - -typedef union urma_order_type_cap { - struct { - uint32_t ot : 1; - uint32_t oi : 1; - uint32_t ol : 1; - uint32_t no : 1; - uint32_t reserved : 28; - } bs; - uint32_t value; -} urma_order_type_cap_t; - -typedef union urma_tp_type_cap { - struct { - uint32_t rtp : 1; - uint32_t ctp : 1; - uint32_t utp : 1; - uint32_t reserved : 29; - } bs; - uint32_t value; -} urma_tp_type_cap_t; - -typedef union urma_tp_feature { - struct { - uint32_t rm_multi_path : 1; - uint32_t rc_multi_path : 1; - uint32_t reserved : 30; - } bs; - uint32_t value; -} urma_tp_feature_t; - -typedef struct urma_device_cap { - urma_device_feature_t feature; /* [Public] support feature of device, such as OOO, LS etc. */ - uint32_t max_jfc; /* [Public] max number of jfc supported by the device. */ - uint32_t max_jfs; /* [Public] max number of jfs supported by the device. */ - uint32_t max_jfr; /* [Public] max number of jfr supported by the device. */ - uint32_t max_jetty; /* [Public] max number of jetty supported by the device. */ - uint32_t max_jetty_grp; /* [Public] max number of jetty group supported by the device. */ - uint32_t max_jetty_in_jetty_grp; /* [Public] max number of jetty per jetty group supported by the device. */ - uint32_t max_jfc_depth; /* [Public] max depth of jfc supported by the device. */ - uint32_t max_jfs_depth; /* [Public] max depth of jfs supported by the device. */ - uint32_t max_jfr_depth; /* [Public] max depth of jfr supported by the device. */ - uint32_t max_jfs_inline_len; /* [Public] max inline length(byte) supported by the jfs. */ - uint32_t max_jfs_sge; /* [Public] max number of sge supported by the jfs. */ - uint32_t max_jfs_rsge; /* [Public] max number of remote sge supported by the jfs. */ - uint32_t max_jfr_sge; /* [Public] max number of sge supported by the jfr. */ - uint64_t max_msg_size; /* [Public] max message size supported by the device. */ - uint32_t max_read_size; - uint32_t max_write_size; - uint32_t max_cas_size; - uint32_t max_swap_size; - uint32_t max_fetch_and_add_size; - uint32_t max_fetch_and_sub_size; - uint32_t max_fetch_and_and_size; - uint32_t max_fetch_and_or_size; - uint32_t max_fetch_and_xor_size; - urma_atomic_feature_t atomic_feat; /* [Public] support atomic feature of device */ - uint16_t trans_mode; /* [Public] bit OR of supported transport modes */ - uint16_t congestion_ctrl_alg; /* [Public] one or more mode from urma_congestion_ctrl_alg_t */ - uint32_t ceq_cnt; /* [Public] ceq_cnt */ - uint32_t max_tp_in_tpg; /* [Public] max tp in tpg */ - uint32_t max_eid_cnt; /* [Public] max eid count */ - uint64_t page_size_cap; /* [Public] page size capability, must include PAGE_SIZE(4k) */ - uint32_t max_oor_cnt; /* [Public] max OOR window size by packet, only for user tp */ - uint32_t mn; /* [Public] only for user tp */ - uint32_t max_netaddr_cnt; /* [Public] only for user tp */ - urma_order_type_cap_t rm_order_cap; - urma_order_type_cap_t rc_order_cap; - urma_tp_type_cap_t rm_tp_cap; - urma_tp_type_cap_t rc_tp_cap; - urma_tp_type_cap_t um_tp_cap; - urma_tp_feature_t tp_feature; - struct urma_sl_info priority_info[URMA_MAX_PRIORITY_CNT]; -} urma_device_cap_t; - -typedef struct urma_guid { - uint8_t raw[URMA_GUID_SIZE]; -} urma_guid_t; - -typedef struct urma_device_attr { - urma_guid_t guid; /* [Public] */ - urma_device_cap_t dev_cap; /* [Public] capabilities of device. */ - uint8_t port_cnt; /* [Public] port number of device. */ - struct urma_port_attr port_attr[MAX_PORT_CNT]; - uint32_t reserved_jetty_id_min; - uint32_t reserved_jetty_id_max; -} urma_device_attr_t; - -/* security information */ -typedef struct urma_token { - uint32_t token; -} urma_token_t; - -struct urma_sysfs_dev; -struct urma_ref; -struct urma_ops; -struct urma_provider_ops; - -typedef enum urma_transport_type { - URMA_TRANSPORT_INVALID = -1, - URMA_TRANSPORT_UB = 0, - URMA_TRANSPORT_MAX -} urma_transport_type_t; - -typedef enum urma_transport_mode { - URMA_TM_RM = 0x1, /* Reliable message */ - URMA_TM_RC = 0x1 << 1, /* Reliable connection */ - URMA_TM_UM = 0x1 << 2, /* Unreliable message */ -} urma_transport_mode_t; - -typedef enum urma_tp_cc_alg { - URMA_TP_CC_NONE = 0, - URMA_TP_CC_DCQCN, - URMA_TP_CC_DCQCN_AND_NETWORK_CC, - URMA_TP_CC_LDCP, - URMA_TP_CC_LDCP_AND_CAQM, - URMA_TP_CC_LDCP_AND_OPEN_CC, - URMA_TP_CC_HC3, - URMA_TP_CC_DIP, - URMA_TP_CC_ACC, - URMA_TP_CC_NUM, -} urma_tp_cc_alg_t; /* larger means better */ - -typedef enum urma_congestion_ctrl_alg { - URMA_CC_NONE = 0x1 << URMA_TP_CC_NONE, - URMA_CC_DCQCN = 0x1 << URMA_TP_CC_DCQCN, - URMA_CC_DCQCN_AND_NETWORK_CC = 0x1 << URMA_TP_CC_DCQCN_AND_NETWORK_CC, - URMA_CC_LDCP = 0x1 << URMA_TP_CC_LDCP, - URMA_CC_LDCP_AND_CAQM = 0x1 << URMA_TP_CC_LDCP_AND_CAQM, - URMA_CC_LDCP_AND_OPEN_CC = 0x1 << URMA_TP_CC_LDCP_AND_OPEN_CC, - URMA_CC_HC3 = 0x1 << URMA_TP_CC_HC3, - URMA_CC_DIP = 0x1 << URMA_TP_CC_DIP, - URMA_CC_ACC = 0x1 << URMA_TP_CC_ACC -} urma_congestion_ctrl_alg_t; - -typedef struct urma_cc_entry { - urma_tp_cc_alg_t alg; - uint8_t cc_pattern_idx; - uint8_t cc_priority; -} __attribute__((packed)) urma_cc_entry_t; - -typedef struct urma_device { - char name[URMA_MAX_NAME]; /* [Public] urma device's name, the names of devices - in different transport modes are different. */ - char path[URMA_MAX_PATH]; /* [Public] urma device's path in sysfs. */ - urma_transport_type_t type; /* [Public] urma device's transport type. */ - struct urma_provider_ops *ops; /* [Private] urma device driver's ops. */ - struct urma_sysfs_dev *sysfs_dev; /* [Private] internal device corresponding to the urma device */ -} urma_device_t; - -typedef enum urma_context_opt_name { - URMA_OPT_AGGR_MODE, -} urma_opt_name_t; - -typedef enum urma_context_aggr_mode { - URMA_AGGR_MODE_STANDALONE, - URMA_AGGR_MODE_ACTIVE_BACKUP, - URMA_AGGR_MODE_BALANCE, -} urma_context_aggr_mode_t; - -typedef struct urma_context { - struct urma_device *dev; /* [Private] point to the corresponding urma device. */ - struct urma_ops *ops; /* [Private] operation of urma device. */ - int dev_fd; /* [Private] fd of urma device's sysfs file. */ - int async_fd; /* [Private] fd of urma device's async event file. */ - pthread_mutex_t mutex; /* [Private] mutex of urma context. */ - urma_eid_t eid; /* [Public] eid of urma device. */ - uint32_t eid_index; - uint32_t uasid; /* [Public] uasid of current process. */ - struct urma_ref ref; /* [Private] reference count of urma context. */ - urma_context_aggr_mode_t aggr_mode; /* [Public] aggregated mode of urma context. */ -} urma_context_t; - -typedef struct urma_eid_info { - urma_eid_t eid; - uint32_t eid_index; /* 0~UBCORE_MAX_EID_CNT -1 */ -} urma_eid_info_t; - -typedef struct urma_jfce_cfg { - uint32_t depth; - uint64_t user_ctx; -} urma_jfce_cfg_t; - -typedef struct urma_jfce { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - int fd; /* [Private] fd of completed event. */ - struct urma_ref ref; /* [Private] reference count of urma context. */ -} urma_jfce_t; - -typedef union urma_jfc_flag { - struct { - uint32_t lock_free : 1; - uint32_t jfc_inline : 1; - uint32_t non_blocking : 1; - uint32_t has_drv_ext : 1; - uint32_t reserved : 28; - } bs; - uint32_t value; -} urma_jfc_flag_t; - -typedef struct urma_jfc_cfg { - uint32_t depth; /* [Required] the depth of jfc, no greater than urma_device_cap_t->jfc_depth */ - urma_jfc_flag_t flag; /* [Optional] see urma_jfc_flag_t, set flag.value to be 0 by default */ - uint32_t ceqn; /* [Optional] event queue id, less than urma_device_cap_t->ceq_cnt - set to 0 by default */ - urma_jfce_t *jfce; /* [Required] the event of jfc */ - uint64_t user_ctx; /* [Optional] private data of jfc, set to NULL by default */ -} urma_jfc_cfg_t; - -typedef enum urma_jfc_attr_mask { - JFC_MODERATE_COUNT = 0x1, - JFC_MODERATE_PERIOD = 0x1 << 1 -} urma_jfc_attr_mask_t; - -typedef struct urma_jfc_attr { - uint32_t mask; /* mask value, refer to urma_jfc_attr_mask_t */ - uint16_t moderate_count; - uint16_t moderate_period; /* in micro seconds */ -} urma_jfc_attr_t; - -typedef struct urma_jetty_id { - urma_eid_t eid; - uint32_t uasid; /* maybe zero(stand for kernel) or non-zero(stand for app) */ - uint32_t id; -} urma_jetty_id_t; - -typedef struct urma_jetty_id urma_jfs_id_t; -typedef struct urma_jetty_id urma_jfr_id_t; -typedef struct urma_jetty_id urma_jfc_id_t; - -union urma_jfc_opt_mask { - struct { - uint64_t urma_jfc_cqe_base_addr : 1; - uint64_t urma_jfc_db_addr : 1; - uint64_t urma_jfc_id : 1; - uint64_t urma_jfc_pi : 1; - uint64_t urma_jfc_pi_type : 1; - uint64_t urma_jfc_ci : 1; - uint64_t urma_jfc_db_status : 1; - uint64_t reserved : 57; - } bs; - uint64_t value; -}; - -typedef struct urma_jfc_opt { - union urma_jfc_opt_mask jfc_opt_mask; /* bit0:cqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, - bit5:ci, bit6:db_status */ - bool is_actived; - uint64_t urma_jfc_cqe_base_addr; /* [Optional] CQ Queue Address (VA) */ - uint32_t urma_jfc_id; /* [Optional] the id of jfc */ - uint64_t urma_jfc_db_addr; /* [Optional] CQ Queue Doorbell Address (VA) */ - uint8_t urma_jfc_db_status; /* [Optional] JFC Doorbell status, used for live migration (0 invalid, 1 valid) */ - uint16_t urma_jfc_pi; /* [Optional] PI value of the JFC */ - uint16_t urma_jfc_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ - uint16_t urma_jfc_ci; /* [Optional] CI value of the JFC */ - uint64_t reserved[URMA_OPT_REVERSED_NUM]; -} urma_jfc_opt_t; - -typedef struct urma_jfc { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jfc_id_t jfc_id; /* [Public] see urma_jetty_id. */ - urma_jfc_cfg_t jfc_cfg; /* [Public] storage jfc config. */ - uint64_t handle; - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t comp_events_acked; - uint32_t async_events_acked; - urma_jfc_opt_t urma_jfc_opt; -} urma_jfc_t; - -typedef enum urma_order_type { - URMA_DEF_ORDER, - URMA_OT, // target ordering - URMA_OI, // initiator ordering - URMA_OL, // low layer ordering - URMA_NO // unreliable non ordering -} urma_order_type_t; - -typedef union urma_jfs_flag { - struct { - uint32_t lock_free : 1; /* default as 0, lock protected */ - uint32_t error_suspend : 1; /* 0: error continue; 1: error suspend */ - uint32_t outorder_comp : 1; /* 0: not support; 1: support out-of-order completion */ - uint32_t order_type : 8; /* (0x0): default, auto config by driver */ - /* (0x1): OT, target ordering */ - /* (0x2): OI, initiator ordering */ - /* (0x3): OL, low layer ordering */ - /* (0x4): UNO, unreliable non ordering */ - uint32_t multi_path : 1; /* 1: multi-path, 0: single path, for ubagg only. */ - uint32_t ctp_rc_mul_path_mode : 1; /* 1: ctp rc mode multi-path */ - uint32_t non_blocking : 1; - uint32_t has_drv_ext : 1; - uint32_t reserved : 17; - } bs; - uint32_t value; -} urma_jfs_flag_t; - -union urma_jfs_opt_mask { - struct { - uint64_t urma_jfs_cqe_base_addr : 1; - uint64_t urma_jfs_db_addr : 1; - uint64_t urma_jfs_id : 1; - uint64_t urma_jfs_pi : 1; - uint64_t urma_jfs_pi_type : 1; - uint64_t urma_jfs_ci : 1; - uint64_t urma_jfs_db_status : 1; - uint64_t reserved : 57; - } bs; - uint64_t value; -}; - -typedef struct urma_jfs_opt { - union urma_jfs_opt_mask jfs_opt_mask; /* bit0:sqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, - bit5:ci, bit6:db_status */ - bool is_actived; - uint64_t urma_jfs_sqe_base_addr; /* [Optional] SQ Queue Address (VA) */ - uint32_t urma_jfs_id; /* [Optional] the id of jfs */ - uint64_t urma_jfs_db_addr; /* [Optional] SQ Queue Doorbell Address (VA) */ - uint8_t urma_jfs_db_status; /* [Optional] JFS Doorbell status, used for live migration (0 invalid, 1 valid) */ - uint16_t urma_jfs_pi; /* [Optional] PI value of the JFS */ - uint16_t urma_jfs_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ - uint16_t urma_jfs_ci; /* [Optional] CI value of the JFS */ - uint64_t reserved[URMA_OPT_REVERSED_NUM]; -} urma_jfs_opt_t; - -typedef struct urma_jfs_cfg { - uint32_t depth; /* [Required] the depth of jfs, defaut urma_device_cap_t->jfs_depth */ - urma_jfs_flag_t flag; /* [Optional] see urma_jfs_flag_t definition */ - urma_transport_mode_t trans_mode; /* [Required] transport mode, must be supported by the device */ - uint8_t priority; /* [Optional] set the priority of JFS, ranging from [0, 15] - Services with low delay need to set high priority. */ - uint8_t max_sge; /* [Optional] max sge count in one wr, defaut urma_device_cap_t->max_jfs_sge */ - uint8_t max_rsge; /* [Optional] max remote sge count in one wr, defaut urma_device_cap_t->max_jfs_sge */ - uint32_t max_inline_data; /* [Optional] the max inline data size of JFS. if the parameter is 0, - the system will assign device's max inline data length. */ - uint8_t rnr_retry; /* [Optional] number of times that jfs will resend packets before report error, - when the remote side is not ready to receive (RNR), ranging from [0, 7], - the value 0 means never retry and, - the value 7 means retry infinite number of times for RDMA devices */ - uint8_t err_timeout; /* [Optional] the timeout before report error, ranging from [0, 31], - the actual timeout in usec is caculated by: 4.096*(2^err_timeout) */ - urma_jfc_t *jfc; /* [Required] need to specify jfc */ - uint64_t user_ctx; /* [Optional] private data of jfs */ -} urma_jfs_cfg_t; - -typedef struct urma_jfs { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jfs_id_t jfs_id; /* [Public] see urma_jetty_id. */ - urma_jfs_cfg_t jfs_cfg; /* [Public] storage jfs config. */ - uint64_t handle; - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t async_events_acked; - urma_jfs_opt_t urma_jfs_opt; -} urma_jfs_t; - -typedef enum urma_jfs_attr_mask { - JFS_STATE = 0x1 -} urma_jfs_attr_mask_t; - -typedef urma_jetty_state_t urma_jfs_state_t; - -typedef struct urma_jfs_attr { - uint32_t mask; /* mask value refer to urma_jfs_attr_mask_t */ - urma_jfs_state_t state; -} urma_jfs_attr_t; - -typedef union urma_jfr_flag { - struct { - uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE - 1: URMA_TOKEN_PLAIN_TEXT - 2: URMA_TOKEN_SIGNED - 3: URMA_TOKEN_ALL_ENCRYPTED - 4: URMA_TOKEN_RESERVED */ - uint32_t tag_matching : 1; /* 0: URMA_NO_TAG_MATCHING. - 1: URMA_WITH_TAG_MATCHING. */ - uint32_t lock_free : 1; - uint32_t order_type : 8; /* (0x0): default, auto config by driver */ - /* (0x1): OT, target ordering */ - /* (0x2): OI, initiator ordering */ - /* (0x3): OL, low layer ordering */ - /* (0x4): UNO, unreliable non ordering */ - uint32_t has_drv_ext : 1; - uint32_t reserved : 18; - } bs; - uint32_t value; -} urma_jfr_flag_t; - -union urma_jfr_opt_mask { - struct { - uint64_t urma_jfr_cqe_base_addr : 1; - uint64_t urma_jfr_db_addr : 1; - uint64_t urma_jfr_id : 1; - uint64_t urma_jfr_pi : 1; - uint64_t urma_jfr_pi_type : 1; - uint64_t urma_jfr_ci : 1; - uint64_t urma_jfr_db_status : 1; - uint64_t reserved : 57; - } bs; - uint64_t value; -}; - -typedef struct urma_jfr_opt { - union urma_jfr_opt_mask jfr_opt_mask; /* bit0:rqe_base_addr, bit1:db_addr, bit2:id, bit3:pi, bit4:pi_type, - bit5:ci, bit6:db_status */ - bool is_actived; - uint64_t urma_jfr_rqe_base_addr; /* [Optional] RQ Queue Address (VA) */ - uint32_t urma_jfr_id; /* [Optional] the id of jfr */ - uint64_t urma_jfr_db_addr; /* [Optional] RQ Queue Doorbell Address (VA) */ - uint8_t urma_jfr_db_status; /* [Optional] JFR Doorbell status, used for live migration (0 invalid, 1 valid) */ - uint16_t urma_jfr_pi; /* [Optional] PI value of the JFR */ - uint16_t urma_jfr_pi_type; /* [Optional] PI type, 0: absolute value, 1: cumulative value */ - uint16_t urma_jfr_ci; /* [Optional] CI value of the JFR */ - uint64_t reserved[URMA_OPT_REVERSED_NUM]; -} urma_jfr_opt_t; - -typedef struct urma_jfr_cfg { - uint32_t id; /* [Optional] specify jfr id. If the parameter is 0, - the system will randomly assign a non-0 value. */ - uint32_t depth; /* [Required] total depth, include berth, defaut urma_device_cap_t->jfr_depth. */ - urma_jfr_flag_t flag; /* [Optional] whether is in TAG_matching, whether is in DC/IDC mode. */ - urma_transport_mode_t trans_mode; /* [Required] transport mode, must be supported by the device */ - uint8_t max_sge; /* [Optional] max sge count in one wr, defaut urma_device_cap_t->max_jfr_sge. */ - uint8_t min_rnr_timer; /* [Optional] the minimum RNR NACK timer, ranging from [0, 31], i.e. - the time before jfr sends NACK to the sender for the reason of "ready to receive" */ - urma_jfc_t *jfc; /* [Required] need to specify jfc. */ - urma_token_t token_value; /* [Required] specify token_value for jfr. */ - uint64_t user_ctx; /* [Optional] private data of jfr */ -} urma_jfr_cfg_t; - -typedef enum urma_jfr_attr_mask { - JFR_RX_THRESHOLD = 0x1, - JFR_STATE = 0x1 << 1 -} urma_jfr_attr_mask_t; - -typedef struct urma_jfr_attr { - uint32_t mask; // mask value refer to urma_jfr_attr_mask_t - uint32_t rx_threshold; - urma_jfr_state_t state; -} urma_jfr_attr_t; - -typedef struct urma_jfr { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jfr_id_t jfr_id; /* [Public] see urma_jetty_id. */ - urma_jfr_cfg_t jfr_cfg; /* [Public] storage jfr config. */ - uint64_t handle; - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t async_events_acked; - urma_jfr_opt_t urma_jfr_opt; -} urma_jfr_t; - -typedef union urma_import_jetty_flag { - struct { - uint32_t token_policy : 3; - uint32_t order_type : 8; /* (0x0): default, auto config by driver */ - /* (0x1): OT, target ordering */ - /* (0x2): OI, initiator ordering */ - /* (0x3): OL, low layer ordering */ - /* (0x4): UNO, unreliable non ordering */ - uint32_t share_tp : 1; /* 1: shared tp; 0: non-shared tp. When rc mode is not ta dst ordering, - this flag can only be set to 0. */ - uint32_t has_drv_ext : 1; - uint32_t reserved : 19; - } bs; - uint32_t value; - struct { - uint64_t reserved; - uint64_t stag; - uint64_t dtag; - } user_tag; -} urma_import_jetty_flag_t; - -typedef enum urma_tp_type { - URMA_RTP, - URMA_CTP, - URMA_UTP -} urma_tp_type_t; - -typedef struct urma_rjfr { - urma_jfr_id_t jfr_id; /* see urma_jetty_id */ - urma_transport_mode_t trans_mode; - urma_import_jetty_flag_t flag; - urma_tp_type_t tp_type; -} urma_rjfr_t; - -typedef struct urma_tp { - uint32_t tpn; /* vtpn */ -} urma_tp_t; - -typedef union urma_jetty_flag { - struct { - uint32_t share_jfr : 1; /* 0: URMA_NO_SHARE_JFR. - 1: URMA_SHARE_JFR. */ - uint32_t non_blocking : 1; - uint32_t has_drv_ext : 1; - uint32_t reserved : 29; - } bs; - uint32_t value; -} urma_jetty_flag_t; - -typedef struct urma_jetty_grp urma_jetty_grp_t; - -typedef struct urma_jetty_cfg { - uint32_t id; /* [Optional] user specified jetty id. */ - urma_jetty_flag_t flag; /* [Optional] Connection or connection less */ - - /* send configuration */ - urma_jfs_cfg_t jfs_cfg; /* [Required] see urma_jfs_cfg_t */ - - /* recv configuration */ - union { - struct { - urma_jfr_t *jfr; /* [Optional] shared jfr to receive msg */ - urma_jfc_t *jfc; /* [Optional] To replace the jfc related to the above jfr */ - } shared; /* [Required] */ - urma_jfr_cfg_t *jfr_cfg; /* deprecated */ - }; - urma_jetty_grp_t *jetty_grp; /* [Optional] user specified jetty group. */ - uint64_t user_ctx; /* [Optional] private data of jetty */ -} urma_jetty_cfg_t; - -typedef enum urma_jetty_grp_policy { - URMA_JETTY_GRP_POLICY_RR = 0, - URMA_JETTY_GRP_POLICY_HASH_HINT = 1 -} urma_jetty_grp_policy_t; - -typedef enum urma_target_type { - URMA_JFR = 0, - URMA_JETTY, - URMA_JETTY_GROUP -} urma_target_type_t; - -typedef struct urma_rjetty { - urma_jetty_id_t jetty_id; - urma_transport_mode_t trans_mode; - urma_jetty_grp_policy_t policy; - urma_target_type_t type; - urma_import_jetty_flag_t flag; - urma_tp_type_t tp_type; -} urma_rjetty_t; - -typedef struct urma_target_jetty { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jetty_id_t id; /* [Private] see urma_jetty_id. */ - uint64_t handle; - urma_transport_mode_t trans_mode; - urma_tp_t tp; - urma_target_type_t type; // todo supplementary target type - urma_import_jetty_flag_t flag; - urma_jetty_grp_policy_t policy; - urma_tp_type_t tp_type; -} urma_target_jetty_t; - -typedef enum urma_jetty_attr_mask { - JETTY_RX_THRESHOLD = 0x1, - JETTY_STATE = 0x1 << 1 -} urma_jetty_attr_mask_t; - -typedef struct urma_jetty_attr { - uint32_t mask; // mask value refer to urma_jetty_attr_mask_t - uint32_t rx_threshold; - urma_jetty_state_t state; -} urma_jetty_attr_t; - -typedef struct urma_jetty_opt { - bool is_actived; - urma_jfs_opt_t jfs_opt; - uint64_t reserved[URMA_OPT_REVERSED_NUM]; -} urma_jetty_opt_t; - -typedef struct urma_jetty { - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_jetty_id_t jetty_id; /* [Public] see urma_jetty_id. */ - urma_target_jetty_t *remote_jetty; /* [Private] Only valid for connection mode Jetty. - After the bind succeeds, the pointer is not null. */ - urma_jetty_cfg_t jetty_cfg; /* [Public] storage jetty config. */ - uint64_t handle; - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t async_events_acked; - urma_jetty_opt_t urma_jetty_opt; -} urma_jetty_t; - -typedef struct urma_notifier { - urma_context_t *urma_ctx; - int fd; - void *incomplete_tjetty_list; -} urma_notifier_t; - -typedef enum urma_notify_type { - URMA_IMPORT_JETTY_NOTIFY = 0, - URMA_BIND_JETTY_NOTIFY -} urma_notify_type_t; - -typedef struct urma_notify { - urma_notify_type_t type; - urma_status_t status; - uint64_t user_ctx; - union { - urma_target_jetty_t *tjetty; /* IMPORT */ - urma_jetty_t *jetty; /* BIND */ - }; -} urma_notify_t; - -typedef union urma_jetty_grp_flag { - struct { - uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE - 1: URMA_TOKEN_PLAIN_TEXT - 2: URMA_TOKEN_SIGNED - 3: URMA_TOKEN_ALL_ENCRYPTED - 4: URMA_TOKEN_RESERVED */ - uint32_t reserved : 29; - } bs; - uint32_t value; -} urma_jetty_grp_flag_t; - -typedef struct urma_jetty_grp_cfg { - char name[URMA_MAX_NAME]; - urma_jetty_grp_flag_t flag; - urma_token_t token_value; /* [Required] specify token_value for Jetty group. */ - uint32_t id; /* [Optional] specify Jetty group id. - If the parameter is 0, UMDK will assign a non_0 value. */ - urma_jetty_grp_policy_t policy; /* Hash or RR(on default) */ - uint64_t user_ctx; /* [Optional] private data of jetty */ -} urma_jetty_grp_cfg_t; - -struct urma_jetty_grp { - urma_context_t *urma_ctx; - urma_jetty_id_t jetty_grp_id; - urma_jetty_grp_cfg_t cfg; - uint32_t jetty_cnt; - urma_jetty_t **jetty_list; - pthread_mutex_t list_mutex; - uint64_t handle; /* use to quickly get uobj of jetty group in kernel module */ - pthread_mutex_t event_mutex; - pthread_cond_t event_cond; - uint32_t async_events_acked; -}; - -/* memory information */ -typedef struct urma_ubva { - urma_eid_t eid; - uint32_t uasid; // 24 bit for UB - uint64_t va; -} __attribute__((packed)) urma_ubva_t; - - -/* segment definition */ -typedef union urma_reg_seg_flag { - struct { - uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE. - 1: URMA_TOKEN_PLAIN_TEXT. - 2: URMA_TOKEN_SIGNED. - 3: URMA_TOKEN_ALL_ENCRYPTED. - 4: URMA_TOKEN_RESERVED. */ - uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. - 1: URMA_CACHEABLE. */ - uint32_t dsva : 1; - uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. - (0x1 << 1): URMA_ACCESS_READ. - (0x1 << 2): URMA_ACCESS_WRITE. - (0x1 << 3): URMA_ACCESS_ATOMIC. */ - uint32_t non_pin : 1; /* 0: segment pages pinned. - 1: segment pages non-pinned. */ - uint32_t user_iova : 1; /* 0: segment without user iova addr. - 1: segment with user iova addr. */ - uint32_t token_id_valid : 1; /* 0: token id in cfg is invalid. - 1: token id in cfg is valid. */ - uint32_t reserved : 18; - } bs; - uint32_t value; -} urma_reg_seg_flag_t; - -typedef union urma_seg_attr { - struct { - uint32_t token_policy : 3; /* 0: URMA_TOKEN_NONE. - 1: URMA_TOKEN_PLAIN_TEXT. - 2: URMA_TOKEN_SIGNED. - 3: URMA_TOKEN_ALL_ENCRYPTED. - 4: URMA_TOKEN_RESERVED. */ - uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. - 1: URMA_CACHEABLE. */ - uint32_t dsva : 1; - uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. - (0x1 << 1): URMA_ACCESS_READ. - (0x1 << 2): URMA_ACCESS_WRITE. - (0x1 << 3): URMA_ACCESS_ATOMIC. */ - uint32_t non_pin : 1; /* 0: segment pages pinned. - 1: segment pages non-pinned. */ - uint32_t user_iova : 1; /* 0: segment without user iova addr. - 1: segment with user iova addr. */ - uint32_t user_token_id : 1; /* 0: token_id is allocated and should be freed by urma. - 1: token_id is allocated by user in urma_seg_cfg. */ - uint32_t reserved : 18; - } bs; - uint32_t value; -} urma_seg_attr_t; - -typedef union urma_import_seg_flag { - struct { - uint32_t cacheable : 1; /* 0: URMA_NON_CACHEABLE. - 1: URMA_CACHEABLE. */ - uint32_t access : 6; /* (0x1): URMA_ACCESS_LOCAL_ONLY. - (0x1 << 1): URMA_ACCESS_READ. - (0x1 << 2): URMA_ACCESS_WRITE. - (0x1 << 3): URMA_ACCESS_ATOMIC. - */ - uint32_t mapping : 1; /* 0: URMA_SEG_NOMAP/ - 1: URMA_SEG_MAPPED. */ - uint32_t reserved : 24; - } bs; - uint32_t value; -} urma_import_seg_flag_t; - -typedef union urma_token_id_flag { - struct { - uint32_t multi_seg : 1; - uint32_t reserved : 31; - } bs; - uint32_t value; -} urma_token_id_flag_t; - -typedef struct urma_token_id { - urma_context_t *urma_ctx; - uint32_t token_id; - uint64_t handle; - urma_ref_t ref; - urma_token_id_flag_t flag; -} urma_token_id_t; - -typedef struct urma_seg_cfg { - uint64_t va; /* specify the address of the segment to be registered */ - uint64_t len; /* specify the length of the segment to be registered */ - urma_token_id_t *token_id; - urma_token_t token_value; /* Security authentication for access */ - urma_reg_seg_flag_t flag; - uint64_t user_ctx; - uint64_t iova; /* user iova, maybe zero-based-address */ -} urma_seg_cfg_t; - -typedef struct urma_seg { - urma_ubva_t ubva; /* [Public] ubva of segment. */ - uint64_t len; /* [Public] length of segment. */ - urma_seg_attr_t attr; /* [Public] include: access flag, token policy, cacheability. */ - uint32_t token_id; /* [Private] match token */ -} urma_seg_t; - -typedef struct urma_target_seg { - urma_seg_t seg; /* [Private] see urma_seg_t. */ - uint64_t user_ctx; /* [Private] private data of segment */ - uint64_t mva; /* [Public] mapping addr when import remote seg. */ - urma_context_t *urma_ctx; /* [Private] point to urma context. */ - urma_token_id_t *token_id; /* When registering seg, it is a valid address; when importing seg, it is NULL */ - uint64_t handle; -} urma_target_seg_t; - -typedef struct urma_user_ctl_in { - uint64_t addr; /* [Required] the address of the input parameter buffer. */ - uint32_t len; /* [Required] the length of the input parameter buffer */ - /* - * Opcode is simultaneously recognized by user and driver. - * User opcode should be distinguished with enum urma_user_ctl_ops_t, which is only used by URMA. - */ - uint32_t opcode; /* [Required] */ -} urma_user_ctl_in_t; - -typedef struct urma_user_ctl_out { - uint64_t addr; /* [Optional] the address of the output parameter buffer. */ - uint32_t len; /* [Optional] the length of the output parameter buffer */ - uint32_t reserved; -} urma_user_ctl_out_t; - -typedef struct urma_user_target_seg { - urma_seg_attr_t attr; - uint32_t token_id; - urma_token_t token_value; -} urma_user_tseg_t; - -typedef struct urma_sge { - uint64_t addr; - uint32_t len; - /* Driver verification - * remote seg: Either tseg or user tseg is not NULL. - * If both of them are not NULL, ignore user_tseg. - * local seg: user_tseg is not supported, tseg must not NULL. - */ - urma_target_seg_t *tseg; - urma_user_tseg_t *user_tseg; /* To support the exemption of import_seg */ -} urma_sge_t; - -typedef struct urma_sg { - urma_sge_t *sge; - uint32_t num_sge; -} urma_sg_t; - -/* wr for batch operations */ -typedef union urma_jfs_wr_flag { - struct { - uint32_t place_order : 2; /* 0: There is no order with other WR - 1: relax order - 2: strong order - 3: reserve */ /* see urma_place_order_t */ - uint32_t comp_order : 1; /* 0: There is no completion order with othwe WR. - 1: Completion order with previous WR. */ - uint32_t fence : 1; /* 0: There is not fence. - 1: Fence with previous read and atomic WR */ - uint32_t solicited_enable : 1; /* 0: There is not solicited. - 1: solicited. It will trigger an event on remote side */ - uint32_t complete_enable : 1; /* 0: Do not notify local process after the task is complete. - 1: Notify local process after the task is completed. */ - uint32_t inline_flag : 1; /* 0: not inline. - 1: inline data. */ - - uint32_t db_bypass : 1; - uint32_t has_drv_ext : 1; - uint32_t reserved : 23; - } bs; - uint32_t value; -} urma_jfs_wr_flag_t; - -typedef union urma_jfr_wr_flag { - struct { - uint32_t complete_type : 1; /* 0: Write completion record to jfc. - 1: Write completion record to complete flag (CF) address */ - uint32_t reserved : 31; - } bs; - uint32_t value; -} urma_jfr_wr_flag_t; - -typedef struct urma_rw_wr { - urma_sg_t src; /* including total data length. src is local va for write, and remote va for read. - only support 1 src sge in read operation. */ - urma_sg_t dst; /* dst is remote va for write, and local va for read. - only support 1 dst sge in write operation. */ - uint8_t target_hint; // required when using jetty group - uint64_t notify_data; // notify data or imm data in host byte order; -} urma_rw_wr_t; - -typedef struct urma_send_wr { - urma_sg_t src; // including total data length - uint8_t target_hint; // required when using jetty group - uint64_t imm_data; // imm_data in host byte order; - urma_target_seg_t *tseg; /* tseg used only when send with invalidate */ -} urma_send_wr_t; - -typedef struct urma_cas_wr { - urma_sge_t *dst; // len is the data length of CAS operation - urma_sge_t *src; // local address for destination original value writeback, len represents the buffer length. - union { // Value compared with destination value - uint64_t cmp_data; // When the len <= 8B, it indicates the CMP value. - uint64_t cmp_addr; // When the len > 8B, it indicates the data address. - }; - union { // If destination value is the same as cmp_data, destination value will be changed to swap_data - uint64_t swap_data; // When the len <= 8B, it indicates the swap value. - uint64_t swap_addr; // When the len > 8B, it indicates the data address. - }; -} urma_cas_wr_t; - -typedef struct urma_faa_wr { - urma_sge_t *dst; // len is the data length of FAA operation - urma_sge_t *src; // local address for destination original value writeback, len represents the buffer length. - union { - uint64_t operand; // When the len <= 8B, it indicates the operand value. - uint64_t operand_addr; // When the len > 8B, it indicates the data address. - }; -} urma_faa_wr_t; - -typedef struct urma_jfs_wr { - urma_opcode_t opcode; - urma_jfs_wr_flag_t flag; - urma_target_jetty_t *tjetty; - uint64_t user_ctx; // completion data - union { - urma_rw_wr_t rw; - urma_send_wr_t send; - urma_cas_wr_t cas; - urma_faa_wr_t faa; - }; - struct urma_jfs_wr *next; -} urma_jfs_wr_t; - -typedef struct urma_jfr_wr { - urma_sg_t src; // includeing buffer length - uint64_t user_ctx; // completion data, eg. wr id - struct urma_jfr_wr *next; -} urma_jfr_wr_t; - -typedef union urma_cr_flag { - struct { - uint8_t s_r : 1; // Indicate CR stands for sending or receiving, 0: send, 1: recv. - uint8_t jetty : 1; // Indicate CR stands for jetty or jfs/jfr, 0: jfs/jfr, 1: jetty. - uint8_t suspend_done : 1; // Real CR associated with the WR, user_ctx is valid - uint8_t flush_err_done : 1; // Real CR associated with the WR, user_ctx is valid - uint8_t reserved : 4; - } bs; - uint8_t value; -} urma_cr_flag_t; - -typedef struct urma_cr_token { - uint32_t token_id; - urma_token_t token_value; -} urma_cr_token_t; - -typedef struct urma_cr { - urma_cr_status_t status; - uint64_t user_ctx; // user_ctx related to a work request - urma_cr_opcode_t opcode; // Only for recv - urma_cr_flag_t flag; // indicate notify data or swap data is valid or not - uint32_t completion_len; // The number of bytes transferred - - uint32_t local_id; // Local jetty ID, or JFS ID, or JFR ID, depends on flag - urma_jetty_id_t remote_id; // Valid only for receiving CR. The remote jetty where the - // received msg comes from Jetty ID or JFS ID, depends on flag. - union { - uint64_t imm_data; // Valid only for receiving CR: send/write/read with imm. - urma_cr_token_t invalid_token; // Valid only for receiving CR: send with invalidate. - }; - uint32_t tpn; // TP number or TPG number - uintptr_t user_data; // e.g. use as pointer to local jetty struct. -} urma_cr_t; - -typedef struct urma_async_event { - /* may be SW queue error, may be HW port error */ - const urma_context_t *urma_ctx; - union { - urma_jfc_t *jfc; - urma_jfs_t *jfs; - urma_jfr_t *jfr; - urma_jetty_t *jetty; - urma_jetty_grp_t *jetty_grp; - uint32_t port_id; - uint32_t eid_idx; - } element; - urma_async_event_type_t event_type; - void *priv; -} urma_async_event_t; - -/* URMA region definition */ -typedef union urma_ur_attr { - struct { - uint32_t reserved : 32; - } bs; - uint32_t value; -} urma_ur_attr_t; - -typedef union urma_import_ur_flag { - struct { - uint32_t mapping : 2; /* 0: URMA_SEG_NOMAP - 1: URMA_SEG_MAPPED_MVA - 2: URMA_SEG_MAPPED_DSVA */ - uint32_t reserved : 30; - } bs; - uint32_t value; -} urma_import_ur_flag_t; - -#define UR_NAME_MAX_LEN 256 -#define JFR_NAME_MAX_LEN 256 -#define URMA_MAX_SEGS_PER_UR_OPT 64 // Max number of SEGS per attach/detach ur - -// In parametre for create UR -typedef struct urma_ur { - char name[UR_NAME_MAX_LEN]; // UR url name - uint64_t size; - urma_ur_attr_t attr; // include: access flag, token policy, cacheability, dsva - uint64_t token; - uint64_t user_ctx; -} urma_ur_t; - -// Out parametre for import UR -typedef struct urma_target_ur { - char name[UR_NAME_MAX_LEN]; // UR url name - uint64_t size; - urma_import_ur_flag_t flag; // include: access flag, token policy, cacheability, dsva - urma_target_seg_t **tseg_list; - uint32_t cnt; -} urma_target_ur_t; - -typedef struct urma_seg_info { - urma_seg_t seg; - uint32_t idx_in_ur; -} urma_seg_info_t; - -// Out parametre for lookup UR -typedef struct urma_ur_info { - char name[UR_NAME_MAX_LEN]; // UR url name - uint64_t size; // limit size, by byte - urma_ur_attr_t attr; // include: access flag, token policy, cacheability, dsva - uint32_t cnt; // - urma_seg_info_t seg_list[0]; // cnt * sizeof(urma_seg_info_t) -} urma_ur_info_t; - -typedef struct urma_jfr_info { - char name[JFR_NAME_MAX_LEN]; // jfr url name - urma_eid_t eid; - uint32_t uasid; - uint32_t id; -} urma_jfr_info_t; - -typedef union urma_tp_cfg_flag { - struct { - uint32_t target : 1; /* 0: initiator, 1: target */ - uint32_t loopback : 1; - uint32_t dca_enable : 1; - /* for the bonding case, the hardware selects the port - * ignoring the port of the tp context and - * selects the port based on the hash value - * along with the information in the bonding group table. - */ - uint32_t bonding : 1; - uint32_t reserved : 28; - } bs; - uint32_t value; -} urma_tp_cfg_flag_t; - -typedef struct urma_tp_cfg { - urma_tp_cfg_flag_t flag; /* flag of initial tp */ - /* transport layer attributes */ - urma_transport_mode_t trans_mode; - uint8_t retry_num; - uint8_t retry_factor; /* for calculate the time slot to retry */ - uint8_t ack_timeout; - uint8_t dscp; - uint32_t oor_cnt; /* OOR window size: by packet */ -} urma_tp_cfg_t; - -typedef union urma_tp_attr_mask { - struct { - uint32_t flag : 1; - uint32_t peer_tpn : 1; - uint32_t state : 1; - uint32_t tx_psn : 1; - uint32_t rx_psn : 1; /* modify both rx psn and tx psn when restore tp */ - uint32_t mtu : 1; - uint32_t cc_pattern_idx : 1; - uint32_t oos_cnt : 1; - uint32_t local_net_addr_idx : 1; - uint32_t peer_net_addr : 1; - uint32_t data_udp_start : 1; - uint32_t ack_udp_start : 1; - uint32_t udp_range : 1; - uint32_t hop_limit : 1; - uint32_t flow_label : 1; - uint32_t port_id : 1; - uint32_t mn : 1; - uint32_t peer_trans_type : 1; - uint32_t reserved : 14; - } bs; - uint32_t value; -} urma_tp_attr_mask_t; - -typedef union urma_tp_mod_flag { - struct { - uint32_t oor_en : 1; /* out of order receive, 0: disable 1: enable */ - uint32_t sr_en : 1; /* selective retransmission, 0: disable 1: enable */ - uint32_t cc_en : 1; /* congestion control algorithm, 0: disable 1: enable */ - uint32_t cc_alg : 4; /* The value is ubcore_tp_cc_alg_t */ - uint32_t spray_en : 1; /* spray with src udp port, 0: disable 1: enable */ - uint32_t clan : 1; /* clan domain, 0: disable 1: enable */ - uint32_t reserved : 23; - } bs; - uint32_t value; -} urma_tp_mod_flag_t; - -typedef enum urma_tp_state { - URMA_TP_STATE_RESET = 0, - URMA_TP_STATE_PASSIVE, - URMA_TP_STATE_ACTIVE, - URMA_TP_STATE_BRAKE, - URMA_TP_STATE_ERROR -} urma_tp_state_t; - -typedef struct urma_net_addr { - sa_family_t sin_family; /* AF_INET/AF_INET6 */ - union { - struct in_addr in4; - struct in6_addr in6; - }; - uint64_t vlan; - uint8_t mac[URMA_MAC_BYTES]; - uint32_t prefix_len; -} urma_net_addr_t; - -typedef struct urma_net_addr_info { - urma_net_addr_t netaddr; - uint32_t index; -} urma_net_addr_info_t; - -typedef struct urma_tp_attr { - urma_tp_mod_flag_t flag; - uint32_t peer_tpn; - urma_tp_state_t state; - uint32_t tx_psn; - uint32_t rx_psn; - urma_mtu_t mtu; - uint8_t cc_pattern_idx; - uint32_t oos_cnt; /* out of standing packet cnt */ - uint32_t local_net_addr_idx; - urma_net_addr_t peer_net_addr; - uint16_t data_udp_start; - uint16_t ack_udp_start; - uint8_t udp_range; - uint8_t hop_limit; - uint32_t flow_label; - uint8_t port_id; - uint8_t mn; /* 0~15, a packet contains only one msg if mn is set as 0 */ - urma_transport_type_t peer_trans_type; -} urma_tp_attr_t; - -typedef union urma_get_tp_cfg_flag { - struct { - uint32_t ctp : 1; - uint32_t rtp : 1; - uint32_t utp : 1; - uint32_t uboe : 1; - uint32_t pre_defined : 1; - uint32_t dynamic_defined : 1; - uint32_t udp : 5; - uint32_t group_id : 15; - uint32_t reserved : 6; - } bs; - uint32_t value; -} urma_get_tp_cfg_flag_t; - -typedef struct urma_get_tp_cfg { - urma_get_tp_cfg_flag_t flag; - urma_transport_mode_t trans_mode; - urma_eid_t local_eid; - urma_eid_t peer_eid; -} urma_get_tp_cfg_t; - -typedef struct urma_tp_info { - uint64_t tp_handle; -} urma_tp_info_t; - -typedef struct urma_active_tp_attr { - uint32_t tx_psn; - uint32_t rx_psn; - uint64_t reserved; -} urma_active_tp_attr_t; - -typedef struct urma_active_tp_cfg { - uint64_t tp_handle; - uint64_t peer_tp_handle; - uint64_t tag; - urma_active_tp_attr_t tp_attr; -} urma_active_tp_cfg_t; - -typedef struct urma_active_tp_cfg urma_import_jetty_ex_cfg_t; -typedef struct urma_active_tp_cfg urma_import_jfr_ex_cfg_t; -typedef struct urma_active_tp_cfg urma_bind_jetty_ex_cfg_t; - -#pragma pack(1) -typedef struct urma_tp_attr_value { - uint8_t retry_times_init : 3; - uint8_t at : 5; - uint8_t sip[URMA_IP_ADDR_BYTES]; - uint8_t dip[URMA_IP_ADDR_BYTES]; - uint8_t sma[URMA_MAC_BYTES]; - uint8_t dma[URMA_MAC_BYTES]; - uint16_t vlan_id : 12; - uint8_t vlan_en : 1; - uint8_t dscp : 6; - uint8_t at_times : 5; - uint8_t sl : 4; - uint8_t ttl; - uint16_t ack_udp_srcport; - uint16_t data_udp_srcport; - uint8_t udp_srcport_range : 4; - uint8_t spray_en : 1; - uint8_t udp_global_en : 1; - uint8_t reserve_0 : 2; - uint16_t sl_bitmap; - uint8_t dscp_config_mode : 1; - uint8_t reserve_1 : 7; - uint8_t reserved[70]; -} urma_tp_attr_value_t; -#pragma pack() - -/* callback information */ -typedef void (*urma_async_event_cb)(urma_async_event_t *event, void *cb_arg); - -/* callback function type for urma_advise_jfr/jetty_async. User must define callback function to handle result. - advise_result is the result of advise jfr or jetty */ -typedef void (*urma_advise_async_cb_func)(urma_status_t advise_result, void *cb_arg); - -typedef enum urma_vlog_level { - URMA_VLOG_LEVEL_EMERG = 0, - URMA_VLOG_LEVEL_ALERT = 1, - URMA_VLOG_LEVEL_CRIT = 2, - URMA_VLOG_LEVEL_ERR = 3, - URMA_VLOG_LEVEL_WARNING = 4, - URMA_VLOG_LEVEL_NOTICE = 5, - URMA_VLOG_LEVEL_INFO = 6, - URMA_VLOG_LEVEL_DEBUG = 7, - URMA_VLOG_LEVEL_MAX = 8, -} urma_vlog_level_t; - -typedef void (*urma_log_cb_t)(int level, char *message); - -/* location log callback function definition */ -typedef void (*urma_loc_log_cb)(int level, const char *file, const char *function, int line, char *message); - -#ifdef __cplusplus -} -#endif - -#endif // URMA_TYPES_H diff --git a/src/brpc/urma/urma_bonding.h b/src/brpc/urma/urma_bonding.h index 6e2e4a884f..6332db8495 100644 --- a/src/brpc/urma/urma_bonding.h +++ b/src/brpc/urma/urma_bonding.h @@ -19,11 +19,11 @@ #define BRPC_URMA_URMA_BONDING_H // urma_ubagg.h is a provider-private extension and is not shipped by every -// URMA SDK (including brpc's bundled mock SDK). Keep the dependency optional -// so non-bonding devices and mock builds continue to work. +// UMDK installation. Keep the dependency optional so non-bonding devices and +// mock builds continue to work. #if defined(__has_include) -#if __has_include("urma/urma_ubagg.h") -#include "urma/urma_ubagg.h" +#if __has_include("urma_ubagg.h") +#include "urma_ubagg.h" #define BRPC_URMA_HAS_BONDING_EXT 1 #endif #endif diff --git a/src/brpc/urma/urma_endpoint.cpp b/src/brpc/urma/urma_endpoint.cpp index 6b817ea706..bb8914d7d2 100644 --- a/src/brpc/urma/urma_endpoint.cpp +++ b/src/brpc/urma/urma_endpoint.cpp @@ -43,7 +43,7 @@ #include "bthread/bthread.h" #include "bthread/butex.h" -#include "urma/urma_api.h" +#include "urma_api.h" #include "brpc/input_messenger.h" #include "brpc/socket.h" @@ -593,7 +593,7 @@ int UrmaEndpoint::ImportPeer(const ParsedHello& peer) { urma_import_jetty(ctx, &bonding_remote.base, &token); #else LOG(ERROR) << "Bonding remote jetty import requires provider header " - "urma/urma_ubagg.h"; + "urma_ubagg.h"; errno = ENOTSUP; #endif } else { diff --git a/src/brpc/urma/urma_endpoint.h b/src/brpc/urma/urma_endpoint.h index 382839dfd8..0b87d06d24 100644 --- a/src/brpc/urma/urma_endpoint.h +++ b/src/brpc/urma/urma_endpoint.h @@ -34,8 +34,8 @@ #if BRPC_WITH_URMA -#include "urma/urma_api.h" -#include "urma/urma_types.h" +#include "urma_api.h" +#include "urma_types.h" #include "brpc/urma/urma_handshake.h" #include "brpc/urma/urma_handshake.pb.h" diff --git a/src/brpc/urma/urma_handshake.h b/src/brpc/urma/urma_handshake.h index 954faae711..f406bfa1b9 100644 --- a/src/brpc/urma/urma_handshake.h +++ b/src/brpc/urma/urma_handshake.h @@ -23,7 +23,7 @@ #if BRPC_WITH_URMA -#include "urma/urma_types.h" +#include "urma_types.h" namespace brpc { namespace urma { diff --git a/src/brpc/urma/urma_helper.cpp b/src/brpc/urma/urma_helper.cpp index 4b31314877..ceeeae9a1b 100644 --- a/src/brpc/urma/urma_helper.cpp +++ b/src/brpc/urma/urma_helper.cpp @@ -41,8 +41,8 @@ #include "butil/scoped_lock.h" #include "butil/synchronization/lock.h" -#include "urma/urma_api.h" -#include "urma/urma_types.h" +#include "urma_api.h" +#include "urma_types.h" #include "brpc/urma/urma_bonding.h" #include "brpc/urma/urma_endpoint.h" @@ -230,7 +230,7 @@ bool ConfigureBondingMode(const std::string& device_name) { return true; #else LOG(ERROR) << "URMA bonding device " << device_name - << " requires provider header urma/urma_ubagg.h"; + << " requires provider header urma_ubagg.h"; errno = ENOTSUP; return false; #endif diff --git a/src/brpc/urma/urma_helper.h b/src/brpc/urma/urma_helper.h index 4fc81a0beb..871f1a6354 100644 --- a/src/brpc/urma/urma_helper.h +++ b/src/brpc/urma/urma_helper.h @@ -28,8 +28,8 @@ #if BRPC_WITH_URMA -#include "urma/urma_api.h" -#include "urma/urma_types.h" +#include "urma_api.h" +#include "urma_types.h" namespace brpc { DECLARE_bool(usercode_in_coroutine); diff --git a/test/brpc_urma_unittest.cpp b/test/brpc_urma_unittest.cpp index b5f68b850e..de3ce31228 100644 --- a/test/brpc_urma_unittest.cpp +++ b/test/brpc_urma_unittest.cpp @@ -22,11 +22,11 @@ #if BRPC_WITH_URMA #include "butil/atomicops.h" #include "butil/sys_byteorder.h" -#include "urma/urma_api.h" +#include "urma_api.h" #include "brpc/urma/urma_handshake.h" #include "brpc/urma/urma_handshake.pb.h" #include "brpc/urma/urma_helper.h" -#include "urma/urma_types.h" +#include "urma_types.h" using namespace brpc; @@ -297,7 +297,7 @@ class UrmaMockTest : public ::testing::Test { EXPECT_EQ(URMA_SUCCESS, urma_uninit()); _owns_urma_init = false; } - GTEST_SKIP() << "UrmaMockTest requires the bundled URMA mock"; + GTEST_SKIP() << "UrmaMockTest requires the URMA link-time mock"; } }