1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright (c) 1999 by Sun Microsystems, Inc. 23 * All rights reserved. 24 * 25 */ 26 27 // CSrvDereg.java: Client side Service Deregistration 28 // Author: James Kempf 29 // Created On: Tue Feb 10 13:17:41 1998 30 // Last Modified By: James Kempf 31 // Last Modified On: Tue Oct 27 10:57:38 1998 32 // Update Count: 42 33 // 34 35 package com.sun.slp; 36 37 import java.util.*; 38 import java.io.*; 39 40 41 /** 42 * The SrvDeReg class models the server side SLP service deregistration. 43 * 44 * @author James Kempf 45 */ 46 47 48 class CSrvDereg extends SrvLocMsgImpl { 49 50 // Construct a CSrvDereg from the arguments. This is the client side 51 // SrvDereg for transmission to the server. 52 53 CSrvDereg(Locale locale, 54 ServiceURL url, 55 Vector scopes, 56 Vector tags, 57 Hashtable auth) 58 throws ServiceLocationException { 59 60 // Null tags argument means deregister the service URL, but it 61 // can't be empty. 62 63 if (tags != null && tags.size() <= 0) { 64 throw 65 new IllegalArgumentException( 66 SLPConfig.getSLPConfig().formatMessage("empty_vector", 67 new Object[0])); 68 } 69 70 this.initialize(locale, url, scopes, tags, auth); 71 72 } 73 74 // Initialize object. V1 will do it differently. 75 76 void initialize(Locale locale, 77 ServiceURL url, 78 Vector scopes, 79 Vector tags, 80 Hashtable auth) 81 throws ServiceLocationException { 82 83 SLPConfig config = SLPConfig.getSLPConfig(); 84 SLPHeaderV2 hdr = 85 new SLPHeaderV2(SrvLocHeader.SrvDereg, false, locale); 86 this.hdr = hdr; 87 hdr.scopes = (Vector)scopes.clone(); 88 89 // Escape tags. 90 91 if (tags != null) { 92 hdr.escapeTags(tags); 93 94 } else { 95 tags = new Vector(); 96 97 } 98 99 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 100 101 // Escape scopes. 102 103 hdr.escapeScopeStrings(scopes); 104 105 // Parse out the scopes. 106 107 hdr.parseCommaSeparatedListOut(scopes, baos); 108 109 // Parse out the URL. Ignore overflow. 110 111 hdr.parseServiceURLOut(url, 112 config.getHasSecurity(), 113 auth, 114 baos, 115 false); 116 117 // Parse out the tags. 118 119 hdr.parseCommaSeparatedListOut(tags, baos); 120 121 hdr.payload = baos.toByteArray(); 122 123 } 124 125 } 126