Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.3 KiB
47 lines
1.3 KiB
import 'dart:io'; |
|
|
|
import 'dart_tutorial/addressbook.pb.dart'; |
|
import 'dart_tutorial/addressbook.pbenum.dart'; |
|
|
|
/// Iterates though all people in the AddressBook and prints info about them. |
|
void printAddressBook(AddressBook addressBook) { |
|
for (var person in addressBook.people) { |
|
print('Person ID: ${person.id}'); |
|
print(' Name: ${person.name}'); |
|
if (person.hasEmail()) { |
|
print(' E-mail address:${person.email}'); |
|
} |
|
|
|
for (var phoneNumber in person.phones) { |
|
switch (phoneNumber.type) { |
|
case Person_PhoneType.MOBILE: |
|
print(' Mobile phone #: '); |
|
break; |
|
case Person_PhoneType.HOME: |
|
print(' Home phone #: '); |
|
break; |
|
case Person_PhoneType.WORK: |
|
print(' Work phone #: '); |
|
break; |
|
default: |
|
print(' Unknown phone #: '); |
|
break; |
|
} |
|
print(phoneNumber.number); |
|
} |
|
} |
|
} |
|
|
|
/// Reads the entire address book from a file and prints all |
|
/// the information inside. |
|
void main(List<String> arguments) { |
|
if (arguments.length != 1) { |
|
print('Usage: list_person ADDRESS_BOOK_FILE'); |
|
exit(-1); |
|
} |
|
|
|
// Read the existing address book. |
|
final file = new File(arguments.first); |
|
final addressBook = new AddressBook.fromBuffer(file.readAsBytesSync()); |
|
printAddressBook(addressBook); |
|
}
|
|
|