in qpid/management.py [0:0]
def parseContent (self, ch, cls, codec, seq=0):
""" Parse a received content message. """
if (cls == 'C' or (cls == 'B' and seq == 0)) and self.configCb == None:
return
if cls == 'I' and self.instCb == None:
return
packageName = codec.read_str8 ()
className = codec.read_str8 ()
hash = codec.read_bin128 ()
classKey = (packageName, className, hash)
if classKey not in self.schema:
return
row = []
timestamps = []
timestamps.append (codec.read_uint64 ()) # Current Time
timestamps.append (codec.read_uint64 ()) # Create Time
timestamps.append (codec.read_uint64 ()) # Delete Time
objId = objectId(codec)
schemaClass = self.schema[classKey]
if cls == 'C' or cls == 'B':
notPresent = self.parsePresenceMasks(codec, schemaClass)
if cls == 'C' or cls == 'B':
row.append(("id", objId))
for element in schemaClass['C'][1:]:
tc = element[1]
name = element[0]
if name in notPresent:
row.append((name, None))
else:
data = self.decodeValue(codec, tc)
row.append((name, data))
if cls == 'I' or cls == 'B':
if cls == 'I':
row.append(("id", objId))
for element in schemaClass['I'][1:]:
tc = element[1]
name = element[0]
data = self.decodeValue (codec, tc)
row.append ((name, data))
if cls == 'C' or (cls == 'B' and seq != self.syncSequence):
self.configCb (ch.context, classKey, row, timestamps)
elif cls == 'B' and seq == self.syncSequence:
if timestamps[2] == 0:
obj = mgmtObject (classKey, timestamps, row)
self.syncResult.append (obj)
elif cls == 'I':
self.instCb (ch.context, classKey, row, timestamps)