68 std::vector<std::pair<std::string, std::string> >
options;
96 *
error =
"lite runtime generator option cannot be used with mutable API.";
111 std::vector<std::string> all_files;
112 std::vector<std::string> all_annotations;
115 std::vector<FileGenerator*> file_generators;
117 file_generators.push_back(
new FileGenerator(file, file_options,
121 file_generators.push_back(
new FileGenerator(file, file_options,
125 for (
int i = 0;
i < file_generators.size(); ++
i) {
126 if (!file_generators[
i]->Validate(
error)) {
127 for (
int j = 0; j < file_generators.size(); ++j) {
128 delete file_generators[j];
134 for (
int i = 0;
i < file_generators.size(); ++
i) {
140 java_filename += file_generator->
classname();
141 java_filename +=
".java";
142 all_files.push_back(java_filename);
143 std::string info_full_path = java_filename +
".pb.meta";
145 all_annotations.push_back(info_full_path);
149 std::unique_ptr<io::ZeroCopyOutputStream>
output(
150 context->
Open(java_filename));
165 std::unique_ptr<io::ZeroCopyOutputStream> info_output(
166 context->
Open(info_full_path));
167 annotations.SerializeToZeroCopyStream(info_output.get());
172 for (
int i = 0;
i < file_generators.size(); ++
i) {
173 delete file_generators[
i];
175 file_generators.clear();
181 std::unique_ptr<io::ZeroCopyOutputStream> srclist_raw_output(
183 io::Printer srclist_printer(srclist_raw_output.get(),
'$');
184 for (
int i = 0;
i < all_files.size();
i++) {
185 srclist_printer.
Print(
"$filename$\n",
"filename", all_files[
i]);
192 std::unique_ptr<io::ZeroCopyOutputStream> annotation_list_raw_output(
194 io::Printer annotation_list_printer(annotation_list_raw_output.get(),
'$');
195 for (
int i = 0;
i < all_annotations.size();
i++) {
196 annotation_list_printer.
Print(
"$filename$\n",
"filename",