Net::OSCAR::XML -- XML functions for Net::OSCAR
We're doing the fancy-schmancy Protocol.xml stuff here, so I'll explain it here.
Protocol.xml contains a number of "OSCAR protocol elements". One <define> block is one OSCAR protocol elemennt.
When the module is first loaded, Protocol.xml is parsed and two hashes are created, one whose keys are the names the the elements and whose values are the contents of the XML::Parser tree which represents the contents of those elements; the other hash has a family/subtype tuple as a key and element names as a value.
To do something with an element,
given its name,
This returns a
pack takes a hash and returns a string of binary characters,
unpack goes the other way around.
The objects are cached,
protoparse only has to do actual work once for every protocol element.