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__()