diff --git a/protobuf/.gitignore b/protobuf/.gitignore new file mode 100644 index 0000000..d055e9a --- /dev/null +++ b/protobuf/.gitignore @@ -0,0 +1,4 @@ +/bin/protoc +/include/ +/lib/ +/tmp/ diff --git a/protobuf/setup b/protobuf/setup new file mode 100755 index 0000000..e18f996 --- /dev/null +++ b/protobuf/setup @@ -0,0 +1,14 @@ +#!/bin/bash + +set -e +set -x + +TOP=$PWD +mkdir -p tmp +pushd tmp +test -f protobuf-2.4.1.tar.bz2 || curl -O http://protobuf.googlecode.com/files/protobuf-2.4.1.tar.bz2 +test -d protobuf-2.4.1 || tar xjvf protobuf-2.4.1.tar.bz2 +pushd protobuf-2.4.1 +./configure --prefix=$TOP +make +make install diff --git a/protobuf/src/tutorial/addressbook.proto b/protobuf/src/tutorial/addressbook.proto new file mode 100644 index 0000000..bb87f1a --- /dev/null +++ b/protobuf/src/tutorial/addressbook.proto @@ -0,0 +1,24 @@ +package tutorial; + +message Person { + required string name = 1; + required int32 id = 2; + optional string email = 3; + + enum PhoneType { + MOBILE = 0; + HOME = 1; + WORK = 2; + } + + message PhoneNumber { + required string number = 1; + optional PhoneType type = 2 [default = HOME]; + } + + repeated PhoneNumber phone = 4; +} + +message AddressBook { + repeated Person person = 1; +}