xref: /onnv-gate/usr/src/lib/libslp/javalib/com/sun/slp/ServiceStore.java (revision 7298:b69e27387f74)
10Sstevel@tonic-gate /*
20Sstevel@tonic-gate  * CDDL HEADER START
30Sstevel@tonic-gate  *
40Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7298SMark.J.Nelson@Sun.COM  * Common Development and Distribution License (the "License").
6*7298SMark.J.Nelson@Sun.COM  * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate  *
80Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate  * See the License for the specific language governing permissions
110Sstevel@tonic-gate  * and limitations under the License.
120Sstevel@tonic-gate  *
130Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate  *
190Sstevel@tonic-gate  * CDDL HEADER END
200Sstevel@tonic-gate  */
210Sstevel@tonic-gate /*
220Sstevel@tonic-gate  * Copyright (c) 1999 by Sun Microsystems, Inc.
230Sstevel@tonic-gate  * All rights reserved.
240Sstevel@tonic-gate  *
250Sstevel@tonic-gate  */
260Sstevel@tonic-gate 
270Sstevel@tonic-gate //  ServiceStore.java: Interface for different storage implementations
280Sstevel@tonic-gate //  Author:           James Kempf
290Sstevel@tonic-gate //  Created On:       Thu Oct 16 07:46:45 1997
300Sstevel@tonic-gate //  Last Modified By: James Kempf
310Sstevel@tonic-gate //  Last Modified On: Wed Feb 17 09:28:53 1999
320Sstevel@tonic-gate //  Update Count:     91
330Sstevel@tonic-gate //
340Sstevel@tonic-gate 
350Sstevel@tonic-gate package com.sun.slp;
360Sstevel@tonic-gate 
370Sstevel@tonic-gate import java.util.*;
380Sstevel@tonic-gate import java.io.*;
390Sstevel@tonic-gate 
400Sstevel@tonic-gate /**
410Sstevel@tonic-gate  * ServiceStore specifies the interface between the storage back end for
420Sstevel@tonic-gate  * the SLP DA/slpd and the communications front end. There can be
430Sstevel@tonic-gate  * various implementations of the ServiceStore. The ServiceStoreFactory
440Sstevel@tonic-gate  * class is responsible for instantiating the ServiceStore object.
450Sstevel@tonic-gate  * Each ServiceStore implementation must also supply ServiceRecord
460Sstevel@tonic-gate  * objects.
470Sstevel@tonic-gate  *
480Sstevel@tonic-gate  * @author James Kempf
490Sstevel@tonic-gate  */
500Sstevel@tonic-gate 
510Sstevel@tonic-gate interface ServiceStore {
520Sstevel@tonic-gate 
530Sstevel@tonic-gate     /**
540Sstevel@tonic-gate      * Key for fetching attribute values from findAttributes() returned
550Sstevel@tonic-gate      * hashtable.
560Sstevel@tonic-gate      */
570Sstevel@tonic-gate 
580Sstevel@tonic-gate     final static String FA_ATTRIBUTES = "FA_ATTRIBUTES";
590Sstevel@tonic-gate 
600Sstevel@tonic-gate     /**
610Sstevel@tonic-gate      * Key for fetching attribute auth block from findAttributes() returned
620Sstevel@tonic-gate      * hashtable.
630Sstevel@tonic-gate      */
640Sstevel@tonic-gate 
650Sstevel@tonic-gate     final static String FA_SIG = "FA_SIG";
660Sstevel@tonic-gate 
670Sstevel@tonic-gate     /**
680Sstevel@tonic-gate      * Key for fetching hashtable of service URLs v.s. scopes values from
690Sstevel@tonic-gate      * findServices() returned hashtable.
700Sstevel@tonic-gate      */
710Sstevel@tonic-gate 
720Sstevel@tonic-gate     final static String FS_SERVICES = "FS_SERVICES";
730Sstevel@tonic-gate 
740Sstevel@tonic-gate     /**
750Sstevel@tonic-gate      * Key for fetching hashtable of service URLs v.s. signatures from
760Sstevel@tonic-gate      * findServices() returned hashtable.
770Sstevel@tonic-gate      */
780Sstevel@tonic-gate 
790Sstevel@tonic-gate     final static String FS_SIGTABLE = "FS_SIGTABLE";
800Sstevel@tonic-gate 
810Sstevel@tonic-gate     /**
820Sstevel@tonic-gate      * The ServiceRecord interface specifies the record structure of
830Sstevel@tonic-gate      * stored in the ServiceStore. The methods are all property
840Sstevel@tonic-gate      * accessors.
850Sstevel@tonic-gate      *
860Sstevel@tonic-gate      * @author James Kempf
870Sstevel@tonic-gate      */
880Sstevel@tonic-gate 
890Sstevel@tonic-gate     interface ServiceRecord {
900Sstevel@tonic-gate 
910Sstevel@tonic-gate 	/**
920Sstevel@tonic-gate 	 * Return the ServiceURL for the record.
930Sstevel@tonic-gate 	 *
940Sstevel@tonic-gate 	 * @return The record's service URL.
950Sstevel@tonic-gate 	 */
960Sstevel@tonic-gate 
getServiceURL()970Sstevel@tonic-gate 	ServiceURL getServiceURL();
980Sstevel@tonic-gate 
990Sstevel@tonic-gate 	/**
1000Sstevel@tonic-gate 	 * Return the Vector of ServiceLocationAttribute objects for the record
1010Sstevel@tonic-gate 	 *
1020Sstevel@tonic-gate 	 * @return Vector of ServiceLocationAttribute objects for the record.
1030Sstevel@tonic-gate 	 */
1040Sstevel@tonic-gate 
getAttrList()1050Sstevel@tonic-gate 	Vector getAttrList();
1060Sstevel@tonic-gate 
1070Sstevel@tonic-gate 	/**
1080Sstevel@tonic-gate 	 * Return the locale in which this record is registered.
1090Sstevel@tonic-gate 	 *
1100Sstevel@tonic-gate 	 * @return The language locale in which this record is registered.
1110Sstevel@tonic-gate 	 */
1120Sstevel@tonic-gate 
getLocale()1130Sstevel@tonic-gate 	Locale getLocale();
1140Sstevel@tonic-gate 
1150Sstevel@tonic-gate 	/**
1160Sstevel@tonic-gate 	 * Return the Vector of scopes in which this record is registered.
1170Sstevel@tonic-gate 	 *
1180Sstevel@tonic-gate 	 * @return The Vector of scopes in which this record is registered.
1190Sstevel@tonic-gate 	 */
1200Sstevel@tonic-gate 
getScopes()1210Sstevel@tonic-gate 	Vector getScopes();
1220Sstevel@tonic-gate 
1230Sstevel@tonic-gate 	/**
1240Sstevel@tonic-gate 	 * Return the expiration time for the record. This informs the
1250Sstevel@tonic-gate 	 * service store when the record should expire and be removed
1260Sstevel@tonic-gate 	 * from the table.
1270Sstevel@tonic-gate 	 *
1280Sstevel@tonic-gate 	 * @return The expiration time for the record.
1290Sstevel@tonic-gate 	 */
1300Sstevel@tonic-gate 
getExpirationTime()1310Sstevel@tonic-gate 	long getExpirationTime();
1320Sstevel@tonic-gate 
1330Sstevel@tonic-gate 	/**
1340Sstevel@tonic-gate 	 * Return the URL signature, or null if there's none.
1350Sstevel@tonic-gate 	 *
1360Sstevel@tonic-gate 	 * @return auth block Hashtable for URL signature.
1370Sstevel@tonic-gate 	 */
1380Sstevel@tonic-gate 
getURLSignature()1390Sstevel@tonic-gate 	Hashtable getURLSignature();
1400Sstevel@tonic-gate 
1410Sstevel@tonic-gate 	/**
1420Sstevel@tonic-gate 	 * Return the attribute signature, or null if there's none.
1430Sstevel@tonic-gate 	 *
1440Sstevel@tonic-gate 	 * @return auth block Hashtable for attribute signature.
1450Sstevel@tonic-gate 	 */
1460Sstevel@tonic-gate 
getAttrSignature()1470Sstevel@tonic-gate 	Hashtable getAttrSignature();
1480Sstevel@tonic-gate 
1490Sstevel@tonic-gate     }
1500Sstevel@tonic-gate 
1510Sstevel@tonic-gate     //
1520Sstevel@tonic-gate     // ServiceStore interface methods.
1530Sstevel@tonic-gate     //
1540Sstevel@tonic-gate 
1550Sstevel@tonic-gate     /**
1560Sstevel@tonic-gate      * On first call, return the time since the last stateless reboot
1570Sstevel@tonic-gate      * of the ServiceStore for a stateful store. Otherwise, return the
1580Sstevel@tonic-gate      * current time. This is for DAs.
1590Sstevel@tonic-gate      *
1600Sstevel@tonic-gate      * @return A Long giving the time since the last stateless reboot,
1610Sstevel@tonic-gate      *         in NTP format.
1620Sstevel@tonic-gate      */
1630Sstevel@tonic-gate 
getStateTimestamp()1640Sstevel@tonic-gate     long getStateTimestamp();
1650Sstevel@tonic-gate 
1660Sstevel@tonic-gate     /**
1670Sstevel@tonic-gate      * Age out all records whose time has expired.
1680Sstevel@tonic-gate      *
1690Sstevel@tonic-gate      * @param deleted A Vector for return of ServiceStore.Service records
1700Sstevel@tonic-gate      *		     containing deleted services.
1710Sstevel@tonic-gate      * @return The time interval until another table walk must be done,
1720Sstevel@tonic-gate      *         in milliseconds.
1730Sstevel@tonic-gate      *
1740Sstevel@tonic-gate      */
1750Sstevel@tonic-gate 
ageOut(Vector deleted)1760Sstevel@tonic-gate     long ageOut(Vector deleted);
1770Sstevel@tonic-gate 
1780Sstevel@tonic-gate     /**
1790Sstevel@tonic-gate      * Create a new registration with the given parameters.
1800Sstevel@tonic-gate      *
1810Sstevel@tonic-gate      * @param url The ServiceURL.
1820Sstevel@tonic-gate      * @param attrs The Vector of ServiceLocationAttribute objects.
1830Sstevel@tonic-gate      * @param locale The Locale.
1840Sstevel@tonic-gate      * @param scopes Vector of scopes in which this record is registered.
1850Sstevel@tonic-gate      * @param urlSig Hashtable for URL signatures, or null if none.
1860Sstevel@tonic-gate      * @param attrSig Hashtable for URL signatures, or null if none.
1870Sstevel@tonic-gate      * @return True if there is an already existing registration which
1880Sstevel@tonic-gate      *         this one replaced.
1890Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if any
1900Sstevel@tonic-gate      *			error occurs during registration or if the table
1910Sstevel@tonic-gate      * 			requires a network connection that failed. This
1920Sstevel@tonic-gate      *			includes timeout failures.
1930Sstevel@tonic-gate      */
1940Sstevel@tonic-gate 
register(ServiceURL url, Vector attrs, Vector scopes, Locale locale, Hashtable urlSig, Hashtable attrSig)1950Sstevel@tonic-gate     boolean register(ServiceURL url, Vector attrs,
1960Sstevel@tonic-gate 		     Vector scopes, Locale locale,
1970Sstevel@tonic-gate 		     Hashtable urlSig, Hashtable attrSig)
1980Sstevel@tonic-gate 	throws ServiceLocationException;
1990Sstevel@tonic-gate 
2000Sstevel@tonic-gate     /**
2010Sstevel@tonic-gate      * Deregister a ServiceURL from the database for every locale
2020Sstevel@tonic-gate      * and every scope. There will be only one record for each URL
2030Sstevel@tonic-gate      * and locale deregistered, regardless of the number of scopes in
2040Sstevel@tonic-gate      * which the URL was registered, since the attributes will be the
2050Sstevel@tonic-gate      * same in each scope if the locale is the same.
2060Sstevel@tonic-gate      *
2070Sstevel@tonic-gate      * @param url The ServiceURL
2080Sstevel@tonic-gate      * @param scopes Vector of scopes.
2090Sstevel@tonic-gate      * @param urlSig The URL signature, if any.
2100Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if the
2110Sstevel@tonic-gate      *			ServiceStore does not contain the URL, or if any
2120Sstevel@tonic-gate      *			error occurs during the operation, or if the table
2130Sstevel@tonic-gate      * 			requires a network connection that failed. This
2140Sstevel@tonic-gate      *			includes timeout failures.
2150Sstevel@tonic-gate      */
2160Sstevel@tonic-gate 
deregister(ServiceURL url, Vector scopes, Hashtable urlSig)2170Sstevel@tonic-gate     void deregister(ServiceURL url, Vector scopes, Hashtable urlSig)
2180Sstevel@tonic-gate 	throws ServiceLocationException;
2190Sstevel@tonic-gate 
2200Sstevel@tonic-gate     /**
2210Sstevel@tonic-gate      * Update the service registration with the new parameters, adding
2220Sstevel@tonic-gate      * attributes and updating the service URL's lifetime.
2230Sstevel@tonic-gate      *
2240Sstevel@tonic-gate      * @param url The ServiceURL.
2250Sstevel@tonic-gate      * @param attrs The Vector of ServiceLocationAttribute objects.
2260Sstevel@tonic-gate      * @param locale The Locale.
2270Sstevel@tonic-gate      * @param scopes Vector of scopes in which this record is registered.
2280Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if any
2290Sstevel@tonic-gate      *			error occurs during registration or if the table
2300Sstevel@tonic-gate      * 			requires a network connection that failed. This
2310Sstevel@tonic-gate      *			includes timeout failures.
2320Sstevel@tonic-gate      */
2330Sstevel@tonic-gate 
updateRegistration(ServiceURL url, Vector attrs, Vector scopes, Locale locale)2340Sstevel@tonic-gate     void updateRegistration(ServiceURL url, Vector attrs,
2350Sstevel@tonic-gate 			    Vector scopes, Locale locale)
2360Sstevel@tonic-gate 	throws ServiceLocationException;
2370Sstevel@tonic-gate 
2380Sstevel@tonic-gate     /**
2390Sstevel@tonic-gate      * Delete the attributes from the ServiceURL object's table entries.
2400Sstevel@tonic-gate      * Delete for every locale that has the attributes and every scope.
2410Sstevel@tonic-gate      * Note that the attribute tags must be lower-cased in the locale of
2420Sstevel@tonic-gate      * the registration, not in the locale of the request.
2430Sstevel@tonic-gate      *
2440Sstevel@tonic-gate      * @param url The ServiceURL.
2450Sstevel@tonic-gate      * @param scopes Vector of scopes.
2460Sstevel@tonic-gate      * @param attrTags The Vector of String
2470Sstevel@tonic-gate      *			objects specifying the attribute tags of
2480Sstevel@tonic-gate      *			the attributes to delete.
2490Sstevel@tonic-gate      * @param locale Locale of the request.
2500Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if the
2510Sstevel@tonic-gate      *			ServiceStore does not contain the URL or if any
2520Sstevel@tonic-gate      *			error occurs during the operation or if the table
2530Sstevel@tonic-gate      * 			requires a network connection that failed. This
2540Sstevel@tonic-gate      *			includes timeout failures.
2550Sstevel@tonic-gate      */
2560Sstevel@tonic-gate 
2570Sstevel@tonic-gate     void
deleteAttributes(ServiceURL url, Vector scopes, Vector attrTags, Locale locale)2580Sstevel@tonic-gate 	deleteAttributes(ServiceURL url,
2590Sstevel@tonic-gate 			 Vector scopes,
2600Sstevel@tonic-gate 			 Vector attrTags,
2610Sstevel@tonic-gate 			 Locale locale)
2620Sstevel@tonic-gate     throws ServiceLocationException;
2630Sstevel@tonic-gate 
2640Sstevel@tonic-gate     /**
2650Sstevel@tonic-gate      * Return a Vector of String containing the service types for this
2660Sstevel@tonic-gate      * scope and naming authority. If there are none, an empty vector is
2670Sstevel@tonic-gate      * returned.
2680Sstevel@tonic-gate      *
2690Sstevel@tonic-gate      * @param namingAuthority The namingAuthority, or "*" if for all.
2700Sstevel@tonic-gate      * @param scopes The scope names.
2710Sstevel@tonic-gate      * @return A Vector of String objects that are the type names, or
2720Sstevel@tonic-gate      *		an empty vector if there are none.
2730Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if any
2740Sstevel@tonic-gate      *			error occurs during the operation or if the table
2750Sstevel@tonic-gate      * 			requires a network connection that failed. This
2760Sstevel@tonic-gate      *			includes timeout failures.
2770Sstevel@tonic-gate      */
2780Sstevel@tonic-gate 
findServiceTypes(String namingAuthority, Vector scopes)2790Sstevel@tonic-gate     Vector findServiceTypes(String namingAuthority, Vector scopes)
2800Sstevel@tonic-gate 	throws ServiceLocationException;
2810Sstevel@tonic-gate 
2820Sstevel@tonic-gate     /**
2830Sstevel@tonic-gate      * Return a Hashtable with the key FS_SERVICES matched to the
2840Sstevel@tonic-gate      * hashtable of ServiceURL objects as key and a vector
2850Sstevel@tonic-gate      * of their scopes as value, and the key FS_SIGTABLE
2860Sstevel@tonic-gate      * matched to a hashtable with ServiceURL objects as key
2870Sstevel@tonic-gate      * and the auth block Hashtable for the URL (if any) for value. The
2880Sstevel@tonic-gate      * returned service URLs will match the service type, scope, query,
2890Sstevel@tonic-gate      * and locale. If there are no signatures, the FS_SIGTABLE
2900Sstevel@tonic-gate      * key returns null. If there are no
2910Sstevel@tonic-gate      * registrations in any locale, FS_SERVICES is bound to an
2920Sstevel@tonic-gate      * empty table.
2930Sstevel@tonic-gate      *
2940Sstevel@tonic-gate      * @param serviceType The service type name.
2950Sstevel@tonic-gate      * @param scope The scope name.
2960Sstevel@tonic-gate      * @param query The query, with any escaped characters as yet unprocessed.
2970Sstevel@tonic-gate      * @param locale The locale in which to lowercase query and search.
2980Sstevel@tonic-gate      * @return A Hashtable with the key FS_SERVICES matched to the
2990Sstevel@tonic-gate      *         hashtable of ServiceURL objects as key and a vector
3000Sstevel@tonic-gate      *         of their scopes as value, and the key FS_SIGTABLE
3010Sstevel@tonic-gate      *         matched to a hashtable with ServiceURL objects as key
3020Sstevel@tonic-gate      *         and the auth block Hashtable for the URL (if any) for value.
3030Sstevel@tonic-gate      *         If there are no registrations in any locale, FS_SERVICES
3040Sstevel@tonic-gate      *	      is bound to an empty table.
3050Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if a parse error occurs
3060Sstevel@tonic-gate      *			during query parsing or if any
3070Sstevel@tonic-gate      *			error occurs during the operation or if the table
3080Sstevel@tonic-gate      * 			requires a network connection that failed. This
3090Sstevel@tonic-gate      *			includes timeout failures.
3100Sstevel@tonic-gate      */
3110Sstevel@tonic-gate 
findServices(String serviceType, Vector scopes, String query, Locale locale)3120Sstevel@tonic-gate     Hashtable findServices(String serviceType,
3130Sstevel@tonic-gate 			   Vector scopes,
3140Sstevel@tonic-gate 			   String query,
3150Sstevel@tonic-gate 			   Locale locale)
3160Sstevel@tonic-gate     throws ServiceLocationException;
3170Sstevel@tonic-gate 
3180Sstevel@tonic-gate     /**
3190Sstevel@tonic-gate      * Return a Hashtable with key FA_ATTRIBUTES matched to the
3200Sstevel@tonic-gate      * vector of ServiceLocationAttribute objects and key FA_SIG
3210Sstevel@tonic-gate      * matched to the auth block Hashtable for the attributes (if any)
3220Sstevel@tonic-gate      * The attribute objects will have tags matching the tags in
3230Sstevel@tonic-gate      * the input parameter vector. If there are no registrations in any locale,
3240Sstevel@tonic-gate      * FA_ATTRIBUTES is an empty vector.
3250Sstevel@tonic-gate      *
3260Sstevel@tonic-gate      * @param url The ServiceURL for which the records should be returned.
3270Sstevel@tonic-gate      * @param scopes The scope names for which to search.
3280Sstevel@tonic-gate      * @param attrTags The Vector of String
3290Sstevel@tonic-gate      *			objects containing the attribute tags.
3300Sstevel@tonic-gate      * @param locale The locale in which to lower case tags and search.
3310Sstevel@tonic-gate      * @return A Hashtable with a vector of ServiceLocationAttribute objects
3320Sstevel@tonic-gate      *         as the key and the auth block Hashtable for the attributes
3330Sstevel@tonic-gate      *         (if any) as the value.
3340Sstevel@tonic-gate      *         If there are no registrations in any locale, FA_ATTRIBUTES
3350Sstevel@tonic-gate      *         is an empty vector.
3360Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if any
3370Sstevel@tonic-gate      *			error occurs during the operation or if the table
3380Sstevel@tonic-gate      * 			requires a network connection that failed. This
3390Sstevel@tonic-gate      *			includes timeout failures. An error should be
3400Sstevel@tonic-gate      *			thrown if the tag vector is for a partial request
3410Sstevel@tonic-gate      *			and any of the scopes are protected.
3420Sstevel@tonic-gate      */
3430Sstevel@tonic-gate 
findAttributes(ServiceURL url, Vector scopes, Vector attrTags, Locale locale)3440Sstevel@tonic-gate     Hashtable findAttributes(ServiceURL url,
3450Sstevel@tonic-gate 			     Vector scopes,
3460Sstevel@tonic-gate 			     Vector attrTags,
3470Sstevel@tonic-gate 			     Locale locale)
3480Sstevel@tonic-gate 	throws ServiceLocationException;
3490Sstevel@tonic-gate 
3500Sstevel@tonic-gate     /**
3510Sstevel@tonic-gate      * Return a Vector of ServiceLocationAttribute objects with attribute tags
3520Sstevel@tonic-gate      * matching the tags in the input parameter vector for all service URL's
3530Sstevel@tonic-gate      * of the service type. If there are no registrations
3540Sstevel@tonic-gate      * in any locale, an empty vector is returned.
3550Sstevel@tonic-gate      *
3560Sstevel@tonic-gate      * @param serviceType The service type name.
3570Sstevel@tonic-gate      * @param scopes The scope names for which to search.
3580Sstevel@tonic-gate      * @param attrTags The Vector of String
3590Sstevel@tonic-gate      *			objects containing the attribute tags.
3600Sstevel@tonic-gate      * @param locale The locale in which to lower case tags.
3610Sstevel@tonic-gate      * @return A Vector of ServiceLocationAttribute objects matching the query.
3620Sstevel@tonic-gate      *         If no match occurs but there are registrations
3630Sstevel@tonic-gate      * 	      in other locales, null is returned. If there are no registrations
3640Sstevel@tonic-gate      *         in any locale, an empty vector is returned.
3650Sstevel@tonic-gate      * @exception ServiceLocationException Thrown if any
3660Sstevel@tonic-gate      *		 error occurs during the operation or if the table
3670Sstevel@tonic-gate      * 		 requires a network connection that failed. This
3680Sstevel@tonic-gate      *		 includes timeout failures. An error should also be
3690Sstevel@tonic-gate      *            signalled if any of the scopes are protected.
3700Sstevel@tonic-gate      */
3710Sstevel@tonic-gate 
findAttributes(String serviceType, Vector scopes, Vector attrTags, Locale locale)3720Sstevel@tonic-gate     Vector findAttributes(String serviceType,
3730Sstevel@tonic-gate 			  Vector scopes,
3740Sstevel@tonic-gate 			  Vector attrTags,
3750Sstevel@tonic-gate 			  Locale locale)
3760Sstevel@tonic-gate 	throws ServiceLocationException;
3770Sstevel@tonic-gate 
3780Sstevel@tonic-gate     /**
3790Sstevel@tonic-gate      * Dump the service store to the log.
3800Sstevel@tonic-gate      *
3810Sstevel@tonic-gate      */
3820Sstevel@tonic-gate 
dumpServiceStore()3830Sstevel@tonic-gate     void dumpServiceStore();
3840Sstevel@tonic-gate 
3850Sstevel@tonic-gate     /**
3860Sstevel@tonic-gate      * Obtain the record matching the service URL and locale.
3870Sstevel@tonic-gate      *
3880Sstevel@tonic-gate      * @param URL The service record to match.
3890Sstevel@tonic-gate      * @param locale The locale of the record.
3900Sstevel@tonic-gate      * @return The ServiceRecord object, or null if none.
3910Sstevel@tonic-gate      */
3920Sstevel@tonic-gate 
3930Sstevel@tonic-gate     public ServiceRecord
getServiceRecord(ServiceURL URL, Locale locale)3940Sstevel@tonic-gate 	getServiceRecord(ServiceURL URL, Locale locale);
3950Sstevel@tonic-gate 
3960Sstevel@tonic-gate     /**
3970Sstevel@tonic-gate      * Obtains service records with scopes matching from vector scopes.
3980Sstevel@tonic-gate      * If scopes is null, then returns all records.
3990Sstevel@tonic-gate      *
4000Sstevel@tonic-gate      * @param scopes Vector of scopes to match.
4010Sstevel@tonic-gate      * @return Enumeration   Of ServiceRecord Objects.
4020Sstevel@tonic-gate      */
4030Sstevel@tonic-gate 
getServiceRecordsByScope(Vector scopes)4040Sstevel@tonic-gate     Enumeration getServiceRecordsByScope(Vector scopes);
4050Sstevel@tonic-gate 
4060Sstevel@tonic-gate }
407