package com.owwlo.courier.s.poster; import android.os.Message; import java.net.Socket; import java.util.Iterator; import java.util.LinkedList; public abstract class Poster implements Runnable { private LinkedList<PosterListener> mPosterListeners = new LinkedList<PosterListener>(); protected void notifyOnReceiveMessageFromClient(Socket paramSocket, Message paramMessage) { Iterator<PosterListener> localIterator = mPosterListeners.iterator(); while (true) { if (!localIterator.hasNext()) return; ((PosterListener) localIterator.next()).OnReceiveMessageFromClient( paramSocket, paramMessage); } } protected void notifyOnLastClientExit() { for (PosterListener listener : mPosterListeners) { listener.onLastClientExit(); } } public abstract int getConnectedCount(); public void addPosterListener(PosterListener paramPosterListener) { mPosterListeners.add(paramPosterListener); } public abstract void init(); public void removePosterListener(PosterListener paramPosterListener) { mPosterListeners.remove(paramPosterListener); } public abstract boolean sendMessage(Message paramMessage); public static abstract interface PosterListener { public abstract void OnReceiveMessageFromClient(Socket paramSocket, Message paramMessage); public abstract void onLastClientExit(); } }