~ubuntu-branches/debian/squeeze/protobuf/squeeze

« back to all changes in this revision

Viewing changes to python/google/protobuf/service.py

  • Committer: Bazaar Package Importer
  • Author(s): Julien Cristau
  • Date: 2009-06-02 16:19:00 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090602161900-vm176i3ryt35yk91
Tags: 2.0.3-2.2
* Non-maintainer upload.
* Fix FTBFS from -2.1: don't fail when we can't clean up the java build,
  such as when openjdk isn't installed.
* Disable parallel builds, because libtool is made of fail (if binary-arch
  and build-indep run concurrently, we relink a library while it's being
  used; that doesn't work so well).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Protocol Buffers - Google's data interchange format
2
 
# Copyright 2008 Google Inc.
 
2
# Copyright 2008 Google Inc.  All rights reserved.
3
3
# http://code.google.com/p/protobuf/
4
4
#
5
 
# Licensed under the Apache License, Version 2.0 (the "License");
6
 
# you may not use this file except in compliance with the License.
7
 
# You may obtain a copy of the License at
8
 
#
9
 
#      http://www.apache.org/licenses/LICENSE-2.0
10
 
#
11
 
# Unless required by applicable law or agreed to in writing, software
12
 
# distributed under the License is distributed on an "AS IS" BASIS,
13
 
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 
# See the License for the specific language governing permissions and
15
 
# limitations under the License.
 
5
# Redistribution and use in source and binary forms, with or without
 
6
# modification, are permitted provided that the following conditions are
 
7
# met:
 
8
#
 
9
#     * Redistributions of source code must retain the above copyright
 
10
# notice, this list of conditions and the following disclaimer.
 
11
#     * Redistributions in binary form must reproduce the above
 
12
# copyright notice, this list of conditions and the following disclaimer
 
13
# in the documentation and/or other materials provided with the
 
14
# distribution.
 
15
#     * Neither the name of Google Inc. nor the names of its
 
16
# contributors may be used to endorse or promote products derived from
 
17
# this software without specific prior written permission.
 
18
#
 
19
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 
20
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 
21
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 
22
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 
23
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
24
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 
25
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
26
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
27
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
28
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
29
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
16
30
 
17
31
"""Declares the RPC service interfaces.
18
32
 
85
99
 
86
100
class RpcController(object):
87
101
 
88
 
  """Abstract interface for an RPC channel.
89
 
 
90
 
  An RpcChannel represents a communication line to a service which can be used
91
 
  to call that service's methods.  The service may be running on another
92
 
  machine. Normally, you should not use an RpcChannel directly, but instead
93
 
  construct a stub {@link Service} wrapping it.  Example:
94
 
 
95
 
  Example:
96
 
    RpcChannel channel = rpcImpl.Channel("remotehost.example.com:1234")
97
 
    RpcController controller = rpcImpl.Controller()
98
 
    MyService service = MyService_Stub(channel)
99
 
    service.MyMethod(controller, request, callback)
 
102
  """An RpcController mediates a single method call.
 
103
 
 
104
  The primary purpose of the controller is to provide a way to manipulate
 
105
  settings specific to the RPC implementation and to find out about RPC-level
 
106
  errors. The methods provided by the RpcController interface are intended
 
107
  to be a "least common denominator" set of features which we expect all
 
108
  implementations to support.  Specific implementations may provide more
 
109
  advanced features (e.g. deadline propagation).
100
110
  """
101
111
 
102
112
  # Client-side methods below
172
182
 
173
183
class RpcChannel(object):
174
184
 
175
 
  """An RpcController mediates a single method call.
176
 
 
177
 
  The primary purpose of the controller is to provide a way to manipulate
178
 
  settings specific to the RPC implementation and to find out about RPC-level
179
 
  errors. The methods provided by the RpcController interface are intended
180
 
  to be a "least common denominator" set of features which we expect all
181
 
  implementations to support.  Specific implementations may provide more
182
 
  advanced features (e.g. deadline propagation).
 
185
  """Abstract interface for an RPC channel.
 
186
 
 
187
  An RpcChannel represents a communication line to a service which can be used
 
188
  to call that service's methods.  The service may be running on another
 
189
  machine. Normally, you should not use an RpcChannel directly, but instead
 
190
  construct a stub {@link Service} wrapping it.  Example:
 
191
 
 
192
  Example:
 
193
    RpcChannel channel = rpcImpl.Channel("remotehost.example.com:1234")
 
194
    RpcController controller = rpcImpl.Controller()
 
195
    MyService service = MyService_Stub(channel)
 
196
    service.MyMethod(controller, request, callback)
183
197
  """
184
198
 
185
199
  def CallMethod(self, method_descriptor, rpc_controller,