Oracle® Fusion Middleware C++ API Reference for Oracle Coherence
12c (12.1.3.0.0)

E47891-01

coherence/net/InvocationService.hpp

00001 /*
00002 * InvocationService.hpp
00003 *
00004 * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
00005 *
00006 * Oracle is a registered trademarks of Oracle Corporation and/or its
00007 * affiliates.
00008 *
00009 * This software is the confidential and proprietary information of Oracle
00010 * Corporation. You shall not disclose such confidential and proprietary
00011 * information and shall use it only in accordance with the terms of the
00012 * license agreement you entered into with Oracle.
00013 *
00014 * This notice may not be removed or altered.
00015 */
00016 #ifndef COH_INVOCATION_SERVICE_HPP
00017 #define COH_INVOCATION_SERVICE_HPP
00018 
00019 #include "coherence/lang.ns"
00020 
00021 #include "coherence/net/Invocable.hpp"
00022 #include "coherence/net/Service.hpp"
00023 #include "coherence/util/Map.hpp"
00024 #include "coherence/util/Set.hpp"
00025 
00026 COH_OPEN_NAMESPACE2(coherence,net)
00027 
00028 using coherence::util::Map;
00029 using coherence::util::Set;
00030 
00031 
00032 /**
00033 * The InvocationService is a Service for delivering executable objects to the
00034 * cluster member to which the client is connected. The executable objects
00035 * must implement the Invocable interface, which extends the Runnable
00036 * interface. Using this interface, application code can cause execution of an
00037 * Invocable object to occur within the cluster.
00038 *
00039 * @author jh  2007.12.21
00040 */
00041 class COH_EXPORT InvocationService
00042     : public interface_spec<InvocationService,
00043         implements<Service> >
00044     {
00045     // ----- InvocationService interface ------------------------------------
00046 
00047     public:
00048         /**
00049         * Synchronously invoke the specified task on each of the specified
00050         * members. This method will not return until the specified members
00051         * have completed their processing, failed in their processing, or
00052         * died trying.
00053         * <p>
00054         * Currently, the client implementation of this interface only
00055         * supports invocation on the cluster member to which the client is
00056         * connected. Therefore, the specified Set of Member objects must
00057         * be NULL.
00058         *
00059         * @param hTask        the Invocable object to distribute to the
00060         *                     specified members in order to be invoked on
00061         *                     those members
00062         * @param vSetMembers  must be NULL (future use)
00063         *
00064         * @return a Map of result objects keyed by Member object
00065         */
00066         virtual Map::View query(Invocable::Handle hTask, Set::View vSetMembers) = 0;
00067     };
00068 
00069 COH_CLOSE_NAMESPACE2
00070 
00071 #endif // COH_INVOCATION_SERVICE_HPP
Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved.