/* * Create an Erlang ref from a stream containing a ref encoded in * Erlang external format. * * @param buf the stream containing the encoded ref. * * @exception DecodeException if the buffer does not * contain a valid external representation of an Erlang ref. **/ public Ref(OtpInputStream buf) { Ref r = buf.read_ref(); this._node = r.node(); this._creation = r.creation(); this._ids = r.ids(); }
/* * Determine if two refs are equal. Refs are equal if their * components are equal. New refs and old refs are considered equal * if the node, creation and first id numnber are equal. * * @param o the other ref to compare to. * * @return true if the refs are equal, false otherwise. **/ public override bool Equals(System.Object o) { if (!(o is Ref)) { return(false); } Ref ref_Renamed = (Ref)o; if (!(this._node.Equals(ref_Renamed.node()) && this._creation == ref_Renamed.creation())) { return(false); } if (this.isNewRef() && ref_Renamed.isNewRef()) { return(this._ids[0] == ref_Renamed._ids[0] && this._ids[1] == ref_Renamed._ids[1] && this._ids[2] == ref_Renamed._ids[2]); } return(this._ids[0] == ref_Renamed._ids[0]); }