Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
89719f07
Commit
89719f07
authored
Apr 05, 2016
by
Jon Skeet
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1349 from gvaish/master
Added CLI option internal_access for types (C#)
parents
f3fe75ba
74d8b0be
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
177 additions
and
84 deletions
+177
-84
extract_includes.bat.in
cmake/extract_includes.bat.in
+1
-0
Makefile.am
src/Makefile.am
+1
-0
csharp_enum.cc
src/google/protobuf/compiler/csharp/csharp_enum.cc
+2
-2
csharp_enum.h
src/google/protobuf/compiler/csharp/csharp_enum.h
+1
-1
csharp_enum_field.cc
src/google/protobuf/compiler/csharp/csharp_enum_field.cc
+5
-4
csharp_enum_field.h
src/google/protobuf/compiler/csharp/csharp_enum_field.h
+2
-2
csharp_field_base.cc
src/google/protobuf/compiler/csharp/csharp_field_base.cc
+2
-2
csharp_field_base.h
src/google/protobuf/compiler/csharp/csharp_field_base.h
+1
-1
csharp_generator.cc
src/google/protobuf/compiler/csharp/csharp_generator.cc
+16
-10
csharp_helpers.cc
src/google/protobuf/compiler/csharp/csharp_helpers.cc
+14
-13
csharp_helpers.h
src/google/protobuf/compiler/csharp/csharp_helpers.h
+2
-1
csharp_map_field.cc
src/google/protobuf/compiler/csharp/csharp_map_field.cc
+5
-4
csharp_map_field.h
src/google/protobuf/compiler/csharp/csharp_map_field.h
+1
-1
csharp_message.cc
src/google/protobuf/compiler/csharp/csharp_message.cc
+5
-5
csharp_message.h
src/google/protobuf/compiler/csharp/csharp_message.h
+1
-1
csharp_message_field.cc
src/google/protobuf/compiler/csharp/csharp_message_field.cc
+5
-4
csharp_message_field.h
src/google/protobuf/compiler/csharp/csharp_message_field.h
+2
-2
csharp_options.h
src/google/protobuf/compiler/csharp/csharp_options.h
+60
-0
csharp_primitive_field.cc
...google/protobuf/compiler/csharp/csharp_primitive_field.cc
+5
-4
csharp_primitive_field.h
src/google/protobuf/compiler/csharp/csharp_primitive_field.h
+4
-2
csharp_reflection_class.cc
...oogle/protobuf/compiler/csharp/csharp_reflection_class.cc
+6
-4
csharp_reflection_class.h
...google/protobuf/compiler/csharp/csharp_reflection_class.h
+1
-1
csharp_repeated_enum_field.cc
...le/protobuf/compiler/csharp/csharp_repeated_enum_field.cc
+2
-2
csharp_repeated_enum_field.h
...gle/protobuf/compiler/csharp/csharp_repeated_enum_field.h
+1
-1
csharp_repeated_message_field.cc
...protobuf/compiler/csharp/csharp_repeated_message_field.cc
+4
-4
csharp_repeated_message_field.h
.../protobuf/compiler/csharp/csharp_repeated_message_field.h
+3
-1
csharp_repeated_primitive_field.cc
...otobuf/compiler/csharp/csharp_repeated_primitive_field.cc
+2
-2
csharp_repeated_primitive_field.h
...rotobuf/compiler/csharp/csharp_repeated_primitive_field.h
+1
-1
csharp_source_generator_base.cc
.../protobuf/compiler/csharp/csharp_source_generator_base.cc
+8
-2
csharp_source_generator_base.h
...e/protobuf/compiler/csharp/csharp_source_generator_base.h
+5
-1
csharp_wrapper_field.cc
src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc
+5
-4
csharp_wrapper_field.h
src/google/protobuf/compiler/csharp/csharp_wrapper_field.h
+4
-2
No files found.
cmake/extract_includes.bat.in
View file @
89719f07
...
...
@@ -23,6 +23,7 @@ copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\command_line_
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\cpp\cpp_generator.h include\google\protobuf\compiler\cpp\cpp_generator.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\csharp\csharp_generator.h include\google\protobuf\compiler\csharp\csharp_generator.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\csharp\csharp_names.h include\google\protobuf\compiler\csharp\csharp_names.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\csharp\csharp_options.h include\google\protobuf\compiler\csharp\csharp_options.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\importer.h include\google\protobuf\compiler\importer.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\java\java_generator.h include\google\protobuf\compiler\java\java_generator.h
copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\compiler\java\java_names.h include\google\protobuf\compiler\java\java_names.h
...
...
src/Makefile.am
View file @
89719f07
...
...
@@ -455,6 +455,7 @@ libprotoc_la_SOURCES = \
google/protobuf/compiler/csharp/csharp_message.h
\
google/protobuf/compiler/csharp/csharp_message_field.cc
\
google/protobuf/compiler/csharp/csharp_message_field.h
\
google/protobuf/compiler/csharp/csharp_options.h
\
google/protobuf/compiler/csharp/csharp_primitive_field.cc
\
google/protobuf/compiler/csharp/csharp_primitive_field.h
\
google/protobuf/compiler/csharp/csharp_reflection_class.cc
\
...
...
src/google/protobuf/compiler/csharp/csharp_enum.cc
View file @
89719f07
...
...
@@ -49,8 +49,8 @@ namespace protobuf {
namespace
compiler
{
namespace
csharp
{
EnumGenerator
::
EnumGenerator
(
const
EnumDescriptor
*
descriptor
)
:
SourceGeneratorBase
(
descriptor
->
file
()),
EnumGenerator
::
EnumGenerator
(
const
EnumDescriptor
*
descriptor
,
const
Options
*
options
)
:
SourceGeneratorBase
(
descriptor
->
file
()
,
options
),
descriptor_
(
descriptor
)
{
}
...
...
src/google/protobuf/compiler/csharp/csharp_enum.h
View file @
89719f07
...
...
@@ -43,7 +43,7 @@ namespace csharp {
class
EnumGenerator
:
public
SourceGeneratorBase
{
public
:
EnumGenerator
(
const
EnumDescriptor
*
descriptor
);
EnumGenerator
(
const
EnumDescriptor
*
descriptor
,
const
Options
*
options
);
~
EnumGenerator
();
void
Generate
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_enum_field.cc
View file @
89719f07
...
...
@@ -38,6 +38,7 @@
#include <google/protobuf/io/zero_copy_stream.h>
#include <google/protobuf/compiler/csharp/csharp_helpers.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
#include <google/protobuf/compiler/csharp/csharp_enum_field.h>
namespace
google
{
...
...
@@ -46,8 +47,8 @@ namespace compiler {
namespace
csharp
{
EnumFieldGenerator
::
EnumFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
PrimitiveFieldGenerator
(
descriptor
,
fieldOrdinal
)
{
int
fieldOrdinal
,
const
Options
*
options
)
:
PrimitiveFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
)
{
}
EnumFieldGenerator
::~
EnumFieldGenerator
()
{
...
...
@@ -81,8 +82,8 @@ void EnumFieldGenerator::GenerateCodecCode(io::Printer* printer) {
}
EnumOneofFieldGenerator
::
EnumOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
PrimitiveOneofFieldGenerator
(
descriptor
,
fieldOrdinal
)
{
int
fieldOrdinal
,
const
Options
*
options
)
:
PrimitiveOneofFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
)
{
}
EnumOneofFieldGenerator
::~
EnumOneofFieldGenerator
()
{
...
...
src/google/protobuf/compiler/csharp/csharp_enum_field.h
View file @
89719f07
...
...
@@ -43,7 +43,7 @@ namespace csharp {
class
EnumFieldGenerator
:
public
PrimitiveFieldGenerator
{
public
:
EnumFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
EnumFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
EnumFieldGenerator
();
virtual
void
GenerateCodecCode
(
io
::
Printer
*
printer
);
...
...
@@ -57,7 +57,7 @@ class EnumFieldGenerator : public PrimitiveFieldGenerator {
class
EnumOneofFieldGenerator
:
public
PrimitiveOneofFieldGenerator
{
public
:
EnumOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
EnumOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
EnumOneofFieldGenerator
();
virtual
void
GenerateParsingCode
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_field_base.cc
View file @
89719f07
...
...
@@ -100,8 +100,8 @@ void FieldGeneratorBase::SetCommonOneofFieldVariables(
}
FieldGeneratorBase
::
FieldGeneratorBase
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
SourceGeneratorBase
(
descriptor
->
file
()),
int
fieldOrdinal
,
const
Options
*
options
)
:
SourceGeneratorBase
(
descriptor
->
file
()
,
options
),
descriptor_
(
descriptor
),
fieldOrdinal_
(
fieldOrdinal
)
{
SetCommonFieldVariables
(
&
variables_
);
...
...
src/google/protobuf/compiler/csharp/csharp_field_base.h
View file @
89719f07
...
...
@@ -44,7 +44,7 @@ namespace csharp {
class
FieldGeneratorBase
:
public
SourceGeneratorBase
{
public
:
FieldGeneratorBase
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
FieldGeneratorBase
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
FieldGeneratorBase
();
virtual
void
GenerateCloningCode
(
io
::
Printer
*
printer
)
=
0
;
...
...
src/google/protobuf/compiler/csharp/csharp_generator.cc
View file @
89719f07
...
...
@@ -41,6 +41,7 @@
#include <google/protobuf/compiler/csharp/csharp_generator.h>
#include <google/protobuf/compiler/csharp/csharp_helpers.h>
#include <google/protobuf/compiler/csharp/csharp_names.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
#include <google/protobuf/compiler/csharp/csharp_reflection_class.h>
using
google
::
protobuf
::
internal
::
scoped_ptr
;
...
...
@@ -51,8 +52,9 @@ namespace compiler {
namespace
csharp
{
void
GenerateFile
(
const
google
::
protobuf
::
FileDescriptor
*
file
,
io
::
Printer
*
printer
)
{
ReflectionClassGenerator
reflectionClassGenerator
(
file
);
io
::
Printer
*
printer
,
const
Options
*
options
)
{
ReflectionClassGenerator
reflectionClassGenerator
(
file
,
options
);
reflectionClassGenerator
.
Generate
(
printer
);
}
...
...
@@ -71,15 +73,14 @@ bool Generator::Generate(
return
false
;
}
std
::
string
file_extension
=
".cs"
;
std
::
string
base_namespace
=
""
;
bool
generate_directories
=
false
;
struct
Options
cli_options
;
for
(
int
i
=
0
;
i
<
options
.
size
();
i
++
)
{
if
(
options
[
i
].
first
==
"file_extension"
)
{
file_extension
=
options
[
i
].
second
;
cli_options
.
file_extension
=
options
[
i
].
second
;
}
else
if
(
options
[
i
].
first
==
"base_namespace"
)
{
base_namespace
=
options
[
i
].
second
;
generate_directories
=
true
;
cli_options
.
base_namespace
=
options
[
i
].
second
;
cli_options
.
generate_directories
=
true
;
}
else
{
*
error
=
"Unknown generator option: "
+
options
[
i
].
first
;
return
false
;
...
...
@@ -87,7 +88,12 @@ bool Generator::Generate(
}
string
filename_error
=
""
;
std
::
string
filename
=
GetOutputFile
(
file
,
file_extension
,
generate_directories
,
base_namespace
,
&
filename_error
);
std
::
string
filename
=
GetOutputFile
(
file
,
cli_options
.
file_extension
,
cli_options
.
generate_directories
,
cli_options
.
base_namespace
,
&
filename_error
);
if
(
filename
.
empty
())
{
*
error
=
filename_error
;
return
false
;
...
...
@@ -96,7 +102,7 @@ bool Generator::Generate(
generator_context
->
Open
(
filename
));
io
::
Printer
printer
(
output
.
get
(),
'$'
);
GenerateFile
(
file
,
&
printer
);
GenerateFile
(
file
,
&
printer
,
&
cli_options
);
return
true
;
}
...
...
src/google/protobuf/compiler/csharp/csharp_helpers.cc
View file @
89719f07
...
...
@@ -48,6 +48,7 @@
#include <google/protobuf/compiler/csharp/csharp_enum_field.h>
#include <google/protobuf/compiler/csharp/csharp_map_field.h>
#include <google/protobuf/compiler/csharp/csharp_message_field.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
#include <google/protobuf/compiler/csharp/csharp_primitive_field.h>
#include <google/protobuf/compiler/csharp/csharp_repeated_enum_field.h>
#include <google/protobuf/compiler/csharp/csharp_repeated_message_field.h>
...
...
@@ -351,49 +352,49 @@ std::string FileDescriptorToBase64(const FileDescriptor* descriptor) {
}
FieldGeneratorBase
*
CreateFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
{
int
fieldOrdinal
,
const
Options
*
options
)
{
switch
(
descriptor
->
type
())
{
case
FieldDescriptor
:
:
TYPE_GROUP
:
case
FieldDescriptor
:
:
TYPE_MESSAGE
:
if
(
descriptor
->
is_repeated
())
{
if
(
descriptor
->
is_map
())
{
return
new
MapFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
MapFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
else
{
return
new
RepeatedMessageFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
RepeatedMessageFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
}
else
{
if
(
IsWrapperType
(
descriptor
))
{
if
(
descriptor
->
containing_oneof
())
{
return
new
WrapperOneofFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
WrapperOneofFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
else
{
return
new
WrapperFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
WrapperFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
}
else
{
if
(
descriptor
->
containing_oneof
())
{
return
new
MessageOneofFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
MessageOneofFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
else
{
return
new
MessageFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
MessageFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
}
}
case
FieldDescriptor
:
:
TYPE_ENUM
:
if
(
descriptor
->
is_repeated
())
{
return
new
RepeatedEnumFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
RepeatedEnumFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
else
{
if
(
descriptor
->
containing_oneof
())
{
return
new
EnumOneofFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
EnumOneofFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
else
{
return
new
EnumFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
EnumFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
}
default
:
if
(
descriptor
->
is_repeated
())
{
return
new
RepeatedPrimitiveFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
RepeatedPrimitiveFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
else
{
if
(
descriptor
->
containing_oneof
())
{
return
new
PrimitiveOneofFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
PrimitiveOneofFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
else
{
return
new
PrimitiveFieldGenerator
(
descriptor
,
fieldOrdinal
);
return
new
PrimitiveFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
);
}
}
}
...
...
src/google/protobuf/compiler/csharp/csharp_helpers.h
View file @
89719f07
...
...
@@ -46,6 +46,7 @@ namespace protobuf {
namespace
compiler
{
namespace
csharp
{
struct
Options
;
class
FieldGeneratorBase
;
// TODO: start using this enum.
...
...
@@ -95,7 +96,7 @@ std::string StringToBase64(const std::string& input);
std
::
string
FileDescriptorToBase64
(
const
FileDescriptor
*
descriptor
);
FieldGeneratorBase
*
CreateFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
FieldGeneratorBase
*
CreateFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
// Determines whether the given message is a map entry message, i.e. one implicitly created
// by protoc due to a map<key, value> field.
...
...
src/google/protobuf/compiler/csharp/csharp_map_field.cc
View file @
89719f07
...
...
@@ -48,8 +48,9 @@ namespace compiler {
namespace
csharp
{
MapFieldGenerator
::
MapFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
)
{
int
fieldOrdinal
,
const
Options
*
options
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
,
options
)
{
}
MapFieldGenerator
::~
MapFieldGenerator
()
{
...
...
@@ -62,8 +63,8 @@ void MapFieldGenerator::GenerateMembers(io::Printer* printer) {
descriptor_
->
message_type
()
->
FindFieldByName
(
"value"
);
variables_
[
"key_type_name"
]
=
type_name
(
key_descriptor
);
variables_
[
"value_type_name"
]
=
type_name
(
value_descriptor
);
scoped_ptr
<
FieldGeneratorBase
>
key_generator
(
CreateFieldGenerator
(
key_descriptor
,
1
));
scoped_ptr
<
FieldGeneratorBase
>
value_generator
(
CreateFieldGenerator
(
value_descriptor
,
2
));
scoped_ptr
<
FieldGeneratorBase
>
key_generator
(
CreateFieldGenerator
(
key_descriptor
,
1
,
this
->
options
()));
scoped_ptr
<
FieldGeneratorBase
>
value_generator
(
CreateFieldGenerator
(
value_descriptor
,
2
,
this
->
options
()
));
printer
->
Print
(
variables_
,
...
...
src/google/protobuf/compiler/csharp/csharp_map_field.h
View file @
89719f07
...
...
@@ -43,7 +43,7 @@ namespace csharp {
class
MapFieldGenerator
:
public
FieldGeneratorBase
{
public
:
MapFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
MapFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
MapFieldGenerator
();
virtual
void
GenerateCloningCode
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_message.cc
View file @
89719f07
...
...
@@ -60,8 +60,8 @@ bool CompareFieldNumbers(const FieldDescriptor* d1, const FieldDescriptor* d2) {
return
d1
->
number
()
<
d2
->
number
();
}
MessageGenerator
::
MessageGenerator
(
const
Descriptor
*
descriptor
)
:
SourceGeneratorBase
(
descriptor
->
file
()),
MessageGenerator
::
MessageGenerator
(
const
Descriptor
*
descriptor
,
const
Options
*
options
)
:
SourceGeneratorBase
(
descriptor
->
file
()
,
options
),
descriptor_
(
descriptor
)
{
// sorted field names
...
...
@@ -214,13 +214,13 @@ void MessageGenerator::Generate(io::Printer* printer) {
printer
->
Print
(
"public static partial class Types {
\n
"
);
printer
->
Indent
();
for
(
int
i
=
0
;
i
<
descriptor_
->
enum_type_count
();
i
++
)
{
EnumGenerator
enumGenerator
(
descriptor_
->
enum_type
(
i
));
EnumGenerator
enumGenerator
(
descriptor_
->
enum_type
(
i
)
,
this
->
options
()
);
enumGenerator
.
Generate
(
printer
);
}
for
(
int
i
=
0
;
i
<
descriptor_
->
nested_type_count
();
i
++
)
{
// Don't generate nested types for maps...
if
(
!
IsMapEntryMessage
(
descriptor_
->
nested_type
(
i
)))
{
MessageGenerator
messageGenerator
(
descriptor_
->
nested_type
(
i
));
MessageGenerator
messageGenerator
(
descriptor_
->
nested_type
(
i
)
,
this
->
options
()
);
messageGenerator
.
Generate
(
printer
);
}
}
...
...
@@ -490,7 +490,7 @@ int MessageGenerator::GetFieldOrdinal(const FieldDescriptor* descriptor) {
FieldGeneratorBase
*
MessageGenerator
::
CreateFieldGeneratorInternal
(
const
FieldDescriptor
*
descriptor
)
{
return
CreateFieldGenerator
(
descriptor
,
GetFieldOrdinal
(
descriptor
));
return
CreateFieldGenerator
(
descriptor
,
GetFieldOrdinal
(
descriptor
)
,
this
->
options
()
);
}
}
// namespace csharp
...
...
src/google/protobuf/compiler/csharp/csharp_message.h
View file @
89719f07
...
...
@@ -47,7 +47,7 @@ class FieldGeneratorBase;
class
MessageGenerator
:
public
SourceGeneratorBase
{
public
:
MessageGenerator
(
const
Descriptor
*
descriptor
);
MessageGenerator
(
const
Descriptor
*
descriptor
,
const
Options
*
options
);
~
MessageGenerator
();
void
GenerateCloningCode
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_message_field.cc
View file @
89719f07
...
...
@@ -41,6 +41,7 @@
#include <google/protobuf/compiler/csharp/csharp_doc_comment.h>
#include <google/protobuf/compiler/csharp/csharp_helpers.h>
#include <google/protobuf/compiler/csharp/csharp_message_field.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
namespace
google
{
namespace
protobuf
{
...
...
@@ -48,8 +49,8 @@ namespace compiler {
namespace
csharp
{
MessageFieldGenerator
::
MessageFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
)
{
int
fieldOrdinal
,
const
Options
*
options
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
,
options
)
{
variables_
[
"has_property_check"
]
=
name
()
+
"_ != null"
;
variables_
[
"has_not_property_check"
]
=
name
()
+
"_ == null"
;
}
...
...
@@ -144,8 +145,8 @@ void MessageFieldGenerator::GenerateCodecCode(io::Printer* printer) {
}
MessageOneofFieldGenerator
::
MessageOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
MessageFieldGenerator
(
descriptor
,
fieldOrdinal
)
{
int
fieldOrdinal
,
const
Options
*
options
)
:
MessageFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
)
{
SetCommonOneofFieldVariables
(
&
variables_
);
}
...
...
src/google/protobuf/compiler/csharp/csharp_message_field.h
View file @
89719f07
...
...
@@ -43,7 +43,7 @@ namespace csharp {
class
MessageFieldGenerator
:
public
FieldGeneratorBase
{
public
:
MessageFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
MessageFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
MessageFieldGenerator
();
virtual
void
GenerateCodecCode
(
io
::
Printer
*
printer
);
...
...
@@ -65,7 +65,7 @@ class MessageFieldGenerator : public FieldGeneratorBase {
class
MessageOneofFieldGenerator
:
public
MessageFieldGenerator
{
public
:
MessageOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
MessageOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
MessageOneofFieldGenerator
();
virtual
void
GenerateCloningCode
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_options.h
0 → 100644
View file @
89719f07
// Protocol Buffers - Google's data interchange format
// Copyright 2008 Google Inc. All rights reserved.
// https://developers.google.com/protocol-buffers/
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef GOOGLE_PROTOBUF_COMPILER_CSHARP_OPTIONS_H__
#define GOOGLE_PROTOBUF_COMPILER_CSHARP_OPTIONS_H__
#include <string>
#include <google/protobuf/stubs/common.h>
namespace
google
{
namespace
protobuf
{
namespace
compiler
{
namespace
csharp
{
// Generator options (used by csharp_generator.cc):
struct
Options
{
Options
()
:
file_extension
(
".cs"
),
base_namespace
(
""
),
generate_directories
(
false
)
{
}
// Extension of the generated file. Defaults to ".cs"
string
file_extension
;
// Base namespace to use to create directory hierarchy. Defaults to ""
string
base_namespace
;
// Whether or not to generate directory hierarchy. Defaults to false
bool
generate_directories
;
};
}
// namespace csharp
}
// namespace compiler
}
// namespace protobuf
}
// namespace google
#endif // GOOGLE_PROTOBUF_COMPILER_CSHARP_OPTIONS_H__
src/google/protobuf/compiler/csharp/csharp_primitive_field.cc
View file @
89719f07
...
...
@@ -40,6 +40,7 @@
#include <google/protobuf/compiler/csharp/csharp_doc_comment.h>
#include <google/protobuf/compiler/csharp/csharp_helpers.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
#include <google/protobuf/compiler/csharp/csharp_primitive_field.h>
namespace
google
{
...
...
@@ -48,8 +49,8 @@ namespace compiler {
namespace
csharp
{
PrimitiveFieldGenerator
::
PrimitiveFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
)
{
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
,
options
)
{
// TODO(jonskeet): Make this cleaner...
is_value_type
=
descriptor
->
type
()
!=
FieldDescriptor
::
TYPE_STRING
&&
descriptor
->
type
()
!=
FieldDescriptor
::
TYPE_BYTES
;
...
...
@@ -163,8 +164,8 @@ void PrimitiveFieldGenerator::GenerateCodecCode(io::Printer* printer) {
}
PrimitiveOneofFieldGenerator
::
PrimitiveOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
PrimitiveFieldGenerator
(
descriptor
,
fieldOrdinal
)
{
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
)
:
PrimitiveFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
)
{
SetCommonOneofFieldVariables
(
&
variables_
);
}
...
...
src/google/protobuf/compiler/csharp/csharp_primitive_field.h
View file @
89719f07
...
...
@@ -41,9 +41,11 @@ namespace protobuf {
namespace
compiler
{
namespace
csharp
{
struct
Options
;
class
PrimitiveFieldGenerator
:
public
FieldGeneratorBase
{
public
:
PrimitiveFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
PrimitiveFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
PrimitiveFieldGenerator
();
virtual
void
GenerateCodecCode
(
io
::
Printer
*
printer
);
...
...
@@ -67,7 +69,7 @@ class PrimitiveFieldGenerator : public FieldGeneratorBase {
class
PrimitiveOneofFieldGenerator
:
public
PrimitiveFieldGenerator
{
public
:
PrimitiveOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
PrimitiveOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
PrimitiveOneofFieldGenerator
();
virtual
void
GenerateCloningCode
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_reflection_class.cc
View file @
89719f07
...
...
@@ -43,6 +43,7 @@
#include <google/protobuf/compiler/csharp/csharp_helpers.h>
#include <google/protobuf/compiler/csharp/csharp_message.h>
#include <google/protobuf/compiler/csharp/csharp_names.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
#include <google/protobuf/compiler/csharp/csharp_reflection_class.h>
namespace
google
{
...
...
@@ -50,8 +51,9 @@ namespace protobuf {
namespace
compiler
{
namespace
csharp
{
ReflectionClassGenerator
::
ReflectionClassGenerator
(
const
FileDescriptor
*
file
)
:
SourceGeneratorBase
(
file
),
ReflectionClassGenerator
::
ReflectionClassGenerator
(
const
FileDescriptor
*
file
,
const
Options
*
options
)
:
SourceGeneratorBase
(
file
,
options
),
file_
(
file
)
{
namespace_
=
GetFileNamespace
(
file
);
reflectionClassname_
=
GetReflectionClassUnqualifiedName
(
file
);
...
...
@@ -72,7 +74,7 @@ void ReflectionClassGenerator::Generate(io::Printer* printer) {
if
(
file_
->
enum_type_count
()
>
0
)
{
printer
->
Print
(
"#region Enums
\n
"
);
for
(
int
i
=
0
;
i
<
file_
->
enum_type_count
();
i
++
)
{
EnumGenerator
enumGenerator
(
file_
->
enum_type
(
i
));
EnumGenerator
enumGenerator
(
file_
->
enum_type
(
i
)
,
this
->
options
()
);
enumGenerator
.
Generate
(
printer
);
}
printer
->
Print
(
"#endregion
\n
"
);
...
...
@@ -83,7 +85,7 @@ void ReflectionClassGenerator::Generate(io::Printer* printer) {
if
(
file_
->
message_type_count
()
>
0
)
{
printer
->
Print
(
"#region Messages
\n
"
);
for
(
int
i
=
0
;
i
<
file_
->
message_type_count
();
i
++
)
{
MessageGenerator
messageGenerator
(
file_
->
message_type
(
i
));
MessageGenerator
messageGenerator
(
file_
->
message_type
(
i
)
,
this
->
options
()
);
messageGenerator
.
Generate
(
printer
);
}
printer
->
Print
(
"#endregion
\n
"
);
...
...
src/google/protobuf/compiler/csharp/csharp_reflection_class.h
View file @
89719f07
...
...
@@ -43,7 +43,7 @@ namespace csharp {
class
ReflectionClassGenerator
:
public
SourceGeneratorBase
{
public
:
ReflectionClassGenerator
(
const
FileDescriptor
*
file
);
ReflectionClassGenerator
(
const
FileDescriptor
*
file
,
const
Options
*
options
);
~
ReflectionClassGenerator
();
void
Generate
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc
View file @
89719f07
...
...
@@ -48,8 +48,8 @@ namespace compiler {
namespace
csharp
{
RepeatedEnumFieldGenerator
::
RepeatedEnumFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
)
{
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
,
options
)
{
}
RepeatedEnumFieldGenerator
::~
RepeatedEnumFieldGenerator
()
{
...
...
src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h
View file @
89719f07
...
...
@@ -45,7 +45,7 @@ namespace csharp {
// should probably have a RepeatedFieldGeneratorBase.
class
RepeatedEnumFieldGenerator
:
public
FieldGeneratorBase
{
public
:
RepeatedEnumFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
RepeatedEnumFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
RepeatedEnumFieldGenerator
();
virtual
void
GenerateCloningCode
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc
View file @
89719f07
...
...
@@ -49,8 +49,8 @@ namespace compiler {
namespace
csharp
{
RepeatedMessageFieldGenerator
::
RepeatedMessageFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
)
{
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
,
options
)
{
}
RepeatedMessageFieldGenerator
::~
RepeatedMessageFieldGenerator
()
{
...
...
@@ -66,10 +66,10 @@ void RepeatedMessageFieldGenerator::GenerateMembers(io::Printer* printer) {
// "create single field generator for this repeated field"
// function, but it doesn't seem worth it for just this.
if
(
IsWrapperType
(
descriptor_
))
{
scoped_ptr
<
FieldGeneratorBase
>
single_generator
(
new
WrapperFieldGenerator
(
descriptor_
,
fieldOrdinal_
));
scoped_ptr
<
FieldGeneratorBase
>
single_generator
(
new
WrapperFieldGenerator
(
descriptor_
,
fieldOrdinal_
,
this
->
options
()
));
single_generator
->
GenerateCodecCode
(
printer
);
}
else
{
scoped_ptr
<
FieldGeneratorBase
>
single_generator
(
new
MessageFieldGenerator
(
descriptor_
,
fieldOrdinal_
));
scoped_ptr
<
FieldGeneratorBase
>
single_generator
(
new
MessageFieldGenerator
(
descriptor_
,
fieldOrdinal_
,
this
->
options
()
));
single_generator
->
GenerateCodecCode
(
printer
);
}
printer
->
Print
(
";
\n
"
);
...
...
src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h
View file @
89719f07
...
...
@@ -41,9 +41,11 @@ namespace protobuf {
namespace
compiler
{
namespace
csharp
{
struct
Options
;
class
RepeatedMessageFieldGenerator
:
public
FieldGeneratorBase
{
public
:
RepeatedMessageFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
RepeatedMessageFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
RepeatedMessageFieldGenerator
();
virtual
void
GenerateCloningCode
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc
View file @
89719f07
...
...
@@ -48,8 +48,8 @@ namespace compiler {
namespace
csharp
{
RepeatedPrimitiveFieldGenerator
::
RepeatedPrimitiveFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
)
{
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
,
options
)
{
}
RepeatedPrimitiveFieldGenerator
::~
RepeatedPrimitiveFieldGenerator
()
{
...
...
src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h
View file @
89719f07
...
...
@@ -43,7 +43,7 @@ namespace csharp {
class
RepeatedPrimitiveFieldGenerator
:
public
FieldGeneratorBase
{
public
:
RepeatedPrimitiveFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
RepeatedPrimitiveFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
RepeatedPrimitiveFieldGenerator
();
virtual
void
GenerateCloningCode
(
io
::
Printer
*
printer
);
...
...
src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc
View file @
89719f07
...
...
@@ -39,14 +39,16 @@
#include <google/protobuf/compiler/csharp/csharp_source_generator_base.h>
#include <google/protobuf/compiler/csharp/csharp_helpers.h>
#include <google/protobuf/compiler/csharp/csharp_names.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
namespace
google
{
namespace
protobuf
{
namespace
compiler
{
namespace
csharp
{
SourceGeneratorBase
::
SourceGeneratorBase
(
const
FileDescriptor
*
descriptor
)
:
descriptor_
(
descriptor
)
{
SourceGeneratorBase
::
SourceGeneratorBase
(
const
FileDescriptor
*
descriptor
,
const
Options
*
options
)
:
descriptor_
(
descriptor
)
,
options_
(
options
)
{
}
SourceGeneratorBase
::~
SourceGeneratorBase
()
{
...
...
@@ -60,6 +62,10 @@ std::string SourceGeneratorBase::class_access_level() {
return
IsDescriptorProto
(
descriptor_
)
?
"internal"
:
"public"
;
// public_classes is always on.
}
const
Options
*
SourceGeneratorBase
::
options
()
{
return
this
->
options_
;
}
}
// namespace csharp
}
// namespace compiler
}
// namespace protobuf
...
...
src/google/protobuf/compiler/csharp/csharp_source_generator_base.h
View file @
89719f07
...
...
@@ -40,17 +40,21 @@ namespace protobuf {
namespace
compiler
{
namespace
csharp
{
struct
Options
;
class
SourceGeneratorBase
{
protected
:
SourceGeneratorBase
(
const
FileDescriptor
*
descriptor
);
SourceGeneratorBase
(
const
FileDescriptor
*
descriptor
,
const
Options
*
options
);
virtual
~
SourceGeneratorBase
();
std
::
string
class_access_level
();
const
Options
*
options
();
void
WriteGeneratedCodeAttributes
(
io
::
Printer
*
printer
);
private
:
const
FileDescriptor
*
descriptor_
;
const
Options
*
options_
;
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
(
SourceGeneratorBase
);
};
...
...
src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc
View file @
89719f07
...
...
@@ -39,6 +39,7 @@
#include <google/protobuf/compiler/csharp/csharp_doc_comment.h>
#include <google/protobuf/compiler/csharp/csharp_helpers.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
#include <google/protobuf/compiler/csharp/csharp_wrapper_field.h>
namespace
google
{
...
...
@@ -47,8 +48,8 @@ namespace compiler {
namespace
csharp
{
WrapperFieldGenerator
::
WrapperFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
)
{
int
fieldOrdinal
,
const
Options
*
options
)
:
FieldGeneratorBase
(
descriptor
,
fieldOrdinal
,
options
)
{
variables_
[
"has_property_check"
]
=
name
()
+
"_ != null"
;
variables_
[
"has_not_property_check"
]
=
name
()
+
"_ == null"
;
const
FieldDescriptor
*
wrapped_field
=
descriptor
->
message_type
()
->
field
(
0
);
...
...
@@ -152,8 +153,8 @@ void WrapperFieldGenerator::GenerateCodecCode(io::Printer* printer) {
}
WrapperOneofFieldGenerator
::
WrapperOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
)
:
WrapperFieldGenerator
(
descriptor
,
fieldOrdinal
)
{
int
fieldOrdinal
,
const
Options
*
options
)
:
WrapperFieldGenerator
(
descriptor
,
fieldOrdinal
,
options
)
{
SetCommonOneofFieldVariables
(
&
variables_
);
}
...
...
src/google/protobuf/compiler/csharp/csharp_wrapper_field.h
View file @
89719f07
...
...
@@ -41,9 +41,11 @@ namespace protobuf {
namespace
compiler
{
namespace
csharp
{
struct
Options
;
class
WrapperFieldGenerator
:
public
FieldGeneratorBase
{
public
:
WrapperFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
WrapperFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
WrapperFieldGenerator
();
virtual
void
GenerateCodecCode
(
io
::
Printer
*
printer
);
...
...
@@ -65,7 +67,7 @@ class WrapperFieldGenerator : public FieldGeneratorBase {
class
WrapperOneofFieldGenerator
:
public
WrapperFieldGenerator
{
public
:
WrapperOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
);
WrapperOneofFieldGenerator
(
const
FieldDescriptor
*
descriptor
,
int
fieldOrdinal
,
const
Options
*
options
);
~
WrapperOneofFieldGenerator
();
virtual
void
GenerateMembers
(
io
::
Printer
*
printer
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment