public virtual int CompareTo(BTriggerSystem ts, TriggerScriptDbObjectWithArgs obj) { if (Name != obj.Name) { Debug.Trace.Engine.TraceInformation( "TriggerProtoDbObject: '{0}' - Encountered different names for {1}, '{2}' != '{3}'", ts, this.DbId.ToString(), this.Name, obj.Name); } if (ContainsUserClassTypeVar(ts, obj)) { Debug.Trace.Engine.TraceInformation( "TriggerProtoDbObject: {0} - Encountered {1}/{2} which has a UserClassType Var, skipping comparison", ts, DbId.ToString(), Name); return(0); } Contract.Assert(Version == obj.Version); Contract.Assert(Params.Count == obj.Args.Count); int diff = 0; for (int x = 0; x < Params.Count; x++) { int sig = Params[x].SigID; int obj_sig = obj.Args[x].SigID; sig = sig < 0 ? 0 : sig; obj_sig = obj_sig < 0 ? 0 : obj_sig; diff += sig - obj_sig; } return(diff); }
/// <summary>Returns the cursor to a previously saved cursor value</summary> /// <param name="old_cursor">Previously saved cursor. Set to null before the method returns</param> public void RestoreCursor(ref XmlElement old_cursor) { Contract.Ensures(Contract.ValueAtReturn(out old_cursor) == null); Contract.Assert(old_cursor != null, "Can't restore a cursor that wasn't saved!"); Cursor = old_cursor; old_cursor = null; }
public bool StreamXmlForTypeName(KSoft.IO.XmlElementStream s, FA mode, string xmlName, ref int dbid, Engine.DatabaseTypeKind kind, bool isOptional = true, XmlNodeType xmlSource = Util.kSourceElement) { Contract.Requires(KSoft.IO.XmlElementStream.StreamSourceIsValid(xmlSource)); Contract.Requires(KSoft.IO.XmlElementStream.StreamSourceRequiresName(xmlSource) == (xmlName != null)); string id_name = null; bool was_streamed = true; bool to_lower = false; if (mode == FA.Read) { if (isOptional) { was_streamed = Util.StreamInternStringOpt(s, mode, xmlName, ref id_name, to_lower, xmlSource); } else { Util.StreamInternString(s, mode, xmlName, ref id_name, to_lower, xmlSource); } if (was_streamed) { dbid = Database.GetId(kind, id_name); Contract.Assert(dbid != PhxUtil.kInvalidInt32); if (PhxUtil.IsUndefinedReferenceHandle(dbid)) { TraceUndefinedHandle(s, id_name, dbid, kind.ToString()); } } else { dbid = PhxUtil.kInvalidInt32; } } else if (mode == FA.Write && dbid != PhxUtil.kInvalidInt32) { id_name = Database.GetName(kind, dbid); Contract.Assert(!string.IsNullOrEmpty(id_name)); if (isOptional) { Util.StreamInternStringOpt(s, mode, xmlName, ref id_name, to_lower, xmlSource); } else { Util.StreamInternString(s, mode, xmlName, ref id_name, to_lower, xmlSource); } } return(was_streamed); }
protected override void ReadXml(KSoft.IO.XmlElementStream s, BXmlSerializerInterface xs, int iteration) { int index = ReadExplicitIndex(s, xs); Contract.Assert(index != PhxLib.Util.kInvalidInt32); mList.InitializeItem(index); T data = new T(); data.StreamXml(s, FA.Read, xs); mList[index] = data; }
internal bool StreamXmlForID(KSoft.IO.XmlElementStream s, FA mode, string xml_name, ref int dbid, ObjectKind kind, bool is_optional = true, XmlNodeType xml_source = XML.Util.kSourceElement) { Contract.Requires(KSoft.IO.XmlElementStream.StreamSourceIsValid(xml_source)); Contract.Requires(KSoft.IO.XmlElementStream.StreamSourceRequiresName(xml_source) == (xml_name != null)); string id_name = null; bool was_streamed = true; bool to_lower = false; if (mode == FA.Read) { if (is_optional) { was_streamed = XML.Util.StreamInternStringOpt(s, mode, xml_name, ref id_name, to_lower, xml_source); } else { XML.Util.StreamInternString(s, mode, xml_name, ref id_name, to_lower, xml_source); } if (was_streamed) { dbid = GetId(kind, id_name); Contract.Assert(dbid != Util.kInvalidInt32); } else { dbid = Util.kInvalidInt32; } } else if (mode == FA.Write && dbid != Util.kInvalidInt32) { id_name = GetName(kind, dbid); Contract.Assert(!string.IsNullOrEmpty(id_name)); if (is_optional) { XML.Util.StreamInternStringOpt(s, mode, xml_name, ref id_name, to_lower, xml_source); } else { XML.Util.StreamInternString(s, mode, xml_name, ref id_name, to_lower, xml_source); } } return(was_streamed); }