Changeset 62


Ignore:
Timestamp:
06/22/10 14:42:27 (11 years ago)
Author:
sc
Message:

client_thinkgear:

  • no longer inherits from puzzlebox_brainstorms_client
  • authorization can be enabled/disabled via configuration file
  • automatically attempts to reset connection parameters to JSON if response is not recognized

configuration:

  • thinkgear authorization enable/disble support

thinkgear_emulator_server_setup.py:

  • initial checkin
Location:
remote_control
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • remote_control/puzzlebox_brainstorms_client_thinkgear.py

    r61 r62  
    2020 
    2121import puzzlebox_brainstorms_configuration as configuration 
    22 import puzzlebox_brainstorms_client as client 
    2322 
    2423##################################################################### 
     
    3635THINKGEAR_DELIMITER = '\r' 
    3736 
     37ENABLE_THINKGEAR_AUTHORIZATION = configuration.ENABLE_THINKGEAR_AUTHORIZATION 
    3838AUTHORIZATION_REQUEST = configuration.THINKGEAR_AUTHORIZATION_REQUEST 
    3939 
     
    4646##################################################################### 
    4747 
    48 class puzzlebox_brainstorms_client_thinkgear(client.puzzlebox_brainstorms_client): 
     48class puzzlebox_brainstorms_client_thinkgear: 
    4949         
    5050        def __init__(self, log, \ 
     
    200200                        data = json.loads(line) 
    201201                except Exception, e: 
    202                         if SELF.DEBUG: 
     202                        if self.DEBUG: 
    203203                                print "Partial data received (or error:", 
    204204                                print e 
     
    207207                                print "line:", 
    208208                                print line 
     209 
     210                                # We've received back an unrecognized response 
     211                                # so we'll attempt to reset the server's 
     212                                # parameters for JSON communication 
     213                                self.send_data(self.factory.parameters) 
    209214                                 
    210215                else: 
     
    243248##################################################################### 
    244249 
    245 class puzzlebox_brainstorms_client_thinkgear_factory( \ 
    246         client.puzzlebox_brainstorms_client_send_command_factory): 
     250class puzzlebox_brainstorms_client_thinkgear_factory(protocol.ClientFactory): 
    247251         
    248252        def __init__(self, log, \ 
     
    289293 
    290294 
     295        ################################################################## 
     296         
     297        def clientConnectionFailed(self, connector, reason): 
     298                 
     299                if self.DEBUG: 
     300                        print "Client failed to connect to remote component at %s:%i" % \ 
     301                           (self.server_host, self.server_port) 
     302                 
     303                reply = 'FAILED_TO_CONNECT' 
     304                 
     305                self.connection_attempt = self.connection_attempt + 1 
     306                 
     307                if ((self.max_connection_attempts == None) or \ 
     308                         (self.connection_attempt <= self.max_connection_attempts)): 
     309                         
     310                        # If connection failed retry after one second 
     311                        reactor.callLater(1, connector.connect) 
     312                 
     313                else: 
     314                        if self.DEBUG: 
     315                                print "Maximum connection retries reached, aborting" 
     316                         
     317                         
     318                        self.replyDefer.callback(reply) 
     319         
     320         
     321        ################################################################## 
     322         
     323        def clientConnectionLost(self, connector, reason): 
     324                 
     325                # Losing Connection is expected after data exchange is complete 
     326                try: 
     327                        self.replyDefer.callback(reason) 
     328                except: 
     329                        pass 
     330 
     331 
    291332##################################################################### 
    292333# Main 
     
    307348                    DEBUG=DEBUG) 
    308349 
    309         # Use ThinkGear authentication 
    310 ##      reactor.callWhenRunning( \ 
    311 ##              thinkgear_client.authorize_and_send_parameters, \ 
    312 ##              thinkgear_parameters, \ 
    313 ##              authorization_request) 
    314          
    315         # Do not use ThinkGear authentication 
    316         authorization_request = None 
    317         reactor.callWhenRunning( \ 
    318                 thinkgear_client.send_parameters, \ 
    319                 thinkgear_parameters, \ 
    320                 authorization_request) 
     350 
     351        if ENABLE_THINKGEAR_AUTHORIZATION: 
     352                # Use ThinkGear authentication 
     353                reactor.callWhenRunning( \ 
     354                        thinkgear_client.authorize_and_send_parameters, \ 
     355                        thinkgear_parameters, \ 
     356                        authorization_request) 
     357 
     358        else:    
     359                # Do not use ThinkGear authentication 
     360                authorization_request = None 
     361                reactor.callWhenRunning( \ 
     362                        thinkgear_client.send_parameters, \ 
     363                        thinkgear_parameters, \ 
     364                        authorization_request) 
    321365 
    322366 
  • remote_control/puzzlebox_brainstorms_configuration.ini

    r48 r62  
    3030 
    3131##################################################################### 
     32# ThinkGear Connect configuration 
     33##################################################################### 
     34 
     35ENABLE_THINKGEAR_AUTHORIZATION = False 
     36 
     37THINKGEAR_AUTHORIZATION_REQUEST = { "appName": "Puzzlebox Brainstorms", "appKey": "2e285d7bd5565c0ea73e7e265c73f0691d932408" } 
     38 
     39 
     40##################################################################### 
    3241# Logging 
    3342##################################################################### 
  • remote_control/puzzlebox_brainstorms_configuration.py

    r57 r62  
    99# For more information please refer to http://www.gnu.org/copyleft/gpl.html 
    1010# 
    11 # Last Update: 2010.06.21 
     11# Last Update: 2010.06.22 
    1212# 
    1313##################################################################### 
     
    9999# ThinkGear Connect configuration 
    100100##################################################################### 
     101 
     102ENABLE_THINKGEAR_AUTHORIZATION = False 
    101103 
    102104THINKGEAR_AUTHORIZATION_REQUEST = { \ 
Note: See TracChangeset for help on using the changeset viewer.