A `parent' object, managing many sister-servers.
I maintain a list of all "sister" servers who are connected, so that all
servers can connect to each other. I also negotiate which distributed
objects are owned by which sister servers, so that if any sister-server
needs to locate an object it can be made available.
Methods
|
|
__init__
_cbLoaded
_cbLoadedResource
_ebLoaded
detached
loadRemoteResource
loadRemoteResourceFor
perspective_publishIP
perspective_unloadResource
|
|
__init__
|
__init__ (
self,
sharedSecret,
serviceName,
application=None,
)
|
|
_cbLoaded
|
_cbLoaded (
self,
ignored,
path,
)
|
|
_cbLoadedResource
|
_cbLoadedResource (
self,
ticket,
resourceType,
resourceName,
host,
port,
sisterPerspective,
)
|
|
_ebLoaded
|
_ebLoaded (
self,
error,
path,
)
|
|
detached
|
detached (
self,
client,
identity,
)
|
|
loadRemoteResource
|
loadRemoteResource (
self,
resourceType,
resourceName,
generateTicket,
)
Request a sister-server to load a resource.
NOTE: caching of ticket resources could be an issue... do we cache tickets??
Return a Deferred which will fire with (ticket, host, port), that will
describe where and how a resource can be located.
|
|
loadRemoteResourceFor
|
loadRemoteResourceFor (
self,
sisterPerspective,
resourceType,
resourceName,
generateTicket,
)
Use to load a remote resource on a specified sister
service. Dont load it if already loaded on a sister.
Exceptions
|
|
( "Attempt to load resource for no-existent sister" )
("resource %s:%s already loaded on a sister" %( resourceName, resourceType ) )
|
|
|
perspective_publishIP
|
perspective_publishIP (
self,
host,
port,
clientRef,
)
called by sister to set the host and port to publish for clients.
|
|
perspective_unloadResource
|
perspective_unloadResource (
self,
resourceType,
resourceName,
)
This is called by sister services to unload a resource
Exceptions
|
|
"Unable to unload not-loaded resource."
|
|
|