pkg logreader, const AllEntries int32
pkg logreader, func LogFileClient(string) LogFileClientStub
pkg logreader, func LogFileServer(LogFileServerMethods) LogFileServerStub
pkg logreader, method (*LogFileReadLogServerCallStub) Init(rpc.StreamServerCall)
pkg logreader, method (*LogFileReadLogServerCallStub) SendStream() interface {  Send(item LogEntry) error;}
pkg logreader, type LogEntry struct
pkg logreader, type LogEntry struct, Line string
pkg logreader, type LogEntry struct, Position int64
pkg logreader, type LogFileClientMethods interface { ReadLog, Size }
pkg logreader, type LogFileClientMethods interface, ReadLog(*context.T, int64, int32, bool, ...rpc.CallOpt) (LogFileReadLogClientCall, error)
pkg logreader, type LogFileClientMethods interface, Size(*context.T, ...rpc.CallOpt) (int64, error)
pkg logreader, type LogFileClientStub interface { ReadLog, Size }
pkg logreader, type LogFileClientStub interface, ReadLog(*context.T, int64, int32, bool, ...rpc.CallOpt) (LogFileReadLogClientCall, error)
pkg logreader, type LogFileClientStub interface, Size(*context.T, ...rpc.CallOpt) (int64, error)
pkg logreader, type LogFileReadLogClientCall interface { Finish, RecvStream }
pkg logreader, type LogFileReadLogClientCall interface, Finish() (int64, error)
pkg logreader, type LogFileReadLogClientCall interface, RecvStream() interface {  Advance() bool;; Value() LogEntry;; Err() error;}
pkg logreader, type LogFileReadLogClientStream interface { RecvStream }
pkg logreader, type LogFileReadLogClientStream interface, RecvStream() interface {  Advance() bool;; Value() LogEntry;; Err() error;}
pkg logreader, type LogFileReadLogServerCall interface { GrantedBlessings, LocalEndpoint, RemoteEndpoint, Security, SendStream, Server, Suffix }
pkg logreader, type LogFileReadLogServerCall interface, GrantedBlessings() security.Blessings
pkg logreader, type LogFileReadLogServerCall interface, LocalEndpoint() naming.Endpoint
pkg logreader, type LogFileReadLogServerCall interface, RemoteEndpoint() naming.Endpoint
pkg logreader, type LogFileReadLogServerCall interface, Security() security.Call
pkg logreader, type LogFileReadLogServerCall interface, SendStream() interface {  Send(item LogEntry) error;}
pkg logreader, type LogFileReadLogServerCall interface, Server() Server
pkg logreader, type LogFileReadLogServerCall interface, Suffix() string
pkg logreader, type LogFileReadLogServerCallStub struct
pkg logreader, type LogFileReadLogServerCallStub struct, embedded rpc.StreamServerCall
pkg logreader, type LogFileReadLogServerStream interface { SendStream }
pkg logreader, type LogFileReadLogServerStream interface, SendStream() interface {  Send(item LogEntry) error;}
pkg logreader, type LogFileServerMethods interface { ReadLog, Size }
pkg logreader, type LogFileServerMethods interface, ReadLog(*context.T, LogFileReadLogServerCall, int64, int32, bool) (int64, error)
pkg logreader, type LogFileServerMethods interface, Size(*context.T, rpc.ServerCall) (int64, error)
pkg logreader, type LogFileServerStub interface { Describe__, ReadLog, Size }
pkg logreader, type LogFileServerStub interface, Describe__() []rpc.InterfaceDesc
pkg logreader, type LogFileServerStub interface, ReadLog(*context.T, *LogFileReadLogServerCallStub, int64, int32, bool) (int64, error)
pkg logreader, type LogFileServerStub interface, Size(*context.T, rpc.ServerCall) (int64, error)
pkg logreader, type LogFileServerStubMethods interface { ReadLog, Size }
pkg logreader, type LogFileServerStubMethods interface, ReadLog(*context.T, *LogFileReadLogServerCallStub, int64, int32, bool) (int64, error)
pkg logreader, type LogFileServerStubMethods interface, Size(*context.T, rpc.ServerCall) (int64, error)
pkg logreader, var LogFileDesc rpc.InterfaceDesc
