| /* |
| * $Header: /cvshome/build/org.osgi.service.wireadmin/src/org/osgi/service/wireadmin/WireConstants.java,v 1.10 2006/07/11 00:54:10 hargrave Exp $ |
| * |
| * Copyright (c) OSGi Alliance (2002, 2006). All Rights Reserved. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.osgi.service.wireadmin; |
| |
| /** |
| * Defines standard names for <code>Wire</code> properties, wire filter |
| * attributes, Consumer and Producer service properties. |
| * |
| * @version $Revision: 1.10 $ |
| */ |
| public interface WireConstants { |
| /** |
| * <code>Wire</code> property key (named <code>wireadmin.pid</code>) specifying |
| * the persistent identity (PID) of this <code>Wire</code> object. |
| * |
| * <p> |
| * Each <code>Wire</code> object has a PID to allow unique and persistent |
| * identification of a specific <code>Wire</code> object. The PID must be |
| * generated by the {@link WireAdmin} service when the <code>Wire</code> |
| * object is created. |
| * |
| * <p> |
| * This wire property is automatically set by the Wire Admin service. The |
| * value of the property must be of type <code>String</code>. |
| */ |
| public final static String WIREADMIN_PID = "wireadmin.pid"; |
| /** |
| * A service registration property for a Producer service that is composite. |
| * It contains the names of the composite Consumer services it can |
| * inter-operate with. Inter-operability exists when any name in this array |
| * matches any name in the array set by the Consumer service. The type of |
| * this property must be <code>String[]</code>. |
| */ |
| public final static String WIREADMIN_PRODUCER_COMPOSITE = "wireadmin.producer.composite"; |
| /** |
| * A service registration property for a Consumer service that is composite. |
| * It contains the names of the composite Producer services it can cooperate |
| * with. Inter-operability exists when any name in this array matches any |
| * name in the array set by the Producer service. The type of this property |
| * must be <code>String[]</code>. |
| */ |
| public final static String WIREADMIN_CONSUMER_COMPOSITE = "wireadmin.consumer.composite"; |
| /** |
| * Service registration property key (named |
| * <code>wireadmin.producer.scope</code>) specifying a list of names that may |
| * be used to define the scope of this <code>Wire</code> object. A Producer |
| * service should set this service property when it can produce more than |
| * one kind of value. This property is only used during registration, |
| * modifying the property must not have any effect of the <code>Wire</code> |
| * object's scope. Each name in the given list mist have |
| * <code>WirePermission[name,PRODUCE]</code> or else is ignored. The type of |
| * this service registration property must be <code>String[]</code>. |
| * |
| * @see Wire#getScope |
| * @see #WIREADMIN_CONSUMER_SCOPE |
| */ |
| public final static String WIREADMIN_PRODUCER_SCOPE = "wireadmin.producer.scope"; |
| /** |
| * Service registration property key (named |
| * <code>wireadmin.consumer.scope</code>) specifying a list of names that may |
| * be used to define the scope of this <code>Wire</code> object. A |
| * <code>Consumer</code> service should set this service property when it can |
| * produce more than one kind of value. This property is only used during |
| * registration, modifying the property must not have any effect of the |
| * <code>Wire</code> object's scope. Each name in the given list mist have |
| * <code>WirePermission[name,CONSUME]</code> or else is ignored. The type of this |
| * service registration property must be <code>String[]</code>. |
| * |
| * @see Wire#getScope |
| * @see #WIREADMIN_PRODUCER_SCOPE |
| */ |
| public final static String WIREADMIN_CONSUMER_SCOPE = "wireadmin.consumer.scope"; |
| /** |
| * Matches all scope names. |
| */ |
| public final static String WIREADMIN_SCOPE_ALL[] = {"*"}; |
| /** |
| * <code>Wire</code> property key (named <code>wireadmin.producer.pid</code>) |
| * specifying the <code>service.pid</code> of the associated Producer service. |
| * |
| * <p> |
| * This wire property is automatically set by the WireAdmin service. The |
| * value of the property must be of type <code>String</code>. |
| */ |
| public final static String WIREADMIN_PRODUCER_PID = "wireadmin.producer.pid"; |
| /** |
| * <code>Wire</code> property key (named <code>wireadmin.consumer.pid</code>) |
| * specifying the <code>service.pid</code> of the associated Consumer service. |
| * |
| * <p> |
| * This wire property is automatically set by the Wire Admin service. The |
| * value of the property must be of type <code>String</code>. |
| */ |
| public final static String WIREADMIN_CONSUMER_PID = "wireadmin.consumer.pid"; |
| /** |
| * <code>Wire</code> property key (named <code>wireadmin.filter</code>) |
| * specifying a filter used to control the delivery rate of data between the |
| * Producer and the Consumer service. |
| * |
| * <p> |
| * This property should contain a filter as described in the <code>Filter</code> |
| * class. The filter can be used to specify when an updated value from the |
| * Producer service should be delivered to the Consumer service. In many |
| * cases the Consumer service does not need to receive the data with the |
| * same rate that the Producer service can generate data. This property can |
| * be used to control the delivery rate. |
| * <p> |
| * The filter can use a number of pre-defined attributes that can be used to |
| * control the delivery of new data values. If the filter produces a match |
| * upon the wire filter attributes, the Consumer service should be notifed |
| * of the updated data value. |
| * <p> |
| * If the Producer service was registered with the |
| * {@link #WIREADMIN_PRODUCER_FILTERS} service property indicating that the |
| * Producer service will perform the data filtering then the <code>Wire</code> |
| * object will not perform data filtering. Otherwise, the <code>Wire</code> |
| * object must perform basic filtering. Basic filtering includes supporting |
| * the following standard wire filter attributes: |
| * <ul> |
| * <li>{@link #WIREVALUE_CURRENT}- Current value |
| * <li>{@link #WIREVALUE_PREVIOUS}- Previous value |
| * <li>{@link #WIREVALUE_DELTA_ABSOLUTE}- Absolute delta |
| * <li>{@link #WIREVALUE_DELTA_RELATIVE}- Relative delta |
| * <li>{@link #WIREVALUE_ELAPSED}- Elapsed time |
| * </ul> |
| * |
| * @see org.osgi.framework.Filter |
| */ |
| public final static String WIREADMIN_FILTER = "wireadmin.filter"; |
| /* Wire filter attribute names. */ |
| /** |
| * <code>Wire</code> object's filter attribute (named |
| * <code>wirevalue.current</code>) representing the current value. |
| */ |
| public final static String WIREVALUE_CURRENT = "wirevalue.current"; |
| /** |
| * <code>Wire</code> object's filter attribute (named |
| * <code>wirevalue.previous</code>) representing the previous value. |
| */ |
| public final static String WIREVALUE_PREVIOUS = "wirevalue.previous"; |
| /** |
| * <code>Wire</code> object's filter attribute (named |
| * <code>wirevalue.delta.absolute</code>) representing the absolute delta. |
| * The absolute (always positive) difference between the last update and the |
| * current value (only when numeric). This attribute must not be used when |
| * the values are not numeric. |
| */ |
| public final static String WIREVALUE_DELTA_ABSOLUTE = "wirevalue.delta.absolute"; |
| /** |
| * <code>Wire</code> object's filter attribute (named |
| * <code>wirevalue.delta.relative</code>) representing the relative delta. |
| * The relative difference is |<code>previous</code>-<code>current</code> |/| |
| * <code>current</code>| (only when numeric). This attribute must not be used |
| * when the values are not numeric. |
| */ |
| public final static String WIREVALUE_DELTA_RELATIVE = "wirevalue.delta.relative"; |
| /** |
| * <code>Wire</code> object's filter attribute (named |
| * <code>wirevalue.elapsed</code>) representing the elapsed time, in ms, |
| * between this filter evaluation and the last update of the |
| * <code>Consumer</code> service. |
| */ |
| public final static String WIREVALUE_ELAPSED = "wirevalue.elapsed"; |
| /* Service registration property key names. */ |
| /** |
| * Service Registration property (named <code>wireadmin.producer.filters</code>). |
| * A <code>Producer</code> service registered with this property indicates to |
| * the Wire Admin service that the Producer service implements at least the |
| * filtering as described for the {@link #WIREADMIN_FILTER} property. If the |
| * Producer service is not registered with this property, the <code>Wire</code> |
| * object must perform the basic filtering as described in |
| * {@link #WIREADMIN_FILTER}. |
| * |
| * <p> |
| * The type of the property value is not relevant. Only its presence is |
| * relevant. |
| */ |
| public final static String WIREADMIN_PRODUCER_FILTERS = "wireadmin.producer.filters"; |
| /** |
| * Service Registration property (named <code>wireadmin.consumer.flavors</code>) |
| * specifying the list of data types understood by this Consumer service. |
| * |
| * <p> |
| * The Consumer service object must be registered with this service |
| * property. The list must be in the order of preference with the first type |
| * being the most preferred. The value of the property must be of type |
| * <code>Class[]</code>. |
| */ |
| public final static String WIREADMIN_CONSUMER_FLAVORS = "wireadmin.consumer.flavors"; |
| /** |
| * Service Registration property (named <code>wireadmin.producer.flavors</code>) |
| * specifying the list of data types available from this Producer service. |
| * |
| * <p> |
| * The Producer service object should be registered with this service |
| * property. |
| * |
| * <p> |
| * The value of the property must be of type <code>Class[]</code>. |
| */ |
| public final static String WIREADMIN_PRODUCER_FLAVORS = "wireadmin.producer.flavors"; |
| /** |
| * Service Registration property (named <code>wireadmin.events</code>) |
| * specifying the <code>WireAdminEvent</code> type of interest to a Wire Admin |
| * Listener service. The value of the property is a bitwise OR of all the |
| * <code>WireAdminEvent</code> types the Wire Admin Listener service wishes to |
| * receive and must be of type <code>Integer</code>. |
| * |
| * @see WireAdminEvent |
| */ |
| public final static String WIREADMIN_EVENTS = "wireadmin.events"; |
| } |