public QMFEvent(Session session, IDecoder dec) { Session = session ; ClassKey = new ClassKey(dec) ; Timestamp = dec.ReadInt64() ; Severity = (EventSeverity) dec.ReadUint8() ; SchemaClass sClass = Session.GetSchema(ClassKey) ; Arguments = new Dictionary<string, object>() ; if (sClass != null) { foreach (SchemaArgument arg in sClass.Arguments) { Arguments[arg.Name] = Session.DecodeValue(dec, arg.Type) ; } } }
public static string SchemaXML(Session sess, string packageName) { string returnValue = String.Format("<schema package='{0}'>\n", packageName) ; foreach (ClassKey key in sess.GetClasses(packageName)) { SchemaClass schema = sess.GetSchema(key) ; if (schema.Kind == 1) { if (schema.SuperType == null) returnValue += String.Format("\t<class name='{0}' hash='{1}'>\n", key.ClassName, key.GetHashString()) ; else returnValue += String.Format("\t<class name='{0}' hash='{1}' extends='{2}'>\n", key.ClassName, key.GetHashString(), schema.SuperType.GetKeyString()) ; foreach (SchemaProperty prop in schema.Properties) { object[] attributes = new object[5] ; attributes[0] = prop.Name ; attributes[1] = Util.TypeName(prop.Type) ; attributes[2] = Util.AccessName(prop.Access) ; attributes[3] = prop.Optional ; attributes[4] = XMLUtil.CommonAttributes(prop); returnValue += String.Format("\t\t<property name='{0}' type='{1}' access='{2}' optional='{3}'{4}/>\n", attributes) ; } foreach (SchemaMethod meth in schema.Methods) { returnValue += String.Format("\t\t<method name='{0}'/>\n", meth.Name) ; foreach (SchemaArgument arg in meth.Arguments) { object[] attributes = new object[4] ; attributes[0] = arg.Name ; attributes[1] = arg.Direction ; attributes[2] = Util.TypeName(arg.Type) ; attributes[3] = XMLUtil.CommonAttributes(arg); returnValue += String.Format("\t\t\t<arg name='{0}' dir='{1}' type='{2}'{3}/>\n", attributes) ; } returnValue += String.Format("\t\t</method>\n") ; } returnValue += String.Format("\t</class>\n") ; } else { returnValue += String.Format("\t<event name='{0}' hash='{1}'>\n", key.ClassName, key.GetHashString()) ; foreach (SchemaArgument arg in schema.Arguments) { object[] attributes = new object[4] ; attributes[0] = arg.Name ; attributes[1] = Util.TypeName(arg.Type) ; attributes[2] = XMLUtil.CommonAttributes(arg); returnValue += String.Format("\t\t\t<arg name='{0}' type='{1}'{2}/>\n", attributes) ; } returnValue += String.Format("\t</event>\n") ; } } returnValue += String.Format("</schema>\n") ; return returnValue ; }
public QMFEvent(Session session, IDecoder dec) { Session = session; ClassKey = new ClassKey(dec); Timestamp = dec.ReadInt64(); Severity = (EventSeverity)dec.ReadUint8(); SchemaClass sClass = Session.GetSchema(ClassKey); Arguments = new Dictionary <string, object>(); if (sClass != null) { foreach (SchemaArgument arg in sClass.Arguments) { Arguments[arg.Name] = Session.DecodeValue(dec, arg.Type); } } }
public static string SchemaXML(Session sess, string packageName) { string returnValue = String.Format("<schema package='{0}'>\n", packageName); foreach (ClassKey key in sess.GetClasses(packageName)) { SchemaClass schema = sess.GetSchema(key); if (schema.Kind == 1) { if (schema.SuperType == null) { returnValue += String.Format("\t<class name='{0}' hash='{1}'>\n", key.ClassName, key.GetHashString()); } else { returnValue += String.Format("\t<class name='{0}' hash='{1}' extends='{2}'>\n", key.ClassName, key.GetHashString(), schema.SuperType.GetKeyString()); } foreach (SchemaProperty prop in schema.Properties) { object[] attributes = new object[5]; attributes[0] = prop.Name; attributes[1] = Util.TypeName(prop.Type); attributes[2] = Util.AccessName(prop.Access); attributes[3] = prop.Optional; attributes[4] = XMLUtil.CommonAttributes(prop); returnValue += String.Format("\t\t<property name='{0}' type='{1}' access='{2}' optional='{3}'{4}/>\n", attributes); } foreach (SchemaMethod meth in schema.Methods) { returnValue += String.Format("\t\t<method name='{0}'/>\n", meth.Name); foreach (SchemaArgument arg in meth.Arguments) { object[] attributes = new object[4]; attributes[0] = arg.Name; attributes[1] = arg.Direction; attributes[2] = Util.TypeName(arg.Type); attributes[3] = XMLUtil.CommonAttributes(arg); returnValue += String.Format("\t\t\t<arg name='{0}' dir='{1}' type='{2}'{3}/>\n", attributes); } returnValue += String.Format("\t\t</method>\n"); } returnValue += String.Format("\t</class>\n"); } else { returnValue += String.Format("\t<event name='{0}' hash='{1}'>\n", key.ClassName, key.GetHashString()); foreach (SchemaArgument arg in schema.Arguments) { object[] attributes = new object[4]; attributes[0] = arg.Name; attributes[1] = Util.TypeName(arg.Type); attributes[2] = XMLUtil.CommonAttributes(arg); returnValue += String.Format("\t\t\t<arg name='{0}' type='{1}'{2}/>\n", attributes); } returnValue += String.Format("\t</event>\n"); } } returnValue += String.Format("</schema>\n"); return(returnValue); }