|
CIRCT 23.0.0git
|

Classes | |
| struct | ChannelMeta |
| struct | ReadCallbackEntry |
Public Member Functions | |
| Impl (Logger &logger, const std::string &hostname, uint16_t port) | |
| ~Impl () | |
| Logger & | getLogger () |
| uint32_t | getEsiVersion () const |
| std::vector< uint8_t > | getCompressedManifest () const |
| bool | getChannelDesc (const std::string &name, RpcClient::ChannelDesc &desc) const |
| std::vector< RpcClient::ChannelDesc > | listChannels () const |
| void | writeToServer (const std::string &channelName, const MessageData &data) |
| std::unique_ptr< RpcClient::ReadChannelConnection > | connectClientReceiver (const std::string &channelName, RpcClient::ReadCallback callback) |
| void | unsubscribe (uint64_t channelId) |
| void | unregisterCallback (uint64_t channelId) |
Private Types | |
| enum class | OpenState |
Private Member Functions | |
| void | onMessage (const ix::WebSocketMessagePtr &msg) |
| void | handleControlFrame (const std::string &text) |
| void | handleBinaryFrame (const std::string &data) |
| void | failAllPending (const std::string &reason) |
| json | call (const std::string &method, json params) |
| Issue a JSON-RPC style request and synchronously await the response. | |
| void | transportLoop () |
Private Attributes | |
| std::string | host |
| Logger & | logger |
| ix::WebSocket | ws |
| uint32_t | esiVersion = 0 |
| std::vector< uint8_t > | manifest |
| std::unordered_map< std::string, ChannelMeta > | channelsByName |
| std::unordered_map< uint64_t, ChannelMeta > | channelsById |
| std::mutex | pendingMutex |
| std::atomic< uint64_t > | nextRequestId {1} |
| std::unordered_map< uint64_t, std::shared_ptr< std::promise< json > > > | pending |
| std::mutex | readCallbacksMutex |
| std::unordered_map< uint64_t, std::shared_ptr< ReadCallbackEntry > > | readCallbacks |
| utils::ReadyIdSet< uint64_t > | readyIds |
| std::thread | transportThread |
| std::mutex | openMutex |
| std::condition_variable | openCV |
| enum RpcClient::Impl::OpenState | Pending |
| std::string | openError |
| std::mutex | lastServerErrorMutex |
| std::string | lastServerError |
| std::atomic< bool > | disconnecting {false} |
| ::esi::cosim::FaultStash | faultStash |
Definition at line 53 of file RpcClient.cpp.
|
strongprivate |
Definition at line 156 of file RpcClient.cpp.
| esi::backends::cosim::RpcClient::Impl::Impl | ( | Logger & | logger, |
| const std::string & | hostname, | ||
| uint16_t | port | ||
| ) |
Definition at line 215 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::call(), esi::backends::cosim::RpcClient::Impl::channelsById, esi::backends::cosim::RpcClient::Impl::channelsByName, esi::backends::cosim::RpcClient::Impl::ChannelMeta::direction, esi::backends::cosim::RpcClient::Impl::esiVersion, esi::backends::cosim::RpcClient::Impl::host, esi::backends::cosim::RpcClient::Impl::ChannelMeta::id, esi::backends::cosim::RpcClient::Impl::manifest, esi::backends::cosim::RpcClient::Impl::ChannelMeta::name, esi::backends::cosim::RpcClient::Impl::onMessage(), esi::backends::cosim::RpcClient::Impl::openCV, esi::backends::cosim::RpcClient::Impl::openError, esi::backends::cosim::RpcClient::Impl::openMutex, esi::backends::cosim::RpcClient::ToClient, esi::backends::cosim::RpcClient::ToServer, esi::backends::cosim::RpcClient::Impl::transportLoop(), esi::backends::cosim::RpcClient::Impl::transportThread, esi::backends::cosim::RpcClient::Impl::ChannelMeta::type, and esi::backends::cosim::RpcClient::Impl::ws.
| esi::backends::cosim::RpcClient::Impl::~Impl | ( | ) |
Definition at line 282 of file RpcClient.cpp.
|
private |
Issue a JSON-RPC style request and synchronously await the response.
Throws on error (transport or server-reported).
Definition at line 504 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::call().
Referenced by esiaccel.types.FunctionPort::__call__(), esi::backends::cosim::RpcClient::Impl::call(), and esi::backends::cosim::RpcClient::Impl::Impl().
| std::unique_ptr< RpcClient::ReadChannelConnection > esi::backends::cosim::RpcClient::Impl::connectClientReceiver | ( | const std::string & | channelName, |
| RpcClient::ReadCallback | callback | ||
| ) |
Definition at line 601 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::connectClientReceiver(), and esi::backends::cosim::RpcClient::ToClient.
Referenced by esi::backends::cosim::RpcClient::Impl::connectClientReceiver().
|
private |
Definition at line 484 of file RpcClient.cpp.
References esi::Logger::debug(), and esi::backends::cosim::RpcClient::Impl::failAllPending().
Referenced by esi::backends::cosim::RpcClient::Impl::failAllPending().
| bool esi::backends::cosim::RpcClient::Impl::getChannelDesc | ( | const std::string & | name, |
| RpcClient::ChannelDesc & | desc | ||
| ) | const |
Definition at line 572 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::ChannelDesc::dir, esi::backends::cosim::RpcClient::Impl::getChannelDesc(), esi::backends::cosim::RpcClient::ChannelDesc::name, and esi::backends::cosim::RpcClient::ChannelDesc::type.
Referenced by esi::backends::cosim::RpcClient::Impl::getChannelDesc().
|
inline |
Definition at line 61 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::manifest.
|
inline |
Definition at line 60 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::esiVersion.
|
inline |
Definition at line 58 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::logger.
|
private |
Definition at line 453 of file RpcClient.cpp.
References esi::cosim::parseDataFrame(), and esi::Logger::warning().
|
private |
Definition at line 373 of file RpcClient.cpp.
References esi::Logger::debug().
| std::vector< RpcClient::ChannelDesc > esi::backends::cosim::RpcClient::Impl::listChannels | ( | ) | const |
Definition at line 583 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::listChannels().
Referenced by esi::backends::cosim::RpcClient::Impl::listChannels().
|
private |
Definition at line 308 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::onMessage().
Referenced by esi::backends::cosim::RpcClient::Impl::Impl(), and esi::backends::cosim::RpcClient::Impl::onMessage().
|
private |
Definition at line 668 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().
| void esi::backends::cosim::RpcClient::Impl::unregisterCallback | ( | uint64_t | channelId | ) |
Definition at line 645 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::unregisterCallback().
Referenced by esi::backends::cosim::RpcClient::Impl::unregisterCallback().
| void esi::backends::cosim::RpcClient::Impl::unsubscribe | ( | uint64_t | channelId | ) |
Definition at line 633 of file RpcClient.cpp.
References esi::backends::cosim::RpcClient::Impl::unsubscribe().
Referenced by esi::backends::cosim::RpcClient::Impl::unsubscribe().
| void esi::backends::cosim::RpcClient::Impl::writeToServer | ( | const std::string & | channelName, |
| const MessageData & | data | ||
| ) |
Definition at line 549 of file RpcClient.cpp.
References esi::cosim::buildDataFrame(), esi::backends::cosim::RpcClient::ToServer, and esi::backends::cosim::RpcClient::Impl::writeToServer().
Referenced by esi::backends::cosim::RpcClient::Impl::writeToServer().
|
private |
Definition at line 105 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().
|
private |
Definition at line 104 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().
|
private |
Definition at line 166 of file RpcClient.cpp.
|
private |
Definition at line 102 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::getEsiVersion(), and esi::backends::cosim::RpcClient::Impl::Impl().
|
private |
Definition at line 170 of file RpcClient.cpp.
|
private |
Definition at line 97 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().
|
private |
Definition at line 164 of file RpcClient.cpp.
|
private |
Definition at line 163 of file RpcClient.cpp.
|
private |
Definition at line 98 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::getLogger().
|
private |
|
private |
Definition at line 109 of file RpcClient.cpp.
|
private |
Definition at line 155 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().
|
private |
Definition at line 157 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().
|
private |
Definition at line 154 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().
|
private |
Definition at line 110 of file RpcClient.cpp.
|
private |
|
private |
Definition at line 108 of file RpcClient.cpp.
|
private |
Definition at line 143 of file RpcClient.cpp.
|
private |
Definition at line 141 of file RpcClient.cpp.
|
private |
Definition at line 147 of file RpcClient.cpp.
|
private |
Definition at line 148 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().
|
private |
Definition at line 99 of file RpcClient.cpp.
Referenced by esi::backends::cosim::RpcClient::Impl::Impl().