The Service Class

Google Protocol RPC services are constructed either via a constructor or a factory which takes no parameters. However, some applications need to pass some state or configuration into a service across multiple requests. To do this, define parameters to the constructor of the service and use the new_factory() class method to build a factory that will transmit parameters to the constructor. For example:

  from 
  
 protorpc 
  
 import 
 remote 
 class 
  
 MyService 
 ( 
 remote 
 . 
 Service 
 ): 
 def 
  
 __init__ 
 ( 
 self 
 , 
 configuration 
 , 
 state 
 ): 
 self 
 . 
 configuration 
 = 
 configuration 
 self 
 . 
 state 
 = 
 state 
 configuration 
 = 
 MyServiceConfiguration 
 () 
 global_state 
 = 
 MyServiceState 
 () 
 my_service_factory 
 = 
 MyService 
 . 
 new_factory 
 ( 
 configuration 
 , 
 state 
 = 
 global_state 
 ) 
 

The contract with any service handler is that a new service object is created to handle each user request, and that the construction does not take any parameters. The factory satisfies this condition:

  new_instance 
 = 
 my_service_factory 
 () 
 assert 
 new_instance 
 . 
 state 
 is 
 global_state 
 

Service is provided by the protorpc.remote module.

Class Properties

Services instances one property:

request_state
Request state associated with this Service instance.

Class Methods

The Service class provides the following class methods:

all_remote_methods()

Gets all remote methods for a Service class.

Note:Built-in methods do not appear in the dictionary of remote methods.

Returns a dictionary that maps method names to remote methods.

new_factory( args , **kwargs )

Creates a factory for a service. Useful for passing configuration or state objects to the service. Accepts arbitrary parameters and keywords, however, underlying service must accept also accept not other parameters in its constructor.

Arguments
args
Arguments to pass to the service constructor.
**kwargs

Returns a factory function that creates a new instance and forwards arguments and keywords to the constructor.

Instance Methods

Service instances have the following methods:

initialize_request_state( request_state )
Arguments:
request_state
A RequestState instance.
Create a Mobile Website
View Site in Mobile | Classic
Share by: