fcm

package
v0.0.0-...-1f9e68f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2016 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InstanceStateRegistered = iota + 1
	InstanceStateUnregistered
)

Variables

View Source
var (
	ErrElementNotFound = errors.New("Storage: element not found")
)
View Source
var TFAppA = App{
	ID:       "appIdA",
	SenderID: "senderIdA",
	ApiKey:   "apiKeyA",
}
View Source
var TFAppB = App{
	ID:       "appIdB",
	SenderID: "senderIdB",
	ApiKey:   "apiKeyB",
}
View Source
var TFAppC = App{
	ID:       "appIdC",
	SenderID: "senderIdC",
	ApiKey:   "apiKeyC",
}
View Source
var TFInsAA = Instance{
	ID:              "instanceAA",
	State:           InstanceStateRegistered,
	App:             &TFAppA,
	RegistrationIDS: []RegistrationID{"RegIdAA1"},
	CanonicalID:     "RegIdAA1",
}
View Source
var TFInsAB = Instance{
	ID:              "instanceAB",
	State:           InstanceStateRegistered,
	App:             &TFAppA,
	RegistrationIDS: []RegistrationID{"RegIdAB1", "RegIdAB2"},
	CanonicalID:     "RegIdAB1",
}
View Source
var TFInsAC = Instance{
	ID:              "instanceAC",
	State:           InstanceStateRegistered,
	App:             &TFAppA,
	RegistrationIDS: []RegistrationID{"RegIdAC1", "RegIdAC2", "RegIdAC3"},
	CanonicalID:     "RegIdAC3",
}
View Source
var TFInsAZ = Instance{
	ID:              "instanceAZ",
	State:           InstanceStateUnregistered,
	App:             &TFAppA,
	RegistrationIDS: []RegistrationID{"RegIdAZ1", "RegIdAZ2"},
}
View Source
var TFInsBA = Instance{
	ID:              "instanceBA",
	State:           InstanceStateRegistered,
	App:             &TFAppB,
	RegistrationIDS: []RegistrationID{"RegIdBA1"},
	CanonicalID:     "RegIdBA1",
}
View Source
var TFInsBB = Instance{
	ID:              "instanceBB",
	State:           InstanceStateRegistered,
	App:             &TFAppB,
	RegistrationIDS: []RegistrationID{"RegIdBB1", "RegIdBB2"},
	CanonicalID:     "RegIdBB1",
}
View Source
var TFInsBC = Instance{
	ID:              "instanceBC",
	State:           InstanceStateRegistered,
	App:             &TFAppB,
	RegistrationIDS: []RegistrationID{"RegIdBC1", "RegIdBC2", "RegIdBC3"},
	CanonicalID:     "RegIdBC3",
}

Functions

This section is empty.

Types

type AlreadyMappedError

type AlreadyMappedError struct {
	Collisions map[RegistrationID]*Instance
}

func (AlreadyMappedError) Error

func (AlreadyMappedError) Error() string

type App

type App struct {
	ID       string
	SenderID string
	ApiKey   string
}

type Generator

type Generator struct {
	AppTotal                     int
	InstancesPerApp              int
	UnregisteredPercent          float64
	RegistrationIDPerInstanceMax int
}

func NewGenerator

func NewGenerator(at, ipa int, up float64, rpi int) *Generator

func (*Generator) Generate

func (g *Generator) Generate(s Storer)

type ImportFailureReason

type ImportFailureReason string
const (
	FailUnknownApp ImportFailureReason = "unknownApp"
)

type ImportInstanceFailureReason

type ImportInstanceFailureReason struct {
	ID     string
	AppID  string
	Reason ImportFailureReason
}

type ImportInstancesReport

type ImportInstancesReport struct {
	Succeeded int
	Failed    int
	Failures  []ImportInstanceFailureReason
}

type ImporterStorage

type ImporterStorage interface {
	AppLoad(id string) (*App, error)
	AppSave(o *App) error
	InstanceSave(o *Instance) error
}

type Instance

type Instance struct {
	ID              string
	State           InstanceState
	App             *App
	RegistrationIDS []RegistrationID

	// CanonicalID is the primary RegistrationID associated with instance at the given point in time.
	// It's defined only for registered instances.
	CanonicalID RegistrationID `json:",omitempty"`
}

type InstanceExported

type InstanceExported struct {
	Instance

	AppID string
	App   omit `json:"App,omitempty"`
}

type InstanceState

type InstanceState int

type JSONExporter

type JSONExporter struct {
	AppWriter      io.Writer
	InstanceWriter io.Writer

	AppEncoder      *json.Encoder
	InstanceEncoder *json.Encoder
}

JSONExporter exports data in JSON format. Implements android.Storer interface for generator.

func NewJSONExporter

func NewJSONExporter(appWriter, instanceWriter io.Writer) *JSONExporter

func (*JSONExporter) AppSave

func (e *JSONExporter) AppSave(o *App) error

func (*JSONExporter) InstanceSave

func (e *JSONExporter) InstanceSave(o *Instance) error

type JSONImporter

type JSONImporter struct {
	Storage ImporterStorage
	Mapper  Mapper
}

func NewJSONImporter

func NewJSONImporter(s ImporterStorage, m Mapper) *JSONImporter

func (*JSONImporter) ImportApps

func (i *JSONImporter) ImportApps(r io.Reader)

func (*JSONImporter) ImportInstances

func (i *JSONImporter) ImportInstances(r io.Reader) ImportInstancesReport

type Mapper

type Mapper interface {
	Add(i *Instance) error
}

type MemoryMapper

type MemoryMapper struct {
	// contains filtered or unexported fields
}

func NewMemoryMapper

func NewMemoryMapper() *MemoryMapper

func (*MemoryMapper) Add

func (m *MemoryMapper) Add(i *Instance) error

type MemoryStorage

type MemoryStorage struct {
	// contains filtered or unexported fields
}

func NewMemoryStorage

func NewMemoryStorage() *MemoryStorage

func TSMemoryStorageWitAppsAndInstancesSetup

func TSMemoryStorageWitAppsAndInstancesSetup() (*MemoryStorage, func())

func (*MemoryStorage) AppFind

func (s *MemoryStorage) AppFind(apiKey string) (*App, error)

func (*MemoryStorage) AppLoad

func (s *MemoryStorage) AppLoad(id string) (*App, error)

func (*MemoryStorage) AppSave

func (s *MemoryStorage) AppSave(o *App) error

func (*MemoryStorage) InstanceFind

func (s *MemoryStorage) InstanceFind(appID string, registrationID RegistrationID) (*Instance, error)

func (*MemoryStorage) InstanceLoad

func (s *MemoryStorage) InstanceLoad(aID, iID string) (*Instance, error)

func (*MemoryStorage) InstanceSave

func (s *MemoryStorage) InstanceSave(o *Instance) error

func (*MemoryStorage) InstancesTotal

func (s *MemoryStorage) InstancesTotal() int

func (*MemoryStorage) Report

func (s *MemoryStorage) Report() map[string]interface{}

Report is producing report on the state of the storage. It's useful as debugging and monitoring tool.

type RegistrationID

type RegistrationID string

type Storer

type Storer interface {
	AppSave(o *App) error
	InstanceSave(o *Instance) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL