[protobuf-perl commit] r163 - in trunk/protobuf/src/google/protobuf: . compiler/perl

2 views
Skip to first unread message

codesite...@google.com

unread,
Aug 7, 2008, 2:31:43 PM8/7/08
to protobuf-p...@googlegroups.com
Author: br...@danga.com
Date: Tue Aug 5 22:21:37 2008
New Revision: 163

Modified:
trunk/protobuf/src/google/protobuf/compiler/perl/perl_generator.cc
trunk/protobuf/src/google/protobuf/descriptor.pb.cc
trunk/protobuf/src/google/protobuf/descriptor.pb.h
trunk/protobuf/src/google/protobuf/descriptor.proto

Log:
break perl_package into two options. TODO: rename them to match java's two
names

Modified: trunk/protobuf/src/google/protobuf/compiler/perl/perl_generator.cc
==============================================================================
--- trunk/protobuf/src/google/protobuf/compiler/perl/perl_generator.cc
(original)
+++ trunk/protobuf/src/google/protobuf/compiler/perl/perl_generator.cc Tue
Aug 5 22:21:37 2008
@@ -42,11 +42,14 @@

// Returns the Perl package name expected for a given .proto filename.
static string PackageName(const FileDescriptor* file) {
- if (file->options().has_perl_package()) {
- const string& package = file->options().perl_package();
- // TODO(bradfitz): sanity check it.
- return package;
+ // Prefix:
+ if (file->options().has_perl_file_package()) {
+ // TODO(bradfitz): sanity check it first. some regexp
+ // for case and characters.
+ return file->options().perl_file_package();
}
+
+ // TODO(bradfitz): this is a pretty poor non-perl-ish mapping:
const string& filename = file->name();
string package = StripProto(filename);
StripString(&package, "-", '_');
@@ -294,6 +297,12 @@
PrintTopBoilerplate(printer_);
printer_->Print("package `package_name`;\n\n",
"package_name", package_name);
+
+ if (file->options().has_perl_message_package()) {
+ printer_->Print("package `package_name`;\n\n",
+ "package_name",
file->options().perl_message_package());
+ }
+
printer_->Print("\n"
"use constant TRUE => 1;\n"
"use constant FALSE => 0;\n");

Modified: trunk/protobuf/src/google/protobuf/descriptor.pb.cc
==============================================================================
--- trunk/protobuf/src/google/protobuf/descriptor.pb.cc (original)
+++ trunk/protobuf/src/google/protobuf/descriptor.pb.cc Tue Aug 5 22:21:37
2008
@@ -93,21 +93,22 @@
"erviceOptions\"\177\n\025MethodDescriptorProto\022\014"
"\n\004name\030\001 \001(\t\022\022\n\ninput_type\030\002
\001(\t\022\023\n\013outp"
"ut_type\030\003 \001(\t\022/\n\007options\030\004
\001(\0132\036.google."
- "protobuf.MethodOptions\"\361\001\n\013FileOptions\022\024"
+ "protobuf.MethodOptions\"\224\002\n\013FileOptions\022\024"
"\n\014java_package\030\001 \001(\t\022\034\n\024java_outer_class"
"name\030\010 \001(\t\022\"\n\023java_multiple_files\030\n \001(\010:"
- "\005false\022\024\n\014perl_package\030\013
\001(\t\022J\n\014optimize"
- "_for\030\t \001(\0162).google.protobuf.FileOptions"
- ".OptimizeMode:\tCODE_SIZE\"(\n\014OptimizeMode"
- "\022\t\n\005SPEED\020\001\022\r\n\tCODE_SIZE\020\002\"8\n\016MessageOpt"
- "ions\022&\n\027message_set_wire_format\030\001 \001(\010:\005f"
- "alse\"\205\001\n\014FieldOptions\0222\n\005ctype\030\001
\001(\0162#.g"
- "oogle.protobuf.FieldOptions.CType\022\034\n\024exp"
- "erimental_map_key\030\t \001(\t\"#\n\005CType\022\010\n\004CORD"
- "\020\001\022\020\n\014STRING_PIECE\020\002\"\r\n\013EnumOptions\"\022\n\020E"
- "numValueOptions\"\020\n\016ServiceOptions\"\017\n\rMet"
- "hodOptionsB)\n\023com.google.protobufB\020Descr"
- "iptorProtosH\001", 2573);
+ "\005false\022\031\n\021perl_file_package\030\013
\001(\t\022\034\n\024per"
+ "l_message_package\030\014 \001(\t\022J\n\014optimize_for\030"
+ "\t \001(\0162).google.protobuf.FileOptions.Opti"
+ "mizeMode:\tCODE_SIZE\"(\n\014OptimizeMode\022\t\n\005S"
+ "PEED\020\001\022\r\n\tCODE_SIZE\020\002\"8\n\016MessageOptions\022"
+ "&\n\027message_set_wire_format\030\001 \001(\010:\005false\""
+ "\205\001\n\014FieldOptions\0222\n\005ctype\030\001 \001(\0162#.google"
+ ".protobuf.FieldOptions.CType\022\034\n\024experime"
+ "ntal_map_key\030\t
\001(\t\"#\n\005CType\022\010\n\004CORD\020\001\022\020\n"
+ "\014STRING_PIECE\020\002\"\r\n\013EnumOptions\"\022\n\020EnumVa"
+ "lueOptions\"\020\n\016ServiceOptions\"\017\n\rMethodOp"
+ "tionsB)\n\023com.google.protobufB\020Descriptor"
+ "ProtosH\001", 2608);
FileDescriptorProto_descriptor_ = file->message_type(0);
::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
FileDescriptorProto_descriptor_,
&FileDescriptorProto::default_instance());
@@ -2746,13 +2747,15 @@
const ::std::string FileOptions::_default_java_package_;
const ::std::string FileOptions::_default_java_outer_classname_;

-const ::std::string FileOptions::_default_perl_package_;
+const ::std::string FileOptions::_default_perl_file_package_;
+const ::std::string FileOptions::_default_perl_message_package_;

-const int FileOptions::_offsets_[5] = {
+const int FileOptions::_offsets_[6] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions,
java_package_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions,
java_outer_classname_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions,
java_multiple_files_),
- GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions,
perl_package_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions,
perl_file_package_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions,
perl_message_package_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FileOptions,
optimize_for_),
};

@@ -2764,7 +2767,8 @@
java_package_(const_cast< ::std::string*>(&_default_java_package_)),

java_outer_classname_(const_cast< ::std::string*>(&_default_java_outer_classname_)),
java_multiple_files_(false),
- perl_package_(const_cast< ::std::string*>(&_default_perl_package_)),
+
perl_file_package_(const_cast< ::std::string*>(&_default_perl_file_package_)),
+
perl_message_package_(const_cast< ::std::string*>(&_default_perl_message_package_)),
optimize_for_(2) {
::memset(_has_bits_, 0, sizeof(_has_bits_));
if (this == &default_instance_) {
@@ -2779,7 +2783,8 @@
java_package_(const_cast< ::std::string*>(&_default_java_package_)),

java_outer_classname_(const_cast< ::std::string*>(&_default_java_outer_classname_)),
java_multiple_files_(false),
- perl_package_(const_cast< ::std::string*>(&_default_perl_package_)),
+
perl_file_package_(const_cast< ::std::string*>(&_default_perl_file_package_)),
+
perl_message_package_(const_cast< ::std::string*>(&_default_perl_message_package_)),
optimize_for_(2) {
::memset(_has_bits_, 0, sizeof(_has_bits_));
MergeFrom(from);
@@ -2792,8 +2797,11 @@
if (java_outer_classname_ != &_default_java_outer_classname_) {
delete java_outer_classname_;
}
- if (perl_package_ != &_default_perl_package_) {
- delete perl_package_;
+ if (perl_file_package_ != &_default_perl_file_package_) {
+ delete perl_file_package_;
+ }
+ if (perl_message_package_ != &_default_perl_message_package_) {
+ delete perl_message_package_;
}
if (this != &default_instance_) {
}
@@ -2822,8 +2830,13 @@
}
java_multiple_files_ = false;
if (_has_bit(3)) {
- if (perl_package_ != &_default_perl_package_) {
- perl_package_->clear();
+ if (perl_file_package_ != &_default_perl_file_package_) {
+ perl_file_package_->clear();
+ }
+ }
+ if (_has_bit(4)) {
+ if (perl_message_package_ != &_default_perl_message_package_) {
+ perl_message_package_->clear();
}
}
optimize_for_ = 2;
@@ -2889,18 +2902,30 @@
DO_(::google::protobuf::internal::WireFormat::ReadBool(
input, &java_multiple_files_));
_set_bit(2);
- if (input->ExpectTag(90)) goto parse_perl_package;
+ if (input->ExpectTag(90)) goto parse_perl_file_package;
break;
}

- // optional string perl_package = 11;
+ // optional string perl_file_package = 11;
case 11: {
if
(::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED)
{
goto handle_uninterpreted;
}
- parse_perl_package:
- DO_(::google::protobuf::internal::WireFormat::ReadString(input,
mutable_perl_package()));
+ parse_perl_file_package:
+ DO_(::google::protobuf::internal::WireFormat::ReadString(input,
mutable_perl_file_package()));
+ if (input->ExpectTag(98)) goto parse_perl_message_package;
+ break;
+ }
+
+ // optional string perl_message_package = 12;
+ case 12: {
+ if
(::google::protobuf::internal::WireFormat::GetTagWireType(tag) !=
+ ::google::protobuf::internal::WireFormat::WIRETYPE_LENGTH_DELIMITED)
{
+ goto handle_uninterpreted;
+ }
+ parse_perl_message_package:
+ DO_(::google::protobuf::internal::WireFormat::ReadString(input,
mutable_perl_message_package()));
if (input->ExpectAtEnd()) return true;
break;
}
@@ -2935,7 +2960,7 @@
}

// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9
[default = CODE_SIZE];
- if (_has_bit(4)) {
+ if (_has_bit(5)) {
DO_(::google::protobuf::internal::WireFormat::WriteEnum(9,
this->optimize_for(), output));
}

@@ -2944,9 +2969,14 @@
DO_(::google::protobuf::internal::WireFormat::WriteBool(10,
this->java_multiple_files(), output));
}

- // optional string perl_package = 11;
+ // optional string perl_file_package = 11;
if (_has_bit(3)) {
- DO_(::google::protobuf::internal::WireFormat::WriteString(11,
this->perl_package(), output));
+ DO_(::google::protobuf::internal::WireFormat::WriteString(11,
this->perl_file_package(), output));
+ }
+
+ // optional string perl_message_package = 12;
+ if (_has_bit(4)) {
+ DO_(::google::protobuf::internal::WireFormat::WriteString(12,
this->perl_message_package(), output));
}

if (!unknown_fields().empty()) {
@@ -2978,10 +3008,16 @@
total_size += 1 + 1;
}

- // optional string perl_package = 11;
- if (has_perl_package()) {
+ // optional string perl_file_package = 11;
+ if (has_perl_file_package()) {
total_size += 1 +
- ::google::protobuf::internal::WireFormat::StringSize(this->perl_package());
+ ::google::protobuf::internal::WireFormat::StringSize(this->perl_file_package());
+ }
+
+ // optional string perl_message_package = 12;
+ if (has_perl_message_package()) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormat::StringSize(this->perl_message_package());
}

// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9
[default = CODE_SIZE];
@@ -3026,9 +3062,12 @@
set_java_multiple_files(from.java_multiple_files());
}
if (from._has_bit(3)) {
- set_perl_package(from.perl_package());
+ set_perl_file_package(from.perl_file_package());
}
if (from._has_bit(4)) {
+ set_perl_message_package(from.perl_message_package());
+ }
+ if (from._has_bit(5)) {
set_optimize_for(from.optimize_for());
}
}

Modified: trunk/protobuf/src/google/protobuf/descriptor.pb.h
==============================================================================
--- trunk/protobuf/src/google/protobuf/descriptor.pb.h (original)
+++ trunk/protobuf/src/google/protobuf/descriptor.pb.h Tue Aug 5 22:21:37
2008
@@ -1197,13 +1197,21 @@
inline bool java_multiple_files() const;
inline void set_java_multiple_files(bool value);

- // optional string perl_package = 11;
- inline bool has_perl_package() const;
- inline void clear_perl_package();
- inline const ::std::string& perl_package() const;
- inline void set_perl_package(const ::std::string& value);
- inline void set_perl_package(const char* value);
- inline ::std::string* mutable_perl_package();
+ // optional string perl_file_package = 11;
+ inline bool has_perl_file_package() const;
+ inline void clear_perl_file_package();
+ inline const ::std::string& perl_file_package() const;
+ inline void set_perl_file_package(const ::std::string& value);
+ inline void set_perl_file_package(const char* value);
+ inline ::std::string* mutable_perl_file_package();
+
+ // optional string perl_message_package = 12;
+ inline bool has_perl_message_package() const;
+ inline void clear_perl_message_package();
+ inline const ::std::string& perl_message_package() const;
+ inline void set_perl_message_package(const ::std::string& value);
+ inline void set_perl_message_package(const char* value);
+ inline ::std::string* mutable_perl_message_package();

// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9
[default = CODE_SIZE];
inline bool has_optimize_for() const;
@@ -1220,14 +1228,16 @@
::std::string* java_outer_classname_;
static const ::std::string _default_java_outer_classname_;
bool java_multiple_files_;
- ::std::string* perl_package_;
- static const ::std::string _default_perl_package_;
+ ::std::string* perl_file_package_;
+ static const ::std::string _default_perl_file_package_;
+ ::std::string* perl_message_package_;
+ static const ::std::string _default_perl_message_package_;
int optimize_for_;

static const FileOptions default_instance_;
- static const int _offsets_[5];
+ static const int _offsets_[6];

- ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];
+ ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];

// WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
inline bool _has_bit(int index) const {
@@ -2853,55 +2863,90 @@
java_multiple_files_ = value;
}

-// optional string perl_package = 11;
-inline bool FileOptions::has_perl_package() const {
+// optional string perl_file_package = 11;
+inline bool FileOptions::has_perl_file_package() const {
return _has_bit(3);
}
-inline void FileOptions::clear_perl_package() {
- if (perl_package_ != &_default_perl_package_) {
- perl_package_->clear();
+inline void FileOptions::clear_perl_file_package() {
+ if (perl_file_package_ != &_default_perl_file_package_) {
+ perl_file_package_->clear();
}
_clear_bit(3);
}
-inline const ::std::string& FileOptions::perl_package() const {
- return *perl_package_;
+inline const ::std::string& FileOptions::perl_file_package() const {
+ return *perl_file_package_;
}
-inline void FileOptions::set_perl_package(const ::std::string& value) {
+inline void FileOptions::set_perl_file_package(const ::std::string& value)
{
_set_bit(3);
- if (perl_package_ == &_default_perl_package_) {
- perl_package_ = new ::std::string;
+ if (perl_file_package_ == &_default_perl_file_package_) {
+ perl_file_package_ = new ::std::string;
}
- perl_package_->assign(value);
+ perl_file_package_->assign(value);
}
-inline void FileOptions::set_perl_package(const char* value) {
+inline void FileOptions::set_perl_file_package(const char* value) {
_set_bit(3);
- if (perl_package_ == &_default_perl_package_) {
- perl_package_ = new ::std::string;
+ if (perl_file_package_ == &_default_perl_file_package_) {
+ perl_file_package_ = new ::std::string;
}
- perl_package_->assign(value);
+ perl_file_package_->assign(value);
}
-inline ::std::string* FileOptions::mutable_perl_package() {
+inline ::std::string* FileOptions::mutable_perl_file_package() {
_set_bit(3);
- if (perl_package_ == &_default_perl_package_) {
- perl_package_ = new ::std::string;
+ if (perl_file_package_ == &_default_perl_file_package_) {
+ perl_file_package_ = new ::std::string;
}
- return perl_package_;
+ return perl_file_package_;
+}
+
+// optional string perl_message_package = 12;
+inline bool FileOptions::has_perl_message_package() const {
+ return _has_bit(4);
+}
+inline void FileOptions::clear_perl_message_package() {
+ if (perl_message_package_ != &_default_perl_message_package_) {
+ perl_message_package_->clear();
+ }
+ _clear_bit(4);
+}
+inline const ::std::string& FileOptions::perl_message_package() const {
+ return *perl_message_package_;
+}
+inline void FileOptions::set_perl_message_package(const ::std::string&
value) {
+ _set_bit(4);
+ if (perl_message_package_ == &_default_perl_message_package_) {
+ perl_message_package_ = new ::std::string;
+ }
+ perl_message_package_->assign(value);
+}
+inline void FileOptions::set_perl_message_package(const char* value) {
+ _set_bit(4);
+ if (perl_message_package_ == &_default_perl_message_package_) {
+ perl_message_package_ = new ::std::string;
+ }
+ perl_message_package_->assign(value);
+}
+inline ::std::string* FileOptions::mutable_perl_message_package() {
+ _set_bit(4);
+ if (perl_message_package_ == &_default_perl_message_package_) {
+ perl_message_package_ = new ::std::string;
+ }
+ return perl_message_package_;
}

// optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9
[default = CODE_SIZE];
inline bool FileOptions::has_optimize_for() const {
- return _has_bit(4);
+ return _has_bit(5);
}
inline void FileOptions::clear_optimize_for() {
optimize_for_ = 2;
- _clear_bit(4);
+ _clear_bit(5);
}
inline ::google::protobuf::FileOptions_OptimizeMode
FileOptions::optimize_for() const {
return static_cast< ::google::protobuf::FileOptions_OptimizeMode
>(optimize_for_);
}
inline void
FileOptions::set_optimize_for(::google::protobuf::FileOptions_OptimizeMode
value) {

GOOGLE_DCHECK(::google::protobuf::FileOptions_OptimizeMode_IsValid(value));
- _set_bit(4);
+ _set_bit(5);
optimize_for_ = value;
}


Modified: trunk/protobuf/src/google/protobuf/descriptor.proto
==============================================================================
--- trunk/protobuf/src/google/protobuf/descriptor.proto (original)
+++ trunk/protobuf/src/google/protobuf/descriptor.proto Tue Aug 5 22:21:37
2008
@@ -206,11 +206,14 @@
// top-level extensions defined in the file.
optional bool java_multiple_files = 10 [default=false];

- // Controls both the target filename and the base package for messages.
- // If foo.proto's perl_package is set to "Foo::Bar", generates file
- // "Foo/Bar.pm". A message "Baz" in foo.proto would create the Perl
class
- // (package) Foo::Bar::Baz (loaded via "use Foo::Bar" to get Foo/Bar.pm)
- optional string perl_package = 11;
+ // If set to "Foo::Bar", "Foo/Bar.pm" will be generated.
+ optional string perl_file_package = 11;
+
+ // If set, all messages will be prefixed with this package name.
+ // Don't include "::" at the end. If set to "Foo::Bar", message
+ // "Baz" will be in package "Foo::Bar::Baz" (in file Foo/Bar.pm if
+ // the option 'perl_file_package' above is set to "Foo::Bar")
+ optional string perl_message_package = 12;

// Generated classes can be optimized for speed or code size.
enum OptimizeMode {

Reply all
Reply to author
Forward
0 new messages