PageRenderTime 40ms CodeModel.GetById 29ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 1ms

/thirdparty/breakpad/third_party/protobuf/protobuf/src/google/protobuf/compiler/java/java_file.h

http://github.com/tomahawk-player/tomahawk
C++ Header | 101 lines | 42 code | 18 blank | 41 comment | 0 complexity | 98960348d98043a64f5d74ba3f3106a3 MD5 | raw file
  1// Protocol Buffers - Google's data interchange format
  2// Copyright 2008 Google Inc.  All rights reserved.
  3// http://code.google.com/p/protobuf/
  4//
  5// Redistribution and use in source and binary forms, with or without
  6// modification, are permitted provided that the following conditions are
  7// met:
  8//
  9//     * Redistributions of source code must retain the above copyright
 10// notice, this list of conditions and the following disclaimer.
 11//     * Redistributions in binary form must reproduce the above
 12// copyright notice, this list of conditions and the following disclaimer
 13// in the documentation and/or other materials provided with the
 14// distribution.
 15//     * Neither the name of Google Inc. nor the names of its
 16// contributors may be used to endorse or promote products derived from
 17// this software without specific prior written permission.
 18//
 19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 30
 31// Author: kenton@google.com (Kenton Varda)
 32//  Based on original Protocol Buffers design by
 33//  Sanjay Ghemawat, Jeff Dean, and others.
 34
 35#ifndef GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__
 36#define GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__
 37
 38#include <string>
 39#include <vector>
 40#include <google/protobuf/stubs/common.h>
 41
 42namespace google {
 43namespace protobuf {
 44  class FileDescriptor;        // descriptor.h
 45  namespace io {
 46    class Printer;             // printer.h
 47  }
 48  namespace compiler {
 49    class GeneratorContext;     // code_generator.h
 50  }
 51}
 52
 53namespace protobuf {
 54namespace compiler {
 55namespace java {
 56
 57class FileGenerator {
 58 public:
 59  explicit FileGenerator(const FileDescriptor* file);
 60  ~FileGenerator();
 61
 62  // Checks for problems that would otherwise lead to cryptic compile errors.
 63  // Returns true if there are no problems, or writes an error description to
 64  // the given string and returns false otherwise.
 65  bool Validate(string* error);
 66
 67  void Generate(io::Printer* printer);
 68
 69  // If we aren't putting everything into one file, this will write all the
 70  // files other than the outer file (i.e. one for each message, enum, and
 71  // service type).
 72  void GenerateSiblings(const string& package_dir,
 73                        GeneratorContext* generator_context,
 74                        vector<string>* file_list);
 75
 76  const string& java_package() { return java_package_; }
 77  const string& classname()    { return classname_;    }
 78
 79
 80 private:
 81  // Returns whether the dependency should be included in the output file.
 82  // Always returns true for opensource, but used internally at Google to help
 83  // improve compatibility with version 1 of protocol buffers.
 84  bool ShouldIncludeDependency(const FileDescriptor* descriptor);
 85
 86  const FileDescriptor* file_;
 87  string java_package_;
 88  string classname_;
 89
 90
 91  void GenerateEmbeddedDescriptor(io::Printer* printer);
 92
 93  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator);
 94};
 95
 96}  // namespace java
 97}  // namespace compiler
 98}  // namespace protobuf
 99
100}  // namespace google
101#endif  // GOOGLE_PROTOBUF_COMPILER_JAVA_FILE_H__