// end switch
// end encode3to4
/// <summary>
/// Performs Base64 encoding on the <code>raw</code> ByteBuffer,
/// writing it to the <code>encoded</code> ByteBuffer.
/// </summary>
/// <remarks>
/// Performs Base64 encoding on the <code>raw</code> ByteBuffer,
/// writing it to the <code>encoded</code> ByteBuffer.
/// This is an experimental feature. Currently it does not
/// pass along any options (such as
/// <see cref="DoBreakLines">DoBreakLines</see>
/// or
/// <see cref="Gzip">Gzip</see>
/// .
/// </remarks>
/// <param name="raw">input buffer</param>
/// <param name="encoded">output buffer</param>
/// <since>2.3</since>
public static void Encode(ByteBuffer raw, ByteBuffer encoded)
{
byte[] raw3 = new byte[3];
byte[] enc4 = new byte[4];
while (raw.HasRemaining())
{
int rem = Math.Min(3, raw.Remaining());
raw.Get(raw3, 0, rem);
Couchbase.Lite.Support.Base64.Encode3to4(enc4, raw3, rem, Couchbase.Lite.Support.Base64
.NoOptions);
encoded.Put(enc4);
}
}