00001 /* 00002 * OperationalContext.hpp 00003 * 00004 * Copyright (c) 2000, 2013, 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_OPERATIONAL_CONTEXT_HPP 00017 #define COH_OPERATIONAL_CONTEXT_HPP 00018 00019 #include "coherence/lang.ns" 00020 00021 #include "coherence/net/Member.hpp" 00022 #include "coherence/run/xml/XmlElement.hpp" 00023 #include "coherence/security/IdentityAsserter.hpp" 00024 #include "coherence/security/IdentityTransformer.hpp" 00025 #include "coherence/util/Map.hpp" 00026 00027 COH_OPEN_NAMESPACE2(coherence,net) 00028 00029 using coherence::run::xml::XmlElement; 00030 using coherence::security::IdentityAsserter; 00031 using coherence::security::IdentityTransformer; 00032 using coherence::util::Map; 00033 00034 00035 /** 00036 * OperationalContext is an interface for providing Oracle Coherence 00037 * operational configuration. 00038 * 00039 * @author phf 2010.10.28 00040 * 00041 * @since Coherence 3.7 00042 */ 00043 class COH_EXPORT OperationalContext 00044 : public interface_spec<OperationalContext> 00045 { 00046 // ----- OperationalContext interface ----------------------------------- 00047 00048 public: 00049 /** 00050 * Get the product edition. 00051 * 00052 * @return the product edition 00053 */ 00054 virtual int32_t getEdition() const = 0; 00055 00056 /** 00057 * Get the product edition in a formatted string. 00058 * 00059 * @return the product edition in a formatted string 00060 */ 00061 virtual String::View getEditionName() const = 0; 00062 00063 /** 00064 * Return a Member object representing this process. 00065 * 00066 * @return the local Member 00067 */ 00068 virtual Member::View getLocalMember() const = 0; 00069 00070 /** 00071 * Return a Map of network filter factories. 00072 * 00073 * @return a Map of WrapperStreamFactory instances keyed by filter 00074 * name 00075 */ 00076 virtual Map::View getFilterMap() const = 0; 00077 00078 /** 00079 * Return a Map of serializer factories. 00080 * 00081 * @return a Map of SerializerFactory instances keyed by serializer 00082 * name 00083 * 00084 * @since Coherence 12.1.2 00085 */ 00086 virtual Map::View getSerializerMap() const = 0; 00087 00088 /** 00089 * Return a Map of address provider factories. 00090 * 00091 * @return a Map of AddressProviderFactory instances keyed by address 00092 * provider name 00093 * 00094 * @since Coherence 12.1.2 00095 */ 00096 virtual Map::View getAddressProviderMap() const = 0; 00097 00098 /** 00099 * Return an IdentityAsserter that can be used to establish a user's 00100 * identity. 00101 * 00102 * @return the IdentityAsserter 00103 */ 00104 virtual IdentityAsserter::View getIdentityAsserter() const = 0; 00105 00106 /** 00107 * Return an IdentityTransformer that can be used to transform a 00108 * Subject into an identity assertion. 00109 * 00110 * @return the IdentityTransformer 00111 */ 00112 virtual IdentityTransformer::View getIdentityTransformer() const = 0; 00113 00114 /** 00115 * Indicates if Subject scoping is enabled. 00116 * 00117 * @return true if subject scoping is enabled 00118 */ 00119 virtual bool isSubjectScopingEnabled() const = 0; 00120 00121 /** 00122 * Return the logging severity level. 00123 * 00124 * @return the logging severity level 00125 */ 00126 virtual int32_t getLogLevel() const = 0; 00127 00128 /** 00129 * Return the maximum number of characters for a logger daemon to 00130 * queue before truncating. 00131 * 00132 * @return the maximum number of characters for a logger daemon 00133 * to queue before truncating 00134 */ 00135 virtual int32_t getLogCharacterLimit() const = 0; 00136 00137 /** 00138 * Return the log message format. 00139 * 00140 * @return the log message format 00141 */ 00142 virtual String::View getLogMessageFormat() const = 0; 00143 00144 /** 00145 * Return the destination for log messages. 00146 * 00147 * @return the destination for log messages 00148 */ 00149 virtual String::View getLogDestination() const = 0; 00150 }; 00151 00152 COH_CLOSE_NAMESPACE2 00153 00154 #endif // COH_OPERATIONAL_CONTEXT_HPP