| // 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 sample |
| |
| // PetFeeder allows clients to remotely feed their pets. |
| type PetFeeder interface { |
| // Status returns the current status of the PetFeeder (how full the bowl is). |
| Status() (float64 | error) |
| // Fill fills the pet feeder bowl with food. Errors if the bowl will overflow. |
| Fill(amount float64) error |
| // Empty removes all food from the pet feeder bowl. |
| Empty() error |
| } |
| |
| // RoboDogStatus represents the status of a robotic dog. |
| type RoboDogStatus struct{ |
| Name string // the dog's current name |
| Mood string // mood improves when played with and not hungry |
| Hunger string // hunger worsens over time. Improves while eating. |
| Eating bool // the dog is busy while eating. |
| } |
| |
| // RoboDog allows clients to play with a virtual robotic dog. |
| type RoboDog interface { |
| // Status returns the state of the robotic dog. |
| Status() (RoboDogStatus | error) |
| // Speak allows a client to speak with the robotic dog. |
| Speak(words string) (string | error) |
| // Play allows a client to play with the robotic dog. |
| // Errors if the dog does not want to play. |
| Play(duration uint32) error |
| // SetName allows a client to set the robotic dog's name. |
| SetName(name string) error |
| } |