00001 #!/usr/bin/env python 00002 # -*- coding: euc-jp -*- 00003 00004 ## 00005 # @file Listener.py 00006 # @brief Listener class 00007 # @date $Date: 2007/08/23$ 00008 # @author Noriaki Ando <n-ando@aist.go.jp> and Shinji Kurihara 00009 # 00010 # Copyright (C) 2007-2008 00011 # Task-intelligence Research Group, 00012 # Intelligent Systems Research Institute, 00013 # National Institute of 00014 # Advanced Industrial Science and Technology (AIST), Japan 00015 # All rights reserved. 00016 00017 00018 00019 ## 00020 # @if jp 00021 # @class ListenerBase 00022 # @brief ListenerBase クラス 00023 # 00024 # タイマーに登録するリスナー用抽象インターフェースクラス。 00025 # 00026 # @since 0.4.0 00027 # 00028 # @else 00029 # @class ListenerBase 00030 # @brief ListenerBase class 00031 # @endif 00032 class ListenerBase: 00033 """ 00034 """ 00035 00036 ## 00037 # @if jp 00038 # @brief コールバック処理(サブクラス実装用) 00039 # 00040 # コールバック処理用関数<BR> 00041 # ※サブクラスでの実装参照用 00042 # 00043 # @param self 00044 # 00045 # @else 00046 # 00047 # @endif 00048 def invoke(self): 00049 pass 00050 00051 00052 00053 ## 00054 # @if jp 00055 # @class ListenerObject 00056 # @brief ListenerObject クラス 00057 # 00058 # タイマーに登録するリスナー用基底クラス。 00059 # 00060 # @since 0.4.0 00061 # 00062 # @else 00063 # @class ListenerObject 00064 # @brief ListenerObject class 00065 # @endif 00066 class ListenerObject(ListenerBase): 00067 """ 00068 """ 00069 00070 ## 00071 # @if jp 00072 # @brief コンストラクタ 00073 # 00074 # コンストラクタ 00075 # 00076 # @param self 00077 # @param obj リスナーオブジェクト 00078 # @param cbf コールバック用関数 00079 # 00080 # @else 00081 # 00082 # @endif 00083 def __init__(self,obj,cbf): 00084 self.obj = obj 00085 self.cbf = cbf 00086 00087 00088 ## 00089 # @if jp 00090 # @brief コールバック用処理 00091 # 00092 # コールバック処理用関数 00093 # 00094 # @param self 00095 # 00096 # @else 00097 # 00098 # @endif 00099 def invoke(self): 00100 self.cbf(self.obj) 00101 00102 00103 00104 ## 00105 # @if jp 00106 # @class ListenerFunc 00107 # @brief ListenerFunc クラス 00108 # 00109 # コールバック用オブジェクト。 00110 # 00111 # @since 0.4.0 00112 # 00113 # @else 00114 # @class ListenerFunc 00115 # @brief ListenerFunc class 00116 # @endif 00117 class ListenerFunc(ListenerBase): 00118 """ 00119 """ 00120 00121 ## 00122 # @if jp 00123 # @brief コンストラクタ 00124 # 00125 # コンストラクタ 00126 # 00127 # @param self 00128 # @param cbf コールバック用関数 00129 # 00130 # @else 00131 # 00132 # @endif 00133 def __init__(self,cbf): 00134 self.cbf = cbf 00135 00136 00137 ## 00138 # @if jp 00139 # @brief コールバック処理 00140 # 00141 # コールバック処理用関数 00142 # 00143 # @param self 00144 # 00145 # @else 00146 # 00147 # @endif 00148 def invoke(self): 00149 self.cbf()