private int Encode() { EETypeOptionalFieldsElement eLastTag = EETypeOptionalFieldsElement.Count; for (EETypeOptionalFieldsElement eTag = 0; eTag < EETypeOptionalFieldsElement.Count; eTag++) { eLastTag = _rgFields[(int)eTag]._fieldPresent ? eTag : eLastTag; } if (eLastTag == EETypeOptionalFieldsElement.Count) { return(0); } _encoder = new NativePrimitiveEncoder(); _encoder.Init(); for (EETypeOptionalFieldsElement eTag = 0; eTag < EETypeOptionalFieldsElement.Count; eTag++) { if (!_rgFields[(int)eTag]._fieldPresent) { continue; } _encoder.WriteByte((byte)((byte)eTag | (eTag == eLastTag ? 0x80 : 0))); _encoder.WriteUnsigned(_rgFields[(int)eTag]._value); } return(_encoder.Size); }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (!(obj is EETypeOptionalFieldsBuilder)) { return(false); } EETypeOptionalFieldsBuilder other = obj as EETypeOptionalFieldsBuilder; if (ReferenceEquals(this, other)) { return(true); } for (EETypeOptionalFieldsElement eTag = 0; eTag < EETypeOptionalFieldsElement.Count; eTag++) { int index = (int)eTag; if (_rgFields[index]._fieldPresent != other._rgFields[index]._fieldPresent || (_rgFields[index]._fieldPresent && _rgFields[index]._value != other._rgFields[index]._value)) { return(false); } } return(true); }
public override bool Equals(object obj) { if (obj == null) { return(false); } if (!(obj is EETypeOptionalFieldsBuilder)) { return(false); } EETypeOptionalFieldsBuilder other = obj as EETypeOptionalFieldsBuilder; if (ReferenceEquals(this, other)) { return(true); } for (EETypeOptionalFieldsElement eTag = 0; eTag < EETypeOptionalFieldsElement.Count; eTag++) { if (GetFieldValue(eTag, 0) != other.GetFieldValue(eTag, 0)) { return(false); } } return(true); }
public override int GetHashCode() { int hash = 31; for (EETypeOptionalFieldsElement eTag = 0; eTag < EETypeOptionalFieldsElement.Count; eTag++) { hash = hash * 486187739 + (int)GetFieldValue(eTag, 0); } return(hash); }
internal void ClearField(EETypeOptionalFieldsElement eTag) { _rgFields[(int)eTag]._fieldPresent = false; }
internal void SetFieldValue(EETypeOptionalFieldsElement eTag, UInt32 value) { _rgFields[(int)eTag]._fieldPresent = true; _rgFields[(int)eTag]._value = value; }
internal UInt32 GetFieldValue(EETypeOptionalFieldsElement eTag, UInt32 defaultValueIfNotFound) { return(_rgFields[(int)eTag]._fieldPresent ? _rgFields[(int)eTag]._value : defaultValueIfNotFound); }
internal UInt32 GetFieldValue(EETypeOptionalFieldsElement eTag, UInt32 defaultValueIfNotFound) { return _rgFields[(int)eTag]._fieldPresent ? _rgFields[(int)eTag]._value : defaultValueIfNotFound; }