[tuxdroid-svn] r5986 - software_suite_v3/software/plugin/plugin-skype/branches/in_out_plugin/execut
Status: Beta
Brought to you by:
ks156
|
From: jerome <c2m...@c2...> - 2009-12-16 09:59:17
|
Author: jerome
Date: 2009-12-16 10:59:03 +0100 (Wed, 16 Dec 2009)
New Revision: 5986
Modified:
software_suite_v3/software/plugin/plugin-skype/branches/in_out_plugin/executables/connector.py
Log:
* Applied new comments guideline.
Modified: software_suite_v3/software/plugin/plugin-skype/branches/in_out_plugin/executables/connector.py
===================================================================
--- software_suite_v3/software/plugin/plugin-skype/branches/in_out_plugin/executables/connector.py 2009-12-16 09:31:33 UTC (rev 5985)
+++ software_suite_v3/software/plugin/plugin-skype/branches/in_out_plugin/executables/connector.py 2009-12-16 09:59:03 UTC (rev 5986)
@@ -26,42 +26,134 @@
from time import sleep
from threading import Thread
from utils import ExtendedThread, SkypeClient
-
+
+# ==============================================================================
+# Declaration of the "connector" Object ( Skype client-api managment ).
+# ==============================================================================
+
class Connector(object):
''''
This class manage the skype client-api connection
'''
- #This boolean flag indicates if Skype client was started by the connector
- #To force close when connector shuts down.
- startedByConnector = False
+ #--------------------
+ # Public objects
+ #--------------------
+
#Event sent if Skype client was closed.
OnSkypeClosed = None
+ #API ready event.
OnAPIReady = None
- triggerSkypeClosed = True
+ #--------------------
+ # Private objects
+ #--------------------
+
+ #This boolean flag indicates if Skype client was started by the connector
+ startedByConnector = False
+ triggerSkypeClosed = True
#Skype4Py API object.
skype = None
timeout = 60
#Allow plugin to start commands or not.
lock = False
apiReady = False
-
#Skype client object.
- skypeClient = None
-
+ skypeClient = None
#Skype client Loop thread.
__clientLoop__ = None
-
-
-###################################################
-####### Private functions ############
+ # ==========================================================================
+ # Private methods
+ # ==========================================================================
+
+ # --------------------------------------------------------------------------
+ # Start the connector.
+ # --------------------------------------------------------------------------
+ def __start__(self, StartClient=True):
+ '''Start connection between client-application
+ '''
+ #Creating skype client helper object.
+ if os.name != 'nt':
+ self.skypeClient = SkypeClient(SkypeClient.LINUX)
+ else:
+ self.skypeClient = SkypeClient(SkypeClient.WINDOWS)
+
+ #If skype client is not running start it and wait started to connect api
+ if ( not self.skypeClient.isRunning() ) and StartClient:
+ self.startedByConnector = True
+ self.skypeClient.OnSkypeStarted = self.__connect_all__
+ self.skypeClient.start()
+ #Else, connecting now.
+ else:
+ self.__connect_all__()
+
+ # --------------------------------------------------------------------------
+ # Stop the connector.
+ # --------------------------------------------------------------------------
+ def __stop__(self, KillClient=False):
+ '''Stop all connections.
+ '''
+ self.skype.OnAttachmentStatus = None
+ if self.__clientLoop__ != None:
+ self.__clientLoop__.stop()
+
+ if ( KillClient == True ) or self.startedByConnector:
+ #Quitting Skype client.
+ self.skypeClient.stop()
+ self.skype = None
+
+ # --------------------------------------------------------------------------
+ # Initialize all ( events, skype api ) when Skype client is ready.
+ # --------------------------------------------------------------------------
+ def __connect_all__(self):
+ '''SkypeStarted received, so , connect all.
+ '''
+ #Initializing Skype4Py object.
+ if os.name == 'nt':
+ self.skype = Skype4Py.Skype()
+ else:
+ self.skype = Skype4Py.Skype(Transport='x11')
+
+ #Starting skype client check.
+ self.__clientLoop__ = ExtendedThread(target=self.__client_loop__)
+ self.__clientLoop__.start()
+
+ self.skype.OnAttachmentStatus = self.__new_skype_status__
+
+ self.apiReady = False
+ apiConnection = Thread(target= self.__connect_api__)
+ apiConnection.start()
+
+ # --------------------------------------------------------------------------
+ # Connect skype api.
+ # --------------------------------------------------------------------------
+ def __connect_api__(self):
+ '''Connect skype api.
+ '''
+ sleep(2.0)
+ try:
+ self.skype.OnAttachmentStatus = self.__new_skype_status__
+ self.skype.Attach()
+
+ except Exception:
+ self.apiReady = False
+
+ # --------------------------------------------------------------------------
+ # Check for unexcpected client shutdown, used with 'ExtendedThread' object.
+ # --------------------------------------------------------------------------
+ def __client_loop__(self):
+ '''Check for skype client running(used with ExtendedThread object).
+ '''
+ #Check if skype is closed.
+ if not self.skypeClient.isRunning():
+ self.__onSkypeClosed__()
+
+ # --------------------------------------------------------------------------
+ # Skype api Event handler, notify of new available API status.
+ # --------------------------------------------------------------------------
def __new_skype_status__(self, status):
- ''' Skype api Event handler.
- If Skype is closed and reopened, it informs us about it
- so we can reattach.
+ '''If Skype is closed and reopened we can reattach.
'''
-
#If api is not attached, then setting 'api not ready' values
if status != Skype4Py.apiAttachSuccess:
self.apiReady = False
@@ -80,23 +172,12 @@
#Notify client.
thread = Thread(target=self.OnAPIReady)
thread.start()
-
-
-
- def __client_loop__(self):
- '''
- Check for unexcpected client shutdown.
- Used with 'ExtendedThread' object.
- '''
- #Check if skype is closed.
- if not self.skypeClient.isRunning():
- self.__onSkypeClosed__()
-
-
-
+
+ # --------------------------------------------------------------------------
+ # Skype client closed event.
+ # --------------------------------------------------------------------------
def __onSkypeClosed__(self):
- '''
- Handle the case where Skype was closed, crashed, ...
+ '''Handle the case where Skype was closed, crashed, ...
'''
self.apiReady = False
@@ -104,155 +185,94 @@
if self.triggerSkypeClosed:
if(self.OnSkypeClosed != None):
self.triggerSkypeClosed = False
- self.OnSkypeClosed()
-
-
- def __connect_api__(self):
- '''
- Connect skype api.
- '''
- sleep(2.0)
- try:
- self.skype.OnAttachmentStatus = self.__new_skype_status__
- self.skype.Attach()
-
- except Exception:
- self.apiReady = False
-
-
-
- def __connect_all__(self):
- '''
- SkypeStarted received, so , connect all.
- '''
- #Initializing Skype4Py object.
- if os.name == 'nt':
- self.skype = Skype4Py.Skype()
- else:
- self.skype = Skype4Py.Skype(Transport='x11')
-
- #Starting skype client check.
- self.__clientLoop__ = ExtendedThread(target=self.__client_loop__)
- self.__clientLoop__.start()
-
- self.skype.OnAttachmentStatus = self.__new_skype_status__
-
- self.apiReady = False
- apiConnection = Thread(target= self.__connect_api__)
- apiConnection.start()
-
-
-
- def __start__(self, StartClient=True):
- '''
- Start connection between client-application
- '''
- #Creating skype client helper object.
- if os.name != 'nt':
- self.skypeClient = SkypeClient(SkypeClient.LINUX)
- else:
- self.skypeClient = SkypeClient(SkypeClient.WINDOWS)
-
- #If skype client is not running start it and wait started to connect api
- if ( not self.skypeClient.isRunning() ) and StartClient:
- self.startedByConnector = True
- self.skypeClient.OnSkypeStarted = self.__connect_all__
- self.skypeClient.start()
- #Else, connecting now.
- else:
- self.__connect_all__()
-
-
-
- def __stop__(self, KillClient=False):
- '''
- Stop all connection and close Skyp application if needed.
- '''
- self.skype.OnAttachmentStatus = None
- if self.__clientLoop__ != None:
- self.__clientLoop__.stop()
-
- if ( KillClient == True ) or self.startedByConnector:
- #Quitting Skype client.
- self.skypeClient.stop()
- self.skype = None
-
+ self.OnSkypeClosed()
-###################################################
-####### User functions ################
-
+ # ==========================================================================
+ # Private methods
+ # ==========================================================================
+
+ # --------------------------------------------------------------------------
+ # Start connection.
+ # --------------------------------------------------------------------------
def start(self, StartSkype=True):
- '''
- Start connection.
+ '''Start connection.
'''
self.__start__(StartClient = StartSkype)
-
+ # --------------------------------------------------------------------------
+ # Stop connection
+ # --------------------------------------------------------------------------
def stop(self, KillClient=False):
+ '''Stop connection.
'''
- Stop connection.
- '''
self.__stop__(KillClient)
-
+ # --------------------------------------------------------------------------
+ # Start skype client.
+ # --------------------------------------------------------------------------
def startClient(self, OnStarted=None):
+ '''Start skype client.
'''
- Start skype client.
- '''
if OnStarted != None:
self.skypeClient.OnSkypeStarted = OnStarted
self.skypeClient.start()
-
+ # --------------------------------------------------------------------------
+ # Stop skype client.
+ # --------------------------------------------------------------------------
def stopClient(self):
+ '''stop skype client.
'''
- stop skype client.
- '''
self.skypeClient.stop()
-
+ # --------------------------------------------------------------------------
+ # Return client state
+ # --------------------------------------------------------------------------
def isClientRunning(self):
+ '''Return client state
'''
- Return true if client is running, false otherwise.
- '''
return self.skypeClient.isRunning()
-
+ # --------------------------------------------------------------------------
+ # Return Skype API state.
+ # --------------------------------------------------------------------------
def isAPIReady(self):
+ '''Return true if skype api is ready.
'''
- Return true if skype api is ready.
- '''
return self.apiReady
-
+ # --------------------------------------------------------------------------
+ # Return the shared skype api object.
+ # --------------------------------------------------------------------------
def getSkypeAPI(self):
+ '''Return the shared skype api object.
'''
- Return the skype api object.
- '''
return self.skype
-
+ # --------------------------------------------------------------------------
+ # Return 'lock' state.
+ # --------------------------------------------------------------------------
def isSkypeLocked(self):
+ '''Return True if 'lock' was requested.
'''
- Return True if 'lock' was requested.
- '''
return self.lock
-
+ # --------------------------------------------------------------------------
+ # Get the lock.
+ # --------------------------------------------------------------------------
def requestSkypeLock(self):
+ '''Get the lock ( lock will avoid to start commands ).
'''
- Get the lock ( lock will avoid to start commands ).
- '''
if(not self.lock):
self.lock = True
return self.lock
-
+ # --------------------------------------------------------------------------
+ # Release a requested lock.
+ # --------------------------------------------------------------------------
def releaseSkypeLock(self):
+ '''Release a requested lock.
'''
- Release a requested lock.
- '''
if(self.lock):
self.lock = False
return not self.lock
-
|