wex v26.10.0
wex::lsp::json_rpc Class Reference

Handles JSON-RPC 2.0 protocol for LSP. More...

#include <wex/lsp/json-rpc.h>

Public Member Functions

 json_rpc (wxEvtHandler *eh=nullptr)
 Default constructor, provide event handler.
json_rpc_message decode (const std::string &data) const
 Decodes a JSON-RPC message from string.
std::string encode_error (int id, int code, const std::string &message) const
 Encodes a JSON-RPC error response to string.
std::string encode_notification (const std::string &method, const boost::json::object &params=boost::json::object()) const
 Encodes a JSON-RPC notification to string.
std::string encode_request (const std::string &method, const boost::json::object &params=boost::json::object()) const
 Encodes a JSON-RPC request to string.
std::string encode_response (int id, const boost::json::object &result) const
 Encodes a JSON-RPC response to string.
bool handle_response (const json_rpc_message &msg)
 Handles an incoming response.
void register_handler (response_handler &handler)
 Registers a response handler for last request ID.

Static Public Member Functions

static std::string header_part_content_field ()
 Returns the JSON-RPC fixed content field header.

Detailed Description

Handles JSON-RPC 2.0 protocol for LSP.

Member Function Documentation

◆ decode()

json_rpc_message wex::lsp::json_rpc::decode ( const std::string & data) const

Decodes a JSON-RPC message from string.

Returns parsed message, or empty if parsing failed.

Parameters
dataRaw message data

◆ encode_error()

std::string wex::lsp::json_rpc::encode_error ( int id,
int code,
const std::string & message ) const

Encodes a JSON-RPC error response to string.

Return encoded message string.

Parameters
idrequest ID
codeerror code
messageerror message

◆ encode_notification()

std::string wex::lsp::json_rpc::encode_notification ( const std::string & method,
const boost::json::object & params = boost::json::object() ) const

Encodes a JSON-RPC notification to string.

Returns encoded message string.

Parameters
methodRPC method name
paramsmethod parameters

◆ encode_request()

std::string wex::lsp::json_rpc::encode_request ( const std::string & method,
const boost::json::object & params = boost::json::object() ) const

Encodes a JSON-RPC request to string.

Returns encoded message string.

Parameters
methodRPC method name
paramsmethod parameters

◆ encode_response()

std::string wex::lsp::json_rpc::encode_response ( int id,
const boost::json::object & result ) const

Encodes a JSON-RPC response to string.

Returns encoded message string.

Parameters
idrequest ID
resultresult

◆ handle_response()

bool wex::lsp::json_rpc::handle_response ( const json_rpc_message & msg)

Handles an incoming response.

Returns false if msg is not handled.

◆ register_handler()

void wex::lsp::json_rpc::register_handler ( response_handler & handler)

Registers a response handler for last request ID.

Parameters
handlercallback to invoke when response arrives