Skip to main content
Skip table of contents

Explicit Request Contexts

Request contexts allow a client to send additional data to the server without having to include this data as input parameters in the operation’s Slice definition. They provide a lightweight mechanism for passing metadata alongside normal request arguments.

The Ice context demo provides a complete example of using request context in C++.

Using the Slice greeter definitions once again:

SLICE
module VisitorCenter
{
    interface Greeter
    {
        string greet(string name);
    }
}

A client application can set a request context to send additional metadata:

CPP
// We request a French greeting by setting the context parameter.
string greeting = greeter->greet(name, {{"language", "fr"}});

On the server side, the request context is available through the ctx member of the Ice::Current parameter:

CPP
string
Server::Chatbot::greet(string name, const Ice::Current& current)
{
    // We retrieve the value for the language entry in the context.
    auto p = current.ctx.find("language");
    string language = p != current.ctx.end() ? p->second : "";
    ...
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.