blob: afce650f5921da9ca23b5027732aa0b41642caf2 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package fortune
import "v.io/v23/security/access"
type ComplexErrorParam struct {
Str string
Num int32
List []uint32
}
error (
NoFortunes() {
"en": "no fortunes added",
}
Complex(first ComplexErrorParam, second string, third int32) {
"en": "this is a complex error with params {first} {second} {third}",
}
)
// Fortune allows clients to Get and Add fortune strings.
type Fortune interface {
// Add stores a fortune in the set used by Get.
Add(Fortune string) error {access.Write}
// Get returns the last-added fortune.
Get() (Fortune string | error) {access.Read}
// ParameterizedGet returns the last-added fortune as a map (which is a parameterized
// type in Java).
ParameterizedGet() (map[string]string | error) {access.Read}
// StreamingGet returns a stream that can be used to obtain fortunes, and returns the
// total number of items sent.
StreamingGet() stream<bool, string> (total int32 | error) {access.Read}
// MultipleGet returns the same fortune twice.
MultipleGet() (Fortune string, Another string | error) {access.Read}
// MultipleStreamingGet returns a stream that can be used to obtain fortunes, and returns
// the total number of items sent, twice.
MultipleStreamingGet() stream<bool, string> (total int32, another int32 | error) {access.Read}
// GetComplexError returns (always!) ErrComplex.
GetComplexError() error {access.Read}
// NoTags is a method without tags.
NoTags() error
// TestServerCall is a method used for testing that the server receives a
// correct ServerCall.
TestServerCall() error {access.Read}
// GetServerThread returns a name of the server thread that executes this method.
GetServerThread() (string | error) {access.Read}
}