View Javadoc

1   /*
2    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3    *
4    * Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved.
5    *
6    * The contents of this file are subject to the terms of either the GNU
7    * General Public License Version 2 only ("GPL") or the Common Development
8    * and Distribution License("CDDL") (collectively, the "License").  You
9    * may not use this file except in compliance with the License.  You can
10   * obtain a copy of the License at
11   * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
12   * or packager/legal/LICENSE.txt.  See the License for the specific
13   * language governing permissions and limitations under the License.
14   *
15   * When distributing the software, include this License Header Notice in each
16   * file and include the License file at packager/legal/LICENSE.txt.
17   *
18   * GPL Classpath Exception:
19   * Oracle designates this particular file as subject to the "Classpath"
20   * exception as provided by Oracle in the GPL Version 2 section of the License
21   * file that accompanied this code.
22   *
23   * Modifications:
24   * If applicable, add the following below the License Header, with the fields
25   * enclosed by brackets [] replaced by your own identifying information:
26   * "Portions Copyright [year] [name of copyright owner]"
27   *
28   * Contributor(s):
29   * If you wish your version of this file to be governed by only the CDDL or
30   * only the GPL Version 2, indicate your decision by adding "[Contributor]
31   * elects to include this software in this distribution under the [CDDL or GPL
32   * Version 2] license."  If you don't indicate a single choice of license, a
33   * recipient has the option to distribute your version of this file under
34   * either the CDDL, the GPL Version 2 or to extend the choice of license to
35   * its licensees as provided above.  However, if you add GPL Version 2 code
36   * and therefore, elected the GPL Version 2 license, then the option applies
37   * only if the new code is made subject to such option by the copyright
38   * holder.
39   */
40  
41  package org.glassfish.grizzly;
42  
43  /**
44   * Monitoring probe providing callbacks that may be invoked by Grizzly
45   * {@link Transport} implementations.
46   *
47   * @author Alexey Stashok
48   *
49   * @since 2.0
50   */
51  public interface TransportProbe {
52      /**
53       * Method will be called, when the {@link Transport} gets started.
54       *
55       * @param transport {@link Transport}, the event belongs to.
56       */
57      public void onStartEvent(Transport transport);
58  
59      /**
60       * Method will be called, when the {@link Transport} gets stopped.
61       *
62       * @param transport {@link Transport}, the event belongs to.
63       */
64      public void onStopEvent(Transport transport);
65  
66      /**
67       * Method will be called, when the {@link Transport} gets paused.
68       *
69       * @param transport {@link Transport}, the event belongs to.
70       */
71      public void onPauseEvent(Transport transport);
72  
73      /**
74       * Method will be called, when the {@link Transport} gets resumed.
75       *
76       * @param transport {@link Transport}, the event belongs to.
77       */
78      public void onResumeEvent(Transport transport);
79  
80      /**
81       * Method will be called, when the {@link Transport} configuration gets changed.
82       *
83       * @param transport {@link Transport}, the event belongs to.
84       */
85      public void onConfigChangeEvent(Transport transport);
86      
87      /**
88       * Method will be called, when error occurs on the {@link Transport}.
89       *
90       * @param transport {@link Transport}, the event belongs to.
91       * @param error error
92       */
93      public void onErrorEvent(Transport transport, Throwable error);
94  
95  
96      // ---------------------------------------------------------- Nested Classes
97  
98      /**
99       * {@link TransportProbe} adapter that provides no-op implementations for
100      * all interface methods allowing easy extension by the developer.
101      *
102      * @since 2.1.9
103      */
104     @SuppressWarnings("UnusedDeclaration")
105     public class Adapter implements TransportProbe {
106 
107 
108         // ----------------------------------------- Methods from TransportProbe
109 
110 
111         /**
112          * {@inheritDoc}
113          */
114         @Override
115         public void onStartEvent(Transport transport) {}
116 
117         /**
118          * {@inheritDoc}
119          */
120         @Override
121         public void onStopEvent(Transport transport) {}
122 
123         /**
124          * {@inheritDoc}
125          */
126         @Override
127         public void onPauseEvent(Transport transport) {}
128 
129         /**
130          * {@inheritDoc}
131          */
132         @Override
133         public void onResumeEvent(Transport transport) {}
134 
135         /**
136          * {@inheritDoc}
137          */
138         @Override
139         public void onConfigChangeEvent(Transport transport) {}
140 
141         /**
142          * {@inheritDoc}
143          */
144         @Override
145         public void onErrorEvent(Transport transport, Throwable error) {}
146 
147     } // END Adapter
148 
149 }