All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.intel.bluetooth.obex.OBEXSessionNotifierImpl Maven / Gradle / Ivy

Go to download

BlueCove is JSR-82 J2SE implementation that currently interfaces with the Mac OS X, WIDCOMM, BlueSoleil and Microsoft Bluetooth stack

The newest version!
/**
 *  BlueCove - Java library for Bluetooth
 *  Copyright (C) 2007-2008 Vlad Skarzhevskyy
 *
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you 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.
 *
 *  @author vlads
 *  @version $Id: OBEXSessionNotifierImpl.java 2475 2008-12-01 17:21:08Z skarzhevskyy $
 */
package com.intel.bluetooth.obex;

import java.io.IOException;
import java.util.Vector;

import javax.bluetooth.ServiceRecord;
import javax.bluetooth.ServiceRegistrationException;
import javax.microedition.io.Connection;
import javax.microedition.io.ServerSocketConnection;
import javax.microedition.io.StreamConnectionNotifier;
import javax.obex.Authenticator;
import javax.obex.ServerRequestHandler;
import javax.obex.SessionNotifier;

import com.intel.bluetooth.BluetoothConnectionNotifierServiceRecordAccess;
import com.intel.bluetooth.Utils;

/**
 * SessionNotifier implementation. See Bluetooth Specification Documents for
 * details.
 * 
 * 

* Your application should not use this class directly. * */ public class OBEXSessionNotifierImpl implements SessionNotifier, BluetoothConnectionNotifierServiceRecordAccess { private StreamConnectionNotifier notifier; private OBEXConnectionParams obexConnectionParams; private static final String FQCN = OBEXSessionNotifierImpl.class.getName(); private static final Vector fqcnSet = new Vector(); static { fqcnSet.addElement(FQCN); } /** * Applications should not used this function. * * @exception Error * if called from outside of BlueCove internal code. */ public OBEXSessionNotifierImpl(StreamConnectionNotifier notifier, OBEXConnectionParams obexConnectionParams) throws IOException, Error { Utils.isLegalAPICall(fqcnSet); this.notifier = notifier; this.obexConnectionParams = obexConnectionParams; } public Connection acceptAndOpen(ServerRequestHandler handler) throws IOException { return acceptAndOpen(handler, null); } public synchronized Connection acceptAndOpen(ServerRequestHandler handler, Authenticator auth) throws IOException { if (notifier == null) { throw new IOException("Session closed"); } if (handler == null) { throw new NullPointerException("handler is null"); } OBEXServerSessionImpl sessionImpl = new OBEXServerSessionImpl(notifier.acceptAndOpen(), handler, auth, obexConnectionParams); sessionImpl.startSessionHandlerThread(); return sessionImpl; } public void close() throws IOException { StreamConnectionNotifier n = this.notifier; this.notifier = null; if (n != null) { n.close(); } } /* * (non-Javadoc) * * @see com.intel.bluetooth.BluetoothConnectionNotifierServiceRecordAccess#getServiceRecord() */ public ServiceRecord getServiceRecord() { if (notifier instanceof ServerSocketConnection) { return new OBEXTCPServiceRecordImpl((ServerSocketConnection) notifier); } if (!(notifier instanceof BluetoothConnectionNotifierServiceRecordAccess)) { throw new IllegalArgumentException("connection is not a Bluetooth notifier"); } return ((BluetoothConnectionNotifierServiceRecordAccess) notifier).getServiceRecord(); } /* * (non-Javadoc) * * @see com.intel.bluetooth.BluetoothConnectionNotifierServiceRecordAccess#updateServiceRecord(boolean) */ public void updateServiceRecord(boolean acceptAndOpen) throws ServiceRegistrationException { if (!(notifier instanceof BluetoothConnectionNotifierServiceRecordAccess)) { throw new IllegalArgumentException("connection is not a Bluetooth notifier"); } ((BluetoothConnectionNotifierServiceRecordAccess) notifier).updateServiceRecord(acceptAndOpen); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy