aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/Google.Protobuf/Reflection
Commit message (Collapse)AuthorAgeFilesLines
* Generated code changes from previous commitJon Skeet2016-02-041-1/+1
|
* Rename Preconditions to ProtoPreconditionsJon Skeet2016-02-042-29/+29
| | | | (Generated code changes in next commit.)
* Generated code for GeneratedCodeInfo changeJon Skeet2016-02-041-65/+375
|
* Rename GeneratedCodeInfo to GeneratedClrTypeInfoJon Skeet2016-02-043-11/+11
| | | | | | | Recently, descriptor.proto gained a GeneratedCodeInfo message, which means the generated code conflicts with our type. Unfortunately this affects codegen as well, although this is a part of the public API which is very unlikely to affect hand-written code. Generated code changes in next commit.
* Allow the original field name (rather than camel-cased) when parsing JSONJon Skeet2016-01-151-3/+15
|
* Generated code changes from previous commit.Jon Skeet2015-12-151-22/+22
|
* Generated code changes for previous commit (basically ↵Jon Skeet2015-11-223-4/+4
| | | | InternalBuildGeneratedFileFrom => FromGeneratedCode)
* Tidy up reflection in advance of attempting to implement DynamicMessage.Jon Skeet2015-11-226-208/+179
| | | | | | | | | There are corner cases where MessageDescriptor.{ClrType,Parser} will return null, and these are now documented. However, normally they *should* be implemented, even for descriptors of for dynamic messages. Ditto FieldDescriptor.Accessor. We'll still need a fair amount of work to implement dynamic messages, but this change means that the public API will be remain intact. Additionally, this change starts making use of C# 6 features in the files that it touches. This is far from exhaustive, and later PRs will have more. Generated code changes coming in the next commit.
* Added the type registry in advance of implementing Any support.Jon Skeet2015-11-211-0/+183
| | | | Biting off just this bit first as I don't need the changes from a previous PR for this part.
* Generated code from previous commit.Jon Skeet2015-11-191-19/+19
|
* Introduce a Parser property into MessageDescriptor, and populate it from ↵Jon Skeet2015-11-192-2/+19
| | | | | | generated types. Generated code coming in next commit - in a subsequent PR I want to do a bit of renaming and redocumenting around this, in anticipation of DynamicMessage.
* Generated code changes and manual changes for previous commit.Jon Skeet2015-11-092-21/+21
|
* Generated code for previous commit.Jon Skeet2015-11-061-0/+25
|
* Move the creation of the "fields by JSON name" dictionary to the descriptor.Jon Skeet2015-11-041-0/+15
|
* Fix clearing wrapper type fields with reflection.Jon Skeet2015-10-302-2/+2
| | | | The nullable value type fields already worked, but the use of the CLR property concealed the difference between string and StringWrapper fields.
* Generated code for previous commit (oneof case contributing to hash code and ↵Jon Skeet2015-10-241-81/+115
| | | | equality).
* Generated code from previous commit.Jon Skeet2015-10-011-0/+641
|
* Generated code changes for previous commit.Jon Skeet2015-09-291-7/+7
|
* Generated code for previous commitJon Skeet2015-09-291-0/+8
|
* Added documentation to generated code.Jon Skeet2015-09-291-1/+1
| | | | | | | | | | | There are now summaries for: - The Types nested class (which holds nested types) - The file descriptor class for each proto - The enum generated for each oneof (Also fixed two typos.) Generated code in next commit.
* Merge pull request #785 from jskeet/csharp-directoriesJan Tattermusch2015-09-231-111/+111
|\ | | | | Generate C# directory hierarchy with new option
| * Regenerated code. Most changes are whitespace, removing trailing spaces.Jon Skeet2015-09-011-111/+111
| | | | | | | | Other changes are due to the well-known types changing without us regenerating.
* | Pack/Unpack implementation for Any.Jon Skeet2015-09-041-0/+2
|/ | | | | We still need the JSON representation, which relies on something like a DescriptorPool to fetch message types from based on the type URL. That will come a bit later. (The DescriptorPool comment in this commit is just a note which will prove useful if we use DescriptorPool itself.)
* Change where we rename Descriptor.cs to DescriptorProtoFile.cs.Jon Skeet2015-08-252-114/+114
| | | | | | | | | | | We now do this in protoc instead of the generation simpler. Benefits: - Generation script is simpler - Detection is simpler as we now only need to care about one filename - The embedded descriptor knows itself as "google/protobuf/descriptor.proto" avoiding dependency issues This PR also makes the "invalid dependency" exception clearer in terms of expected and actual dependencies.
* fix type initialization problem with FileDescriptorJan Tattermusch2015-08-141-148/+175
|
* Allow public access to descriptor.proto as a dependency.Jon Skeet2015-08-131-0/+15
| | | | | With this in place, generating APIs on github.com/google/googleapis works - previously annotations.proto failed. Currently there's no access to the annotations (stored as extensions) but we could potentially expose those at a later date.
* More TODOs done.Jon Skeet2015-08-101-3/+4
| | | | | | - Removed a TODO without change in DescriptorPool.LookupSymbol - the TODOs were around performance, and this is only used during descriptor initialization - Make the CodedInputStream limits read-only, adding a static factory method for the rare cases when this is useful - Extracted IDeepCloneable into its own file.
* Make FieldDescriptor.IsPacked work appropriately.Jon Skeet2015-08-082-3/+17
| | | | | This is a bit of a grotty hack, as we need to sort of fake proto2 field presence, but with only a proto3 version of the descriptor messages (a bit like oneof detection). Should be okay, but will need to be careful of this if we ever implement proto2.
* Address review comments.Jon Skeet2015-08-081-2/+0
|
* Tidying up - fix a bunch of TODOs and remove outdated ones.Jon Skeet2015-08-088-55/+53
|
* Generated code for previous commit.Jon Skeet2015-08-061-88/+22
|
* Generated code changes for previous commit.Jon Skeet2015-08-051-66/+22
|
* Generated code changes for previous commit.Jon Skeet2015-08-051-0/+22
|
* Document everything, and turn on errors if we fail to document anything in ↵Jon Skeet2015-08-0410-25/+157
| | | | the future.
* Fix trivial bug in field orderings.Jon Skeet2015-07-311-1/+1
| | | | (Shows the benefit of unit testing even code "too simple to fail"...)
* Generated code for previous commit.Jon Skeet2015-07-301-26/+26
|
* Generated code from previous commit.Jon Skeet2015-07-301-66/+0
|
* Merge pull request #654 from jtattermusch/csharp_hide_freezeJon Skeet2015-07-301-265/+0
|\ | | | | Remove the C# Freeze API
| * regenerate codeJan Tattermusch2015-07-291-265/+0
| |
* | add IsClientStreaming and IsServerStreaming to MethodDescriptorJan Tattermusch2015-07-291-0/+10
|/
* First attempt at using profile 259 for Google.Protobuf.Jon Skeet2015-07-275-1/+6
| | | | | | | | This requires .NET 4.5, and there are a few compatibility changes required around reflection. Creating a PR from this to see how our CI systems handle it. Will want to add more documentation, validation and probably tests before merging. This is in aid of issue #590.
* expose original binary data for filedescriptorJan Tattermusch2015-07-241-4/+19
|
* Implemented Jan's suggestion of FieldCollection, replacing ↵Jon Skeet2015-07-222-35/+43
| | | | | | | | | | FieldAccessorCollection. I think Jan was actually suggesting keeping both, but that feels redundant to me. The test diff is misleading here IMO, because I wouldn't expect real code using reflection to use several accessors one after another like this, unless it was within a loop. Evidence to the contrary would be welcome :) This change also incidentally goes part way to fixing the issue of the JSON formatter not writing out the fields in field number order - with this change, it does except for oneofs, which we can fix in a follow-up change. I haven't actually added a test with a message with fields deliberately out of order - I'm happy to do so though. It feels like it would make sense to be in google/src/protobuf, but it's not entirely clear what the rules of engagement are for adding new messages there. (unittest_proto3.proto?)
* Added newlinesJon Skeet2015-07-221-1/+1
|
* First pass at making field access simpler.Jon Skeet2015-07-222-11/+71
| | | | This is definitely not ready to ship - I'm "troubled" by the disconnect between a list of fields in declaration order, and a mapping of field accessors by field number/name. Discussion required, but I find that easier when we've got code to look at :)
* Remove the usage of attributes for field/method discovery.Jon Skeet2015-07-229-353/+146
| | | | Instead, introduce GeneratedCodeInfo which passes in what we need, and adjust the codegen to take account of this.
* Fix comment typoJon Skeet2015-07-211-1/+1
|
* Generated code changes following previous commit.Jon Skeet2015-07-211-136/+149
|
* Revamp to reflection.Jon Skeet2015-07-2115-129/+273
| | | | | | | | | | | | | | | | | Changes in brief: 1. Descriptor is now the entry point for all reflection. 2. IReflectedMessage has gone; there's now a Descriptor property in IMessage, which is explicitly implemented (due to the static property). 3. FieldAccessorTable has gone away 4. IFieldAccessor and OneofFieldAccessor still exist; we *could* put the functionality straight into FieldDescriptor and OneofDescriptor... I'm unsure about that. 5. There's a temporary property MessageDescriptor.FieldAccessorsByFieldNumber to make the test changes small - we probably want this to go away 6. Discovery for delegates is now via attributes applied to properties and the Clear method of a oneof I'm happy with 1-3. 4 I'm unsure about - feedback welcome. 5 will go away 6 I'm unsure about, both in design and implementation. Should we have a ProtobufMessageAttribute too? Should we find all the relevant attributes in MessageDescriptor and pass them down, to avoid an O(N^2) scenario? Generated code changes coming in the next commit.
* First part of JSON formatting for well-known types. I think we need a ↵Jon Skeet2015-07-201-0/+25
| | | | reflection API rethink before doing the rest.