Struct PilePointer
  
  Represents a pointer to the pile object (object stored in a pile).
The reference may be local or distributed in which case the NodeID is>=0.
Distributed pointers are very useful for organizing piles of objects distributed among many servers, for example
for "Big Memory" implementations or large neural networks where nodes may inter-connect between servers.
The CLR reference to the IPile is not a part of this struct for performance and practicality reasons, as
it is highly unlikely that there are going to be more than one instance of a pile in a process, however
should more than 1 pile be allocated than this pointer would need to be wrapped in some other structure along with source IPile reference
 
  
  
  
    Inherited Members
    
      System.Object.Equals(System.Object, System.Object)
    
    
      System.Object.GetType()
    
    
      System.Object.ReferenceEquals(System.Object, System.Object)
    
   
  
  Assembly: NFX.dll
  Syntax
  
    public struct PilePointer : IEquatable<PilePointer>
   
  Constructors
  
  
  
  
  PilePointer(Int32, Int32)
  
  
  Declaration
  
    public PilePointer(int seg, int addr)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Int32 | 
        seg | 
         | 
      
      
        | System.Int32 | 
        addr | 
         | 
      
    
  
  
  
  
  PilePointer(Int32, Int32, Int32)
  Creates distributed pointer
 
  
  Declaration
  
    public PilePointer(int nodeId, int seg, int addr)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Int32 | 
        nodeId | 
         | 
      
      
        | System.Int32 | 
        seg | 
         | 
      
      
        | System.Int32 | 
        addr | 
         | 
      
    
  
  Fields
  
  
  
  Address
  Address within the segment
 
  
  Declaration
  
    public readonly int Address
   
  Field Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  NodeID
  Distributed Node ID. The local pile sets this to -1 rendering this pointer as !DistributedValid
 
  
  Declaration
  
    public readonly int NodeID
   
  Field Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  
  
  Segment
  
  
  Declaration
  
    public readonly int Segment
   
  Field Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  Properties
  
  
  
  
  DistributedValid
  Returns true if the pointer has positive distributed NodeID and has a valid local pointer
 
  
  Declaration
  
    public bool DistributedValid { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  Invalid
  Returns a -1:-1 non-valid pointer (either local or distributed)
 
  
  Declaration
  
    public static PilePointer Invalid { get; }
   
  Property Value
  
  
  
  
  Valid
  Returns true if the pointer has positive segment and address, however this does not mean that pointed-to data exists.
Even if this is a valid local pointer it may be an invalid distributed pointer
 
  
  Declaration
  
    public bool Valid { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  Methods
  
  
  
  
  Equals(PilePointer)
  
  
  Declaration
  
    public bool Equals(PilePointer other)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  Equals(Object)
  
  
  Declaration
  
    public override bool Equals(object obj)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | System.Object | 
        obj | 
         | 
      
    
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  Overrides
  System.ValueType.Equals(System.Object)
  
  
  
  GetHashCode()
  
  
  Declaration
  
    public override int GetHashCode()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  Overrides
  System.ValueType.GetHashCode()
  
  
  
  ToString()
  
  
  Declaration
  
    public override string ToString()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.String | 
         | 
      
    
  
  Overrides
  System.ValueType.ToString()
  Operators
  
  
  
  
  Equality(PilePointer, PilePointer)
  
  
  Declaration
  
    public static bool operator ==(PilePointer l, PilePointer r)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  Inequality(PilePointer, PilePointer)
  
  
  Declaration
  
    public static bool operator !=(PilePointer l, PilePointer r)
   
  Parameters
  
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  Implements
  
      System.IEquatable<T>
  
  Extension Methods