static Exception SerializeObjectFoundBuildIncompatibility(BlobSystem blobSystem, BlobGroup blobGroup, int version, Engine.EngineBuildHandle buildForBlobVersion, Engine.EngineBuildHandle actualBuild) { var msg = string.Format( "Build incompatibility for blob object {0} v{1} which uses build={2} " + "but stream uses build={3}", blobGroup.GroupTag.TagString, version, buildForBlobVersion.ToDisplayString(), actualBuild.ToDisplayString()); return(new System.IO.InvalidDataException(msg)); }
public void Serialize <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s) where TDoc : class where TCursor : class { if (s.IsReading) { var system = KSoft.Debug.TypeCheck.CastReference <BlobSystem>(s.UserData); ParentSystem = system; } BlobSystem.SerializeGroupsKey(s, ParentSystem, ref mGroupTag); s.StreamAttributeEnumOpt("type", ref mKnownAs, v => v != WellKnownBlob.NotWellKnown); using (s.EnterCursorBookmark("Versions")) { s.StreamableElements("V", mVersionAndBuildMap, SerializeVersionToBuildMapKey); } }
internal static void SerializeGroupsKey <TDoc, TCursor>(IO.TagElementStream <TDoc, TCursor, string> s, BlobSystem system, ref GroupTagDatum groupTag) where TDoc : class where TCursor : class { var tag_string = s.IsReading ? null : groupTag.TagString; s.StreamAttribute("tag", ref tag_string); if (s.IsReading) { groupTag = (GroupTagDatum)system.GroupTags.FindGroupByTag(tag_string); if (groupTag == null) { s.ThrowReadException(new KeyNotFoundException(string.Format( "The tag '{0}' isn't defined in this system", tag_string))); } } }
public SerializeObjectContext(BlobSystem system, Engine.BlamEngineTargetHandle gameTarget) { System = system; GameTarget = gameTarget; }