|  | // Copyright 2020 The Fuchsia Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | library fuchsia.examples; | 
|  |  | 
|  | const uint64 MAX_STRING_LENGTH = 32; | 
|  |  | 
|  | // [START echo] | 
|  | [Discoverable] | 
|  | protocol Echo { | 
|  | EchoString(string:MAX_STRING_LENGTH value) -> (string:MAX_STRING_LENGTH response); | 
|  | SendString(string:MAX_STRING_LENGTH value); | 
|  | -> OnString(string:MAX_STRING_LENGTH response); | 
|  | }; | 
|  | // [END echo] | 
|  |  | 
|  | // [START launcher] | 
|  | [Discoverable] | 
|  | protocol EchoLauncher { | 
|  | GetEcho(string:MAX_STRING_LENGTH echo_prefix) -> (Echo response); | 
|  | GetEchoPipelined(string:MAX_STRING_LENGTH echo_prefix, request<Echo> request); | 
|  | }; | 
|  | // [END launcher] | 
|  |  | 
|  | service EchoService { | 
|  | Echo regular_echo; | 
|  | Echo reversed_echo; | 
|  | }; |