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 121 122 123 124 125 126 127
|
// **********************************************************************
//
// Copyright (c) 2003-2007 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.
//
// **********************************************************************
#ifndef ICE_GRID_QUERY_ICE
#define ICE_GRID_QUERY_ICE
#include <Ice/Identity.ice>
#include <Ice/BuiltinSequences.ice>
#include <IceGrid/Exception.ice>
/**
*
* IceGrid is a server activation and deployment tool. IceGrid,
* simplifies the complex task of deploying applications in a
* heterogeneous computer network.
*
**/
module IceGrid
{
/**
*
* Determines which load sampling interval to use.
*
**/
enum LoadSample
{
/**
* Sample every minute.
**/
LoadSample1,
/**
* Sample every five minutes.
**/
LoadSample5,
/**
* Sample every fifteen minutes.
**/
LoadSample15
};
/**
*
* The IceGrid query interface. This interface is accessible to
* Ice clients who wish to lookup well-known objects.
*
**/
["ami"] interface Query
{
/**
*
* Find a well-known object by identity.
*
* @param id The identity.
*
* @return The proxy or null if no such object has been found.
*
**/
["nonmutating", "cpp:const"] idempotent Object* findObjectById(Ice::Identity id);
/**
*
* Find a well-known object by type. If there are several objects
* registered for the given type, the object will be randomly
* selected.
*
* @param type The object type.
*
* @return The proxy or null if no such object has been found.
*
**/
["nonmutating", "cpp:const"] idempotent Object* findObjectByType(string type);
/**
*
* Find a well-known object by type on the least loaded node. If
* the registry can't figure out the node that hosts the object
* (e.g., if the object was registered with a direct proxy), the
* registry assumes the object is hosted on a node that has a load
* average of 1.0.
*
* @param type The object type.
*
* @return The proxy or null if no such object has been found.
*
**/
["nonmutating", "cpp:const"] idempotent Object* findObjectByTypeOnLeastLoadedNode(string type, LoadSample sample);
/**
*
* Find all the well-known objects with the given type.
*
* @param type The object type.
*
* @return The proxies or an empty sequence if no such objects
* have been found.
*
**/
["nonmutating", "cpp:const"] idempotent Ice::ObjectProxySeq findAllObjectsByType(string type);
/**
*
* Find all the object replicas associated with the given
* proxy. If the given proxy is not an indirect proxy from a
* replica group, an empty sequence is returned.
*
* @param proxy The object proxy.
*
* @return The proxies of each object replica or an empty sequence
* if the given proxy is not from a replica group.
*
**/
["cpp:const"] idempotent Ice::ObjectProxySeq findAllReplicas(Object* proxy);
};
};
#endif
|