[Twisted-Python] (no subject)

Moshe Zadka m at moshez.org
Fri Sep 21 11:49:13 EDT 2001


>------------------ control_panel.py -----------<
# Twisted, the Framework of Your Internet
# Copyright (C) 2001 Matthew W. Lefkowitz
# 
# This library is free software; you can redistribute it and/or
# modify it under the terms of version 2.1 of the GNU Lesser General Public
# License as published by the Free Software Foundation.
# 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
# 
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

from twisted.spread import pb
from twisted.internet import passport, main

class ControlPanelPerspective(pb.Perspective):
    def perspective_shutdown(self):
        main.shutDown()

    def perspective_save(self, name=''):
        import __main__
        __main__.application.save(name)

class ControlPanelService(pb.Service):
    def getPerspectiveNamed(self, name):
        return ControlPanelPerspective("any", self)

if __name__ == '__main__':
    import control_panel
    from twisted.internet.main import Application
    app = Application("control_panel")
    i = passport.Identity("guest", app)
    i.setPassword("guest")
    app.authorizer.addIdentity(i)
    bf = pb.BrokerFactory(app)
    svc = control_panel.ControlPanelService("control_panel", app)
    i.addKeyForPerspective(svc.getPerspectiveNamed('any'))
    app.listenOn(pb.portno, bf)
    app.save("start")
>------------------------------------------------------------<

>----------------- pbshutdown.py -----------------------------<

# Twisted, the Framework of Your Internet
# Copyright (C) 2001 Matthew W. Lefkowitz
# 
# This library is free software; you can redistribute it and/or
# modify it under the terms of version 2.1 of the GNU Lesser General Public
# License as published by the Free Software Foundation.
# 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
# 
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

from twisted.spread import pb
from twisted.internet import tcp, main

def failure(error):
    print "Failure...",error
    main.shutDown()

def disconnected():
    print "disconnected."
    main.shutDown()

def connected(perspective):
    perspective.shutdown(pberrback=main.shutDown, pbcallback=main.shutDown)
    print "connected."

def preConnected(identity):
    identity.attach("control_panel", "any", None,
                    pbcallback=connected,
                    pberrback=failure)

# run a client
b = pb.Broker()
b.requestIdentity("guest",  # username
                  "guest",  # password
                  callback = preConnected,
                  errback  = failure)

tcp.Client("localhost",pb.portno,b)

main.run()
>------------------------------------------------------------<

>------------------- pbsave.py  ----------------------------<
# Twisted, the Framework of Your Internet
# Copyright (C) 2001 Matthew W. Lefkowitz
# 
# This library is free software; you can redistribute it and/or
# modify it under the terms of version 2.1 of the GNU Lesser General Public
# License as published by the Free Software Foundation.
# 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
# 
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

from twisted.spread import pb
from twisted.internet import tcp, main

def failure(error):
    print "Failure...",error
    main.shutDown()

def disconnected():
    print "disconnected."
    main.shutDown()

def connected(perspective):
    perspective.save('pbservice', pberrback=main.shutDown, pbcallback=main.shutDown)
    print "connected."

def preConnected(identity):
    identity.attach("control_panel", "any", None,
                    pbcallback=connected,
                    pberrback=failure)

# run a client
b = pb.Broker()
b.requestIdentity("guest",  # username
                  "guest",  # password
                  callback = preConnected,
                  errback  = failure)

tcp.Client("localhost",pb.portno,b)

main.run()
>------------------------------------------------------------<

-- 
The Official Moshe Zadka FAQ: http://moshez.geek
The Official Moshe Zadka FAQ For Dummies: http://moshez.org
Read the FAQ





More information about the Twisted-Python mailing list