1 /*
2 ServiceType.java
3
4 (C) Copyright IBM Corp. 2005, 2009
5
6 THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
7 ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
8 CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.
9
10 You can obtain a current copy of the Eclipse Public License from
11 http://www.opensource.org/licenses/eclipse-1.0.php
12
13 @author : Roberto Pineiro, IBM, roberto.pineiro@us.ibm.com
14 * @author : Chung-hao Tan, IBM, chungtan@us.ibm.com
15 *
16 * Change History
17 * Flag Date Prog Description
18 *-------------------------------------------------------------------------------
19 * 1516246 2006-07-22 lupusalex Integrate SLP client code
20 * 1804402 2007-09-28 ebak IPv6 ready SLP
21 * 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
22 * 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
23 * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
24 */
25
26 package org.metricshub.wbem.sblim.slp;
27
28 /*-
29 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
30 * WBEM Java Client
31 * ჻჻჻჻჻჻
32 * Copyright 2023 - 2025 MetricsHub
33 * ჻჻჻჻჻჻
34 * Licensed under the Apache License, Version 2.0 (the "License");
35 * you may not use this file except in compliance with the License.
36 * You may obtain a copy of the License at
37 *
38 * http://www.apache.org/licenses/LICENSE-2.0
39 *
40 * Unless required by applicable law or agreed to in writing, software
41 * distributed under the License is distributed on an "AS IS" BASIS,
42 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
43 * See the License for the specific language governing permissions and
44 * limitations under the License.
45 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
46 */
47
48 import java.util.Locale;
49 import java.util.Vector;
50
51 /**
52 * The Advertiser is the SA interface, allowing clients to register new service
53 * instances with SLP, to change the attributes of existing services, and to
54 * deregister service instances. New registrations and modifications of
55 * attributes are made in the language locale with which the Advertiser was
56 * created, deregistrations of service instances are made for all locales.
57 */
58 public interface Advertiser {
59 /**
60 * Return the language locale with which this object was created.
61 *
62 * @return The locale
63 */
64 public abstract Locale getLocale();
65
66 /**
67 * Register a new service with SLP having the given attributes. The API
68 * library is required to perform the operation in all scopes obtained
69 * through configuration.
70 *
71 * @param pURL
72 * The URL for the service.
73 * @param pAttributes
74 * A vector of ServiceLocationAttribute objects describing the
75 * service.
76 * @throws ServiceLocationException
77 */
78 public abstract void register(ServiceURL pURL, Vector<ServiceLocationAttribute> pAttributes)
79 throws ServiceLocationException;
80
81 /**
82 * Deregister a service from the SLP framework. This has the effect of
83 * deregistering the service from every language locale. The API library is
84 * required to perform the operation in all scopes obtained through
85 * configuration.
86 *
87 * @param pURL
88 * The URL for the service.
89 * @throws ServiceLocationException
90 */
91 public abstract void deregister(ServiceURL pURL) throws ServiceLocationException;
92
93 /**
94 * Update the registration by adding the given attributes. The API library
95 * is required to perform the operation in all scopes obtained through
96 * configuration.
97 *
98 * @param pURL
99 * The URL for the service.
100 * @param pAttributes
101 * A Vector of ServiceLocationAttribute objects to add to the
102 * existing registration. Use an empty vector to update the URL
103 * alone. May not be null.
104 * @throws ServiceLocationException
105 */
106 public abstract void addAttributes(ServiceURL pURL, Vector<ServiceLocationAttribute> pAttributes)
107 throws ServiceLocationException;
108
109 /**
110 * Delete the attributes from a URL for the locale with which the Advertiser
111 * was created. The API library is required to perform the operation in all
112 * scopes obtained through configuration.
113 *
114 * @param pURL
115 * The URL for the service.
116 * @param pAttributeIds
117 * A vector of Strings indicating the ids of the attributes to
118 * remove. The strings may be attribute ids or they may be
119 * wildcard patterns to match ids. See [7] for the syntax of
120 * wildcard patterns. The strings may include SLP reserved
121 * characters, they will be escaped by the API before
122 * transmission. May not be the empty vector or null.
123 * @throws ServiceLocationException
124 */
125 public abstract void deleteAttributes(ServiceURL pURL, Vector<String> pAttributeIds) throws ServiceLocationException;
126 }