aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/compiler/csharp/csharp_message.cc
Commit message (Collapse)AuthorAge
* Deleted scoped_ptr.hGravatar Adam Cozzette2018-03-14
| | | | | We no longer need this, now that we have finished the switch to C++11 and are using std::unique_ptr.
* Add unknown field support for csharp (#3936)Gravatar Jie Luo2017-12-13
| | | Add unknown field support for csharp
* Fix merging with message-valued oneofGravatar Jon Skeet2017-10-31
| | | | | | | | | | If messages A and B have the same oneof case, which is a message type, and we merge B into A, those sub-messages should be merged. Fixes #3200. Note that I haven't regenerated all the code, as some of the protos have been changed, breaking generation.
* Add std:: namespace prefix to set and map (#3332)Gravatar tanderson-google2017-07-09
| | | * Remove using std::{set,map}
* Support custom options in C#Gravatar Jon Skeet2017-01-19
| | | | | | | | | | | | This consists of: - Changing the codegen for the fixed set of options protos, to parse unknown fields instead of skipping them - Add a new CustomOptions type in the C# support library - Expose CustomOptions properties from the immutable proto wrappers in the support library Only single-value options are currently supported, and fetching options values requires getting the type right and knowing the field number. Both of these can be addressed at a later time. Fixes #2143, at least as a first pass.
* Fixing code formatting issuesGravatar Andrew Spiering2017-01-11
|
* Added the support for class level deprecation which will in turn also ↵Gravatar Andrew Spiering2016-12-21
| | | | deprecate any fields that are currently using that type
* Remove WriteGeneratedTypeAttributes which is a no-opGravatar Jon Skeet2016-07-07
| | | | | | This does not affect the generated code. If we decide we want to apply attributes to generated types, we should start by just reverting this change.
* Move DebuggerNonUserCodeAttribute to function membersGravatar Jon Skeet2016-07-04
| | | | | | | | | I think this has caught everything. I've left a stub for attributes to be applied to the types themselves, but we don't currently need anything. Follow-up commit will include the changes to generated code itself. Fixes #1671.
* Line-wrapping changes only for C# generator codeGravatar Jon Skeet2016-04-06
| | | | | | | | This should have no behavioral changes at all. This doesn't strictly enforce an 80-column limit, but removes the most egregious violations. The indentation in the C# generator code is inconsistent in general, unfortunately - if we have any good tools that can be trusted to reformat, I'd be happy to apply them.
* Added access_level for typesGravatar Gaurav Vaish2016-04-05
| | | | | | | | | | | * `csharp_options`: Added `Options` to encapsulate generator options. Supported options for now - file_extension, base_namespace * `{Blah}Generator`: Now accept `Options*` as parameter to constructor * `csharp_generator.cc`: Parse and populate options * `Makefile.am`: Added `csharp_options.h` * `extract_includes.bat.in`: Added `csharp_options.h` Refactoring code to two commits. This is the first commit
* Make ToString() valid without a type registryGravatar Jon Skeet2015-12-15
| | | | | | | | | | | | | | | This addresses issue #1008, by creating a JsonFormatter which is private and only different to JsonFormatter.Default in terms of reference equality. Other plausible designs: - The same, but expose the diagnostic-only formatter - Add something to settings to say "I don't have a type registry at all" - Change the behaviour of JsonFormatter.Default (bad idea IMO, as we really *don't* want the result of this used as regular JSON to be parsed) Note that just trying to find a separate fix to issue #933 and using that to override Any.ToString() differently wouldn't work for messages that *contain* an Any. Generated code changes follow in the next commit.
* Rename "umbrella" to "reflection" consistently.Gravatar Jon Skeet2015-11-19
| | | | This changes csharp_names.h, which will require a corresponding change in GRPC.
* Include the oneof-case in equality and hash code generated code.Gravatar Jon Skeet2015-10-24
| | | | The included C# test will fail until the regenerated code is used, which is in the next commit.
* First pass at generating XML documentation from .proto comments.Gravatar Jon Skeet2015-10-01
| | | | | | This could be tidied up significantly, and at some point we will want to parse the markdown and generate more appropriate XML - but this is definitely better than nothing. Generated code changes coming in next commit.
* Fix typo in oneof case enum commentGravatar Jon Skeet2015-09-30
|
* Move the summary comments above the attributes.Gravatar Jon Skeet2015-09-29
| | | | (Generated code changes coming next...)
* Added documentation to generated code.Gravatar Jon Skeet2015-09-29
| | | | | | | | | | | 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.
* Skip groups properly.Gravatar Jon Skeet2015-08-06
| | | | | | | | | | | Now the generated code doesn't need to check for end group tags, as it will skip whole groups at a time. Currently it will ignore extraneous end group tags, which may or may not be a good thing. Renamed ConsumeLastField to SkipLastField as it felt more natural. Removed WireFormat.IsEndGroupTag as it's no longer useful. This mostly fixes issue 688. (Generated code changes coming in next commit.)
* Change ReadTag and PeekTag to just use 0 as a return value for "end of ↵Gravatar Jon Skeet2015-08-05
| | | | | | | | stream", rather than using an awkward out parameter. This simplifies quite a lot of code. Generated code in next commit.
* Consume unknown fields when parsing.Gravatar Jon Skeet2015-08-05
| | | | | This is expected to be the cause of the conformance test failures. Generated code in next commit.
* refactor umbrella class helpersGravatar Jan Tattermusch2015-07-30
|
* More freezing tidy-up; generated code in next commit.Gravatar Jon Skeet2015-07-30
|
* remove the freeze APIGravatar Jan Tattermusch2015-07-29
|
* Fix attribute mistake and regenerate code.Gravatar Jon Skeet2015-07-22
|
* Remove the usage of attributes for field/method discovery.Gravatar Jon Skeet2015-07-22
| | | | Instead, introduce GeneratedCodeInfo which passes in what we need, and adjust the codegen to take account of this.
* Revamp to reflection.Gravatar Jon Skeet2015-07-21
| | | | | | | | | | | | | | | | | 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.
* Merge pull request #586 from jtattermusch/csharp_names_exportGravatar Jan Tattermusch2015-07-16
|\ | | | | Export c# naming routines publicly
* | Address requested change from code review.Gravatar Jon Skeet2015-07-15
| |
* | Don't create nested types (or field accessors) for map types.Gravatar Jon Skeet2015-07-15
| | | | | | | | I'm sure I've implemented this before, but somehow it's been lost in a maze of twisty little branches, all alike.
* | Generate the well-known types in C#Gravatar Jon Skeet2015-07-14
| | | | | | | | | | | | | | | | | | | | This involves: - Specifying a namespace in each proto (including ones we'd previously missed) - Updating the generation script - Changing codegen to implement IReflectedMessage.Fields explicitly (a good thing anyway) - Changing reflection tests to take account of the explicit interface implementation Non-generated code in this commit; generated code to follow
* | Changing reflection namespace (part 1)Gravatar Jon Skeet2015-07-14
| | | | | | | | | | | | | | - Move types into Google.Protobuf.Reflection - Change codegen to reflect that in generated types Generated code changes coming in part 2
| * export c# naming routines publiclyGravatar Jan Tattermusch2015-07-10
| |
* | Oneof reflection support. (Generated code changes in next commit.)Gravatar Jon Skeet2015-07-10
| |
* | Use the new JsonFormatter to implement ToString on generated messages.Gravatar Jon Skeet2015-07-10
|/
* Codegen changes to support descriptor runtime changesGravatar Jon Skeet2015-07-09
| | | | | | - Add a partial method called by all constructors - Generate internal classes for descriptor.proto (only) - Forbid proto2 descriptors except for descriptor.proto
* Implement reflection properly for fields.Gravatar Jon Skeet2015-07-09
| | | | | | | | | | | | | - FieldAccessorTable is now non-generic - We don't have a static field per message type in the umbrella class. (Message descriptors are accessed via the file descriptor.) - Removed the "descriptor assigner" complication from the descriptor fixup; without extensions, we don't need it - MapField implements IDictionary (more tests would be good...) - RepeatedField implements IList (more tests would be good) - Use expression trees to build accessors. (Will need to test this on various platforms... probably need a fallback strategy just using reflection directly.) - Added FieldDescriptor.IsMap - Added tests for reflection with generated messages Changes to generated code coming in next commit.
* Tweaks and more tests for mapsGravatar Jon Skeet2015-06-26
| | | | | | | | | | | | | | | - Change the default message hash code to 1 to be consistent with other code - Change the empty list/map hash code to 0 as "empty map" is equivalent to "no map" - Removed map fields from unittest_proto3.proto - Created map_unittest_proto3.proto which is like map_unittest.proto but proto3-only - Fixed factory methods in FieldCodec highlighted by using all field types :) - Added tests for map serialization: - Extra fields within entries - Entries with value then key - Non-contiguous entries for the same map - Multiple entries for the same key Changes to generated code coming in next commit
* More map tests, and various production code improvements.Gravatar Jon Skeet2015-06-25
| | | | Generated code in next commit.
* First pass at map support.Gravatar Jon Skeet2015-06-25
| | | | More tests required. Generated code in next commit.
* Revert the change to wire_format.h.Gravatar Jon Skeet2015-06-24
| | | | | It seems too much code relies on the broken behaviour. See issue #493. Instead, we reimplement MakeTag just for C#, temporarily.
* Implement freezing for messages and repeated fields.Gravatar Jon Skeet2015-06-24
| | | | Fixes issue #523.
* Implement requested changes for IMessage<T>Gravatar Jon Skeet2015-06-23
| | | | | 1) New line at end of file 2) Make IMessage<T> itself extend IEquatable<T> and IDeepCloneable<T>
* Implement Clone.Gravatar Jon Skeet2015-06-23
| | | | Fixes issue #527.
* Coded*Stream streamlining.Gravatar Jon Skeet2015-06-12
| | | | 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.
* First pass at the mutable API. Quite a bit more to do - in particular, it's ↵Gravatar Jon Skeet2015-06-09
| | | | pretty slow right now.
* First stab at new proto3-only code generatorGravatar Jon Skeet2015-06-05
|
* Migrate writer to io::Printer for C#Gravatar Jie Luo2015-06-04
|
* Add oneof support for C#Gravatar Jie Luo2015-05-29
|
* Remove ClsCompliant declarations from C# codeGravatar Jie Luo2015-05-01
|