{ "format": 1, "id": "saw-i_rpc_server", "kind": "class", "name": "i_rpc_server", "namespace": "saw", "module": "remote", "header": "modules/remote/c++/remote.hpp", "brief_description": "Registry handle for an rpc server of unknown interface.", "detailed_description": [ [ "The counterpart of", {"name": "i_data_server", "id": "saw-i_data_server"}, "for the rpc layer. It exists so a remote can keep servers of different interfaces in one map and hand back the right one when a client requests it." ], [ "Here the class id is the interface hash together with the encoding hash, so connecting with a different interface than the one being served fails instead of reinterpreting the server." ] ], "templates": [ { "name": "Remote", "kind": "type", "brief_description": "Tag type of the backend." } ], "functions": { "saw-i_rpc_server-get_class_id": { "id": "saw-i_rpc_server-get_class_id", "name": "get_class_id", "type": ["std::pair< uint32_t, uint32_t >"], "const": true, "virtual": true, "brief_description": "Interface hash and encoding hash of the server behind this handle." }, "saw-i_rpc_server-cast_to": { "id": "saw-i_rpc_server-cast_to", "name": "cast_to", "type": ["error_or< ptr< To > >"], "brief_description": "Recovers the concrete server.", "detailed_description": [ ["Fails with invalid_state if the class ids don't match."] ], "templates": [ { "name": "To", "kind": "type", "brief_description": "The concrete rpc server expected behind this handle." } ] } } }