Class Layanan

Layanan RPC Google Protocol dibuat melalui konstruktor atau factory yang tidak menggunakan parameter. Namun, beberapa aplikasi harus meneruskan beberapa status atau konfigurasi ke layanan di beberapa permintaan. Untuk melakukannya, tentukan parameter ke konstruktor layanan dan gunakan metode class new_factory() untuk membangun factory yang akan mengirimkan parameter ke konstruktor. Contoh:

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)

Kontrak dengan pengendali layanan adalah objek layanan baru dibuat untuk menangani setiap permintaan pengguna, dan konstruksinya tidak menggunakan parameter apa pun. Factory memenuhi kondisi ini:

new_instance = my_service_factory()
assert new_instance.state is global_state

Service disediakan oleh modul protorpc.remote.

Properti Class

Instance layanan satu properti:

request_state
Meminta status yang terkait dengan instance Layanan ini.

Metode Class

Class Service menyediakan metode class berikut:

all_remote_methods()

Mendapatkan semua metode jarak jauh untuk class Service.

Catatan: Metode bawaan tidak muncul dalam kamus metode jarak jauh.

Menampilkan kamus yang memetakan nama metode ke metode jarak jauh.

new_factory(args, **kwargs)

Membuat factory untuk layanan. Berguna untuk meneruskan objek konfigurasi atau status ke layanan. Menerima parameter dan kata kunci arbitrer, tetapi layanan dasar juga tidak boleh menerima parameter lain dalam konstruktornya.

Argumen
args
Argumen yang akan diteruskan ke konstruktor layanan.
**kwargs

Menampilkan fungsi factory yang membuat instance baru serta meneruskan argumen dan kata kunci ke konstruktor.

Metode Instance

Instance layanan memiliki metode berikut:

initialize_request_state(request_state)
Argumen:
request_state
Instance RequestState.