aboutsummaryrefslogtreecommitdiff
path: root/src/ProtoDump/Program.cs
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2009-01-16 10:57:40 +0000
committerJon Skeet <skeet@pobox.com>2009-01-16 10:57:40 +0000
commit8f8186a30b9b8d865c6211eb91a4df8aae1f40d5 (patch)
tree8448e4c52607cd39f2035a06196cfe4247942f06 /src/ProtoDump/Program.cs
parent0c89aa1fdba0158d8dee3aef9cfe815afe4cc494 (diff)
downloadprotobuf-8f8186a30b9b8d865c6211eb91a4df8aae1f40d5.tar.gz
protobuf-8f8186a30b9b8d865c6211eb91a4df8aae1f40d5.tar.bz2
protobuf-8f8186a30b9b8d865c6211eb91a4df8aae1f40d5.zip
Benchmarking, dumping and munging
Diffstat (limited to 'src/ProtoDump/Program.cs')
-rw-r--r--src/ProtoDump/Program.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/ProtoDump/Program.cs b/src/ProtoDump/Program.cs
new file mode 100644
index 00000000..0c66c930
--- /dev/null
+++ b/src/ProtoDump/Program.cs
@@ -0,0 +1,43 @@
+using System;
+using System.IO;
+using System.Reflection;
+using Google.ProtocolBuffers;
+
+namespace ProtoDump {
+ /// <summary>
+ /// Small utility to load a binary message and dump it in text form
+ /// </summary>
+ class Program {
+ static int Main(string[] args) {
+ if (args.Length != 2) {
+ Console.Error.WriteLine("Usage: ProtoDump <descriptor type name> <input data>");
+ Console.Error.WriteLine("The descriptor type name is the fully-qualified message name,");
+ Console.Error.WriteLine("including assembly e.g. ProjectNamespace.Message,Company.Project");
+ return 1;
+ }
+ IMessage defaultMessage;
+ try {
+ defaultMessage = MessageUtil.GetDefaultMessage(args[0]);
+ } catch (ArgumentException e) {
+ Console.Error.WriteLine(e.Message);
+ return 1;
+ }
+ try {
+ IBuilder builder = defaultMessage.WeakCreateBuilderForType();
+ if (builder == null) {
+ Console.Error.WriteLine("Unable to create builder");
+ return 1;
+ }
+ byte[] inputData = File.ReadAllBytes(args[1]);
+ builder.WeakMergeFrom(ByteString.CopyFrom(inputData));
+ Console.WriteLine(TextFormat.PrintToString(builder.WeakBuild()));
+ return 0;
+ } catch (Exception e) {
+ Console.Error.WriteLine("Error: {0}", e.Message);
+ Console.Error.WriteLine();
+ Console.Error.WriteLine("Detailed exception information: {0}", e);
+ return 1;
+ }
+ }
+ }
+}