/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1999 by Sun Microsystems, Inc.
* All rights reserved.
*
*/
// CDAAdvert.java: Message class for SLP CDAAdvert message
// Author: James Kempf
// Created On: Fri Oct 10 10:48:05 1997
// Last Modified By: James Kempf
// Last Modified On: Fri Jan 29 09:24:50 1999
// Update Count: 134
//
/**
* The CDAAdvert class models the SLP DAAdvert message, client side.
* We need to accommodate SLPv1 by using an initialize() method.
*
* @author James Kempf
*/
// Construct a CDAAdvert from the input stream.
throws ServiceLocationException, IOException {
this.initialize(dis);
}
// Initialize the object from the input stream.
throws ServiceLocationException, IOException {
// Parse in the timestamp. Save bytes for auth block.
byte[] tsBytes = new byte[4];
// Parse in DA's service URL.
int lifetime = getDAURLLifetime();
// Parse in the scope list.
// Unescape scope strigns.
// Validate scope list.
// Parse in attribute list.
// Parse in the SPI list
// Construct bytes for auth.
// None of the strings have leading length fields, so add them here
abaos = new ByteArrayOutputStream();
abaos = new ByteArrayOutputStream();
abaos = new ByteArrayOutputStream();
// Parse in an auth block, if there.
}
// Create URL.
try {
} catch (IllegalArgumentException ex) {
throw
"malformed_url",
}
// Validate the service URL.
throw
"not_right_url",
}
// Set number of replies to one.
}
// Get the timestamp.
byte[] bytes)
throws ServiceLocationException, IOException {
long i = a << 24;
i += b << 16;
i += c << 8;
i += d;
return i;
}
// Return true if the advert indicates that the DA is going down.
boolean isGoingDown() {
return (timestamp == 0);
}
// Return true if the advert was unsolicited.
boolean isUnsolicited() {
}
// Set is solicited. No-op for V2, since messages already know.
}
// Calcualte DA URL lifetime, based on active discovery interval and
// granularity.
private int getDAURLLifetime() {
// Calculate lifetime based on maximum length of time between
// active discoveries. We add a fudge factor to avoid problems
// with scheduler granularity.
// If the discovery interval is zero, then the granularity will be
// also, and active discovery is off. In principle, it doesn't
// matter what the DA URL interval is because active discovery
// won't find any, because its off.
if (disInt <= 0) {
return ServiceURL.LIFETIME_MAXIMUM;
} else {
return
}
}
}