summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/stanzabase.py
diff options
context:
space:
mode:
authorNathan Fritz <fritzy@netflint.net>2009-06-03 22:56:51 +0000
committerNathan Fritz <fritzy@netflint.net>2009-06-03 22:56:51 +0000
commit96b103b27599e5af247c1e3b95d62c80c1e32a63 (patch)
tree0527b1607b16adb020759ee9a944e1b22e3e0e6b /sleekxmpp/xmlstream/stanzabase.py
downloadslixmpp-96b103b27599e5af247c1e3b95d62c80c1e32a63.tar.gz
slixmpp-96b103b27599e5af247c1e3b95d62c80c1e32a63.tar.bz2
slixmpp-96b103b27599e5af247c1e3b95d62c80c1e32a63.tar.xz
slixmpp-96b103b27599e5af247c1e3b95d62c80c1e32a63.zip
moved seesmic branch to trunk
Diffstat (limited to 'sleekxmpp/xmlstream/stanzabase.py')
-rw-r--r--sleekxmpp/xmlstream/stanzabase.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/sleekxmpp/xmlstream/stanzabase.py b/sleekxmpp/xmlstream/stanzabase.py
new file mode 100644
index 00000000..5232ff5e
--- /dev/null
+++ b/sleekxmpp/xmlstream/stanzabase.py
@@ -0,0 +1,37 @@
+from __future__ import absolute_import
+from sleekxmpp.xmlstream.matcher.xpath import MatchXPath
+
+class StanzaBase(object):
+
+ MATCHER = MatchXPath("")
+
+ def __init__(self, stream, xml=None, extensions=[]):
+ self.extensions = extensions
+ self.p = {} #plugins
+
+ self.xml = xml
+ self.stream = stream
+ if xml is not None:
+ self.fromXML(xml)
+
+ def fromXML(self, xml):
+ "Initialize based on incoming XML"
+ self._processXML(xml)
+ for ext in self.extensions:
+ ext.fromXML(self, xml)
+
+
+ def _processXML(self, xml, cur_ns=''):
+ if '}' in xml.tag:
+ ns,tag = xml.tag[1:].split('}')
+ else:
+ tag = xml.tag
+
+ def toXML(self, xml):
+ "Set outgoing XML"
+
+ def extend(self, extension_class, xml=None):
+ "Initialize extension"
+
+ def match(self, xml):
+ return self.MATCHER.match(xml)