Commit Graph

492 Commits

Author SHA1 Message Date
Jie Luo
954bc83413 Merge branch 'csharp' of git://github.com/google/protobuf into google-csharp 2015-04-29 15:55:11 -07:00
Jie Luo
4af18b8711 rename FieldPResenceTest.cs file 2015-04-29 14:20:23 -07:00
Jon Skeet
ce97e68682 Convert both the full and lite runtimes (and json/xml serialization assemblies) to be Portable Class Libraries.
All referring projects are now .NET 4 client rather than .NET 3.5.
This commit also fixes up the ProtoBench app, which I'd neglected in previous commits. (Disentangling the two sets of changes would be time-consuming.)
2015-04-29 21:15:16 +01:00
Jie Luo
d1f5acaafb Change the package for field_presence_test.proto 2015-04-29 11:49:14 -07:00
Jie Luo
c5c9c6a7e0 field presence Reflection and tests 2015-04-29 11:33:07 -07:00
Jon Skeet
0e916d09a3 Removing more C# project files. 2015-04-29 12:22:35 +01:00
Jon Skeet
f015b860b7 Remove CLS compliance from runtime code.
We need to remove it from the generator too; I'll raise a github issue for that.
2015-04-29 12:21:54 +01:00
Jon Skeet
5e0189ab94 Update C# solution and AddressBook project.
Move to a single solution file containing all of the C# projects, but no other solution folders - it's easier to edit those files outside VS than keep adding and removing them from the project.
The AddressBook protos have been regenerated (with a change to the example proto which I haven't included in this change - I'll wait for us to decide exactly what we're doing with namespaces before changing protos outside the csharp directory.

Note that now we've got Addressbook.cs which contains AddressBook and Addressbook classes. It's bad enough that we've got a class called AddressBook within a namespace of AddressBook (hard to get away from) but having things vary just by case is nasty.
This is more evidence that an option for renaming the file and descriptor class would be welcome. (A single option can probably handle both.)
2015-04-29 10:10:20 +01:00
Jon Skeet
f651f73a3c Remove support for Serializable.
This could potentially be added back in later, but its use is limited and it's a pain in terms of support in PCL environments.
One use that has been highlighted is passing objects between AppDomains; we'd recommend passing a byte array explicitly and reparsing on the other side.
2015-04-29 09:18:19 +01:00
Jon Skeet
cc058e1118 Remove RPC support.
It is expected that third parties will generate service/RPC code themselves - see gRPC as an example.
2015-04-29 08:55:07 +01:00
Jon Skeet
e8310aa259 Remove a bunch of files which are no longer relevant:
1) Project files for different configurations - we're going to look at all this again, ideally to just have a single PCL-compatible build
2) ProtoGen - the C++ generator is now the only one we care about
3) Proto files - these are mostly duplicates (or older versions) of the ones in the common directories
2015-04-29 06:55:51 +01:00
Jon Skeet
5ca6dd76fb Update DescriptorProtoFile.cs and UnitTest.cs to indicate manual changes.
(Having regenerated descriptor.proto relative to src, the earlier commented-out code checking that dependencies match may now be okay to uncomment again. Will experiment in later CLs.)
2015-04-28 18:47:47 +01:00
Jon Skeet
ce66c5f1b9 Updated set of unit tests and unit test protos.
This commit includes changes to the C#-specific protos, and rebuilt versions of the "stock" protos.
The stock protos have been locally updated to have a specific C# namespace, but this is expected to change soon, so hasn't been committed.
Four areas are currently not tested:
1) Serialization - we may restore this at some point, possibly optionally.
2) Services - currently nothing is generated for this; will need to see how it interacts with GRPC
3) Fields beginning with _{digit} - see https://github.com/google/protobuf/issues/308
4) Fields with names which conflict with the declaring type in nasty ways - see https://github.com/google/protobuf/issues/309
2015-04-28 15:06:59 +01:00
Jon Skeet
f3504cf3b1 First part of making the C# runtime work with the new codegen.
1) Remove CSharpOptions
2) A new version of DescriptorProtoFile (with manual changes from codegen - it would otherwise be Descriptor.cs)
3) Turn off CLS compliance (which we'll remove from the codebase entirely; I don't think it's actually relevant these days)
4) Add "public imports" to FileDescriptor, with code broadly copied from the Java codebase.
Lots more changes to commit before it will build and tests run, but one step at a time...
2015-04-28 14:53:24 +01:00
Jan Tattermusch
1eab56aee8 removed .hgignore file 2015-04-16 12:31:48 -07:00
Jan Tattermusch
4e80fe15ed Added instructions to manually download the dependencies 2015-04-16 12:30:14 -07:00
Jan Tattermusch
6b7f0172b9 cleanup of csharp/lib/ directory 2015-04-16 10:56:23 -07:00
Jan Tattermusch
e77878ebc7 Updated readme.md and changes.txt, removed old license.txt 2015-04-16 10:23:54 -07:00
Jan Tattermusch
84fa3e2bbc Imported protobuf-csharp-port into csharp/ tree 2015-04-16 09:55:22 -07:00
Jon Skeet
f0589506c9 Wiping slate clean to start again with new layout. 2008-10-22 13:18:49 +01:00
Jon Skeet
e60ce8bfaf Final commit before changing layout 2008-10-22 07:11:17 +01:00
Jon Skeet
7f90d8ee57 Made things a bit more public for the sake of ProtoGen 2008-10-02 21:46:17 +01:00
Jon Skeet
7fd62ffd77 Initial setup of generator code. Little real functionality so far. 2008-09-04 15:13:21 +01:00
Jon Skeet
4658a3dd7e Doc fix 2008-09-04 14:44:03 +01:00
Jon Skeet
dd9703ba53 Reduce dependencies 2008-09-04 14:43:43 +01:00
Jon Skeet
881db010cb Fix initialization check when an optional field has required subfields 2008-09-04 14:43:17 +01:00
Jon Skeet
0dabc77f7f Renamed GeneratedRepeatException to GeneratedRepeatExtension 2008-09-04 14:41:09 +01:00
Jon Skeet
be432ca43c Added a doc TODO 2008-09-04 14:35:05 +01:00
Jon Skeet
57be03df65 Removed unnecessary delegate 2008-09-04 14:34:01 +01:00
Jon Skeet
0bf2ad145d Implemented popsicle immutability for lists. Modified MessageStreamIterator to be singly generic. 2008-08-21 21:57:58 +01:00
Jon Skeet
ad6903fe33 Fix to constructor access for nested types, and first pass at streaming. 2008-08-19 21:24:21 +01:00
Jon Skeet
f09fed217f Small tidying. 2008-08-16 21:23:40 +01:00
Jon Skeet
2cbd799b5e Comments. 2008-08-15 21:24:06 +01:00
Jon Skeet
984eb9c27a Just comments. 2008-08-15 21:15:41 +01:00
Jon Skeet
0b6d39acc4 Remove unused variable. 2008-08-15 21:14:41 +01:00
Jon Skeet
92b0aaa09e Use a nullable int for the memoizedSize, just because it's neater. 2008-08-15 21:12:55 +01:00
Jon Skeet
9deef9baec Add aliases into enums 2008-08-15 20:57:15 +01:00
Jon Skeet
10ad653ce5 Reflect Java source code. 2008-08-15 20:48:16 +01:00
Jon Skeet
40c2221ef4 Updated C# tests and code for TextFormat to match Java. 2008-08-15 20:40:05 +01:00
Jon Skeet
7941ebf198 Updates due to changes to descriptor.proto 2008-08-15 20:08:37 +01:00
Jon Skeet
8f721f5dc7 Experimental (and currently unused) behaviour to determine whether or not a message has any required fields. 2008-08-14 20:38:09 +01:00
Jon Skeet
b01135c485 Align delegates with .NET 3.5 2008-08-14 20:38:08 +01:00
Jon Skeet
6d0cbe7200 Use a switch instead of a map for WireFormat. 2008-08-14 20:38:08 +01:00
Jon Skeet
0980982095 Evil reflection optimisation. 2008-08-14 20:38:07 +01:00
Jon Skeet
38da52d349 Micro-optimisations around varints and strings. 2008-08-14 20:38:06 +01:00
Jon Skeet
272d384f6a Use delegates instead of dynamic reflection. 2008-08-14 20:37:12 +01:00
Jon Skeet
3b3150881a Optimisations of IsInitialized and removal of unnecessary references. 2008-08-14 20:37:11 +01:00
Jon Skeet
81efcf25f3 Removed accidental addition of test directory. 2008-08-14 20:37:10 +01:00
Jon Skeet
62b3d31fb7 Fixed a few TODOs 2008-08-14 20:36:24 +01:00
Jon Skeet
eb4ef52c66 Abandon the 'self' namespace alias - we need to be able to import types in other namespaces too. 2008-08-14 20:35:35 +01:00
Jon Skeet
5407a4329d Signed the test assembly, and added InternalsVisibleTo. Some public members now internal again. 2008-08-14 20:35:34 +01:00
Jon Skeet
38d453d318 Beginning to fix the TODOs 2008-08-14 20:35:34 +01:00
Jon Skeet
15041fa06c Removed EnumDescriptorIndexAttribute - not really necessary. 2008-08-14 20:35:33 +01:00
Jon Skeet
283b7a1a51 Batch file to generate the bootstrapping proto files 2008-08-14 20:35:33 +01:00
Jon Skeet
48ce28bf2f Copyright fixes, a bit of documentation, and removed unnecessary using directives. 2008-08-14 20:35:32 +01:00
Jon Skeet
5923b37223 Finished service test with a mock. 2008-08-14 20:35:31 +01:00
Jon Skeet
3ae573c174 Fleshed out service interfaces, and wrote the simpler service tests. Mocking tests still to be done. 2008-08-14 20:35:31 +01:00
Jon Skeet
1e42fdde2e Implemented text parsing. 2008-08-14 20:35:30 +01:00
Jon Skeet
feb9385b04 Lots of text formatting tests, but ignored the parsing ones for the moment. 2008-08-14 20:35:30 +01:00
Jon Skeet
ca4cbda9de Extensions don't need to go under a separate type. 2008-08-14 20:35:29 +01:00
Jon Skeet
d6c9495797 More tests, and a bug fix. 2008-08-14 20:35:28 +01:00
Jon Skeet
19ed9c0782 UnknownFieldSet tests, and a fix to repeated extension elements. 2008-08-14 20:35:28 +01:00
Jon Skeet
a80a37ccd5 Tidying up, and a couple of extra tests. 2008-08-14 20:35:27 +01:00
Jon Skeet
f26f8dce02 The great generics revisiting. 2008-08-14 20:35:27 +01:00
Jon Skeet
cabd06d12f More tests, and implementation of UninitializedMessageException description. 2008-08-14 20:35:25 +01:00
Jon Skeet
794409b379 More tests, more fixes. 2008-08-14 20:35:24 +01:00
Jon Skeet
ba02091ef8 New unit tests and corresponding bug fixes. 2008-08-14 20:35:24 +01:00
Jon Skeet
bef2caf5e4 Added DynamicMessage and ExtendableBuilder, along with the first supporting tests. 2008-08-14 20:35:23 +01:00
Jon Skeet
5d7adf66ce First unit test reading a complete message\! 2008-08-14 20:35:22 +01:00
Jon Skeet
3f9a6f2116 Implemented GeneratedExtension, although list handling may be incorrect. 2008-08-14 20:35:22 +01:00
Jon Skeet
575083ae9c Initial support for services and extensions. Incomplete, but enough to get generated unit test files to compile. 2008-08-14 20:35:21 +01:00
Jon Skeet
1353315ded Implemented TextFormatter 2008-08-14 20:35:20 +01:00
Jon Skeet
b84310e110 Field accessor implementations complete (hopefully) 2008-08-14 20:35:20 +01:00
Jon Skeet
023d7398d6 Update Makefile in terms of C# sources and keyfile command line option
committer: Jon Skeet <skeet@pobox.com>
2008-08-14 20:35:19 +01:00
Jon Skeet
4e6215c734 Update Makefile in terms of C# sources and keyfile command line option
committer: Jon Skeet <skeet@pobox.com>
2008-08-14 20:35:19 +01:00
Jon Skeet
00b0af0890 Fix default instance behaviour for repeated types 2008-08-14 20:35:18 +01:00
Jon Skeet
c1215c4660 Removed Descriptor.cs which was an early attempt at generation 2008-08-14 20:35:17 +01:00
Jon Skeet
a03ea11c52 Finish implementing GeneratedBuilder. 2008-08-14 20:35:17 +01:00
Jon Skeet
cd85190847 Two more which should have been in the last commit 2008-08-14 20:35:15 +01:00
Jon Skeet
3351bb63da Descriptors are pretty much complete, with a slight issue of how to find the default type for a repeated field. 2008-08-14 20:35:15 +01:00
Jon Skeet
2b61cbf408 Autogeneration now hopefully close to correct. Library builds! (Not finished though...) 2008-08-14 20:35:14 +01:00
Jon Skeet
de21d2c92c Patch from Miguel de Icaza: This introduces auto-detection of Mono to configure, and if found, builds and installs the runtime library, and provides a pkg-config file so developers can easily use it on Unix. 2008-08-14 20:33:37 +01:00
Jon Skeet
9f4f0a56b1 Descriptor framework skeleton. Somewhat generic to avoid lots of code duplication. 2008-08-14 20:33:36 +01:00
Jon Skeet
c0daf10724 Changed fixed size methods to return unsigned integers. Finished FieldSet. Introduced mapping from FieldType to WireType and MappedType. 2008-08-14 20:33:35 +01:00
Jon Skeet
ec8c395517 Gradually implementing FieldSet 2008-08-14 20:33:34 +01:00
Jon Skeet
b83aee759a Fix AbstractMessage and AbstractBuilder to get the explicit interface implementation sorted 2008-08-14 20:33:33 +01:00
Jon Skeet
621bb698e5 Some work on AbstractBuilder, and complete implementation of UnknownField and UnknownFieldSet 2008-08-14 20:33:33 +01:00
Jon Skeet
fe7bb26214 Implemented AbstractMethod and split the descriptors into a new package 2008-08-14 20:33:30 +01:00
Jon Skeet
c26b43d8cd Added copyright notices
committer: Jon Skeet <skeet@pobox.com>
2008-08-14 20:33:29 +01:00
Jon Skeet
1dd0a61d09 More tests for CodedInputStream, and some more WireFormat
committer: Jon Skeet <skeet@pobox.com>
2008-08-14 20:33:29 +01:00
Jon Skeet
b802a94f45 Half way through CodedInputStream
committer: Jon Skeet <skeet@pobox.com>
2008-08-14 20:33:28 +01:00
Jon Skeet
baa2bf54c2 First part of dotnet library
committer: Jon Skeet <skeet@pobox.com>
2008-08-14 20:33:27 +01:00