Source code for rwlock.service_imp
"""
Module **sesf.rwlock.service_imp** has class ``Imp`` that has
the signature of rwlock service and redirects incoming calls
(from a rwlock user) to RPC calls to a running rwlock.service program.
Class ``Imp`` also has a ``__end__`` function (to be called by the
rwlock user) that ends the running rwlock.service program.
"""
import Pyro4, argparse
from threading import get_ident
[docs]class Imp():
def __init__(self):
self.serviceproxies = {}
def acqr(self):
mytid = get_ident()
if mytid not in self.serviceproxies:
self.serviceproxies[mytid] = Pyro4.Proxy("PYRONAME:sesf.rwlock.service")
return self.serviceproxies[mytid].acqr()
def relr(self):
mytid = get_ident()
if mytid not in self.serviceproxies:
self.serviceproxies[mytid] = Pyro4.Proxy("PYRONAME:sesf.rwlock.service")
return self.serviceproxies[mytid].relr()
def acqw(self):
mytid = get_ident()
if mytid not in self.serviceproxies:
self.serviceproxies[mytid] = Pyro4.Proxy("PYRONAME:sesf.rwlock.service")
return self.serviceproxies[mytid].acqw()
def relw(self):
mytid = get_ident()
if mytid not in self.serviceproxies:
self.serviceproxies[mytid] = Pyro4.Proxy("PYRONAME:sesf.rwlock.service")
return self.serviceproxies[mytid].relw()
@Pyro4.oneway
def __end__(self):
endserviceproxy = Pyro4.Proxy("PYRONAME:sesf.rwlock.service")
endserviceproxy.__end__()