[TransWarp] Twisted and TransWarp
Jean Jordaan
jean at upfrontsystems.co.za
Thu Oct 11 07:52:32 EDT 2001
Hi all
I don't know if you're all familiar with this already, but reading
the Twisted FAQ reminded me strongly of certain aspects (specifically,
*aspects*) of TransWarp.
http://twistedmatrix.com/page.epy/twistedphil.html
Interesting?
Regards,
Jean
Adverb Oriented
Twisted is "adverb oriented", which takes this one step further.
Using inheritance and a simple naming convention, Twisted classes
indicate what sort of events they are responding to. This allows
for conveniently extensible protocols along defined "vectors" for
extension.
Let's say you wanted an object to be both a Twisted Reality player, and
also an object accessible through Twisted PerspectiveBroker. You could
define a class that looked like the following::
class RemotePlayer(reality.player.Player, spread.pb.Referenced):
def ability_kill(self, sentence): #kills another player
foo()
def remote_killPlayer(self): #remote callable method.
bar()
Reality objects can have abilities, which you define by making a method
prefixed with ability_. pb objects have remotely callable
methods, which you define by making methods that begin with
remote_; so this is effectively the same as a class, a
snippet from the configuration file for a multi-user dungeon, and a
remote interface definition file; the three of which are normally
defined in different languages. Using "adverb orientation" and some
simple python features, we can avoid the need for macros or complex
parsing to achieve this effect.
More information about the PEAK
mailing list