blob: 4176ebc9a9788b8c66cc6665f0ebaf0567887ace [file] [log] [blame]
/*
* $Header: /cvshome/build/org.osgi.service.log/src/org/osgi/service/log/LogReaderService.java,v 1.10 2006/06/16 16:31:49 hargrave Exp $
*
* Copyright (c) OSGi Alliance (2000, 2006). All Rights Reserved.
*
* Licensed 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.
*/
package org.osgi.service.log;
import java.util.Enumeration;
/**
* Provides methods to retrieve <code>LogEntry</code> objects from the log.
* <p>
* There are two ways to retrieve <code>LogEntry</code> objects:
* <ul>
* <li>The primary way to retrieve <code>LogEntry</code> objects is to register a
* <code>LogListener</code> object whose <code>LogListener.logged</code> method will
* be called for each entry added to the log.
* <li>To retrieve past <code>LogEntry</code> objects, the <code>getLog</code>
* method can be called which will return an <code>Enumeration</code> of all
* <code>LogEntry</code> objects in the log.
*
* @version $Revision: 1.10 $
* @see LogEntry
* @see LogListener
* @see LogListener#logged(LogEntry)
*/
public interface LogReaderService {
/**
* Subscribes to <code>LogEntry</code> objects.
*
* <p>
* This method registers a <code>LogListener</code> object with the Log Reader
* Service. The <code>LogListener.logged(LogEntry)</code> method will be
* called for each <code>LogEntry</code> object placed into the log.
*
* <p>
* When a bundle which registers a <code>LogListener</code> object is stopped
* or otherwise releases the Log Reader Service, the Log Reader Service must
* remove all of the bundle's listeners.
*
* <p>
* If this Log Reader Service's list of listeners already contains a
* listener <code>l</code> such that <code>(l==listener)</code>, this method
* does nothing.
*
* @param listener A <code>LogListener</code> object to register; the
* <code>LogListener</code> object is used to receive <code>LogEntry</code>
* objects.
* @see LogListener
* @see LogEntry
* @see LogListener#logged(LogEntry)
*/
public void addLogListener(LogListener listener);
/**
* Unsubscribes to <code>LogEntry</code> objects.
*
* <p>
* This method unregisters a <code>LogListener</code> object from the Log
* Reader Service.
*
* <p>
* If <code>listener</code> is not contained in this Log Reader Service's list
* of listeners, this method does nothing.
*
* @param listener A <code>LogListener</code> object to unregister.
* @see LogListener
*/
public void removeLogListener(LogListener listener);
/**
* Returns an <code>Enumeration</code> of all <code>LogEntry</code> objects in
* the log.
*
* <p>
* Each element of the enumeration is a <code>LogEntry</code> object, ordered
* with the most recent entry first. Whether the enumeration is of all
* <code>LogEntry</code> objects since the Log Service was started or some
* recent past is implementation-specific. Also implementation-specific is
* whether informational and debug <code>LogEntry</code> objects are included
* in the enumeration.
* @return An <code>Enumeration</code> of all <code>LogEntry</code> objects in
* the log.
*/
public Enumeration getLog();
}