# -*- coding: utf-8 -*-
# **********************************************************************
#
# Copyright (c) 2003-2018 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.
#
# **********************************************************************
#
# Ice version 3.6.5
#
# <auto-generated>
#
# Generated from file `Query.ice'
#
# Warning: do not edit this file.
#
# </auto-generated>
#

from sys import version_info as _version_info_
import Ice, IcePy
import Ice_Identity_ice
import Ice_BuiltinSequences_ice
import IceGrid_Exception_ice

# Included module Ice
_M_Ice = Ice.openModule('Ice')

# Included module IceGrid
_M_IceGrid = Ice.openModule('IceGrid')

# Start of module IceGrid
__name__ = 'IceGrid'
_M_IceGrid.__doc__ = """
IceGrid is a server activation and deployment tool. IceGrid,
simplifies the complex task of deploying applications in a
heterogeneous computer network.
"""

if 'LoadSample' not in _M_IceGrid.__dict__:
    _M_IceGrid.LoadSample = Ice.createTempClass()
    class LoadSample(Ice.EnumBase):
        """
        Determines which load sampling interval to use.
        Enumerators:
        LoadSample1 -- Sample every minute.
        LoadSample5 -- Sample every five minutes.
        LoadSample15 -- Sample every fifteen minutes.
        """

        def __init__(self, _n, _v):
            Ice.EnumBase.__init__(self, _n, _v)

        def valueOf(self, _n):
            if _n in self._enumerators:
                return self._enumerators[_n]
            return None
        valueOf = classmethod(valueOf)

    LoadSample.LoadSample1 = LoadSample("LoadSample1", 0)
    LoadSample.LoadSample5 = LoadSample("LoadSample5", 1)
    LoadSample.LoadSample15 = LoadSample("LoadSample15", 2)
    LoadSample._enumerators = { 0:LoadSample.LoadSample1, 1:LoadSample.LoadSample5, 2:LoadSample.LoadSample15 }

    _M_IceGrid._t_LoadSample = IcePy.defineEnum('::IceGrid::LoadSample', LoadSample, (), LoadSample._enumerators)

    _M_IceGrid.LoadSample = LoadSample
    del LoadSample

