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: Azos.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
BitwiseAnd(IPile, PilePointer)
Declaration
public static object operator &(IPile pile, PilePointer ptr)
Parameters
Returns
Type |
Description |
System.Object |
|
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