001    /*
002     * Copyright 2004 Stephen J. McConnell.
003     * Copyright 2004 Niclas Hedhman.
004     *
005     * Licensed  under the  Apache License,  Version 2.0  (the "License");
006     * you may not use  this file  except in  compliance with the License.
007     * You may obtain a copy of the License at
008     *
009     *   http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed  under the  License is distributed on an "AS IS" BASIS,
013     * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY KIND, either  express  or
014     * implied.
015     *
016     * See the License for the specific language governing permissions and
017     * limitations under the License.
018     */
019    
020    package net.dpml.transit.monitor;
021    
022    import java.net.URL;
023    
024    /**
025     * A monitor of a download activity or activities.
026     *
027     * @author <a href="http://www.dpml.net">Digital Product Meta Library</a>
028     * @version 1.1.0
029     * @see Monitor
030     */
031    public interface NetworkMonitor extends Monitor
032    {
033        /**
034         * Notify the monitor of the update in the download status.
035         *
036         * @param resource the name of the remote resource being downloaded.
037         * @param expected the expected number of bytes to be downloaded.
038         * @param count the number of bytes downloaded.
039         */
040        void notifyUpdate( URL resource, int expected, int count );
041    
042        /**
043         * Notify the monitor of the successful completion of a download
044         * process.
045         * @param resource the name of the remote resource.
046         */
047        void notifyCompletion( URL resource );
048    }
049