View Javadoc
1   /**
2    * Logback: the reliable, generic, fast and flexible logging framework.
3    * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
4    *
5    * This program and the accompanying materials are dual-licensed under
6    * either the terms of the Eclipse Public License v1.0 as published by
7    * the Eclipse Foundation
8    *
9    *   or (per the licensee's choosing)
10   *
11   * under the terms of the GNU Lesser General Public License version 2.1
12   * as published by the Free Software Foundation.
13   */
14  package ch.qos.logback.core.net.server;
15  
16  import ch.qos.logback.core.net.server.Client;
17  
18  /**
19   *
20   * A mock {@link Client} that notifies waiting thread when it has started,
21   * and waits to be interrupted before exiting.
22   *
23   * @author Carl Harris
24   */
25  class MockClient implements Client {
26  
27      private boolean running;
28      private boolean closed;
29  
30      public void run() {
31          synchronized (this) {
32              running = true;
33              notifyAll();
34              while (running && !Thread.currentThread().isInterrupted()) {
35                  try {
36                      wait();
37                  } catch (InterruptedException ex) {
38                      Thread.currentThread().interrupt();
39                  }
40              }
41          }
42      }
43  
44      public void close() {
45          synchronized (this) {
46              running = false;
47              closed = true;
48              notifyAll();
49          }
50      }
51  
52      public synchronized boolean isRunning() {
53          return running;
54      }
55  
56      public synchronized boolean isClosed() {
57          return closed;
58      }
59  
60  }