Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(935)

Unified Diff: tools/telemetry/third_party/gsutilz/third_party/protorpc/demos/echo/services.py

Issue 1264873003: Add gsutil/third_party to telemetry/third_party/gsutilz/third_party. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove httplib2 Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/gsutilz/third_party/protorpc/demos/echo/services.py
diff --git a/tools/telemetry/third_party/gsutilz/third_party/protorpc/demos/echo/services.py b/tools/telemetry/third_party/gsutilz/third_party/protorpc/demos/echo/services.py
new file mode 100755
index 0000000000000000000000000000000000000000..a44a22c3caf989f9ddf9c5887f831e9a583012c5
--- /dev/null
+++ b/tools/telemetry/third_party/gsutilz/third_party/protorpc/demos/echo/services.py
@@ -0,0 +1,120 @@
+#!/usr/bin/env python
+#
+# Copyright 2010 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+"""Echo service demo.
+
+Implements a simple echo service. The request and response objects are
+the same message that contains numerous different fields useful for testing and
+illustrating the forms interface.
+"""
+
+__author__ = 'rafek@google.com (Rafe Kaplan)'
+
+import appengine_config
+
+import logging
+import time
+
+from protorpc import messages
+from protorpc import remote
+from protorpc.webapp import service_handlers
+
+package = 'protorpc.echo'
+
+
+class SubMessage(messages.Message):
+ """A sub-message that can be required by EchoData."""
+
+ value = messages.StringField(1)
+
+
+class EchoData(messages.Message):
+ """Echo message.
+
+ Contains all relevant ProtoRPC data-types including recursive reference
+ to itself in nested and repeated form.
+ """
+
+ class Color(messages.Enum):
+ """A simple enumeration type."""
+
+ RED = 1
+ GREEN = 2
+ BLUE = 3
+
+ # A required field with a default.
+ required = messages.EnumField(Color, 1,
+ required=True,
+ default=Color.BLUE)
+ required_message = messages.MessageField(SubMessage, 18, required=True)
+
+ # Optional fields.
+ a_string = messages.StringField(2)
+ an_int = messages.IntegerField(3)
+ a_float = messages.FloatField(4)
+ a_bool = messages.BooleanField(5)
+ a_bytes = messages.BytesField(6)
+ a_color = messages.EnumField(Color, 7)
+ an_echo = messages.MessageField('EchoData', 8)
+
+ # Repeated fields.
+ strings = messages.StringField(9, repeated=True)
+ ints = messages.IntegerField(10, repeated=True)
+ floats = messages.FloatField(11, repeated=True)
+ bools = messages.BooleanField(12, repeated=True);
+ bytes = messages.BytesField(13, repeated=True)
+ colors = messages.EnumField(Color, 14, repeated=True)
+ echos = messages.MessageField('EchoData', 15, repeated=True)
+
+ # With defaults
+ default_string = messages.StringField(19, default='a default')
+ default_int = messages.IntegerField(20, default=30)
+ default_float = messages.FloatField(21, default=3.1415)
+ default_bool = messages.BooleanField(22, default=True)
+ default_bytes = messages.BytesField(23, default='YSBieXRlcw==')
+ default_color = messages.EnumField(Color, 24, default=Color.GREEN)
+
+ # If want_time is set to True, the response will contain current seconds
+ # since epoch.
+ want_time = messages.BooleanField(16)
+ time = messages.IntegerField(17)
+
+
+class EchoService(remote.Service):
+ """Echo service echos response to client."""
+
+ @remote.method(EchoData, EchoData)
+ def echo(self, request):
+ """Echo method."""
+ logging.info('\n'.join(
+ ['Received request:',
+ ' Host = %s' % self.request_state.remote_host,
+ ' IP Address = %s' % self.request_state.remote_address,
+ ]))
+ if request.want_time:
+ request.time = int(time.time())
+ return request
+
+
+def main():
+ service_handlers.run_services(
+ [('/echo', EchoService),
+ ])
+
+
+if __name__ == '__main__':
+ main()

Powered by Google App Engine
This is Rietveld 408576698