Index: third_party/protobuf/src/google/protobuf/compiler/code_generator.h |
diff --git a/third_party/protobuf/src/google/protobuf/compiler/code_generator.h b/third_party/protobuf/src/google/protobuf/compiler/code_generator.h |
index ea094cdd6092664a743fbf5fc129554029ec4239..252f68d1dc269898a64118fc8dd6015176b98cb0 100644 |
--- a/third_party/protobuf/src/google/protobuf/compiler/code_generator.h |
+++ b/third_party/protobuf/src/google/protobuf/compiler/code_generator.h |
@@ -53,7 +53,7 @@ namespace compiler { |
// Defined in this file. |
class CodeGenerator; |
-class OutputDirectory; |
+class GeneratorContext; |
// The abstract interface to a class which generates code implementing a |
// particular proto file in a particular language. A number of these may |
@@ -76,7 +76,7 @@ class LIBPROTOC_EXPORT CodeGenerator { |
// the problem (e.g. "invalid parameter") and returns false. |
virtual bool Generate(const FileDescriptor* file, |
const string& parameter, |
- OutputDirectory* output_directory, |
+ GeneratorContext* generator_context, |
string* error) const = 0; |
private: |
@@ -85,11 +85,12 @@ class LIBPROTOC_EXPORT CodeGenerator { |
// CodeGenerators generate one or more files in a given directory. This |
// abstract interface represents the directory to which the CodeGenerator is |
-// to write. |
-class LIBPROTOC_EXPORT OutputDirectory { |
+// to write and other information about the context in which the Generator |
+// runs. |
+class LIBPROTOC_EXPORT GeneratorContext { |
public: |
- inline OutputDirectory() {} |
- virtual ~OutputDirectory(); |
+ inline GeneratorContext() {} |
+ virtual ~GeneratorContext(); |
// Opens the given file, truncating it if it exists, and returns a |
// ZeroCopyOutputStream that writes to the file. The caller takes ownership |
@@ -112,10 +113,19 @@ class LIBPROTOC_EXPORT OutputDirectory { |
virtual io::ZeroCopyOutputStream* OpenForInsert( |
const string& filename, const string& insertion_point); |
+ // Returns a vector of FileDescriptors for all the files being compiled |
+ // in this run. Useful for languages, such as Go, that treat files |
+ // differently when compiled as a set rather than individually. |
+ virtual void ListParsedFiles(vector<const FileDescriptor*>* output); |
+ |
private: |
- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(OutputDirectory); |
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(GeneratorContext); |
}; |
+// The type GeneratorContext was once called OutputDirectory. This typedef |
+// provides backward compatibility. |
+typedef GeneratorContext OutputDirectory; |
+ |
// Several code generators treat the parameter argument as holding a |
// list of options separated by commas. This helper function parses |
// a set of comma-delimited name/value pairs: e.g., |