コード例 #1
0
ファイル: StructureLayout.cs プロジェクト: Akarias/Assembly
 /// <summary>
 ///     Traverses the structure layout in order of field definition and
 ///     calls a method defined in an ICacheStructureLayoutVisitor for each field
 ///     in the structure.
 /// </summary>
 /// <param name="visitor">The ICacheStructureLayoutVisitor that should visit each structure field.</param>
 public void Accept(ICacheStructureLayoutVisitor visitor)
 {
     foreach (ILayoutField field in _fields)
     {
         if (field is PrimitiveLayoutField primitive)
         {
             primitive.Accept(visitor);
         }
         else if (field is CacheLayoutField cache)
         {
             cache.Accept(visitor);
         }
         else
         {
             throw new NotImplementedException($"Unhandled field type {field.GetType().Name}.");
         }
     }
 }
コード例 #2
0
ファイル: StructureLayout.cs プロジェクト: Akarias/Assembly
 /// <summary>
 ///     Accepts an ICacheStructureLayoutVisitor, calling the VisitTagReference method on it.
 /// </summary>
 /// <param name="visitor">The ICacheStructureLayoutVisitor to accept.</param>
 public override void Accept(ICacheStructureLayoutVisitor visitor)
 {
     visitor.VisitTagBlockField(Name, Offset, _layout);
 }
コード例 #3
0
ファイル: StructureLayout.cs プロジェクト: Akarias/Assembly
 /// <summary>
 ///     Accepts an ICacheStructureLayoutVisitor, calling the VisitTagReference method on it.
 /// </summary>
 /// <param name="visitor">The ICacheStructureLayoutVisitor to accept.</param>
 public override void Accept(ICacheStructureLayoutVisitor visitor)
 {
     visitor.VisitTagReferenceField(Name, Offset, _withGroup);
 }
コード例 #4
0
ファイル: StructureLayout.cs プロジェクト: Akarias/Assembly
 /// <summary>
 ///     Accepts an ICacheStructureLayoutVisitor, calling the VisitStringID method on it.
 /// </summary>
 /// <param name="visitor">The ICacheStructureLayoutVisitor to accept.</param>
 public override void Accept(ICacheStructureLayoutVisitor visitor)
 {
     visitor.VisitStringIDField(Name, Offset);
 }
コード例 #5
0
ファイル: StructureLayout.cs プロジェクト: Akarias/Assembly
 /// <summary>
 ///     Depending on the type of the field, calls a corresponding method defined in the visitor object.
 /// </summary>
 /// <param name="visitor">The ICacheStructureLayoutVisitor to accept.</param>
 public abstract void Accept(ICacheStructureLayoutVisitor visitor);