/usr/share/Ice-3.5.1/slice/Ice/ImplicitContext.ice is in ice35-slice 3.5.1-5.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | // **********************************************************************
//
// Copyright (c) 2003-2013 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
#pragma once
[["cpp:header-ext:h"]]
#include <Ice/LocalException.ice>
#include <Ice/Current.ice>
module Ice
{
/**
*
* An interface to associate implict contexts with communicators.
*
* When you make a remote invocation without an explicit {@link Context} parameter,
* Ice uses the per-proxy {@link Context} (if any) combined with the <tt>ImplicitContext</tt>
* associated with the communicator.</p>
* <p>Ice provides several implementations of <tt>ImplicitContext</tt>. The implementation
* used depends on the value of the <tt>Ice.ImplicitContext</tt> property.
* <dl>
* <dt><tt>None</tt> (default)</dt>
* <dd>No implicit context at all.</dd>
* <dt><tt>PerThread</tt></dt>
* <dd>The implementation maintains a {@link Context} per thread.</dd>
* <dt><tt>Shared</tt></dt>
* <dd>The implementation maintains a single {@link Context} shared
* by all threads.</dd>
* </dl><p>
*
* <tt>ImplicitContext</tt> also provides a number of operations to create, update or retrieve
* an entry in the underlying context without first retrieving a copy of the entire
* context. These operations correspond to a subset of the <tt>java.util.Map</tt> methods,
* with <tt>java.lang.Object</tt> replaced by <tt>string</tt> and null replaced by the empty-string.
*
**/
local interface ImplicitContext
{
/**
* Get a copy of the underlying context.
* @return A copy of the underlying context.
*
**/
["cpp:const"] Context getContext();
/**
* Set the underlying context.
*
* @param newContext The new context.
*
**/
void setContext(Context newContext);
/**
* Check if this key has an associated value in the underlying context.
*
* @param key The key.
*
* @return True if the key has an associated value, False otherwise.
*
**/
["cpp:const"] bool containsKey(string key);
/**
* Get the value associated with the given key in the underlying context.
* Returns an empty string if no value is associated with the key.
* {@link #containsKey} allows you to distinguish between an empty-string value and
* no value at all.
*
* @param key The key.
*
* @return The value associated with the key.
*
**/
["cpp:const"] string get(string key);
/**
* Create or update a key/value entry in the underlying context.
*
* @param key The key.
*
* @param value The value.
*
* @return The previous value associated with the key, if any.
*
**/
string put(string key, string value);
/**
* Remove the entry for the given key in the underlying context.
*
* @param key The key.
*
* @return The value associated with the key, if any.
*
**/
string remove(string key);
};
};
|