aboutsummaryrefslogtreecommitdiff
path: root/src/ProtocolBuffers/FieldSet.cs
diff options
context:
space:
mode:
authorcsharptest <roger@csharptest.net>2011-06-03 12:58:14 -0500
committerrogerk <devnull@localhost>2011-06-03 12:58:14 -0500
commitffafdaa0f9a96d17d456c844a3e554512a5c121d (patch)
treeda8bb40d40228429fa4b846bc7ef29c06e717e82 /src/ProtocolBuffers/FieldSet.cs
parentcc8d2aaa3a0b6bed6677fd488bc7deecd90f5604 (diff)
downloadprotobuf-ffafdaa0f9a96d17d456c844a3e554512a5c121d.tar.gz
protobuf-ffafdaa0f9a96d17d456c844a3e554512a5c121d.tar.bz2
protobuf-ffafdaa0f9a96d17d456c844a3e554512a5c121d.zip
Fully converted over to ICodedOutputStream for all WriteTo derivations
Diffstat (limited to 'src/ProtocolBuffers/FieldSet.cs')
-rw-r--r--src/ProtocolBuffers/FieldSet.cs48
1 files changed, 25 insertions, 23 deletions
diff --git a/src/ProtocolBuffers/FieldSet.cs b/src/ProtocolBuffers/FieldSet.cs
index 93082b51..18e57662 100644
--- a/src/ProtocolBuffers/FieldSet.cs
+++ b/src/ProtocolBuffers/FieldSet.cs
@@ -455,7 +455,7 @@ namespace Google.ProtocolBuffers
/// <summary>
/// See <see cref="IMessageLite.WriteTo(CodedOutputStream)" />.
/// </summary>
- public void WriteTo(CodedOutputStream output)
+ public void WriteTo(ICodedOutputStream output)
{
foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields)
{
@@ -466,7 +466,7 @@ namespace Google.ProtocolBuffers
/// <summary>
/// Writes a single field to a CodedOutputStream.
/// </summary>
- public void WriteField(IFieldDescriptorLite field, Object value, CodedOutputStream output)
+ public void WriteField(IFieldDescriptorLite field, Object value, ICodedOutputStream output)
{
if (field.IsExtension && field.MessageSetWireFormat)
{
@@ -478,28 +478,30 @@ namespace Google.ProtocolBuffers
{
IEnumerable valueList = (IEnumerable) value;
if (field.IsPacked)
- {
- output.WriteTag(field.FieldNumber, WireFormat.WireType.LengthDelimited);
- // Compute the total data size so the length can be written.
- int dataSize = 0;
- foreach (object element in valueList)
- {
- dataSize += CodedOutputStream.ComputeFieldSizeNoTag(field.FieldType, element);
- }
- output.WriteRawVarint32((uint) dataSize);
- // Write the data itself, without any tags.
- foreach (object element in valueList)
- {
- output.WriteFieldNoTag(field.FieldType, element);
- }
- }
+ output.WritePackedArray(field.FieldType, field.FieldNumber, field.Name, valueList);
+ //{
+ // output.WriteTag(field.FieldNumber, WireFormat.WireType.LengthDelimited);
+ // // Compute the total data size so the length can be written.
+ // int dataSize = 0;
+ // foreach (object element in valueList)
+ // {
+ // dataSize += CodedOutputStream.ComputeFieldSizeNoTag(field.FieldType, element);
+ // }
+ // output.WriteRawVarint32((uint) dataSize);
+ // // Write the data itself, without any tags.
+ // foreach (object element in valueList)
+ // {
+ // output.WriteFieldNoTag(field.FieldType, element);
+ // }
+ //}
else
- {
- foreach (object element in valueList)
- {
- output.WriteField(field.FieldType, field.FieldNumber, field.Name, element);
- }
- }
+ output.WriteArray(field.FieldType, field.FieldNumber, field.Name, valueList);
+ //{
+ // foreach (object element in valueList)
+ // {
+ // output.WriteField(field.FieldType, field.FieldNumber, field.Name, element);
+ // }
+ //}
}
else
{