/// <summary> /// Constructs a join lobby failed message /// </summary> /// <param name="message">Message</param> /// <param name="reason">Reason</param> public JoinLobbyFailedMessageData(JoinLobbyMessageData message, EJoinLobbyFailedReason reason) : base(Naming.GetMessageTypeNameFromMessageDataType <JoinLobbyFailedMessageData>(), message, reason) { if (reason == EJoinLobbyFailedReason.Invalid) { throw new ArgumentException("Join lobby failed reason can't be invalid.", nameof(reason)); } }
public bool TryAppend(byte[] buffer, TapeAppendCondition appendCondition = new TapeAppendCondition()) { if (buffer == null) { throw new ArgumentNullException("buffer"); } if (buffer.Length == 0) { throw new ArgumentException("Buffer must contain at least one byte."); } long version; int lastBlockSize; long offset; long firstVersion; long count; List <string> blockNames; var blob = _container.GetBlockBlobReference(_blobName); if (blob.Exists()) { var blockList = blob.DownloadBlockList().ToArray(); blockNames = blockList.Select(bl => bl.Name).ToList(); var lastBlock = blockList.LastOrDefault(); if (default(ListBlockItem) == lastBlock) { version = 0; lastBlockSize = int.MaxValue; offset = 0; firstVersion = 1; count = 0; } else { var nameInfo = Naming.GetInfo(DecodeName(lastBlock.Name)); firstVersion = nameInfo.FirstVersion; version = nameInfo.FirstVersion - 1 + nameInfo.Count; count = nameInfo.Count; if (lastBlock.Size > int.MaxValue) { throw new InvalidOperationException("last block size must be in 'int' range"); } lastBlockSize = (int)lastBlock.Size; offset = blockList.Reverse().Skip(1).Sum(l => l.Size); } } else { version = 0; lastBlockSize = int.MaxValue; offset = 0; firstVersion = 1; count = 0; blockNames = new List <string>(); } if (!appendCondition.Satisfy(version)) { return(false); } if (version > long.MaxValue - 1) { throw new IndexOutOfRangeException("Version is more than long.MaxValue."); } if (buffer.Length > FourMb) { throw new ArgumentException("buffer size must be less than or equal to 4 Mb", "buffer"); } using (var outStream = new MemoryStream()) { if (buffer.Length < MaxBlockSize && lastBlockSize <= MaxBlockSize - buffer.Length) { // read old block using (var s = blob.OpenRead()) { s.Seek(offset, SeekOrigin.Begin); s.CopyTo(outStream); TapeStreamSerializer.WriteRecord(outStream, buffer, version + 1); count++; blockNames.RemoveAt(blockNames.Count - 1); } } else { TapeStreamSerializer.WriteRecord(outStream, buffer, version + 1); firstVersion = version + 1; count = 1; } var blockId = EncodeName(Naming.GetName(firstVersion, count)); string md5Hash; outStream.Seek(0, SeekOrigin.Begin); using (var md5 = MD5.Create()) { md5Hash = Convert.ToBase64String(md5.ComputeHash(outStream)); } outStream.Seek(0, SeekOrigin.Begin); blob.PutBlock(blockId, outStream, md5Hash); blockNames.Add(blockId); blob.PutBlockList(blockNames); return(true); } }
/// <summary> /// Constructs a sendable "choose-word" game message /// </summary> /// <param name="index">Choose word index</param> public ChooseWordSendGameMessageData(uint index) : base(Naming.GetSendGameMessageDataNameInKebabCase <ChooseWordSendGameMessageData>(), index) { // ... }
/// <inheritdoc /> public void WriteFunctions(Profile profile, IEnumerable <Function> functions, BindTask task) { foreach (var function in functions) { if (function.ProfileName != profile.Name || function.ProfileVersion?.ToString(2) != profile.Version) { continue; } foreach (var rawCategory in function.Categories) { var category = FormatCategory(rawCategory); // check that the root project exists if (!profile.Projects.ContainsKey("Core")) { profile.Projects.Add ( "Core", new Project { IsRoot = true, Namespace = string.Empty, Classes = new List <Class> { new Class { ClassName = task.ConverterOpts.ClassName } } } ); } // check that the extension project exists, if applicable if (function.ExtensionName != "Core" && !profile.Projects.ContainsKey(category)) { profile.Projects.Add ( category, new Project { IsRoot = false, Namespace = $".{category.CheckMemberName(task.FunctionPrefix)}", Classes = new List <Class> { new Class { ClassName = task.ConverterOpts.ClassName } } } ); } // check that the interface exists if ( !profile.Projects[function.ExtensionName == "Core" ? "Core" : category] .Classes[0].NativeApis.ContainsKey(rawCategory) ) { profile.Projects[function.ExtensionName == "Core" ? "Core" : category] .Classes[0].NativeApis.Add ( rawCategory, new NativeApiSet { Name = $"I{Naming.Translate(TrimName(rawCategory, task), task.FunctionPrefix).CheckMemberName(task.FunctionPrefix)}" } ); } // add the function to the interface profile.Projects[function.ExtensionName == "Core" ? "Core" : category] .Classes[0].NativeApis[rawCategory] .Functions.Add(function); } } }
public AbstractWatcher Configure(Naming convention) { namingConvention = convention; return(this); }
public virtual string TransformText() { this.GenerationEnvironment = null; #line 1 "" this.Write(""); #line default #line hidden #line 6 "" this.Write("#ifndef SME_BUSDEFINITIONS_HPP\n#define SME_BUSDEFINITIONS_HPP\n\n#include \"SystemTy" + "pes.hpp\"\n#include \""); #line default #line hidden #line 10 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.SharedDefinitionsFileName(Network))); #line default #line hidden #line 10 "" this.Write("\"\n\n// Insert additional includes here\n// #### USER-DATA-INCLUDE-START\n// #### USE" + "R-DATA-INCLUDE-END\n\n"); #line default #line hidden #line 16 "" var known = new HashSet <Type>(); foreach (var bus in Network.Busses) { if (known.Contains(bus.SourceType)) { continue; } known.Add(bus.SourceType); #line default #line hidden #line 23 "" this.Write("\nclass "); #line default #line hidden #line 24 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 24 "" this.Write(" {\nprivate:\n"); #line default #line hidden #line 26 "" foreach (var signal in bus.Signals) { var cpptype = RS.TypeScope.GetType(signal); if (cpptype.IsArray) { #line default #line hidden #line 29 "" this.Write(" "); #line default #line hidden #line 29 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 29 "" this.Write(" write_"); #line default #line hidden #line 29 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 29 "" this.Write(";\n "); #line default #line hidden #line 30 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 30 "" this.Write(" read_"); #line default #line hidden #line 30 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 30 "" this.Write(";\n bool* valid_"); #line default #line hidden #line 31 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 31 "" this.Write(";\n bool* written_"); #line default #line hidden #line 32 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 32 "" this.Write(";\n bool* staged_"); #line default #line hidden #line 33 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 33 "" this.Write(";\n size_t size_"); #line default #line hidden #line 34 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 34 "" this.Write(";\n"); #line default #line hidden #line 35 "" } else { #line default #line hidden #line 36 "" this.Write(" "); #line default #line hidden #line 36 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 36 "" this.Write(" write_"); #line default #line hidden #line 36 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 36 "" this.Write(";\n "); #line default #line hidden #line 37 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 37 "" this.Write(" read_"); #line default #line hidden #line 37 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 37 "" this.Write(";\n bool valid_"); #line default #line hidden #line 38 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 38 "" this.Write(";\n bool written_"); #line default #line hidden #line 39 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 39 "" this.Write(";\n bool staged_"); #line default #line hidden #line 40 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 40 "" this.Write(";\n"); #line default #line hidden #line 41 "" } #line default #line hidden #line 42 "" } #line default #line hidden #line 43 "" this.Write("\npublic:\n\n "); #line default #line hidden #line 46 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 46 "" this.Write(" ();\n\n"); #line default #line hidden #line 48 "" foreach (var signal in bus.Signals) { var cpptype = RS.TypeScope.GetType(signal); if (cpptype.IsArray) { var eltype = cpptype.ElementName; #line default #line hidden #line 52 "" this.Write(" "); #line default #line hidden #line 52 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 52 "" this.Write(" "); #line default #line hidden #line 52 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 52 "" this.Write("(size_t index) const;\n "); #line default #line hidden #line 53 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 53 "" this.Write(" "); #line default #line hidden #line 53 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 53 "" this.Write("(size_t index, "); #line default #line hidden #line 53 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 53 "" this.Write(" value);\n"); #line default #line hidden #line 54 "" } else { #line default #line hidden #line 55 "" this.Write(" "); #line default #line hidden #line 55 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 55 "" this.Write(" "); #line default #line hidden #line 55 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 55 "" this.Write("() const;\n "); #line default #line hidden #line 56 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 56 "" this.Write(" "); #line default #line hidden #line 56 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 56 "" this.Write("("); #line default #line hidden #line 56 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 56 "" this.Write(" value);\n"); #line default #line hidden #line 57 "" } #line default #line hidden #line 58 "" } #line default #line hidden #line 59 "" this.Write(" void forward_signals();\n void propagate_signals();\n};\n\n"); #line default #line hidden #line 63 "" } #line default #line hidden #line 64 "" this.Write("\n// Insert additional code and classes here\n// #### USER-DATA-EXTRA-START\n// ####" + " USER-DATA-EXTRA-END\n\n#endif /* SME_BUSDEFINITIONS_HPP */\n"); #line default #line hidden return(this.GenerationEnvironment.ToString()); }
public static MappingRelationshipMN Parse(ManyToManyRelationshipMetadata rel, MappingRelationshipMN relationshipManyToMany, string thisEntityLogicalName) { relationshipManyToMany = relationshipManyToMany ?? new MappingRelationshipMN(); if (rel.Entity1LogicalName != null) { if (rel.Entity1LogicalName == thisEntityLogicalName) { relationshipManyToMany.Attribute = relationshipManyToMany.Attribute ?? new CrmRelationshipAttribute(); relationshipManyToMany.Attribute.FromEntity = rel.Entity1LogicalName ?? relationshipManyToMany.Attribute.FromEntity; relationshipManyToMany.Attribute.FromKey = rel.Entity1IntersectAttribute ?? relationshipManyToMany.Attribute.FromKey; relationshipManyToMany.Attribute.ToEntity = rel.Entity2LogicalName ?? relationshipManyToMany.Attribute.ToEntity; relationshipManyToMany.Attribute.ToKey = rel.Entity2IntersectAttribute ?? relationshipManyToMany.Attribute.ToKey; } else { relationshipManyToMany.Attribute = relationshipManyToMany.Attribute ?? new CrmRelationshipAttribute(); relationshipManyToMany.Attribute.ToEntity = rel.Entity1LogicalName ?? relationshipManyToMany.Attribute.ToEntity; relationshipManyToMany.Attribute.ToKey = rel.Entity1IntersectAttribute ?? relationshipManyToMany.Attribute.ToKey; relationshipManyToMany.Attribute.FromEntity = rel.Entity2LogicalName ?? relationshipManyToMany.Attribute.FromEntity; relationshipManyToMany.Attribute.FromKey = rel.Entity2IntersectAttribute ?? relationshipManyToMany.Attribute.FromKey; } relationshipManyToMany.Attribute.IntersectingEntity = rel.IntersectEntityName ?? relationshipManyToMany.Attribute.IntersectingEntity; } relationshipManyToMany.EntityRole = "null"; if (rel.SchemaName != null) { relationshipManyToMany.SchemaName = rel.SchemaName; relationshipManyToMany.DisplayName = rel.SchemaName; relationshipManyToMany.HybridName = Naming.GetProperVariableName(rel.SchemaName, false) + "_NN"; relationshipManyToMany.PrivateName = "_nn" + Naming.GetEntityPropertyPrivateName(rel.SchemaName); } if (rel.Entity1LogicalName != null && rel.Entity2LogicalName != null && rel.Entity1LogicalName == rel.Entity2LogicalName && rel.Entity1LogicalName == thisEntityLogicalName) { relationshipManyToMany.DisplayName = "Referenced_" + relationshipManyToMany.DisplayName; relationshipManyToMany.EntityRole = "Microsoft.Xrm.Sdk.EntityRole.Referenced"; relationshipManyToMany.IsSelfReferenced = true; } if (relationshipManyToMany.DisplayName == thisEntityLogicalName) { relationshipManyToMany.DisplayName += "1"; // this is what CrmSvcUtil does } relationshipManyToMany.ForeignKey = Naming.GetProperVariableName(relationshipManyToMany.Attribute.ToKey, false); relationshipManyToMany.Type = relationshipManyToMany.Attribute.ToEntity; relationshipManyToMany.MetadataId = rel.MetadataId; return(relationshipManyToMany); }
/// <summary> /// Constructs a user lobby color change message /// </summary> /// <param name="newUserLobbyColor">New user lobby color</param> public ChangeUserLobbyColorMessageData(Color newUserLobbyColor) : base(Naming.GetMessageTypeNameFromMessageDataType <ChangeUserLobbyColorMessageData>()) => NewUserLobbyColor = newUserLobbyColor;
public IDictionary <string, string> For(string resourceFile, Naming strategy) { return(keys(load(mapPath(normalizePath(resourceFile)))) .ToDictionary(key => naming(key, strategy), key => localize(key, resourceFile))); }
/// <summary> /// Constructs a stop game failed message /// </summary> /// <param name="message">Received message</param> /// <param name="reason">Reason</param> public StopGameFailedMessageData(StopGameMessageData message, EStopGameFailedReason reason) : base(Naming.GetMessageTypeNameFromMessageDataType <StopGameFailedMessageData>(), message, reason) { if (reason == EStopGameFailedReason.Invalid) { throw new ArgumentException("Stop game failed reason can't be invalid.", nameof(reason)); } }
/// <summary> /// Constructs an error message /// </summary> /// <param name="errorType">Error type</param> /// <param name="errorMessageType">Error message</param> /// <param name="message">Error message</param> public ErrorMessageData(EErrorType errorType, string errorMessageType, string message) : base(Naming.GetMessageTypeNameFromMessageDataType<ErrorMessageData>()) { if (errorType == EErrorType.Invalid) { throw new ArgumentException("Error type can't be invalid.", nameof(errorType)); } if (string.IsNullOrWhiteSpace(errorMessageType)) { throw new ArgumentNullException(nameof(errorMessageType)); } ErrorType = errorType; ErrorMessageType = errorMessageType; Message = message ?? throw new ArgumentNullException(nameof(message)); }
public virtual string TransformText() { this.GenerationEnvironment = null; #line 9 "" this.Write("library IEEE;\nuse IEEE.STD_LOGIC_1164.ALL;\nuse IEEE.NUMERIC_STD.ALL;\n\n-- library " + "SYSTEM_TYPES;\nuse work.SYSTEM_TYPES.ALL;\n\n-- library CUSTOM_TYPES;\nuse work.CUST" + "OM_TYPES.ALL;\n\n"); #line default #line hidden #line 19 "" if (RSP.HasCustomRenderer) { #line default #line hidden #line 20 "" this.Write(" -- Component declaration and signals\n"); #line default #line hidden #line 21 "" this.Write(this.ToStringHelper.ToStringWithCulture(RSP.CustomRendererInclude)); #line default #line hidden #line 21 "" this.Write("\n"); #line default #line hidden #line 22 "" } #line default #line hidden #line 23 "" this.Write("\n-- User defined packages here\n-- #### USER-DATA-IMPORTS-START\n-- #### USER-DATA-" + "IMPORTS-END\n\n\nentity "); #line default #line hidden #line 29 "" this.Write(this.ToStringHelper.ToStringWithCulture(Process.Name)); #line default #line hidden #line 29 "" this.Write(" is\n"); #line default #line hidden #line 30 "" var lastel = Process.SharedVariables.Cast <object>().Concat(Process.SharedSignals).LastOrDefault(); if (lastel != null) { #line default #line hidden #line 33 "" this.Write(" generic(\n"); #line default #line hidden #line 34 "" foreach (var variable in Process.SharedVariables) { #line default #line hidden #line 35 "" this.Write(" "); #line default #line hidden #line 35 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName("reset_" + variable.Name))); #line default #line hidden #line 35 "" this.Write(": in "); #line default #line hidden #line 35 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(variable))); #line default #line hidden #line 35 "" this.Write(this.ToStringHelper.ToStringWithCulture(variable == lastel ? "" : ";")); #line default #line hidden #line 35 "" this.Write("\n"); #line default #line hidden #line 36 "" } #line default #line hidden #line 37 "" foreach (var variable in Process.SharedSignals) { #line default #line hidden #line 38 "" this.Write(" "); #line default #line hidden #line 38 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName("reset_" + variable.Name))); #line default #line hidden #line 38 "" this.Write(": in "); #line default #line hidden #line 38 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(variable))); #line default #line hidden #line 38 "" this.Write(this.ToStringHelper.ToStringWithCulture(variable == lastel ? "" : ";")); #line default #line hidden #line 38 "" this.Write("\n"); #line default #line hidden #line 39 "" } #line default #line hidden #line 40 "" this.Write(" );\n"); #line default #line hidden #line 41 "" } #line default #line hidden #line 42 "" this.Write(" port(\n"); #line default #line hidden #line 43 "" foreach (var bus in Process.InputBusses.Where(x => !Process.OutputBusses.Contains(x))) { var busname = RS.GetLocalBusName(bus, Process); #line default #line hidden #line 46 "" this.Write(" -- Input bus "); #line default #line hidden #line 46 "" this.Write(this.ToStringHelper.ToStringWithCulture(busname)); #line default #line hidden #line 46 "" this.Write(" signals\n"); #line default #line hidden #line 47 "" foreach (var signal in bus.Signals) { #line default #line hidden #line 48 "" this.Write(" "); #line default #line hidden #line 48 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName(busname + "_" + signal.Name))); #line default #line hidden #line 48 "" this.Write(": in "); #line default #line hidden #line 48 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(signal))); #line default #line hidden #line 48 "" this.Write(";\n"); #line default #line hidden #line 49 "" } #line default #line hidden #line 50 "" } #line default #line hidden #line 51 "" this.Write("\n"); #line default #line hidden #line 52 "" foreach (var bus in Process.OutputBusses.Where(x => !Process.InputBusses.Contains(x))) { var busname = RS.GetLocalBusName(bus, Process); #line default #line hidden #line 55 "" this.Write(" -- Output bus "); #line default #line hidden #line 55 "" this.Write(this.ToStringHelper.ToStringWithCulture(busname)); #line default #line hidden #line 55 "" this.Write(" signals\n"); #line default #line hidden #line 56 "" foreach (var signal in RSP.WrittenSignals(bus)) { #line default #line hidden #line 57 "" this.Write(" "); #line default #line hidden #line 57 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName(busname + "_" + signal.Name))); #line default #line hidden #line 57 "" this.Write(": out "); #line default #line hidden #line 57 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(signal))); #line default #line hidden #line 57 "" this.Write(";\n"); #line default #line hidden #line 58 "" } #line default #line hidden #line 59 "" } #line default #line hidden #line 60 "" this.Write("\n"); #line default #line hidden #line 61 "" foreach (var bus in Process.InputBusses.Where(x => Process.OutputBusses.Contains(x))) { var busname = RS.GetLocalBusName(bus, Process); #line default #line hidden #line 64 "" this.Write(" -- Input/output bus "); #line default #line hidden #line 64 "" this.Write(this.ToStringHelper.ToStringWithCulture(busname)); #line default #line hidden #line 64 "" this.Write(" signals\n"); #line default #line hidden #line 65 "" foreach (var signal in bus.Signals) { #line default #line hidden #line 66 "" this.Write(" "); #line default #line hidden #line 66 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName(busname + "_" + signal.Name))); #line default #line hidden #line 66 "" this.Write(": in "); #line default #line hidden #line 66 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(signal))); #line default #line hidden #line 66 "" this.Write(";\n"); #line default #line hidden #line 67 "" } #line default #line hidden #line 68 "" this.Write("\n"); #line default #line hidden #line 69 "" foreach (var signal in bus.Signals) { #line default #line hidden #line 70 "" this.Write(" "); #line default #line hidden #line 70 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName("out_" + busname + "_" + signal.Name))); #line default #line hidden #line 70 "" this.Write(": out "); #line default #line hidden #line 70 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(signal))); #line default #line hidden #line 70 "" this.Write(";\n"); #line default #line hidden #line 71 "" } #line default #line hidden #line 72 "" } #line default #line hidden #line 73 "" this.Write(@" -- Clock signal CLK : in Std_logic; -- Ready signal RDY : in Std_logic; -- Finished signal FIN : out Std_logic; -- Enable signal ENB : in Std_logic; -- Reset signal RST : in Std_logic ); end "); #line default #line hidden #line 89 "" this.Write(this.ToStringHelper.ToStringWithCulture(Process.Name)); #line default #line hidden #line 89 "" this.Write(";\n\narchitecture RTL of "); #line default #line hidden #line 91 "" this.Write(this.ToStringHelper.ToStringWithCulture(Process.Name)); #line default #line hidden #line 91 "" this.Write(" is\n"); #line default #line hidden #line 92 "" if (RSP.HasCustomRenderer) { #line default #line hidden #line 93 "" this.Write(this.ToStringHelper.ToStringWithCulture(RSP.CustomRendererBody)); #line default #line hidden #line 93 "" this.Write("\n"); #line default #line hidden #line 94 "" } else { #line default #line hidden #line 95 "" foreach (var bus in Process.InternalBusses) { var busname = RS.GetLocalBusName(bus, Process); #line default #line hidden #line 98 "" this.Write(" -- Internal bus "); #line default #line hidden #line 98 "" this.Write(this.ToStringHelper.ToStringWithCulture(busname)); #line default #line hidden #line 98 "" this.Write(" signals\n"); #line default #line hidden #line 99 "" foreach (var signal in bus.Signals) { #line default #line hidden #line 100 "" this.Write(" signal "); #line default #line hidden #line 100 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName(busname + "_" + signal.Name))); #line default #line hidden #line 100 "" this.Write(": "); #line default #line hidden #line 100 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(signal))); #line default #line hidden #line 100 "" this.Write(";\n"); #line default #line hidden #line 101 "" } #line default #line hidden #line 102 "" this.Write("\n"); #line default #line hidden #line 103 "" } #line default #line hidden #line 104 "" this.Write("\n"); #line default #line hidden #line 105 "" if (Process.SharedSignals.Any() || Process.InternalDataElements.Any()) { #line default #line hidden #line 106 "" this.Write(" -- Internal signals\n"); #line default #line hidden #line 107 "" foreach (var s in Process.SharedSignals) { #line default #line hidden #line 108 "" this.Write(" signal "); #line default #line hidden #line 108 "" this.Write(this.ToStringHelper.ToStringWithCulture(s.Name)); #line default #line hidden #line 108 "" this.Write(" : "); #line default #line hidden #line 108 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(s))); #line default #line hidden #line 108 "" this.Write(";\n"); #line default #line hidden #line 109 "" } #line default #line hidden #line 110 "" if (RSP.FiniteStateMethod != null) { #line default #line hidden #line 111 "" this.Write(" signal FSM_Trigger : Std_logic := \'0\';\n"); #line default #line hidden #line 112 "" } #line default #line hidden #line 113 "" this.Write("\n"); #line default #line hidden #line 114 "" foreach (var s in Process.InternalDataElements) { #line default #line hidden #line 115 "" this.Write(" "); #line default #line hidden #line 115 "" this.Write(this.ToStringHelper.ToStringWithCulture(s is AST.Signal ? "signal" : "shared variable")); #line default #line hidden #line 115 "" this.Write(" "); #line default #line hidden #line 115 "" this.Write(this.ToStringHelper.ToStringWithCulture(s.Name)); #line default #line hidden #line 115 "" this.Write(" : "); #line default #line hidden #line 115 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(s))); #line default #line hidden #line 115 "" this.Write(" := "); #line default #line hidden #line 115 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.GetResetExpression(s))); #line default #line hidden #line 115 "" this.Write(";\n"); #line default #line hidden #line 116 "" } #line default #line hidden #line 117 "" } #line default #line hidden #line 118 "" this.Write("\n"); #line default #line hidden #line 119 "" if (Process.Methods != null && Process.Methods.Any(x => !(x.Ignore || x.IsStateMachine))) { #line default #line hidden #line 120 "" this.Write(" -- Internal methods\n"); #line default #line hidden #line 121 "" foreach (var s in Process.Methods.Where(x => !(x.Ignore || x.IsStateMachine))) { #line default #line hidden #line 122 "" foreach (var line in RSP.Helper.RenderMethod(s)) { #line default #line hidden #line 123 "" this.Write(" "); #line default #line hidden #line 123 "" this.Write(this.ToStringHelper.ToStringWithCulture(line)); #line default #line hidden #line 123 "" this.Write("\n"); #line default #line hidden #line 124 "" } #line default #line hidden #line 125 "" this.Write("\n"); #line default #line hidden #line 126 "" } #line default #line hidden #line 127 "" } #line default #line hidden #line 128 "" this.Write("\n"); #line default #line hidden #line 129 "" if (Process.IsClocked && RSP.FiniteStateMethod != null) { #line default #line hidden #line 130 "" this.Write(" -- Clock-edge capture signals\n"); #line default #line hidden #line 131 "" foreach (var bus in Process.InputBusses) { var busname = RS.GetLocalBusName(bus, Process); #line default #line hidden #line 134 "" this.Write(" -- Input bus "); #line default #line hidden #line 134 "" this.Write(this.ToStringHelper.ToStringWithCulture(busname)); #line default #line hidden #line 134 "" this.Write(" signals\n"); #line default #line hidden #line 135 "" foreach (var signal in bus.Signals) { #line default #line hidden #line 136 "" this.Write(" signal "); #line default #line hidden #line 136 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName("capture_" + busname + "_" + signal.Name))); #line default #line hidden #line 136 "" this.Write(": "); #line default #line hidden #line 136 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(signal))); #line default #line hidden #line 136 "" this.Write(" := "); #line default #line hidden #line 136 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.GetResetExpression(signal))); #line default #line hidden #line 136 "" this.Write(";\n"); #line default #line hidden #line 137 "" } #line default #line hidden #line 138 "" } #line default #line hidden #line 139 "" } #line default #line hidden #line 140 "" this.Write("\n -- User defined signals, procedures and components here\n -- #### USER" + "-DATA-SIGNALS-START\n -- #### USER-DATA-SIGNALS-END\n\nbegin\n\n -- Custom pr" + "ocesses go here\n -- #### USER-DATA-PROCESSES-START\n -- #### USER-DATA-PROC" + "ESSES-END\n\n"); #line default #line hidden #line 151 "" if (Process.Methods != null && Process.Methods.Any(x => !x.Ignore && x.IsStateMachine)) { #line default #line hidden #line 152 "" this.Write(" -- State machine process\n"); #line default #line hidden #line 153 "" foreach (var s in Process.Methods.Where(x => !x.Ignore && x.IsStateMachine)) { #line default #line hidden #line 154 "" foreach (var line in RSP.Helper.RenderStateMachine(s, RSP)) { #line default #line hidden #line 155 "" this.Write(" "); #line default #line hidden #line 155 "" this.Write(this.ToStringHelper.ToStringWithCulture(line)); #line default #line hidden #line 155 "" this.Write("\n"); #line default #line hidden #line 156 "" } #line default #line hidden #line 157 "" } #line default #line hidden #line 158 "" } #line default #line hidden #line 159 "" this.Write("\n\n"); #line default #line hidden #line 161 "" var sensitivity_signal = RSP.Process.IsClocked ? "CLK" : "RDY"; var variables = RSP.Variables.Concat(RSP.FiniteStateMethod == null ? RSP.SharedVariables : new Variable[0]); #line default #line hidden #line 165 "" this.Write("\n process(\n -- Custom sensitivity signals here\n -- #### USER-DAT" + "A-SENSITIVITY-START\n -- #### USER-DATA-SENSITIVITY-END\n "); #line default #line hidden #line 170 "" this.Write(this.ToStringHelper.ToStringWithCulture(sensitivity_signal)); #line default #line hidden #line 170 "" this.Write(",\n RST\n )\n"); #line default #line hidden #line 173 "" if (variables.Count() > 0) { #line default #line hidden #line 174 "" this.Write(" -- Internal variables\n"); #line default #line hidden #line 175 "" foreach (var s in variables) { #line default #line hidden #line 176 "" this.Write(" variable "); #line default #line hidden #line 176 "" this.Write(this.ToStringHelper.ToStringWithCulture(s.Name)); #line default #line hidden #line 176 "" this.Write(" : "); #line default #line hidden #line 176 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.VHDLWrappedTypeName(s))); #line default #line hidden #line 176 "" this.Write(this.ToStringHelper.ToStringWithCulture(Process.SharedVariables.Contains(s) ? " := " + Naming.ToValidName("reset_" + s.Name) : "")); #line default #line hidden #line 176 "" this.Write(";\n"); #line default #line hidden #line 177 "" } #line default #line hidden #line 178 "" } #line default #line hidden #line 179 "" this.Write("\n"); #line default #line hidden #line 180 "" if (!RSP.Process.IsClocked) { #line default #line hidden #line 181 "" this.Write(" variable reentry_guard: std_logic;\n"); #line default #line hidden #line 182 "" } #line default #line hidden #line 183 "" this.Write(@" -- #### USER-DATA-NONCLOCKEDVARIABLES-START -- #### USER-DATA-NONCLOCKEDVARIABLES-END begin -- Initialize code here -- #### USER-DATA-NONCLOCKEDSHAREDINITIALIZECODE-START -- #### USER-DATA-NONCLOCKEDSHAREDINITIALIZECODE-END if RST = '1' then "); #line default #line hidden #line 192 "" foreach (var s in RSP.ProcessResetStaments) { #line default #line hidden #line 193 "" this.Write(" "); #line default #line hidden #line 193 "" this.Write(this.ToStringHelper.ToStringWithCulture(s)); #line default #line hidden #line 193 "" this.Write("\n"); #line default #line hidden #line 194 "" } #line default #line hidden #line 195 "" foreach (var variable in RSP.FiniteStateMethod == null ? RSP.SharedVariables : RSP.Variables) { #line default #line hidden #line 196 "" this.Write(" "); #line default #line hidden #line 196 "" this.Write(this.ToStringHelper.ToStringWithCulture(variable.Name)); #line default #line hidden #line 196 "" this.Write(" := "); #line default #line hidden #line 196 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName("reset_" + variable.Name))); #line default #line hidden #line 196 "" this.Write(";\n"); #line default #line hidden #line 197 "" } #line default #line hidden #line 198 "" foreach (var variable in Process.SharedSignals) { #line default #line hidden #line 199 "" this.Write(" "); #line default #line hidden #line 199 "" this.Write(this.ToStringHelper.ToStringWithCulture(variable.Name)); #line default #line hidden #line 199 "" this.Write(" <= "); #line default #line hidden #line 199 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName("reset_" + variable.Name))); #line default #line hidden #line 199 "" this.Write(";\n"); #line default #line hidden #line 200 "" } #line default #line hidden #line 201 "" this.Write("\n"); #line default #line hidden #line 202 "" if (Process.IsClocked && RSP.FiniteStateMethod != null) { #line default #line hidden #line 203 "" this.Write(" -- Clock-edge capture signals\n"); #line default #line hidden #line 204 "" foreach (var bus in Process.InputBusses) { var busname = RS.GetLocalBusName(bus, Process); #line default #line hidden #line 207 "" this.Write(" -- Input bus "); #line default #line hidden #line 207 "" this.Write(this.ToStringHelper.ToStringWithCulture(busname)); #line default #line hidden #line 207 "" this.Write(" signals\n"); #line default #line hidden #line 208 "" foreach (var signal in bus.Signals) { #line default #line hidden #line 209 "" this.Write(" "); #line default #line hidden #line 209 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName("capture_" + busname + "_" + signal.Name))); #line default #line hidden #line 209 "" this.Write(" <= "); #line default #line hidden #line 209 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.GetResetExpression(signal))); #line default #line hidden #line 209 "" this.Write(";\n"); #line default #line hidden #line 210 "" } #line default #line hidden #line 211 "" } #line default #line hidden #line 212 "" } #line default #line hidden #line 213 "" this.Write(" \n"); #line default #line hidden #line 214 "" if (!RSP.Process.IsClocked) { #line default #line hidden #line 215 "" this.Write(" reentry_guard := \'0\';\n"); #line default #line hidden #line 216 "" } #line default #line hidden #line 217 "" if (RSP.FiniteStateMethod == null) { #line default #line hidden #line 218 "" this.Write(" FIN <= \'0\';\n"); #line default #line hidden #line 219 "" } else { #line default #line hidden #line 220 "" this.Write(" FSM_Trigger <= \'0\';\n"); #line default #line hidden #line 221 "" } #line default #line hidden #line 222 "" this.Write("\n -- Initialize code here\n -- #### USER-DATA-NONCLOCKEDRESE" + "TCODE-START\n -- #### USER-DATA-NONCLOCKEDRESETCODE-END\n\n"); #line default #line hidden #line 227 "" if (RSP.Process.IsClocked) { #line default #line hidden #line 228 "" this.Write(" elsif rising_edge("); #line default #line hidden #line 228 "" this.Write(this.ToStringHelper.ToStringWithCulture(sensitivity_signal)); #line default #line hidden #line 228 "" this.Write(") then\n"); #line default #line hidden #line 229 "" } else { #line default #line hidden #line 230 "" this.Write(" elsif reentry_guard /= RDY then\n reentry_guard := RDY;\n"); #line default #line hidden #line 232 "" } #line default #line hidden #line 233 "" this.Write("\n -- Initialize code here\n -- #### USER-DATA-NONCLOCKEDINIT" + "IALIZECODE-START\n -- #### USER-DATA-NONCLOCKEDINITIALIZECODE-END\n\n\n"); #line default #line hidden #line 239 "" foreach (var line in RSP.Helper.RenderMethod(Process.MainMethod)) { #line default #line hidden #line 240 "" this.Write(" "); #line default #line hidden #line 240 "" this.Write(this.ToStringHelper.ToStringWithCulture(line)); #line default #line hidden #line 240 "" this.Write("\n"); #line default #line hidden #line 241 "" } #line default #line hidden #line 242 "" this.Write("\n"); #line default #line hidden #line 243 "" if (Process.IsClocked && RSP.FiniteStateMethod != null) { #line default #line hidden #line 244 "" this.Write(" -- Clock-edge capture signals\n"); #line default #line hidden #line 245 "" foreach (var bus in Process.InputBusses) { var busname = RS.GetLocalBusName(bus, Process); #line default #line hidden #line 248 "" this.Write(" -- Input bus "); #line default #line hidden #line 248 "" this.Write(this.ToStringHelper.ToStringWithCulture(busname)); #line default #line hidden #line 248 "" this.Write(" signals\n"); #line default #line hidden #line 249 "" foreach (var signal in bus.Signals) { #line default #line hidden #line 250 "" this.Write(" "); #line default #line hidden #line 250 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName("capture_" + busname + "_" + signal.Name))); #line default #line hidden #line 250 "" this.Write(" <= "); #line default #line hidden #line 250 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName(busname + "_" + signal.Name))); #line default #line hidden #line 250 "" this.Write(";\n"); #line default #line hidden #line 251 "" } #line default #line hidden #line 252 "" } #line default #line hidden #line 253 "" } #line default #line hidden #line 254 "" this.Write("\n\n"); #line default #line hidden #line 256 "" if (RSP.FiniteStateMethod == null) { #line default #line hidden #line 257 "" this.Write(" FIN <= "); #line default #line hidden #line 257 "" this.Write(this.ToStringHelper.ToStringWithCulture(sensitivity_signal)); #line default #line hidden #line 257 "" this.Write(";\n"); #line default #line hidden #line 258 "" } else if (RSP.Process.IsClocked) { #line default #line hidden #line 259 "" this.Write(" FSM_Trigger <= not FSM_Trigger;\n"); #line default #line hidden #line 260 "" } else { #line default #line hidden #line 261 "" this.Write(" FSM_Trigger <= reentry_guard;\n"); #line default #line hidden #line 262 "" } #line default #line hidden #line 263 "" this.Write("\n end if;\n\n -- Non-clocked process actions here\n\n -- #### US" + "ER-DATA-CODE-START\n -- #### USER-DATA-CODE-END\n\n end process;\n\n"); #line default #line hidden #line 273 "" } #line default #line hidden #line 274 "" this.Write("\nend RTL;\n\n-- User defined architectures here\n-- #### USER-DATA-ARCH-START\n-- ###" + "# USER-DATA-ARCH-END\n"); #line default #line hidden return(this.GenerationEnvironment.ToString()); }
public (bool success, string failReason) PlaceBet(Hero hero, string team, int bet) { var tournamentBehavior = Mission.Current?.GetMissionBehaviour <TournamentBehavior>(); if (tournamentBehavior == null) { return(false, "Tournament is not active"); } if (!BLTAdoptAHeroModule.TournamentConfig.EnableBetting) { return(false, "Betting is disabled"); } if (CurrentBettingState == BettingState.closed) { return(false, "Betting is closed"); } if (tournamentBehavior.CurrentRoundIndex != 3 && BLTAdoptAHeroModule.TournamentConfig.BettingOnFinalOnly) { return(false, "Betting is only allowed on the final"); } if (CurrentBettingState != BettingState.open) { return(false, "Betting is not open"); } int teamsCount = tournamentBehavior.CurrentMatch.Teams.Count(); string[] activeTeams = TournamentHelpers.TeamNames.Take(teamsCount).ToArray(); int teamIdx = activeTeams.IndexOf(team.ToLower()); if (teamIdx == -1) { return(false, $"Team name must be one of {string.Join(", ", activeTeams)}"); } if (activeBets.TryGetValue(hero, out var existingBet)) { if (existingBet.team != teamIdx) { return(false, "You can only bet on one team"); } } int heroGold = BLTAdoptAHeroCampaignBehavior.Current.GetHeroGold(hero); if (heroGold < bet) { return(false, Naming.NotEnoughGold(bet, heroGold)); } if (existingBet != null) { existingBet.bet += bet; } else { activeBets.Add(hero, new() { team = teamIdx, bet = bet }); } // Take the actual money BLTAdoptAHeroCampaignBehavior.Current.ChangeHeroGold(hero, -bet); TournamentHub.UpdateBets(); return(true, null); }
public static MappingEntity Parse(EntityMetadata entityMetadata) { var entity = new MappingEntity(); entity.Attribute = new CrmEntityAttribute(); entity.TypeCode = entityMetadata.ObjectTypeCode; entity.Attribute.LogicalName = entityMetadata.LogicalName; entity.IsIntersect = (bool)entityMetadata.IsIntersect; entity.Attribute.PrimaryKey = entityMetadata.PrimaryIdAttribute; // entity.DisplayName = Helper.GetProperVariableName(entityMetadata.SchemaName); entity.DisplayName = Naming.GetProperEntityName(entityMetadata.SchemaName); entity.HybridName = Naming.GetProperHybridName(entityMetadata.SchemaName, entityMetadata.LogicalName); entity.StateName = entity.HybridName + "State"; if (entityMetadata.Description != null) { if (entityMetadata.Description.UserLocalizedLabel != null) { entity.Description = entityMetadata.Description.UserLocalizedLabel.Label; } } var fields = entityMetadata.Attributes .Where(a => a.AttributeOf == null) .Select(a => MappingField.Parse(a, entity)).ToList(); fields.ForEach(f => { if (f.DisplayName == entity.DisplayName) { f.DisplayName += "1"; } //f.HybridName = Naming.GetProperHybridFieldName(f.DisplayName, f.Attribute); } ); AddEnityImageCRM2013(fields); AddLookupFields(fields); entity.Fields = fields.ToArray(); entity.States = entityMetadata.Attributes.Where(a => a is StateAttributeMetadata).Select(a => MappingEnum.Parse(a as EnumAttributeMetadata)).FirstOrDefault(); entity.Enums = entityMetadata.Attributes .Where(a => a is PicklistAttributeMetadata || a is StateAttributeMetadata || a is StatusAttributeMetadata || a is BooleanAttributeMetadata) .Select(a => MappingEnum.Parse(a)).ToArray(); entity.PrimaryKey = entity.Fields.First(f => f.Attribute.LogicalName == entity.Attribute.PrimaryKey); entity.PrimaryKeyProperty = entity.PrimaryKey.DisplayName; entity.PrimaryNameAttribute = entityMetadata.PrimaryNameAttribute; entity.RelationshipsOneToMany = entityMetadata.OneToManyRelationships.Select(r => MappingRelationship1N.Parse(r, entity.Fields)).ToArray(); entity.RelationshipsOneToMany.ToList().ForEach(r => { var newName = r.DisplayName; if (newName == entity.DisplayName) { newName = r.DisplayName += "1"; } if (entity.Fields.Any(e => e.DisplayName == newName)) { newName = r.DisplayName += "2"; } }); entity.RelationshipsManyToOne = entityMetadata.ManyToOneRelationships.Select(r => MappingRelationshipN1.Parse(r, entity.Fields)).ToArray(); entity.RelationshipsManyToOne.ToList().ForEach(r => { var newName = r.DisplayName; if (newName == entity.DisplayName) { newName = r.DisplayName += "1"; } if (entity.Fields.Any(e => e.DisplayName == newName)) { newName = r.DisplayName += "2"; } }); var RelationshipsManyToMany = entityMetadata.ManyToManyRelationships.Select(r => MappingRelationshipMN.Parse(r, entity.LogicalName)).ToList(); var selfReferenced = RelationshipsManyToMany.Where(r => r.IsSelfReferenced).ToList(); foreach (var referecned in selfReferenced) { var referencing = (MappingRelationshipMN)referecned.Clone(); referencing.DisplayName = "Referencing" + Naming.GetProperVariableName(referecned.SchemaName); referencing.EntityRole = "Microsoft.Xrm.Sdk.EntityRole.Referencing"; RelationshipsManyToMany.Add(referencing); } RelationshipsManyToMany.ForEach(r => { var newName = r.DisplayName; if (newName == entity.DisplayName) { newName = r.DisplayName += "1"; } if (entity.Fields.Any(e => e.DisplayName == newName)) { newName = r.DisplayName += "2"; } }); entity.RelationshipsManyToMany = RelationshipsManyToMany.OrderBy(r => r.DisplayName).ToArray(); return(entity); }
/// <inheritdoc /> public void WriteFunctions(Profile profile, IEnumerable <Function> functions, ProfileConverterOptions opts) { foreach (var function in functions) { if (function.ProfileName != profile.Name || function.ProfileVersion?.ToString(2) != profile.Version) { continue; } foreach (var rawCategory in function.Categories) { var category = FormatCategory(rawCategory); // check that the root project exists if (!profile.Projects.ContainsKey("Core")) { profile.Projects.Add ( "Core", new Project { CategoryName = "Core", ExtensionName = "Core", IsRoot = true, Namespace = string.Empty } ); } // check that the extension project exists, if applicable if (function.ExtensionName != "Core" && !profile.Projects.ContainsKey(category)) { profile.Projects.Add ( category, new Project { CategoryName = category, ExtensionName = category, IsRoot = false, Namespace = $".{category.CheckMemberName(opts.Prefix)}" } ); } // check that the interface exists if ( !profile.Projects[function.ExtensionName == "Core" ? "Core" : category] .Interfaces.ContainsKey(rawCategory) ) { profile.Projects[function.ExtensionName == "Core" ? "Core" : category] .Interfaces.Add ( rawCategory, new Interface { Name = $"I{Naming.Translate(TrimName(rawCategory, opts), opts.Prefix).CheckMemberName(opts.Prefix)}" } ); } // add the function to the interface profile.Projects[function.ExtensionName == "Core" ? "Core" : category] .Interfaces[rawCategory] .Functions.Add(function); } } }
private static I ForService <I>(Uri serviceAddress, ServicePartitionKey partitionKey = null) where I : class, IService { Debug.Assert(typeof(I).IsInterface); return(ServiceProxy.Create <I>(serviceAddress, partitionKey: partitionKey, listenerName: Naming.Listener <I>())); }
public virtual string TransformText() { this.GenerationEnvironment = null; #line 1 "" this.Write(""); #line default #line hidden #line 6 "" this.Write("#include \""); #line default #line hidden #line 6 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.SimulatorFileName(Network))); #line default #line hidden #line 6 "" this.Write(".hpp\"\n\n// The names of all signals\nstd::string "); #line default #line hidden #line 9 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 9 "" this.Write("_SIGNAL_NAMES[] = {\n"); #line default #line hidden #line 10 "" foreach (var signal in RS.DriverSignals.Concat(RS.VerifySignals)) { var cpptype = RS.TypeScope.GetType(signal); if (cpptype.IsArray) { var eltype = cpptype.ElementName; var length = (int)RS.GetArrayLength(signal).DefaultValue; for (var i = 0; i < length; i++) { #line default #line hidden #line 17 "" this.Write(" \""); #line default #line hidden #line 17 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.TestBenchSignalName(signal))); #line default #line hidden #line 17 "" this.Write("("); #line default #line hidden #line 17 "" this.Write(this.ToStringHelper.ToStringWithCulture(i)); #line default #line hidden #line 17 "" this.Write(")\",\n"); #line default #line hidden #line 18 "" } #line default #line hidden #line 19 "" } else { #line default #line hidden #line 20 "" this.Write(" \""); #line default #line hidden #line 20 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.TestBenchSignalName(signal))); #line default #line hidden #line 20 "" this.Write("\",\n"); #line default #line hidden #line 21 "" } #line default #line hidden #line 22 "" } #line default #line hidden #line 23 "" this.Write("};\n\n"); #line default #line hidden #line 25 "" foreach (var process in Network.Processes) { var members = process .SharedVariables.Cast <AST.DataElement>() .Union(process.SharedSignals) //.Where(x => RS.TypeScope.GetType(x).IsArray) .Where(x => (x.DefaultValue is SME.AST.ArrayCreateExpression) || (x.DefaultValue is Array)); foreach (var v in members) { var rt = RS.TypeScope.GetType(v); var eltype = rt.ElementName; var arraylen = RS.GetArrayLength(v).DefaultValue; #line default #line hidden #line 36 "" this.Write("const "); #line default #line hidden #line 36 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 36 "" this.Write(" init_"); #line default #line hidden #line 36 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ProcessNameToValidName(process))); #line default #line hidden #line 36 "" this.Write("_"); #line default #line hidden #line 36 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName(v.Name))); #line default #line hidden #line 36 "" this.Write("["); #line default #line hidden #line 36 "" this.Write(this.ToStringHelper.ToStringWithCulture(arraylen)); #line default #line hidden #line 36 "" this.Write("] = "); #line default #line hidden #line 36 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.Renderer.GetInitializer(v))); #line default #line hidden #line 36 "" this.Write(";\n"); #line default #line hidden #line 37 "" } #line default #line hidden #line 38 "" } #line default #line hidden #line 39 "" this.Write("\n\n"); #line default #line hidden #line 41 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 41 "" this.Write("::"); #line default #line hidden #line 41 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 41 "" this.Write("() \n :\n"); #line default #line hidden #line 43 "" foreach (var bus in Network.Busses) { #line default #line hidden #line 44 "" this.Write(" bus_"); #line default #line hidden #line 44 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(bus))); #line default #line hidden #line 44 "" this.Write("(),\n"); #line default #line hidden #line 45 "" } #line default #line hidden #line 46 "" foreach (var process in Network.Processes) { var busses = process.InputBusses.Concat(process.OutputBusses).Concat(process.InternalBusses).Distinct().OrderBy(x => x.Name).ToArray(); var members = process.SharedVariables.Cast <AST.DataElement>().Union(process.SharedSignals).ToArray(); #line default #line hidden #line 51 "" this.Write(" proc_"); #line default #line hidden #line 51 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ProcessNameToValidName(process))); #line default #line hidden #line 51 "" this.Write("(\n"); #line default #line hidden #line 52 "" foreach (var bus in busses) { #line default #line hidden #line 53 "" this.Write(" &bus_"); #line default #line hidden #line 53 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(bus))); #line default #line hidden #line 53 "" this.Write(this.ToStringHelper.ToStringWithCulture((bus == busses.Last() & members.Length == 0) ? "" : ", ")); #line default #line hidden #line 53 "" this.Write("\n"); #line default #line hidden #line 54 "" } #line default #line hidden #line 55 "" foreach (var v in members) { var initializer = RS.Renderer.GetInitializer(v); if (!string.IsNullOrWhiteSpace(initializer)) { var rt = RS.TypeScope.GetType(v); if (rt.IsArray) { var eltype = rt.ElementName; var arraylen = RS.GetArrayLength(v).DefaultValue; #line default #line hidden #line 64 "" this.Write(" "); #line default #line hidden #line 64 "" this.Write(this.ToStringHelper.ToStringWithCulture(arraylen)); #line default #line hidden #line 64 "" this.Write(",\n"); #line default #line hidden #line 65 "" if ((v.DefaultValue is SME.AST.ArrayCreateExpression) || v.DefaultValue is Array) { #line default #line hidden #line 68 "" this.Write(" init_"); #line default #line hidden #line 68 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ProcessNameToValidName(process))); #line default #line hidden #line 68 "" this.Write("_"); #line default #line hidden #line 68 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ToValidName(v.Name))); #line default #line hidden #line 68 "" this.Write(this.ToStringHelper.ToStringWithCulture(v == members.Last() ? "" : ",")); #line default #line hidden #line 68 "" this.Write("\n"); #line default #line hidden #line 69 "" } else { #line default #line hidden #line 70 "" this.Write(" new "); #line default #line hidden #line 70 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 70 "" this.Write("["); #line default #line hidden #line 70 "" this.Write(this.ToStringHelper.ToStringWithCulture(arraylen)); #line default #line hidden #line 70 "" this.Write("]()"); #line default #line hidden #line 70 "" this.Write(this.ToStringHelper.ToStringWithCulture(v == members.Last() ? "" : ",")); #line default #line hidden #line 70 "" this.Write("\n"); #line default #line hidden #line 71 "" } #line default #line hidden #line 72 "" } else { #line default #line hidden #line 73 "" this.Write(" "); #line default #line hidden #line 73 "" this.Write(this.ToStringHelper.ToStringWithCulture(initializer)); #line default #line hidden #line 73 "" this.Write(this.ToStringHelper.ToStringWithCulture(v == members.Last() ? "" : ",")); #line default #line hidden #line 73 "" this.Write("\n"); #line default #line hidden #line 74 "" } #line default #line hidden #line 75 "" } #line default #line hidden #line 76 "" } #line default #line hidden #line 77 "" this.Write(" ),\n"); #line default #line hidden #line 78 "" } #line default #line hidden #line 79 "" this.Write(" trace_input(NULL),\n input_line(),\n cycle(0)\n{\n\n}\n\nsize_t "); #line default #line hidden #line 86 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 86 "" this.Write(@"::RunSimulation(const char* inputfile) { LoadTraceInput(inputfile); // Ignore the reset cycle DriveFromTraceInput(); while(true) { if (!DriveFromTraceInput()) { size_t res = cycle; Stop(); return res; } OnTick(); VerifyTrace(); FinishCycle(); } } void "); #line default #line hidden #line 105 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 105 "" this.Write(@"::LoadTraceInput(const char* inputfile) { if (trace_input != NULL) throw MessageException(""Already have an input trace file open""); // Open the trace file and validate the headers trace_input = new std::ifstream(inputfile); if (trace_input->bad()) { trace_input->close(); throw MessageException(""Trace input file not found, or not able to open""); } if (!std::getline(*trace_input, input_line)) { throw MessageException(""Trace input file was empty""); } if (cycle != 0) { throw MessageException(""Cannot load input file after the simulation has started""); } std::string token; std::istringstream headerlinestream(input_line); size_t field = 0; while(std::getline(headerlinestream, token, ',')) { if (token.compare("); #line default #line hidden #line 129 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 129 "" this.Write("_SIGNAL_NAMES[field]) != 0) {\n\n std::stringstream sstm;\n ss" + "tm << \"Field #\" << field << \" should be named \" << "); #line default #line hidden #line 132 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 132 "" this.Write("_SIGNAL_NAMES[field] << \" but is named \" << token << \", the trace file cannot be " + "used\";\n throw MessageException(sstm.str());\n }\n field++" + ";\n }\n\n cycle = 0;\n}\n\n"); #line default #line hidden #line 141 "" var driver_signal_count = 0; #line default #line hidden #line 142 "" this.Write("\nbool "); #line default #line hidden #line 143 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 143 "" this.Write(@"::DriveFromTraceInput() { if (trace_input == NULL) { throw MessageException(""Trace input file is not loaded""); } if (!std::getline(*trace_input, input_line)) { return false; } size_t i; std::string token; std::istringstream valuestream(input_line); size_t field = 0; "); #line default #line hidden #line 158 "" foreach (var signal in RS.DriverSignals) { var cpptype = RS.TypeScope.GetType(signal); if (cpptype.IsArray) { var eltype = cpptype.ElementName; var length = (int)RS.GetArrayLength(signal).DefaultValue; driver_signal_count += length; #line default #line hidden #line 165 "" this.Write(" for (i = 0; i < "); #line default #line hidden #line 165 "" this.Write(this.ToStringHelper.ToStringWithCulture(length)); #line default #line hidden #line 165 "" this.Write("; i++) {\n if (!std::getline(valuestream, token, \',\')) {\n std::s" + "tringstream sstm;\n sstm << \"Unexpected end-of-line in cycle \" << cycl" + "e << \", field \" << field << \", "); #line default #line hidden #line 168 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 168 "" this.Write("[\" << i << \"]\" << std::endl;\n throw MessageException(sstm.str());\n " + " }\n if (token.compare(\"U\") != 0)\n bus_"); #line default #line hidden #line 172 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(signal.Parent as AST.Bus))); #line default #line hidden #line 172 "" this.Write("."); #line default #line hidden #line 172 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 172 "" this.Write("(i, parse_"); #line default #line hidden #line 172 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 172 "" this.Write("(token)); \n field++;\n }\n"); #line default #line hidden #line 175 "" } else { driver_signal_count++; #line default #line hidden #line 179 "" this.Write(" if (!std::getline(valuestream, token, \',\')) {\n std::stringstream sstm;" + "\n sstm << \"Unexpected end-of-line in cycle \" << cycle << \", field \" << fi" + "eld << \", "); #line default #line hidden #line 181 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 181 "" this.Write("[\" << i << \"]\" << std::endl;\n throw MessageException(sstm.str());\n }\n " + " if (token.compare(\"U\") != 0)\n bus_"); #line default #line hidden #line 185 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(signal.Parent as AST.Bus))); #line default #line hidden #line 185 "" this.Write("."); #line default #line hidden #line 185 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 185 "" this.Write("(parse_"); #line default #line hidden #line 185 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.TypeScope.GetType(signal).Name)); #line default #line hidden #line 185 "" this.Write("(token));\n field++;\n"); #line default #line hidden #line 187 "" } #line default #line hidden #line 188 "" this.Write("\n"); #line default #line hidden #line 189 "" } #line default #line hidden #line 190 "" this.Write("\n return true;\n}\n\nvoid "); #line default #line hidden #line 194 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 194 "" this.Write("::FinishCycle() \n{\n cycle++;\n"); #line default #line hidden #line 197 "" if (Network.Busses.Any(x => x.IsClocked)) { #line default #line hidden #line 198 "" this.Write(" // Propagate clocked busses\n"); #line default #line hidden #line 199 "" foreach (var bus in Network.Busses.Where(x => x.IsClocked)) { #line default #line hidden #line 200 "" this.Write(" bus_"); #line default #line hidden #line 200 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 200 "" this.Write(".Propagate();\n"); #line default #line hidden #line 201 "" } #line default #line hidden #line 202 "" } #line default #line hidden #line 203 "" this.Write("}\n\nvoid "); #line default #line hidden #line 205 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 205 "" this.Write("::OnTick()\n{\n\n"); #line default #line hidden #line 208 "" foreach (var p in Network.Processes.Where(x => x.IsClocked).Distinct()) { #line default #line hidden #line 209 "" this.Write(" proc_"); #line default #line hidden #line 209 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ProcessNameToValidName(p))); #line default #line hidden #line 209 "" this.Write(".onTick();\n"); #line default #line hidden #line 210 "" } #line default #line hidden #line 211 "" foreach (var b in Network.Busses.Where(x => x.IsClocked).Distinct()) { #line default #line hidden #line 212 "" this.Write(" bus_"); #line default #line hidden #line 212 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(b))); #line default #line hidden #line 212 "" this.Write(".propagate_signals();\n"); #line default #line hidden #line 213 "" } #line default #line hidden #line 214 "" this.Write("\n\n"); #line default #line hidden #line 216 "" foreach (var n in Graph.ExecutionPlan) { var pn = GetProcess(n.Item); if (pn != null && !pn.IsClocked) { #line default #line hidden #line 220 "" this.Write(" proc_"); #line default #line hidden #line 220 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.ProcessNameToValidName(pn))); #line default #line hidden #line 220 "" this.Write(".onTick();\n"); #line default #line hidden #line 221 "" } #line default #line hidden #line 222 "" foreach (var b in n.Item.OutputBusses.Distinct()) { #line default #line hidden #line 223 "" this.Write(" bus_"); #line default #line hidden #line 223 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(GetBus(b)))); #line default #line hidden #line 223 "" this.Write(".forward_signals();\n"); #line default #line hidden #line 224 "" } #line default #line hidden #line 225 "" foreach (var b in n.PropagateAfter) { #line default #line hidden #line 226 "" this.Write(" bus_"); #line default #line hidden #line 226 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(GetBus(b)))); #line default #line hidden #line 226 "" this.Write(".propagate_signals();\n"); #line default #line hidden #line 227 "" } #line default #line hidden #line 228 "" foreach (var b in n.Item.InternalBusses) { #line default #line hidden #line 229 "" this.Write(" bus_"); #line default #line hidden #line 229 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(GetBus(b)))); #line default #line hidden #line 229 "" this.Write(".forward_signals();\n bus_"); #line default #line hidden #line 230 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(GetBus(b)))); #line default #line hidden #line 230 "" this.Write(".propagate_signals();\n"); #line default #line hidden #line 231 "" } #line default #line hidden #line 232 "" } #line default #line hidden #line 233 "" this.Write("}\n\nvoid "); #line default #line hidden #line 235 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 235 "" this.Write("::VerifyTrace()\n{\n if (trace_input == NULL) {\n throw MessageException(\"" + "Trace input file is not loaded\");\n }\n\n size_t i;\n size_t field = 0;\n " + " std::string token;\n std::istringstream valuestream(input_line);\n\n // Forw" + "ard past the "); #line default #line hidden #line 246 "" this.Write(this.ToStringHelper.ToStringWithCulture(driver_signal_count)); #line default #line hidden #line 246 "" this.Write(" signals\n for(i = 0; i < "); #line default #line hidden #line 247 "" this.Write(this.ToStringHelper.ToStringWithCulture(driver_signal_count)); #line default #line hidden #line 247 "" this.Write("; i++) {\n if (!std::getline(valuestream, token, \',\')) {\n throw " + "MessageException(\"Unexpected end-of-stream\");\n }\n field++;\n }\n\n" + " bool source_is_undef;\n\n"); #line default #line hidden #line 256 "" foreach (var signal in RS.VerifySignals) { var cpptype = RS.TypeScope.GetType(signal); var typecast = cpptype.Name == "system_uint8" ? "(int)" : ""; if (cpptype.IsArray) { typecast = cpptype.ElementName == "system_uint8" ? "(int)" : ""; var eltype = cpptype.ElementName; var length = (int)RS.GetArrayLength(signal).DefaultValue; #line default #line hidden #line 264 "" this.Write(" for (i = 0; i < "); #line default #line hidden #line 264 "" this.Write(this.ToStringHelper.ToStringWithCulture(length)); #line default #line hidden #line 264 "" this.Write(@"; i++) { if (!std::getline(valuestream, token, ',')) { std::stringstream sstm; sstm << ""Unexpected end-of-line in cycle "" << cycle << "", field "" << field << std::endl; throw MessageException(sstm.str()); } source_is_undef = false; try { "); #line default #line hidden #line 273 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 273 "" this.Write(" tmpval = bus_"); #line default #line hidden #line 273 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(signal.Parent as AST.Bus))); #line default #line hidden #line 273 "" this.Write("."); #line default #line hidden #line 273 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 273 "" this.Write("(i);\n } catch (InvalidReadException e) {\n source_is_undef = tru" + "e;\n }\n\n if (token.compare(\"U\") == 0 && source_is_undef) {\n " + " // Don\'t care\n } else if (token.compare(\"U\") != 0 && bus_"); #line default #line hidden #line 280 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(signal.Parent as AST.Bus))); #line default #line hidden #line 280 "" this.Write("."); #line default #line hidden #line 280 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 280 "" this.Write("(i) != parse_"); #line default #line hidden #line 280 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 280 "" this.Write("(token)) {\n std::stringstream sstm;\n sstm << \"Error in cycl" + "e \" << cycle << std::endl;\n sstm << \"Expected value \" << "); #line default #line hidden #line 283 "" this.Write(this.ToStringHelper.ToStringWithCulture(typecast)); #line default #line hidden #line 283 "" this.Write("parse_"); #line default #line hidden #line 283 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 283 "" this.Write("(token) << \", but got \" << "); #line default #line hidden #line 283 "" this.Write(this.ToStringHelper.ToStringWithCulture(typecast)); #line default #line hidden #line 283 "" this.Write("bus_"); #line default #line hidden #line 283 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(signal.Parent as AST.Bus))); #line default #line hidden #line 283 "" this.Write("."); #line default #line hidden #line 283 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 283 "" this.Write("(i) << \" for field \" << "); #line default #line hidden #line 283 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 283 "" this.Write("_SIGNAL_NAMES[field] << \" (raw: \" << token << \")\" << std::endl;\n throw" + " MessageException(sstm.str());\n }\n field++;\n }\n\n"); #line default #line hidden #line 289 "" } else { #line default #line hidden #line 290 "" this.Write(@" if (!std::getline(valuestream, token, ',')) { std::stringstream sstm; sstm << ""Unexpected end-of-line in cycle "" << cycle << "", field "" << field << std::endl; throw MessageException(sstm.str()); } source_is_undef = false; try { "); #line default #line hidden #line 298 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.TypeScope.GetType(signal).Name)); #line default #line hidden #line 298 "" this.Write(" tmpval = bus_"); #line default #line hidden #line 298 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(signal.Parent as AST.Bus))); #line default #line hidden #line 298 "" this.Write("."); #line default #line hidden #line 298 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 298 "" this.Write("();\n } catch (InvalidReadException e) {\n source_is_undef = true;\n }\n" + "\n if (token.compare(\"U\") == 0 && source_is_undef) {\n // Don\'t care\n " + " } else if (token.compare(\"U\") != 0 && bus_"); #line default #line hidden #line 305 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(signal.Parent as AST.Bus))); #line default #line hidden #line 305 "" this.Write("."); #line default #line hidden #line 305 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 305 "" this.Write("() != parse_"); #line default #line hidden #line 305 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.TypeScope.GetType(signal).Name)); #line default #line hidden #line 305 "" this.Write("(token)) {\n std::stringstream sstm;\n sstm << \"Error in cycle \" << c" + "ycle << std::endl;\n sstm << \"Expected value \" << "); #line default #line hidden #line 308 "" this.Write(this.ToStringHelper.ToStringWithCulture(typecast)); #line default #line hidden #line 308 "" this.Write("parse_"); #line default #line hidden #line 308 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.TypeScope.GetType(signal).Name)); #line default #line hidden #line 308 "" this.Write("(token) << \", but got \" << "); #line default #line hidden #line 308 "" this.Write(this.ToStringHelper.ToStringWithCulture(typecast)); #line default #line hidden #line 308 "" this.Write("bus_"); #line default #line hidden #line 308 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusNameToValidName(signal.Parent as AST.Bus))); #line default #line hidden #line 308 "" this.Write("."); #line default #line hidden #line 308 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 308 "" this.Write("() << \" for field \" << "); #line default #line hidden #line 308 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 308 "" this.Write("_SIGNAL_NAMES[field] << \" (raw: \" << token << \")\" << std::endl;\n throw Mes" + "sageException(sstm.str());\n }\n field++;\n"); #line default #line hidden #line 312 "" } #line default #line hidden #line 313 "" } #line default #line hidden #line 314 "" this.Write("}\n\nvoid "); #line default #line hidden #line 316 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.AssemblyNameToFileName(Network))); #line default #line hidden #line 316 "" this.Write("::Stop()\n{\n if (trace_input != NULL) {\n trace_input->close();\n d" + "elete trace_input;\n }\n}\n"); #line default #line hidden return(this.GenerationEnvironment.ToString()); }
/// <summary> /// Constructor /// </summary> /// <param name="name">Lobby name (optional)</param> /// <param name="gameMode">Game mode (optional)</param> /// <param name="isPrivate">Is lobby private (optional)</param> /// <param name="minimalUserCount">Minimal user count (optional)</param> /// <param name="maximalUserCount">Maximal user count (optional)</param> /// <param name="isStartingGameAutomatically">Is satarting game automatically (optional)</param> /// <param name="gameModeRules">Game mode rules (optional)</param> public ChangeLobbyRulesMessageData(string name = null, string gameMode = null, bool?isPrivate = null, uint?minimalUserCount = null, uint?maximalUserCount = null, bool?isStartingGameAutomatically = null, Dictionary <string, object> gameModeRules = null) : base(Naming.GetMessageTypeNameFromMessageDataType <ChangeLobbyRulesMessageData>()) { string new_name = null; if (name != null) { new_name = name.Trim(); if ((new_name.Length < Defaults.minimalLobbyNameLength) || (new_name.Length > Defaults.maximalLobbyNameLength)) { throw new ArgumentException($"Lobby name must be between { Defaults.minimalLobbyNameLength } and { Defaults.maximalLobbyNameLength } characters long.", nameof(name)); } } if ((minimalUserCount != null) && (maximalUserCount != null) && (minimalUserCount > maximalUserCount)) { throw new ArgumentException("Minimal user count can't be greater than maximal user count.", nameof(minimalUserCount)); } if ((gameMode != null) && string.IsNullOrWhiteSpace(gameMode)) { throw new ArgumentException("Game mode can't be unknown.", nameof(gameMode)); } if ((gameModeRules != null) && gameModeRules.ContainsValue(null)) { throw new ArgumentException("Game mode rules contains null.", nameof(gameModeRules)); } Name = new_name; GameMode = gameMode; IsPrivate = isPrivate; MinimalUserCount = minimalUserCount; MaximalUserCount = maximalUserCount; IsStartingGameAutomatically = isStartingGameAutomatically; GameModeRules = gameModeRules; }
//////////////////////////////////////////////////////////////////////////////////////// // Function Parsing //////////////////////////////////////////////////////////////////////////////////////// /// <inheritdoc /> public IEnumerable <Function> ReadFunctions(object obj, ProfileConverterOptions opts) { var doc = obj as XDocument; Debug.Assert(doc != null, nameof(doc) + " != null"); var registry = doc.Element("registry"); Debug.Assert(registry != null, $"{nameof(registry)} != null"); var allFunctions = registry .Elements("commands") .Elements("command") .Select(x => TranslateCommand(x, opts)) .ToDictionary(x => x.Attribute("name")?.Value, x => x); Debug.Assert(allFunctions != null, nameof(allFunctions) + " != null"); var apis = registry.Elements("feature") .Concat(registry .Elements("extensions") .Elements("extension") ?? throw new InvalidDataException()); Debug.Assert(apis != null, nameof(apis) + " != null"); var removals = registry.Elements("feature") .Elements("remove") .Elements("command") .Attributes("name") .Select(x => x.Value) .ToList(); Debug.Assert(removals != null, nameof(removals) + " != null"); foreach (var api in apis) { foreach (var requirement in api.Elements("require")) { var apiName = requirement.Attribute("api")?.Value ?? api.Attribute("api")?.Value ?? api.Attribute("supported")?.Value ?? "opencl"; var apiVersion = api.Attribute("number") != null ? Version.Parse(api.Attribute("number")?.Value ?? throw new InvalidDataException()) : null; foreach (var name in apiName.Split('|')) { foreach (var function in requirement.Elements("command") .Attributes("name") .Select(x => x.Value)) { var xf = allFunctions[TrimName(function, opts)]; var ret = new Function { Attributes = removals.Contains(function) ? new List <Attribute> { new Attribute { Name = "System.Obsolete", Arguments = new List <string> { $"\"Deprecated in version {apiVersion?.ToString(2)}\"" } } } : new List <Attribute>(), Categories = new List <string> { ExtensionName(api.Attribute("name")?.Value, opts) }, Doc = string.Empty, ExtensionName = api.Name == "feature" ? "Core" : ExtensionName(api.Attribute("name")?.Value, opts), GenericTypeParameters = new List <GenericTypeParameter>(), Name = Naming.Translate(NameTrimmer.Trim(TrimName(xf.Attribute("name")?.Value, opts), opts.Prefix), opts.Prefix), NativeName = function, Parameters = ParseParameters(xf), ProfileName = name, ProfileVersion = apiVersion, ReturnType = ParseTypeSignature(xf.Element("returns") ?? throw new InvalidDataException()) }; yield return(ret); allFunctions.Remove(function); } } } } }
public virtual string TransformText() { this.GenerationEnvironment = null; #line 1 "" this.Write(""); #line default #line hidden #line 6 "" this.Write("#include <iostream>\n#include <cstring>\n#include \""); #line default #line hidden #line 8 "" this.Write(this.ToStringHelper.ToStringWithCulture(Naming.BusDefinitionsFileName(Network))); #line default #line hidden #line 8 "" this.Write("\"\n\n// Insert additional includes here\n// #### USER-DATA-INCLUDE-START\n// #### USE" + "R-DATA-INCLUDE-END\n\n"); #line default #line hidden #line 14 "" var known = new HashSet <Type>(); foreach (var bus in Network.Busses) { if (known.Contains(bus.SourceType)) { continue; } known.Add(bus.SourceType); #line default #line hidden #line 21 "" this.Write("\n"); #line default #line hidden #line 22 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 22 "" this.Write("::"); #line default #line hidden #line 22 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 22 "" this.Write(" () {\n"); #line default #line hidden #line 23 "" foreach (var signal in bus.Signals) { var cpptype = RS.TypeScope.GetType(signal); if (cpptype.IsArray) { var eltype = cpptype.ElementName; string arraylen = string.Empty; if (signal.DefaultValue is SME.AST.ArrayCreateExpression) { arraylen = (signal.DefaultValue as SME.AST.ArrayCreateExpression).ElementExpressions.Length.ToString(); } else if (signal.DefaultValue is SME.AST.EmptyArrayCreateExpression) { arraylen = RS.Renderer.RenderExpression((signal.DefaultValue as SME.AST.EmptyArrayCreateExpression).SizeExpression); } else { arraylen = RS.GetArrayLength(signal).DefaultValue.ToString(); } #line default #line hidden #line 37 "" this.Write(" \n size_"); #line default #line hidden #line 38 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 38 "" this.Write(" = "); #line default #line hidden #line 38 "" this.Write(this.ToStringHelper.ToStringWithCulture(arraylen)); #line default #line hidden #line 38 "" this.Write(";\n valid_"); #line default #line hidden #line 39 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 39 "" this.Write(" = new bool[size_"); #line default #line hidden #line 39 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 39 "" this.Write("];\n written_"); #line default #line hidden #line 40 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 40 "" this.Write(" = new bool[size_"); #line default #line hidden #line 40 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 40 "" this.Write("];\n staged_"); #line default #line hidden #line 41 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 41 "" this.Write(" = new bool[size_"); #line default #line hidden #line 41 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 41 "" this.Write("];\n\n write_"); #line default #line hidden #line 43 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 43 "" this.Write(" = new "); #line default #line hidden #line 43 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 43 "" this.Write("[size_"); #line default #line hidden #line 43 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 43 "" this.Write("];\n read_"); #line default #line hidden #line 44 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 44 "" this.Write(" = new "); #line default #line hidden #line 44 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 44 "" this.Write("[size_"); #line default #line hidden #line 44 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 44 "" this.Write("];\n\n std::memset(written_"); #line default #line hidden #line 46 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 46 "" this.Write(", 0, size_"); #line default #line hidden #line 46 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 46 "" this.Write(" * sizeof(bool));\n std::memset(staged_"); #line default #line hidden #line 47 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 47 "" this.Write(", 0, size_"); #line default #line hidden #line 47 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 47 "" this.Write(" * sizeof(bool));\n"); #line default #line hidden #line 48 "" if (signal.DefaultValue == null) { #line default #line hidden #line 49 "" this.Write(" std::memset(valid_"); #line default #line hidden #line 49 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 49 "" this.Write(", 0, size_"); #line default #line hidden #line 49 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 49 "" this.Write(" * sizeof(bool));\n"); #line default #line hidden #line 50 "" } else { #line default #line hidden #line 51 "" this.Write(" std::memset(valid_"); #line default #line hidden #line 51 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 51 "" this.Write(", 1, size_"); #line default #line hidden #line 51 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 51 "" this.Write(" * sizeof(bool));\n"); #line default #line hidden #line 52 "" if ((signal.DefaultValue is SME.AST.ArrayCreateExpression) || signal.DefaultValue is Array) { #line default #line hidden #line 53 "" this.Write(" "); #line default #line hidden #line 53 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 53 "" this.Write(" orig_"); #line default #line hidden #line 53 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 53 "" this.Write("[] = "); #line default #line hidden #line 53 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.Renderer.GetInitializer(signal))); #line default #line hidden #line 53 "" this.Write(";\n std::memcpy(read_"); #line default #line hidden #line 54 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 54 "" this.Write(", orig_"); #line default #line hidden #line 54 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 54 "" this.Write(", "); #line default #line hidden #line 54 "" this.Write(this.ToStringHelper.ToStringWithCulture(arraylen)); #line default #line hidden #line 54 "" this.Write(" * sizeof("); #line default #line hidden #line 54 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 54 "" this.Write("));\n std::memcpy(write_"); #line default #line hidden #line 55 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 55 "" this.Write(", orig_"); #line default #line hidden #line 55 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 55 "" this.Write(", "); #line default #line hidden #line 55 "" this.Write(this.ToStringHelper.ToStringWithCulture(arraylen)); #line default #line hidden #line 55 "" this.Write(" * sizeof("); #line default #line hidden #line 55 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 55 "" this.Write("));\n"); #line default #line hidden #line 56 "" } #line default #line hidden #line 57 "" } #line default #line hidden #line 58 "" } else { #line default #line hidden #line 59 "" this.Write(" written_"); #line default #line hidden #line 59 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 59 "" this.Write(" = false;\n"); #line default #line hidden #line 60 "" if (signal.DefaultValue == null) { #line default #line hidden #line 61 "" this.Write(" valid_"); #line default #line hidden #line 61 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 61 "" this.Write(" = false;\n"); #line default #line hidden #line 62 "" } #line default #line hidden #line 63 "" } #line default #line hidden #line 64 "" } #line default #line hidden #line 65 "" this.Write("\n"); #line default #line hidden #line 66 "" foreach (var signal in bus.Signals.Where(x => x.DefaultValue != null)) { var cpptype = RS.TypeScope.GetType(signal); var ini = RS.Renderer.GetInitializer(signal); if (!cpptype.IsArray) { #line default #line hidden #line 71 "" this.Write(" valid_"); #line default #line hidden #line 71 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 71 "" this.Write(" = true;\n"); #line default #line hidden #line 72 "" } #line default #line hidden #line 73 "" if (!string.IsNullOrWhiteSpace(ini)) { #line default #line hidden #line 74 "" this.Write(" read_"); #line default #line hidden #line 74 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 74 "" this.Write(" = write_"); #line default #line hidden #line 74 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 74 "" this.Write(" = "); #line default #line hidden #line 74 "" this.Write(this.ToStringHelper.ToStringWithCulture(RS.Renderer.GetInitializer(signal))); #line default #line hidden #line 74 "" this.Write(";\n"); #line default #line hidden #line 75 "" } #line default #line hidden #line 76 "" } #line default #line hidden #line 77 "" this.Write("}\n\n"); #line default #line hidden #line 79 "" foreach (var signal in bus.Signals) { var cpptype = RS.TypeScope.GetType(signal); if (cpptype.IsArray) { var eltype = cpptype.ElementName; #line default #line hidden #line 85 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 85 "" this.Write(" "); #line default #line hidden #line 85 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 85 "" this.Write("::"); #line default #line hidden #line 85 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 85 "" this.Write("(size_t index) const {\n if (index >= size_"); #line default #line hidden #line 86 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 86 "" this.Write(")\n throw IndexOutOfBoundsException(\"Invalid index: "); #line default #line hidden #line 87 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 87 "" this.Write("."); #line default #line hidden #line 87 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 87 "" this.Write("\");\n if (!valid_"); #line default #line hidden #line 88 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 88 "" this.Write("[index])\n throw InvalidReadException(\"Invalid read: "); #line default #line hidden #line 89 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 89 "" this.Write("."); #line default #line hidden #line 89 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 89 "" this.Write("\");\n\n return read_"); #line default #line hidden #line 91 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 91 "" this.Write("[index];\n}\n\n"); #line default #line hidden #line 94 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 94 "" this.Write(" "); #line default #line hidden #line 94 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 94 "" this.Write("::"); #line default #line hidden #line 94 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 94 "" this.Write("(size_t index, "); #line default #line hidden #line 94 "" this.Write(this.ToStringHelper.ToStringWithCulture(eltype)); #line default #line hidden #line 94 "" this.Write(" value) {\n if (index >= size_"); #line default #line hidden #line 95 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 95 "" this.Write(")\n throw IndexOutOfBoundsException(\"Invalid index: "); #line default #line hidden #line 96 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 96 "" this.Write("."); #line default #line hidden #line 96 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 96 "" this.Write("\");\n if (written_"); #line default #line hidden #line 97 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 97 "" this.Write("[index])\n throw InvalidDoubleWriteException(\"Invalid write: "); #line default #line hidden #line 98 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 98 "" this.Write("."); #line default #line hidden #line 98 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 98 "" this.Write("\");\n\n staged_"); #line default #line hidden #line 100 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 100 "" this.Write("[index] = true;\n return write_"); #line default #line hidden #line 101 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 101 "" this.Write("[index] = value;\n}\n"); #line default #line hidden #line 103 "" } else { #line default #line hidden #line 104 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 104 "" this.Write(" "); #line default #line hidden #line 104 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 104 "" this.Write("::"); #line default #line hidden #line 104 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 104 "" this.Write("() const {\n if (!valid_"); #line default #line hidden #line 105 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 105 "" this.Write(")\n throw InvalidReadException(\"Invalid read: "); #line default #line hidden #line 106 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 106 "" this.Write("."); #line default #line hidden #line 106 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 106 "" this.Write("\");\n\n return read_"); #line default #line hidden #line 108 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 108 "" this.Write(";\n}\n\n"); #line default #line hidden #line 111 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 111 "" this.Write(" "); #line default #line hidden #line 111 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 111 "" this.Write("::"); #line default #line hidden #line 111 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 111 "" this.Write("("); #line default #line hidden #line 111 "" this.Write(this.ToStringHelper.ToStringWithCulture(Type(signal))); #line default #line hidden #line 111 "" this.Write(" value) {\n if (written_"); #line default #line hidden #line 112 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 112 "" this.Write(")\n throw InvalidDoubleWriteException(\"Invalid write: "); #line default #line hidden #line 113 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 113 "" this.Write("."); #line default #line hidden #line 113 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 113 "" this.Write("\");\n\n staged_"); #line default #line hidden #line 115 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 115 "" this.Write(" = true;\n return write_"); #line default #line hidden #line 116 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 116 "" this.Write(" = value;\n}\n"); #line default #line hidden #line 118 "" } #line default #line hidden #line 119 "" } #line default #line hidden #line 120 "" this.Write("\nvoid "); #line default #line hidden #line 121 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 121 "" this.Write("::forward_signals() {\n size_t i;\n\n"); #line default #line hidden #line 124 "" foreach (var signal in bus.Signals) { var cpptype = RS.TypeScope.GetType(signal); if (cpptype.IsArray) { var eltype = cpptype.ElementName; #line default #line hidden #line 129 "" this.Write(" for(i = 0; i < size_"); #line default #line hidden #line 129 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 129 "" this.Write("; i++) {\n if (staged_"); #line default #line hidden #line 130 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 130 "" this.Write("[i]) {\n written_"); #line default #line hidden #line 131 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 131 "" this.Write("[i] = true;\n staged_"); #line default #line hidden #line 132 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 132 "" this.Write("[i] = false;\n valid_"); #line default #line hidden #line 133 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 133 "" this.Write("[i] = true;\n read_"); #line default #line hidden #line 134 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 134 "" this.Write("[i] = write_"); #line default #line hidden #line 134 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 134 "" this.Write("[i];\n }\n }\n"); #line default #line hidden #line 137 "" } else { #line default #line hidden #line 138 "" this.Write(" if (staged_"); #line default #line hidden #line 138 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 138 "" this.Write(") {\n written_"); #line default #line hidden #line 139 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 139 "" this.Write(" = true;\n staged_"); #line default #line hidden #line 140 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 140 "" this.Write(" = false;\n valid_"); #line default #line hidden #line 141 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 141 "" this.Write(" = true;\n read_"); #line default #line hidden #line 142 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 142 "" this.Write(" = write_"); #line default #line hidden #line 142 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 142 "" this.Write(";\n }\n"); #line default #line hidden #line 144 "" } #line default #line hidden #line 145 "" } #line default #line hidden #line 146 "" this.Write("}\n\nvoid "); #line default #line hidden #line 148 "" this.Write(this.ToStringHelper.ToStringWithCulture(bus.Name)); #line default #line hidden #line 148 "" this.Write("::propagate_signals() {\n size_t i;\n\n"); #line default #line hidden #line 151 "" foreach (var signal in bus.Signals) { var cpptype = RS.TypeScope.GetType(signal); if (cpptype.IsArray) { var eltype = cpptype.ElementName; #line default #line hidden #line 155 "" this.Write(" for (i = 0; i < size_"); #line default #line hidden #line 155 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 155 "" this.Write("; i++) {\n if (written_"); #line default #line hidden #line 156 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 156 "" this.Write("[i]) {\n written_"); #line default #line hidden #line 157 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 157 "" this.Write("[i] = false;\n }\n }\n"); #line default #line hidden #line 160 "" } else { #line default #line hidden #line 161 "" this.Write(" if (written_"); #line default #line hidden #line 161 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 161 "" this.Write(") {\n written_"); #line default #line hidden #line 162 "" this.Write(this.ToStringHelper.ToStringWithCulture(signal.Name)); #line default #line hidden #line 162 "" this.Write(" = false;\n }\n"); #line default #line hidden #line 164 "" } #line default #line hidden #line 165 "" } #line default #line hidden #line 166 "" this.Write("}\n\n"); #line default #line hidden #line 168 "" } #line default #line hidden #line 169 "" this.Write("\n// Insert additional code and classes here\n// #### USER-DATA-EXTRA-START\n// ####" + " USER-DATA-EXTRA-END\n"); #line default #line hidden return(this.GenerationEnvironment.ToString()); }
private Dictionary <string, Struct> ConvertStructs(VulkanSpecification spec, BindTask task) { var prefix = task.FunctionPrefix; var ret = new Dictionary <string, Struct>(); foreach (var s in spec.Structures) { ret.Add ( s.Name, new Struct { Fields = s.Members.Select ( x => new Field { Count = string.IsNullOrEmpty(x.ElementCountSymbolic) ? x.ElementCount != 1 ? new Count(x.ElementCount) : null : new Count(x.ElementCountSymbolic, false), Name = Naming.Translate(TrimName(x.Name, task), prefix), Doc = $"/// <summary>{x.Comment}</summary>", NativeName = x.Name, NativeType = x.Type.ToString(), Type = ConvertType(x.Type), DefaultAssignment = (x.Type.Name == "VkStructureType" || x.Type.Name == "XrStructureType") && !string.IsNullOrWhiteSpace(x.LegalValues) ? "StructureType." + TryTrim ( Naming.Translate ( TrimName(x.LegalValues.Split(',').FirstOrDefault(), task), task.FunctionPrefix ), Naming.TranslateLite(TrimName("VkStructureType", task), task.FunctionPrefix) ) : null, NumBits = x.NumBits }.WithFixedFieldFixup09072020() ) .ToList(), Name = Naming.TranslateLite(TrimName(s.Name, task), prefix), NativeName = s.Name } ); } foreach (var h in spec.Handles) { ret.Add ( h.Name, new Struct { Fields = new List <Field> { new Field { Name = "Handle", Type = new Type { Name = h.CanBeDispatched ? "nint" : "ulong" } } }, Name = Naming.TranslateLite(TrimName(h.Name, task), prefix), NativeName = h.Name } ); } foreach (var u in spec.Unions) { ret.Add(u.Name, new Struct { Attributes = new List <Attribute> { new Attribute { Name = "StructLayout", Arguments = new List <string> { "LayoutKind.Explicit" } } }, Fields = GetFields(u, task).ToList(), Name = Naming.TranslateLite(TrimName(u.Name, task), prefix), NativeName = u.Name }); } return(ret); }
public static MappingField GetMappingField(AttributeMetadata attribute, MappingEntity entity) { var result = new MappingField(); result.Entity = entity; result.MetadataId = attribute.MetadataId; result.AttributeOf = attribute.AttributeOf; result.IsValidForCreate = attribute.IsValidForCreate ?? false; result.IsValidForRead = attribute.IsValidForRead ?? false; result.IsValidForUpdate = attribute.IsValidForUpdate ?? false; result.IsActivityParty = attribute.AttributeType == AttributeTypeCode.PartyList; result.IsStateCode = attribute.AttributeType == AttributeTypeCode.State; result.DeprecatedVersion = attribute.DeprecatedVersion; result.IsDeprecated = !string.IsNullOrWhiteSpace(attribute.DeprecatedVersion); if (attribute is PicklistAttributeMetadata || attribute is StateAttributeMetadata || attribute is StatusAttributeMetadata) { result.EnumData = MappingEnum.GetMappingEnum(attribute as EnumAttributeMetadata); } if (attribute is LookupAttributeMetadata) { var lookup = attribute as LookupAttributeMetadata; if (lookup.Targets.Count() == 1) { result.LookupSingleType = lookup.Targets[0]; } } ParseMinMaxValues(attribute, result); if (attribute.AttributeType != null) { result.FieldType = attribute.AttributeType.Value; } result.IsPrimaryKey = attribute.IsPrimaryId == true; result.LogicalName = attribute.LogicalName; result.SchemaName = attribute.SchemaName; result.DisplayName = Naming.GetProperVariableName(attribute); result.PrivatePropertyName = Naming.GetEntityPropertyPrivateName(attribute.SchemaName); result.HybridName = Naming.GetProperHybridFieldName(result.DisplayName, result.Attribute); if (attribute.Description != null) { if (attribute.Description.UserLocalizedLabel != null) { result.Description = attribute.Description.UserLocalizedLabel.Label; } } if (attribute.DisplayName != null) { if (attribute.DisplayName.LocalizedLabels != null) { result.LocalizedLabels = attribute.DisplayName .LocalizedLabels.Select(label => new LocalizedLabelSerialisable { LanguageCode = label.LanguageCode, Label = label.Label }).ToArray(); } if (attribute.DisplayName.UserLocalizedLabel != null) { result.Label = attribute.DisplayName.UserLocalizedLabel.Label; } } result.IsRequired = attribute.RequiredLevel != null && attribute.RequiredLevel.Value == AttributeRequiredLevel.ApplicationRequired; result.Attribute = new CrmPropertyAttribute { LogicalName = attribute.LogicalName, IsLookup = attribute.AttributeType == AttributeTypeCode.Lookup || attribute.AttributeType == AttributeTypeCode.Customer }; result.TargetTypeForCrmSvcUtil = GetTargetType(result); result.FieldTypeString = result.TargetTypeForCrmSvcUtil; return(result); }
/// <summary> /// Constructs a message informaing a game being started /// </summary> public GameStartedMessageData() : base(Naming.GetMessageTypeNameFromMessageDataType <GameStartedMessageData>()) { // ... }
/// <summary> /// Constructs a list lobbies request message for deserializers /// </summary> /// <param name="excludeFull">Exclude full lobbies</param> /// <param name="name">Lobby name</param> /// <param name="gameMode">Game mode</param> /// <param name="minimalUserCount">Minimal user count</param> /// <param name="maximalUserCount">Maximal user count</param> /// <param name="isStartingGameAutomatically">Is starting game automatically</param> /// <param name="gameModeRules">Game mode rules</param> public ListLobbiesMessageData(bool?excludeFull, string name, string gameMode, uint?minimalUserCount, uint?maximalUserCount, bool?isStartingGameAutomatically, Dictionary <string, object> gameModeRules) : base(Naming.GetMessageTypeNameFromMessageDataType <ListLobbiesMessageData>()) { if ((minimalUserCount != null) && (maximalUserCount != null) && (minimalUserCount > maximalUserCount)) { throw new ArgumentException("Minimal user count can't be greater than maximal user count.", nameof(minimalUserCount)); } if ((gameMode != null) && string.IsNullOrWhiteSpace(gameMode)) { throw new ArgumentException("Game mode can't be unknown.", nameof(gameMode)); } if ((gameModeRules != null) && gameModeRules.ContainsValue(null)) { throw new ArgumentException("Game mode rules contains null.", nameof(gameModeRules)); } ExcludeFull = excludeFull; Name = name; MinimalUserCount = minimalUserCount; MaximalUserCount = maximalUserCount; IsStartingGameAutomatically = isStartingGameAutomatically; GameMode = gameMode; GameModeRules = gameModeRules; }
public static void Register() { ServiceRuntime.RegisterServiceAsync(Naming.ServiceType <MenuAccess>(), (context) => new MenuAccess(context)); }
/// <summary> /// Constructs a message for creating and joining a new lobby /// </summary> /// <param name="username">Username</param> /// <param name="lobbyName">Lobby name</param> /// <param name="gameMode">Game mode</param> /// <param name="isPrivate">Is lobby private</param> /// <param name="minimalUserCount">Minimal user count</param> /// <param name="maximalUserCount">Maximal user count</param> /// <param name="isStartingGameAutomatically">Is starting game automatically</param> /// <param name="gameModeRules">Game mode rules</param> public CreateAndJoinLobbyMessageData(string username, string lobbyName, string gameMode, bool?isPrivate = null, uint?minimalUserCount = null, uint?maximalUserCount = null, bool?isStartingGameAutomatically = null, IReadOnlyDictionary <string, object> gameModeRules = null) : base(Naming.GetMessageTypeNameFromMessageDataType <CreateAndJoinLobbyMessageData>()) { if (username == null) { throw new ArgumentNullException(nameof(username)); } string new_username = username.Trim(); if ((new_username.Length < Defaults.minimalUsernameLength) || (new_username.Length > Defaults.maximalUsernameLength)) { throw new ArgumentException($"Username must be between { Defaults.minimalUsernameLength } and { Defaults.maximalUsernameLength } characters long.", nameof(username)); } if (lobbyName == null) { throw new ArgumentNullException(nameof(lobbyName)); } string new_lobby_name = lobbyName.Trim(); if ((new_lobby_name.Length < Defaults.minimalLobbyNameLength) || (new_lobby_name.Length > Defaults.maximalLobbyNameLength)) { throw new ArgumentException($"Lobby name must be between { Defaults.minimalLobbyNameLength } and { Defaults.maximalLobbyNameLength } characters long.", nameof(lobbyName)); } if (string.IsNullOrWhiteSpace(gameMode)) { throw new ArgumentNullException(nameof(gameMode)); } if ((minimalUserCount != null) && (maximalUserCount != null) && (minimalUserCount > maximalUserCount)) { throw new ArgumentException("Minimal user count can't be greater than maximal user count.", nameof(minimalUserCount)); } if ((gameModeRules != null) && Protection.IsContained(gameModeRules.Values, (value) => value == null)) { throw new ArgumentException("Game mode rules contains null.", nameof(gameModeRules)); } Username = new_username; LobbyName = new_lobby_name; GameMode = gameMode; IsPrivate = isPrivate; MinimalUserCount = minimalUserCount; MaximalUserCount = maximalUserCount; IsStartingGameAutomatically = isStartingGameAutomatically; if (gameModeRules != null) { GameModeRules = new Dictionary <string, object>(); foreach (KeyValuePair <string, object> game_mode_rule in gameModeRules) { GameModeRules.Add(game_mode_rule.Key, game_mode_rule.Value); } } }
static Tuple <long, int, int, int> GetReadRange(IEnumerable <ListBlockItem> blockList, long afterVersion, int maxCount) { const int notSet = -1; long offset = 0; long size = 0; var skipRecs = 0; long readRecs = notSet; var blockInfos = blockList .Select(i => new { item = i, info = Naming.GetInfo(DecodeName(i.Name)) }) .ToArray(); if (blockInfos.Length == 0) { return(Tuple.Create(0L, 0, 0, 0)); } foreach (var a in blockInfos) { if (readRecs == notSet) { // start aggregating if we find a block containing records we need var containsAfterVersion = a.info.FirstVersion + a.info.Count - 1 > afterVersion; if (containsAfterVersion) { skipRecs = (int)(afterVersion + 1 - a.info.FirstVersion); readRecs = (int)(a.info.Count - skipRecs); size = a.item.Size; if (readRecs >= maxCount) { readRecs = maxCount; break; } } else { offset += a.item.Size; } } else { size += a.item.Size; if (readRecs > maxCount - a.info.Count) { // we found maxCount records readRecs = maxCount; break; } readRecs += a.info.Count; } } if (size > int.MaxValue) { throw new NotSupportedException(string.Format("Reading more than {0} bytes not supported.", int.MaxValue)); } if (readRecs > int.MaxValue) { throw new NotSupportedException(string.Format("Reading more than {0} records not supported.", int.MaxValue)); } if (readRecs == notSet) { readRecs = 0; } return(Tuple.Create(offset, (int)size, skipRecs, (int)readRecs)); }
public T Create <T>() { var type = typeof(T); var writer = new MemorySourceWriter(); var generator = new DataAccessorGenerator(loader, writer, option); generator.Generate(new[] { type }); if (writer.Source == null) { throw new AccessorGeneratorException("Create accessor instance failed."); } Debug.WriteLine("----------"); Debug.WriteLine(writer.Source); Debug.WriteLine("----------"); var syntax = CSharpSyntaxTree.ParseText(writer.Source); var references = new HashSet <Assembly>(); AddReference(references, typeof(ExecuteEngine).Assembly); AddReference(references, type.Assembly); var metadataReferences = references .Select(x => MetadataReference.CreateFromFile(x.Location)) .ToArray(); var assemblyName = Path.GetRandomFileName(); var options = new CSharpCompilationOptions( OutputKind.DynamicallyLinkedLibrary, optimizationLevel: OptimizationLevel.Release); var compilation = CSharpCompilation.Create( assemblyName, new[] { syntax }, metadataReferences, options); using (var ms = new MemoryStream()) { var result = compilation.Emit(ms); if (!result.Success) { throw new AccessorGeneratorException("Create accessor instance failed."); } ms.Seek(0, SeekOrigin.Begin); var assembly = Assembly.Load(ms.ToArray()); var accessorName = $"{type.Namespace}.{Naming.MakeAccessorName(type)}"; var implementType = assembly.GetType(accessorName); try { return((T)Activator.CreateInstance(implementType, Engine)); } catch (Exception e) { throw new AccessorGeneratorException("Create accessor instance failed.", e); } } }
/// <summary> /// Constructs a sendable "name-change" game message /// </summary> /// <param name="newUsername">New username</param> public NameChangeSendGameMessageData(string newUsername) : base(Naming.GetSendGameMessageDataNameInKebabCase <NameChangeSendGameMessageData>(), newUsername) { // ... }
/// <summary> /// Constructs an authentification acknowledgment message /// </summary> /// <param name="guid">User GUID</param> /// <param name="token">User token</param> public AuthentificationAcknowledgedMessageData(Guid guid, string token) : base(Naming.GetMessageTypeNameFromMessageDataType <AuthentificationAcknowledgedMessageData>()) { if (guid == Guid.Empty) { throw new ArgumentException("User GUID is empty.", nameof(guid)); } if (string.IsNullOrWhiteSpace(token)) { throw new ArgumentNullException(nameof(token)); } GUID = guid; Token = token; }