public WriteValue ( EmberId outer, int value ) : void | ||
outer | EmberId | |
value | int | |
return | void |
public void WriteValue(EmberId outer, int[] value)
{
this.AssertNotDisposed();
if (value == null)
{
throw new ArgumentNullException(nameof(value));
}
// For byte[] values, the buffer size does not matter
this.writeBuffer.Reserve(IdentifiersAndLengthsMaxLength);
this.tempBuffer.Reserve(SubidentifierMaxLength * value.Length);
try
{
// See http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf, chapter 8.20.2.
foreach (int number in value)
{
Write7Bit(this.tempBuffer, number, Get7BitStartShift(number));
}
this.WriteIdentifiersAndLengths(outer, RelativeObjectIdentifier, this.tempBuffer.Count);
this.tempBuffer.Flush();
}
finally
{
// Make sure that tempBuffer is empty if anything goes wrong
this.tempBuffer.Count = 0;
}
}
EmberWriter::WriteValue ( EmberId outer, bool value ) : void | |
EmberWriter::WriteValue ( EmberId outer, byte value ) : void | |
EmberWriter::WriteValue ( EmberId outer, double value ) : void | |
EmberWriter::WriteValue ( EmberId outer, long value ) : void | |
EmberWriter::WriteValue ( EmberId outer, string value ) : void |
public void ExceptionTest() { AssertThrow<ArgumentNullException>(() => new EmberWriter(null, 1).Dispose()); AssertThrow<ArgumentException>(() => new EmberWriter(new MemoryStream(), 0).Dispose()); using (var writer = new EmberWriter(new MemoryStream(), 1)) { var outer = EmberId.CreateApplication(0); AssertThrow<ArgumentNullException>( () => writer.WriteValue(outer, (byte[])null), () => writer.WriteValue(outer, (int[])null), () => writer.WriteValue(outer, (string)null)); AssertThrow<ArgumentOutOfRangeException>( () => writer.WriteStartApplicationDefinedType(outer, InnerNumber.FirstApplication - 1)); writer.Dispose(); AssertThrow<ObjectDisposedException>( () => writer.WriteValue(outer, true), () => writer.WriteValue(outer, 0), () => writer.WriteValue(outer, new byte[] { }), () => writer.WriteValue(outer, 0.0), () => writer.WriteValue(outer, string.Empty), () => writer.WriteValue(outer, new int[] { }), () => writer.WriteStartSequence(outer), () => writer.WriteStartSet(outer), () => writer.WriteStartApplicationDefinedType(outer, InnerNumber.FirstApplication), () => writer.WriteEndContainer()); } }