if 'Query' not in _M_IceGrid.__dict__:
    _M_IceGrid.Query = Ice.createTempClass()
    class Query(Ice.Object):
        """
        The IceGrid query interface. This interface is accessible to
        Ice clients who wish to look up well-known objects.
        """
        def __init__(self):
            if Ice.getType(self) == _M_IceGrid.Query:
                raise RuntimeError('IceGrid.Query is an abstract class')

        def ice_ids(self, current=None):
            return ('::Ice::Object', '::IceGrid::Query')

        def ice_id(self, current=None):
            return '::IceGrid::Query'

        def ice_staticId():
            return '::IceGrid::Query'
        ice_staticId = staticmethod(ice_staticId)

        def findObjectById(self, id, current=None):
            """
            Find a well-known object by identity.
            Arguments:
            id -- The identity.
            current -- The Current object for the invocation.
            Returns: The proxy or null if no such object has been found.
            """
            pass

        def findObjectByType(self, type, current=None):
            """
            Find a well-known object by type. If there are several objects
            registered for the given type, the object is randomly
            selected.
            Arguments:
            type -- The object type.
            current -- The Current object for the invocation.
            Returns: The proxy or null, if no such object has been found.
            """
            pass

        def findObjectByTypeOnLeastLoadedNode(self, type, sample, current=None):
            """
            Find a well-known object by type on the least-loaded node. If
            the registry does not know which node hosts the object
            (for example, because 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.
            Arguments:
            type -- The object type.
            sample -- The sampling interval.
            current -- The Current object for the invocation.
            Returns: The proxy or null, if no such object has been found.
            """
            pass

        def findAllObjectsByType(self, type, current=None):
            """
            Find all the well-known objects with the given type.
            Arguments:
            type -- The object type.
            current -- The Current object for the invocation.
            Returns: The proxies or an empty sequence, if no such objects have been found.
            """
            pass

        def findAllReplicas(self, proxy, current=None):
            """
            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.
            Arguments:
            proxy -- The object proxy.
            current -- The Current object for the invocation.
            Returns: The proxies of each object replica or an empty sequence, if the given proxy is not from a replica group.
            """
            pass

        def __str__(self):
            return IcePy.stringify(self, _M_IceGrid._t_Query)

        __repr__ = __str__

    _M_IceGrid.QueryPrx = Ice.createTempClass()
    class QueryPrx(Ice.ObjectPrx):

        """
        Find a well-known object by identity.
        Arguments:
        id -- The identity.
        _ctx -- The request context for the invocation.
        Returns: The proxy or null if no such object has been found.
        """
        def findObjectById(self, id, _ctx=None):
            return _M_IceGrid.Query._op_findObjectById.invoke(self, ((id, ), _ctx))

        """
        Find a well-known object by identity.
        Arguments:
        id -- The identity.
        _response -- The asynchronous response callback.
        _ex -- The asynchronous exception callback.
        _sent -- The asynchronous sent callback.
        _ctx -- The request context for the invocation.
        Returns: An asynchronous result object for the invocation.
        """
        def begin_findObjectById(self, id, _response=None, _ex=None, _sent=None, _ctx=None):
            return _M_IceGrid.Query._op_findObjectById.begin(self, ((id, ), _response, _ex, _sent, _ctx))

        """
        Find a well-known object by identity.
        Arguments:
        id -- The identity.
        Returns: The proxy or null if no such object has been found.
        """
        def end_findObjectById(self, _r):
            return _M_IceGrid.Query._op_findObjectById.end(self, _r)

        """
        Find a well-known object by type. If there are several objects
        registered for the given type, the object is randomly
        selected.
        Arguments:
        type -- The object type.
        _ctx -- The request context for the invocation.
        Returns: The proxy or null, if no such object has been found.
        """
        def findObjectByType(self, type, _ctx=None):
            return _M_IceGrid.Query._op_findObjectByType.invoke(self, ((type, ), _ctx))

        """
        Find a well-known object by type. If there are several objects
        registered for the given type, the object is randomly
        selected.
        Arguments:
        type -- The object type.
        _response -- The asynchronous response callback.
        _ex -- The asynchronous exception callback.
        _sent -- The asynchronous sent callback.
        _ctx -- The request context for the invocation.
        Returns: An asynchronous result object for the invocation.
        """
        def begin_findObjectByType(self, type, _response=None, _ex=None, _sent=None, _ctx=None):
            return _M_IceGrid.Query._op_findObjectByType.begin(self, ((type, ), _response, _ex, _sent, _ctx))

        """
        Find a well-known object by type. If there are several objects
        registered for the given type, the object is randomly
        selected.
        Arguments:
        type -- The object type.
        Returns: The proxy or null, if no such object has been found.
        """
        def end_findObjectByType(self, _r):
            return _M_IceGrid.Query._op_findObjectByType.end(self, _r)

        """
        Find a well-known object by type on the least-loaded node. If
        the registry does not know which node hosts the object
        (for example, because 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.
        Arguments:
        type -- The object type.
        sample -- The sampling interval.
        _ctx -- The request context for the invocation.
        Returns: The proxy or null, if no such object has been found.
        """
        def findObjectByTypeOnLeastLoadedNode(self, type, sample, _ctx=None):
            return _M_IceGrid.Query._op_findObjectByTypeOnLeastLoadedNode.invoke(self, ((type, sample), _ctx))

        """
        Find a well-known object by type on the least-loaded node. If
        the registry does not know which node hosts the object
        (for example, because 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.
        Arguments:
        type -- The object type.
        sample -- The sampling interval.
        _response -- The asynchronous response callback.
        _ex -- The asynchronous exception callback.
        _sent -- The asynchronous sent callback.
        _ctx -- The request context for the invocation.
        Returns: An asynchronous result object for the invocation.
        """
        def begin_findObjectByTypeOnLeastLoadedNode(self, type, sample, _response=None, _ex=None, _sent=None, _ctx=None):
            return _M_IceGrid.Query._op_findObjectByTypeOnLeastLoadedNode.begin(self, ((type, sample), _response, _ex, _sent, _ctx))

        """
        Find a well-known object by type on the least-loaded node. If
        the registry does not know which node hosts the object
        (for example, because 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.
        Arguments:
        type -- The object type.
        sample -- The sampling interval.
        Returns: The proxy or null, if no such object has been found.
        """
        def end_findObjectByTypeOnLeastLoadedNode(self, _r):
            return _M_IceGrid.Query._op_findObjectByTypeOnLeastLoadedNode.end(self, _r)

        """
        Find all the well-known objects with the given type.
        Arguments:
        type -- The object type.
        _ctx -- The request context for the invocation.
        Returns: The proxies or an empty sequence, if no such objects have been found.
        """
        def findAllObjectsByType(self, type, _ctx=None):
            return _M_IceGrid.Query._op_findAllObjectsByType.invoke(self, ((type, ), _ctx))

        """
        Find all the well-known objects with the given type.
        Arguments:
        type -- The object type.
        _response -- The asynchronous response callback.
        _ex -- The asynchronous exception callback.
        _sent -- The asynchronous sent callback.
        _ctx -- The request context for the invocation.
        Returns: An asynchronous result object for the invocation.
        """
        def begin_findAllObjectsByType(self, type, _response=None, _ex=None, _sent=None, _ctx=None):
            return _M_IceGrid.Query._op_findAllObjectsByType.begin(self, ((type, ), _response, _ex, _sent, _ctx))

        """
        Find all the well-known objects with the given type.
        Arguments:
        type -- The object type.
        Returns: The proxies or an empty sequence, if no such objects have been found.
        """
        def end_findAllObjectsByType(self, _r):
            return _M_IceGrid.Query._op_findAllObjectsByType.end(self, _r)

        """
        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.
        Arguments:
        proxy -- The object proxy.
        _ctx -- The request context for the invocation.
        Returns: The proxies of each object replica or an empty sequence, if the given proxy is not from a replica group.
        """
        def findAllReplicas(self, proxy, _ctx=None):
            return _M_IceGrid.Query._op_findAllReplicas.invoke(self, ((proxy, ), _ctx))

        """
        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.
        Arguments:
        proxy -- The object proxy.
        _response -- The asynchronous response callback.
        _ex -- The asynchronous exception callback.
        _sent -- The asynchronous sent callback.
        _ctx -- The request context for the invocation.
        Returns: An asynchronous result object for the invocation.
        """
        def begin_findAllReplicas(self, proxy, _response=None, _ex=None, _sent=None, _ctx=None):
            return _M_IceGrid.Query._op_findAllReplicas.begin(self, ((proxy, ), _response, _ex, _sent, _ctx))

        """
        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.
        Arguments:
        proxy -- The object proxy.
        Returns: The proxies of each object replica or an empty sequence, if the given proxy is not from a replica group.
        """
        def end_findAllReplicas(self, _r):
            return _M_IceGrid.Query._op_findAllReplicas.end(self, _r)

        def checkedCast(proxy, facetOrCtx=None, _ctx=None):
            return _M_IceGrid.QueryPrx.ice_checkedCast(proxy, '::IceGrid::Query', facetOrCtx, _ctx)
        checkedCast = staticmethod(checkedCast)

        def uncheckedCast(proxy, facet=None):
            return _M_IceGrid.QueryPrx.ice_uncheckedCast(proxy, facet)
        uncheckedCast = staticmethod(uncheckedCast)

        def ice_staticId():
            return '::IceGrid::Query'
        ice_staticId = staticmethod(ice_staticId)

    _M_IceGrid._t_QueryPrx = IcePy.defineProxy('::IceGrid::Query', QueryPrx)

    _M_IceGrid._t_Query = IcePy.defineClass('::IceGrid::Query', Query, -1, (), True, False, None, (), ())
    Query._ice_type = _M_IceGrid._t_Query

    Query._op_findObjectById = IcePy.Operation('findObjectById', Ice.OperationMode.Idempotent, Ice.OperationMode.Nonmutating, False, None, (), (((), _M_Ice._t_Identity, False, 0),), (), ((), IcePy._t_ObjectPrx, False, 0), ())
    Query._op_findObjectByType = IcePy.Operation('findObjectByType', Ice.OperationMode.Idempotent, Ice.OperationMode.Nonmutating, False, None, (), (((), IcePy._t_string, False, 0),), (), ((), IcePy._t_ObjectPrx, False, 0), ())
    Query._op_findObjectByTypeOnLeastLoadedNode = IcePy.Operation('findObjectByTypeOnLeastLoadedNode', Ice.OperationMode.Idempotent, Ice.OperationMode.Nonmutating, False, None, (), (((), IcePy._t_string, False, 0), ((), _M_IceGrid._t_LoadSample, False, 0)), (), ((), IcePy._t_ObjectPrx, False, 0), ())
    Query._op_findAllObjectsByType = IcePy.Operation('findAllObjectsByType', Ice.OperationMode.Idempotent, Ice.OperationMode.Nonmutating, False, None, (), (((), IcePy._t_string, False, 0),), (), ((), _M_Ice._t_ObjectProxySeq, False, 0), ())
    Query._op_findAllReplicas = IcePy.Operation('findAllReplicas', Ice.OperationMode.Idempotent, Ice.OperationMode.Idempotent, False, None, (), (((), IcePy._t_ObjectPrx, False, 0),), (), ((), _M_Ice._t_ObjectProxySeq, False, 0), ())

    _M_IceGrid.Query = Query
    del Query

    _M_IceGrid.QueryPrx = QueryPrx
    del QueryPrx

# End of module IceGrid

Ice.sliceChecksums["::IceGrid::LoadSample"] = "ec48c06fa099138a5fbbce121a9a290"
Ice.sliceChecksums["::IceGrid::Query"] = "39dbe5f62c19aa42c2e0fbaf220b4f1"
