converters

package
v1.0.18 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2022 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MsgConverter = []conversion.MsgConverter{
	{
		InputFormat:  formats.Encrypted,
		OutputFormat: formats.BackupFrame,
		Convert: func(ctx context.Context, c *conversion.Conversion) (interface{}, error) {
			return toframes.NewFrameReader(c.MsgIn.(*os.File), ctx.Value(formats.SignalBackupDBPasswordCtxKey).(string))
		},
	},
	{
		InputFormat:  formats.BackupFrame,
		OutputFormat: formats.Encrypted,
		Convert: func(ctx context.Context, c *conversion.Conversion) (interface{}, error) {
			return nil, toencrypted.Encrypt(ctx, c.MsgIn.(frameio.FrameReader), c.MsgOut.(*os.File), ctx.Value(formats.SignalBackupDBPasswordCtxKey).(string))
		},
	},
	{
		InputFormat:  formats.BackupFrame,
		OutputFormat: formats.PrototextMsg,
		Convert: func(ctx context.Context, c *conversion.Conversion) (interface{}, error) {
			writeFramesToAttachments := toattachments.NewFrameWriter(ctx, c.ExternalAttachments)
			writeToMsgOutAndAttachments := frameio.NewMultiWriter(c.MsgOut.(frameio.FrameWriteCloser), writeFramesToAttachments)
			return nil, frameio.CopyFrames(ctx, writeToMsgOutAndAttachments, c.MsgIn.(frameio.FrameReader))
		},
	},
	{
		InputFormat:  formats.PrototextMsg,
		OutputFormat: formats.BackupFrame,
		Convert: func(ctx context.Context, c *conversion.Conversion) (interface{}, error) {
			return frameio.NewMergedReader(ctx, c.MsgIn.(frameio.FrameReader), c.ExternalAttachments), nil
		},
	},
	{
		InputFormat:  formats.BackupFrame,
		OutputFormat: formats.SQLiteMsgAndAttachment,
		Convert: func(ctx context.Context, c *conversion.Conversion) (interface{}, error) {
			dbOrTx := c.MsgOut.(sqlite.DBOrTx)
			store, err := attachments.NewSQLStore(dbOrTx)
			if err != nil {
				return nil, err
			}
			return backupFrameToSQLite(ctx, c, store, dbOrTx)
		},
	},
	{
		InputFormat:  formats.BackupFrame,
		OutputFormat: formats.SQLiteMsg,
		Convert: func(ctx context.Context, c *conversion.Conversion) (interface{}, error) {
			return backupFrameToSQLite(ctx, c, c.ExternalAttachments, c.MsgOut.(sqlite.DBOrTx))
		},
	},
	{
		InputFormat:  formats.SQLiteMsgAndAttachment,
		OutputFormat: formats.XML,
		Convert: func(ctx context.Context, c *conversion.Conversion) (interface{}, error) {
			dbOrTx := c.MsgIn.(sqlite.DBOrTx)
			store, err := attachments.NewSQLStore(dbOrTx)
			if err != nil {
				return nil, err
			}
			return sqliteToXML(ctx, c, store, dbOrTx)
		},
	},
	{
		InputFormat:  formats.SQLiteMsg,
		OutputFormat: formats.XML,
		Convert: func(ctx context.Context, c *conversion.Conversion) (interface{}, error) {
			return sqliteToXML(ctx, c, c.ExternalAttachments, c.MsgIn.(sqlite.DBOrTx))
		},
	},
}

Functions

func ComputeConversionGraph

func ComputeConversionGraph() (*conversion.Graph, error)

Types

This section is empty.

Directories

Path Synopsis
encrypted
frames
sqlite

Jump to

Keyboard shortcuts

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