1// Copyright 2012 Gary Burd
2//
3// Licensed under the Apache License, Version 2.0 (the "License"): you may
4// not use this file except in compliance with the License. You may obtain
5// a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12// License for the specific language governing permissions and limitations
13// under the License.
14
15package redis
16
17// Error represents an error returned in a command reply.
18type Error string
19
20func (err Error) Error() string { return string(err) }
21
22// Conn represents a connection to a Redis server.
23type Conn interface {
24	// Close closes the connection.
25	Close() error
26
27	// Err returns a non-nil value if the connection is broken. The returned
28	// value is either the first non-nil value returned from the underlying
29	// network connection or a protocol parsing error. Applications should
30	// close broken connections.
31	Err() error
32
33	// Do sends a command to the server and returns the received reply.
34	Do(commandName string, args ...interface{}) (reply interface{}, err error)
35
36	// Send writes the command to the client's output buffer.
37	Send(commandName string, args ...interface{}) error
38
39	// Flush flushes the output buffer to the Redis server.
40	Flush() error
41
42	// Receive receives a single reply from the Redis server
43	Receive() (reply interface{}, err error)
44}
45