Up to now, we have tacitly ignored the trailing parameter of type Ice::Current that is passed to each skeleton operation on the server side. The Current structure is defined as follows:

{zcode:slice}
module Ice {
    local dictionary<string, string> Context;

    enum OperationMode { Normal, \Idempotent };

    local struct Current {
        ObjectAdapter   adapter;
        Connection      con;
        Identity        id;
        string          facet;
        string          operation;
        OperationMode   mode;
        Context         ctx;
        int             requestId;
        EncodingVersion encoding;
    };
};
{zcode}

Note that the Current value provides access to information about the currently executing request to the implementation of an operation in the server:

If you implement your server such that it uses a separate servant for each Ice object, the contents of Current are not particularly interesting. (You would most likely access Current to read the adapter member, for example, to activate or deactivate a servant.) However, as we will see in our discussion of default servants and servant locators, the Current object is essential for more sophisticated (and more scalable) servant implementations.

See Also