/usr/share/ice/slice/Ice/Plugin.ice is in zeroc-ice-slice 3.7.0-5.
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 109 110 111 112 113 114 115 116 117 118 119 120 | // **********************************************************************
//
// Copyright (c) 2003-2017 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
[["ice-prefix", "cpp:header-ext:h", "cpp:dll-export:ICE_API", "objc:header-dir:objc", "objc:dll-export:ICE_API", "python:pkgdir:Ice"]]
#include <Ice/LoggerF.ice>
#include <Ice/BuiltinSequences.ice>
#ifndef __SLICE2JAVA_COMPAT__
[["java:package:com.zeroc"]]
#endif
["objc:prefix:ICE"]
module Ice
{
/**
*
* A communicator plug-in. A plug-in generally adds a feature to a
* communicator, such as support for a protocol.
*
* The communicator loads its plug-ins in two stages: the first stage
* creates the plug-ins, and the second stage invokes {@link Plugin#initialize} on
* each one.
*
**/
local interface Plugin
{
/**
*
* Perform any necessary initialization steps.
*
**/
void initialize();
/**
*
* Called when the communicator is being destroyed.
*
**/
void destroy();
}
/**
*
* Each communicator has a plug-in manager to administer the set of
* plug-ins.
*
**/
local interface PluginManager
{
/**
*
* Initialize the configured plug-ins. The communicator automatically initializes
* the plug-ins by default, but an application may need to interact directly with
* a plug-in prior to initialization. In this case, the application must set
* <tt>Ice.InitPlugins=0</tt> and then invoke {@link #initializePlugins}
* manually. The plug-ins are initialized in the order in which they are loaded.
* If a plug-in raises an exception during initialization, the communicator
* invokes destroy on the plug-ins that have already been initialized.
*
* @throws InitializationException Raised if the plug-ins have already been initialized.
*
**/
void initializePlugins();
/**
*
* Get a list of plugins installed.
*
* @return The names of the plugins installed.
*
* @see #getPlugin
*
**/
StringSeq getPlugins();
/**
*
* Obtain a plug-in by name.
*
* @param name The plug-in's name.
*
* @return The plug-in.
*
* @throws NotRegisteredException Raised if no plug-in is found with the given name.
*
**/
Plugin getPlugin(string name);
/**
*
* Install a new plug-in.
*
* @param name The plug-in's name.
*
* @param pi The plug-in.
*
* @throws AlreadyRegisteredException Raised if a plug-in already exists with the given name.
*
**/
void addPlugin(string name, Plugin pi);
/**
*
* Called when the communicator is being destroyed.
*
**/
void destroy();
}
}
|