当前位置: 首页>>代码示例>>Python>>正文


Python Resources.addListener方法代码示例

本文整理汇总了Python中resources.Resources.addListener方法的典型用法代码示例。如果您正苦于以下问题:Python Resources.addListener方法的具体用法?Python Resources.addListener怎么用?Python Resources.addListener使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在resources.Resources的用法示例。


在下文中一共展示了Resources.addListener方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: System

# 需要导入模块: from resources import Resources [as 别名]
# 或者: from resources.Resources import addListener [as 别名]
class System(StateNode):

	STATE_STOPPED = 'Stopped'
	STATE_STARTED = 'Started'
	STATE_PAUSED  = 'Paused'

	EVENT_START    = 'Start'
	EVENT_PAUSE    = 'Pause'
	EVENT_CONTINUE = 'Continue'
	EVENT_STOP     = 'Stop'

	def __init__( self, name, parent ):
		StateNode.__init__( self, name, parent, initialState = System.STATE_STOPPED )
		self.log = Logger().get_instance( self.__class__.__name__ )

		self.config = Configuration( 'config', self )
		self.config.addListener( self )

		self.network = MessageAdapter( 'msg_net', self )
		self.network.addListener( self )

		self.resources = Resources( 'resources', self )
		self.resources.addListener( self )

		self.addListener( parent )

	def identifyEvent( self, event ):
		self.log.info( str(event) )

		if isinstance( event, MessageEvent ):
			return event.id
		elif isinstance( event, ConfigEvent ):
			return event.id
		elif isinstance( event, StateChangeNotification ):
			return event.id
		else:
			# Local events.
			return event.id

	# Stopped
	def inStopped_onStart( self, event ):
		self.send( Event( Configuration.EVENT_READ ), self.config, queued=False )

		self.send( ResourceEvent( ResourceEvent.EVENT_BIND, uri='sip.example.com', clsName='user-agent' ), self.resources, queued=False )
		self.send( NetEvent( NetEvent.EVENT_BIND, transport=self.query( 'network.transport' ), localAddress=self.query( 'network.localAddress' ), localPort=self.query( 'network.localPort' ) ), self.network, queued=False )

		self.changeState( self.STATE_STARTED )
		event.handled = True

	# Started
	def inStarted_onStop( self, event ):
		self.changeState( self.STATE_STOPPED )
		event.handled = True

	def inStarted_onPause( self, event ):
		self.changeState( self.STATE_PAUSED )
		event.handled = True

	def inStarted_onRxRequest( self, event ):
		self.send( event, self.resources, queued=False )

	def inStarted_onRxResponse( self, event ):
		self.send( event, self.resources, queued=False )

	def inStarted_onTxRequest( self, event ):
		self.send( event, self.network, queued=False )

	def inStarted_onTxResponse( self, event ):
		self.send( event, self.network, queued=False )

	# Paused
	def inPaused_onContinue( self, event ):
		self.changeState( self.STATE_STARTED )
		event.handled = True

	def query( self, name, active = True, args = None, kwargs = None ):
		return self.config.query( name, active, args, kwargs )
开发者ID:CaveMike,项目名称:mercury,代码行数:79,代码来源:system.py


注:本文中的resources.Resources.addListener方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。