From 84cd1538ee20b934c6892f38578a08106a934fe8 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Tue, 4 Aug 2009 19:46:42 -0700 Subject: Integrated benchmarks into main Makefile. --- benchmarks/parsetostruct.proto2_table.cc | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 benchmarks/parsetostruct.proto2_table.cc (limited to 'benchmarks/parsetostruct.proto2_table.cc') diff --git a/benchmarks/parsetostruct.proto2_table.cc b/benchmarks/parsetostruct.proto2_table.cc new file mode 100644 index 0000000..815834e --- /dev/null +++ b/benchmarks/parsetostruct.proto2_table.cc @@ -0,0 +1,44 @@ + +#include "main.c" +#include +#include +#include +#include +#include MESSAGE_HFILE + +static std::string str; +static google::protobuf::DynamicMessageFactory factory; +static google::protobuf::Message *msg; + +static bool initialize() +{ + /* Read the message data itself. */ + std::ifstream stream(MESSAGE_FILE); + if(!stream.is_open()) { + fprintf(stderr, "Error opening " MESSAGE_FILE ".\n"); + return false; + } + std::stringstream stringstream; + stringstream << stream.rdbuf(); + str = stringstream.str(); + + /* Create the DynamicMessage. */ + const google::protobuf::Message *dynamic_msg_prototype = + factory.GetPrototype(MESSAGE_CIDENT::descriptor()); + msg = dynamic_msg_prototype->New(); + return true; +} + +static void cleanup() +{ + delete msg; +} + +static size_t run() +{ + if(!msg->ParseFromString(str)) { + fprintf(stderr, "Error parsing with proto2.\n"); + return 0; + } + return str.size(); +} -- cgit v1.2.3