aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtocolBuffers/CodedOutputStream.cs
Commit message (Collapse)AuthorAgeFilesLines
* First pass at the big rename from ProtocolBuffers to Google.Protobuf.Jon Skeet2015-07-171-705/+0
| | | | We'll see what I've missed when CI fails...
* First pass at wrapper types.Jon Skeet2015-07-161-2/+2
| | | | | - We do still generate the message types, as otherwise reflection breaks, even though it doesn't actually use those types. - JSON handling hasn't been implemented yet
* Fix copyright lines for all C# code.Jon Skeet2015-06-301-5/+1
| | | | | | Everything should now be consistent - the only difference between files is the year (aside from generated files). Fixes issue #531.
* Tidying up and extra tests.Jon Skeet2015-06-301-14/+83
| | | | This is mostly just making things internal instead of public, removing and reordering a bunch of code in CodedInputStream/CodedOutputStream, and generally tidying up.
* First pass (not yet compiling) at removing all the array handling code from ↵Jon Skeet2015-06-301-325/+0
| | | | | | | Coded*Stream. Prod code works, but some tests are broken. Obviously those need fixing, then more tests, and review benchmarks.
* First pass at map support.Jon Skeet2015-06-251-0/+8
| | | | More tests required. Generated code in next commit.
* Minor cleanup.Jon Skeet2015-06-191-4/+1
| | | | | | | | - Make some members internal - Remove a lot of FrameworkPortability that isn't required - Start adding documentation comments - Remove some more group-based members - Not passing in "the last tag read" into Read*Array, g
* Use our "local" copy of Encoding.UTF8 in CodedInputStream too.Jon Skeet2015-06-171-4/+5
|
* Use the fact that we know the tag size and bytes at codegen time to optimize.Jon Skeet2015-06-171-454/+163
|
* Reimplement RepeatedField<T> using an array as the backing store.Jon Skeet2015-06-121-9/+14
| | | | | | | | | | This is effectively reimplementing List<T>, but with a few advantages: - We know that an empty repeated field is common, so don't allocate an array until we need to - With direct access to the array, we can easily convert enum values to int without boxing - We can relax the restrictions over what happens if the repeated field is modified while iterating, avoiding so much checking This is somewhat risky, in that reimplementing a building block like this is *always* risky, but hey... (The performance benefits are significant...)
* Optimization to avoid foreach over empty lists.Jon Skeet2015-06-121-9/+64
|
* Coded*Stream streamlining.Jon Skeet2015-06-121-180/+69
| | | | Remove ICodedInputStream and ICodedOutputStream, and rewrite CodedInputStream and CodedOutputStream to be specific to the binary format. If we want to support text-based formats, that can be a whole different serialization mechanism.
* Reimplement enums as int values, and get rid of EnumHelper.Jon Skeet2015-06-111-7/+17
| | | | This makes repeated fields really awkward at the moment - but when we reimplement RepeatedField<T> to be backed by an array, we can cast the array directly...
* Optimize WriteRawInt32 for the common case of a value < 128, which is a ↵Jon Skeet2015-06-111-0/+7
| | | | | | single byte. Aside from anything else, this will be used for all tags for fields 1-15.
* Improve string encoding times.Jon Skeet2015-06-111-3/+15
| | | | | Cache a reference to Encoding.UTF8 - the property access is (rather surprisingly) significant. Additionally, when we detect that the string is all ASCII (due to the computed length in bytes being the length in characters), we can perform the encoding very efficiently ourselves.
* First pass at the mutable API. Quite a bit more to do - in particular, it's ↵Jon Skeet2015-06-091-194/+144
| | | | pretty slow right now.
* Remove CLS compliance from runtime code.Jon Skeet2015-04-291-19/+0
| | | | We need to remove it from the generator too; I'll raise a github issue for that.
* Imported protobuf-csharp-port into csharp/ treeJan Tattermusch2015-04-161-0/+1341