Package ClusterShell :: Module Event
[hide private]
[frames] | no frames]

Source Code for Module ClusterShell.Event

  1  # 
  2  # Copyright CEA/DAM/DIF (2007, 2008, 2009, 2010) 
  3  #  Contributor: Stephane THIELL <stephane.thiell@cea.fr> 
  4  # 
  5  # This file is part of the ClusterShell library. 
  6  # 
  7  # This software is governed by the CeCILL-C license under French law and 
  8  # abiding by the rules of distribution of free software.  You can  use, 
  9  # modify and/ or redistribute the software under the terms of the CeCILL-C 
 10  # license as circulated by CEA, CNRS and INRIA at the following URL 
 11  # "http://www.cecill.info". 
 12  # 
 13  # As a counterpart to the access to the source code and  rights to copy, 
 14  # modify and redistribute granted by the license, users are provided only 
 15  # with a limited warranty  and the software's author,  the holder of the 
 16  # economic rights,  and the successive licensors  have only  limited 
 17  # liability. 
 18  # 
 19  # In this respect, the user's attention is drawn to the risks associated 
 20  # with loading,  using,  modifying and/or developing or reproducing the 
 21  # software by the user in light of its specific status of free software, 
 22  # that may mean  that it is complicated to manipulate,  and  that  also 
 23  # therefore means  that it is reserved for developers  and  experienced 
 24  # professionals having in-depth computer knowledge. Users are therefore 
 25  # encouraged to load and test the software's suitability as regards their 
 26  # requirements in conditions enabling the security of their systems and/or 
 27  # data to be ensured and,  more generally, to use and operate it in the 
 28  # same conditions as regards security. 
 29  # 
 30  # The fact that you are presently reading this means that you have had 
 31  # knowledge of the CeCILL-C license and that you accept its terms. 
 32  # 
 33  # $Id: Event.py 292 2010-07-15 22:43:46Z st-cea $ 
 34   
 35  """ 
 36  Event handler support 
 37   
 38  EventHandler's derived classes may implement ev_* methods to listen on 
 39  worker's events. 
 40  """ 
 41   
42 -class EventHandler(object):
43 """ 44 Base class EventHandler. 45 """
46 - def _invoke(self, ev_type, *args):
47 """ 48 Invoke a specific event handler. 49 """ 50 ev_handler = getattr(self, ev_type) 51 ev_handler(*args)
52
53 - def ev_start(self, worker):
54 """ 55 Called to indicate that a worker has just started. 56 """
57
58 - def ev_read(self, worker):
59 """ 60 Called to indicate that a worker has data to read. 61 """
62
63 - def ev_error(self, worker):
64 """ 65 Called to indicate that a worker has error to read (on stderr). 66 """
67
68 - def ev_written(self, worker):
69 """ 70 Called to indicate that writing has been done. 71 """
72
73 - def ev_hup(self, worker):
74 """ 75 Called to indicate that a worker's connection has been closed. 76 """
77
78 - def ev_timeout(self, worker):
79 """ 80 Called to indicate that a worker has timed out (worker timeout only). 81 """
82
83 - def ev_close(self, worker):
84 """ 85 Called to indicate that a worker has just finished (it may already 86 have failed on timeout). 87 """
88
89 - def ev_msg(self, port, msg):
90 """ 91 Handle port message. 92 93 @param port: The port object on which a message is available. 94 """
95
96 - def ev_timer(self, timer):
97 """ 98 Handle firing timer. 99 100 @param timer: The timer that is firing. 101 """
102