ducky/subscriptions

Paddy 2015-07-13 Parent:b240b6123548 Child:1ff031bebf9e

7:9e138933e4ce Go to Latest

ducky/subscriptions/memstore.go

Create a client for working with subscriptions. We mostly copied our code.secondbit.org/auth.hg/client package to create a simple client library for communicating with our Subscriptions API. Right now, the client only has support for creating a subscription. It remains untested, but it builds.

History
paddy@0 1 package subscriptions
paddy@0 2
paddy@0 3 import (
paddy@0 4 "sync"
paddy@0 5 )
paddy@0 6
paddy@0 7 // Memstore is an in-memory version of our datastores, useful
paddy@0 8 // for testing. It should not be used in production.
paddy@0 9 type Memstore struct {
paddy@0 10 subscriptions map[string]Subscription
paddy@0 11 subscriptionLock sync.RWMutex
paddy@0 12 }
paddy@0 13
paddy@0 14 // NewMemstore returns a pointer to a Memstore object, ready
paddy@0 15 // to be used as a datastore.
paddy@0 16 func NewMemstore() *Memstore {
paddy@0 17 return &Memstore{
paddy@0 18 subscriptions: map[string]Subscription{},
paddy@0 19 }
paddy@0 20 }
paddy@0 21
paddy@3 22 func (m *Memstore) Reset() error {
paddy@0 23 m.subscriptionLock.Lock()
paddy@0 24 defer m.subscriptionLock.Unlock()
paddy@0 25
paddy@0 26 m.subscriptions = map[string]Subscription{}
paddy@0 27 return nil
paddy@0 28 }