00001 /* 00002 * Copyright (c) 2000, 2020, Oracle and/or its affiliates. 00003 * 00004 * Licensed under the Universal Permissive License v 1.0 as shown at 00005 * http://oss.oracle.com/licenses/upl. 00006 */ 00007 #ifndef COH_SERVICE_INFO_HPP 00008 #define COH_SERVICE_INFO_HPP 00009 00010 #include "coherence/lang.ns" 00011 00012 COH_OPEN_NAMESPACE2(coherence,net) 00013 00014 00015 /** 00016 * The ServiceInfo represents information about a Service that operates in a 00017 * clustered network environment. 00018 * 00019 * @author jh 2007.12.20 00020 */ 00021 class COH_EXPORT ServiceInfo 00022 : public interface_spec<ServiceInfo> 00023 { 00024 // ----- enums ---------------------------------------------------------- 00025 00026 public: 00027 /** 00028 * Service type constants. 00029 */ 00030 enum ServiceType 00031 { 00032 // REVIEW: will there be a local CacheService implementation? 00033 // we don't currently have one in .NET 00034 local_cache, // a local cache service provides the means 00035 // for handling a collection of resources 00036 // limited to a single client with concurrent 00037 // access control 00038 00039 remote_cache, // a remote cache service provides the means 00040 // for handling a collection of resources 00041 // managed by a remote cluster with concurrent 00042 // access control 00043 00044 remote_invocation, // a remote invocation service enables the 00045 // execution of invocable objects by a remote 00046 // cluster member 00047 00048 remote_nameservice // a remote name service allows a JVM to use 00049 // a remote NameService without having to join 00050 // the Cluster. 00051 }; 00052 00053 00054 // ----- ServiceInfo interface ------------------------------------------ 00055 00056 public: 00057 /** 00058 * Return the name of the Service. 00059 * 00060 * @return the name of the Service 00061 */ 00062 virtual String::View getServiceName() const = 0; 00063 00064 /** 00065 * Return the type of the Service. 00066 * 00067 * @return the type of the Service 00068 */ 00069 virtual ServiceType getServiceType() const = 0; 00070 }; 00071 00072 COH_CLOSE_NAMESPACE2 00073 00074 #endif // COH_SERVICE_INFO_HPP