aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Skeet <jonskeet@google.com>2016-04-06 10:30:19 +0100
committerJon Skeet <jonskeet@google.com>2016-04-06 10:30:19 +0100
commit2a18bb5a337bb1f07e66b89d5ae01b1e79ae3b68 (patch)
treeff819f44275580a0d1b6b7015229182d8a933919
parentbfd1c84a3dab01683c4e97dc401f5a4a264a7e7e (diff)
downloadprotobuf-2a18bb5a337bb1f07e66b89d5ae01b1e79ae3b68.tar.gz
protobuf-2a18bb5a337bb1f07e66b89d5ae01b1e79ae3b68.tar.bz2
protobuf-2a18bb5a337bb1f07e66b89d5ae01b1e79ae3b68.zip
Add more documentation for csharp_options.h
This also renames generate_directories to base_namespace_specified; generating directories is the immediate *effect* of specifying a base namespace, but with this change the options reflect what has been specified rather than the effect. (There may be other effects in the future, of course.)
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_generator.cc4
-rw-r--r--src/google/protobuf/compiler/csharp/csharp_options.h20
2 files changed, 18 insertions, 6 deletions
diff --git a/src/google/protobuf/compiler/csharp/csharp_generator.cc b/src/google/protobuf/compiler/csharp/csharp_generator.cc
index 567f827e..df9730f8 100644
--- a/src/google/protobuf/compiler/csharp/csharp_generator.cc
+++ b/src/google/protobuf/compiler/csharp/csharp_generator.cc
@@ -80,7 +80,7 @@ bool Generator::Generate(
cli_options.file_extension = options[i].second;
} else if (options[i].first == "base_namespace") {
cli_options.base_namespace = options[i].second;
- cli_options.generate_directories = true;
+ cli_options.base_namespace_specified = true;
} else {
*error = "Unknown generator option: " + options[i].first;
return false;
@@ -90,7 +90,7 @@ bool Generator::Generate(
string filename_error = "";
std::string filename = GetOutputFile(file,
cli_options.file_extension,
- cli_options.generate_directories,
+ cli_options.base_namespace_specified,
cli_options.base_namespace,
&filename_error);
diff --git a/src/google/protobuf/compiler/csharp/csharp_options.h b/src/google/protobuf/compiler/csharp/csharp_options.h
index d75eefa6..9e5573ca 100644
--- a/src/google/protobuf/compiler/csharp/csharp_options.h
+++ b/src/google/protobuf/compiler/csharp/csharp_options.h
@@ -44,14 +44,26 @@ struct Options {
Options() :
file_extension(".cs"),
base_namespace(""),
- generate_directories(false) {
+ base_namespace_specified(false) {
}
// Extension of the generated file. Defaults to ".cs"
string file_extension;
- // Base namespace to use to create directory hierarchy. Defaults to ""
+ // Base namespace to use to create directory hierarchy. Defaults to "".
+ // This option allows the simple creation of a conventional C# file layout,
+ // where directories are created relative to a project-specific base
+ // namespace. For example, in a project with a base namespace of PetShop, a
+ // proto of user.proto with a C# namespace of PetShop.Model.Shared would
+ // generate Model/Shared/User.cs underneath the specified --csharp_out
+ // directory.
+ //
+ // If no base namespace is specified, all files are generated in the
+ // --csharp_out directory, with no subdirectories created automatically.
string base_namespace;
- // Whether or not to generate directory hierarchy. Defaults to false
- bool generate_directories;
+ // Whether the base namespace has been explicitly specified by the user.
+ // This is required as the base namespace can be explicitly set to the empty
+ // string, meaning "create a full directory hierarchy, starting from the first
+ // segment of the namespace."
+ bool base_namespace_specified;
};
} // namespace csharp