pkg syncbase, func AppClient(string) AppClientStub
pkg syncbase, func AppServer(AppServerMethods) AppServerStub
pkg syncbase, func NewErrCorruptDatabase(*context.T, string) error
pkg syncbase, func NewErrInvalidName(*context.T, string) error
pkg syncbase, func NewErrNotInDevMode(*context.T) error
pkg syncbase, func NewErrUnknownBatch(*context.T) error
pkg syncbase, func ServiceClient(string) ServiceClientStub
pkg syncbase, func ServiceServer(ServiceServerMethods) ServiceServerStub
pkg syncbase, type AppClientMethods interface { Create, Destroy, Exists, GetPermissions, SetPermissions }
pkg syncbase, type AppClientMethods interface, Create(*context.T, access.Permissions, ...rpc.CallOpt) error
pkg syncbase, type AppClientMethods interface, Destroy(*context.T, ...rpc.CallOpt) error
pkg syncbase, type AppClientMethods interface, Exists(*context.T, ...rpc.CallOpt) (bool, error)
pkg syncbase, type AppClientMethods interface, GetPermissions(*context.T, ...rpc.CallOpt) (access.Permissions, string, error)
pkg syncbase, type AppClientMethods interface, SetPermissions(*context.T, access.Permissions, string, ...rpc.CallOpt) error
pkg syncbase, type AppClientStub interface { Create, Destroy, Exists, GetPermissions, SetPermissions }
pkg syncbase, type AppClientStub interface, Create(*context.T, access.Permissions, ...rpc.CallOpt) error
pkg syncbase, type AppClientStub interface, Destroy(*context.T, ...rpc.CallOpt) error
pkg syncbase, type AppClientStub interface, Exists(*context.T, ...rpc.CallOpt) (bool, error)
pkg syncbase, type AppClientStub interface, GetPermissions(*context.T, ...rpc.CallOpt) (access.Permissions, string, error)
pkg syncbase, type AppClientStub interface, SetPermissions(*context.T, access.Permissions, string, ...rpc.CallOpt) error
pkg syncbase, type AppServerMethods interface { Create, Destroy, Exists, GetPermissions, SetPermissions }
pkg syncbase, type AppServerMethods interface, Create(*context.T, rpc.ServerCall, access.Permissions) error
pkg syncbase, type AppServerMethods interface, Destroy(*context.T, rpc.ServerCall) error
pkg syncbase, type AppServerMethods interface, Exists(*context.T, rpc.ServerCall) (bool, error)
pkg syncbase, type AppServerMethods interface, GetPermissions(*context.T, rpc.ServerCall) (access.Permissions, string, error)
pkg syncbase, type AppServerMethods interface, SetPermissions(*context.T, rpc.ServerCall, access.Permissions, string) error
pkg syncbase, type AppServerStub interface, Describe__() []rpc.InterfaceDesc
pkg syncbase, type AppServerStub interface, unexported methods
pkg syncbase, type AppServerStubMethods AppServerMethods
pkg syncbase, type DevModeUpdateVClockOpts struct
pkg syncbase, type DevModeUpdateVClockOpts struct, DoLocalUpdate bool
pkg syncbase, type DevModeUpdateVClockOpts struct, DoNtpUpdate bool
pkg syncbase, type DevModeUpdateVClockOpts struct, ElapsedTime time.Duration
pkg syncbase, type DevModeUpdateVClockOpts struct, Now time.Time
pkg syncbase, type DevModeUpdateVClockOpts struct, NtpHost string
pkg syncbase, type ServiceClientMethods interface { DevModeGetTime, DevModeUpdateVClock, GetPermissions, SetPermissions }
pkg syncbase, type ServiceClientMethods interface, DevModeGetTime(*context.T, ...rpc.CallOpt) (time.Time, error)
pkg syncbase, type ServiceClientMethods interface, DevModeUpdateVClock(*context.T, DevModeUpdateVClockOpts, ...rpc.CallOpt) error
pkg syncbase, type ServiceClientMethods interface, GetPermissions(*context.T, ...rpc.CallOpt) (access.Permissions, string, error)
pkg syncbase, type ServiceClientMethods interface, SetPermissions(*context.T, access.Permissions, string, ...rpc.CallOpt) error
pkg syncbase, type ServiceClientStub interface { DevModeGetTime, DevModeUpdateVClock, GetPermissions, SetPermissions }
pkg syncbase, type ServiceClientStub interface, DevModeGetTime(*context.T, ...rpc.CallOpt) (time.Time, error)
pkg syncbase, type ServiceClientStub interface, DevModeUpdateVClock(*context.T, DevModeUpdateVClockOpts, ...rpc.CallOpt) error
pkg syncbase, type ServiceClientStub interface, GetPermissions(*context.T, ...rpc.CallOpt) (access.Permissions, string, error)
pkg syncbase, type ServiceClientStub interface, SetPermissions(*context.T, access.Permissions, string, ...rpc.CallOpt) error
pkg syncbase, type ServiceServerMethods interface { DevModeGetTime, DevModeUpdateVClock, GetPermissions, SetPermissions }
pkg syncbase, type ServiceServerMethods interface, DevModeGetTime(*context.T, rpc.ServerCall) (time.Time, error)
pkg syncbase, type ServiceServerMethods interface, DevModeUpdateVClock(*context.T, rpc.ServerCall, DevModeUpdateVClockOpts) error
pkg syncbase, type ServiceServerMethods interface, GetPermissions(*context.T, rpc.ServerCall) (access.Permissions, string, error)
pkg syncbase, type ServiceServerMethods interface, SetPermissions(*context.T, rpc.ServerCall, access.Permissions, string) error
pkg syncbase, type ServiceServerStub interface, Describe__() []rpc.InterfaceDesc
pkg syncbase, type ServiceServerStub interface, unexported methods
pkg syncbase, type ServiceServerStubMethods ServiceServerMethods
pkg syncbase, var AppDesc rpc.InterfaceDesc
pkg syncbase, var ErrCorruptDatabase verror.IDAction
pkg syncbase, var ErrInvalidName verror.IDAction
pkg syncbase, var ErrNotInDevMode verror.IDAction
pkg syncbase, var ErrUnknownBatch verror.IDAction
pkg syncbase, var ServiceDesc rpc.InterfaceDesc
