Skip to content
Snippets Groups Projects
Commit 72b2ab22 authored by Jono Wenger's avatar Jono Wenger
Browse files

Add info about handler return types to docstring

parent 67ca9dd8
Branches
Tags
2 merge requests!67fix for latest client release,!52XX-4382 / Move indexedDb databases to web workers
......@@ -50,14 +50,15 @@ func (m *manager) RegisterHandlers() {
m.mh.RegisterHandler(indexedDbWorker.DeleteMessageTag, m.deleteMessageHandler)
}
// newWASMEventModelHandler is the handler for NewWASMEventModel.
// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns nil on
// success or an error message on failure.
func (m *manager) newWASMEventModelHandler(data []byte) []byte {
var msg mChannels.NewWASMEventModelMessage
err := json.Unmarshal(data, &msg)
if err != nil {
jww.ERROR.Printf("Could not JSON unmarshal "+
"NewWASMEventModelMessage from main thread: %+v", err)
return []byte{}
return nil
}
// Create new encryption cipher
......@@ -67,7 +68,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) []byte {
if err != nil {
jww.ERROR.Printf("Could not JSON unmarshal channel cipher from "+
"main thread: %+v", err)
return []byte{}
return nil
}
m.model, err = NewWASMEventModel(msg.Path, encryption,
......@@ -75,7 +76,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) []byte {
if err != nil {
return []byte(err.Error())
}
return []byte{}
return nil
}
// messageReceivedCallback sends calls to the MessageReceivedCallback in the
......@@ -98,7 +99,8 @@ func (m *manager) messageReceivedCallback(
}
// Send it to the main thread
m.mh.SendResponse(indexedDbWorker.GetMessageTag, indexedDbWorker.InitID, data)
m.mh.SendResponse(
indexedDbWorker.GetMessageTag, indexedDbWorker.InitID, data)
}
// storeEncryptionStatus augments the functionality of
......@@ -152,7 +154,8 @@ func (m *manager) storeEncryptionStatus(
return response.EncryptionStatus, nil
}
// joinChannelHandler is the handler for wasmModel.JoinChannel.
// joinChannelHandler is the handler for wasmModel.JoinChannel. Always returns
// nil; meaning, no response is supplied (or expected).
func (m *manager) joinChannelHandler(data []byte) []byte {
var channel cryptoBroadcast.Channel
err := json.Unmarshal(data, &channel)
......@@ -166,7 +169,8 @@ func (m *manager) joinChannelHandler(data []byte) []byte {
return nil
}
// leaveChannelHandler is the handler for wasmModel.LeaveChannel.
// leaveChannelHandler is the handler for wasmModel.LeaveChannel. Always returns
// nil; meaning, no response is supplied (or expected).
func (m *manager) leaveChannelHandler(data []byte) []byte {
channelID, err := id.Unmarshal(data)
if err != nil {
......@@ -179,7 +183,8 @@ func (m *manager) leaveChannelHandler(data []byte) []byte {
return nil
}
// receiveMessageHandler is the handler for wasmModel.ReceiveMessage.
// receiveMessageHandler is the handler for wasmModel.ReceiveMessage. Returns
// nil on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveMessageHandler(data []byte) []byte {
var msg channels.ModelMessage
err := json.Unmarshal(data, &msg)
......@@ -203,7 +208,8 @@ func (m *manager) receiveMessageHandler(data []byte) []byte {
return uuidData
}
// receiveReplyHandler is the handler for wasmModel.ReceiveReply.
// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns
// nil on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReplyHandler(data []byte) []byte {
var msg mChannels.ReceiveReplyMessage
err := json.Unmarshal(data, &msg)
......@@ -227,7 +233,8 @@ func (m *manager) receiveReplyHandler(data []byte) []byte {
return uuidData
}
// receiveReactionHandler is the handler for wasmModel.ReceiveReaction.
// receiveReactionHandler is the handler for wasmModel.ReceiveReaction. Returns
// nil on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReactionHandler(data []byte) []byte {
var msg mChannels.ReceiveReplyMessage
err := json.Unmarshal(data, &msg)
......@@ -251,7 +258,8 @@ func (m *manager) receiveReactionHandler(data []byte) []byte {
return uuidData
}
// updateFromUUIDHandler is the handler for wasmModel.UpdateFromUUID.
// updateFromUUIDHandler is the handler for wasmModel.UpdateFromUUID. Always
// returns nil; meaning, no response is supplied (or expected).
func (m *manager) updateFromUUIDHandler(data []byte) []byte {
var msg mChannels.MessageUpdateInfo
err := json.Unmarshal(data, &msg)
......@@ -290,6 +298,7 @@ func (m *manager) updateFromUUIDHandler(data []byte) []byte {
}
// updateFromMessageIDHandler is the handler for wasmModel.UpdateFromMessageID.
// Always returns nil; meaning, no response is supplied (or expected).
func (m *manager) updateFromMessageIDHandler(data []byte) []byte {
var msg mChannels.MessageUpdateInfo
err := json.Unmarshal(data, &msg)
......@@ -330,7 +339,10 @@ func (m *manager) updateFromMessageIDHandler(data []byte) []byte {
return uuidData
}
// getMessageHandler is the handler for wasmModel.GetMessage.
// getMessageHandler is the handler for wasmModel.GetMessage. Returns JSON
// marshalled channels.GetMessageMessage. If an error occurs, then Error will
// be set with the error message. Otherwise, Message will be set. Only one field
// will be set.
func (m *manager) getMessageHandler(data []byte) []byte {
messageID, err := message.UnmarshalID(data)
if err != nil {
......@@ -348,16 +360,17 @@ func (m *manager) getMessageHandler(data []byte) []byte {
reply.Message = msg
}
messageData, err := json.Marshal(msg)
messageData, err := json.Marshal(reply)
if err != nil {
jww.ERROR.Printf(
"Could not JSON marshal UUID from ReceiveReaction: %+v", err)
jww.ERROR.Printf("Could not JSON marshal GetMessageMessage for "+
"GetMessage reply: %+v", err)
return nil
}
return messageData
}
// deleteMessageHandler is the handler for wasmModel.DeleteMessage.
// deleteMessageHandler is the handler for wasmModel.DeleteMessage. Always
// returns nil; meaning, no response is supplied (or expected).
func (m *manager) deleteMessageHandler(data []byte) []byte {
messageID, err := message.UnmarshalID(data)
if err != nil {
......
......@@ -13,7 +13,6 @@ import (
"crypto/ed25519"
"encoding/base64"
"encoding/json"
"gitlab.com/elixxir/xxdk-wasm/indexedDb"
"strings"
"sync"
"syscall/js"
......@@ -28,6 +27,7 @@ import (
cryptoBroadcast "gitlab.com/elixxir/crypto/broadcast"
cryptoChannel "gitlab.com/elixxir/crypto/channel"
"gitlab.com/elixxir/crypto/message"
"gitlab.com/elixxir/xxdk-wasm/indexedDb"
"gitlab.com/elixxir/xxdk-wasm/utils"
"gitlab.com/xx_network/primitives/id"
)
......
......@@ -106,19 +106,6 @@ func newWASMModel(databaseName string, encryption cryptoChannel.Cipher,
jww.WARN.Printf("IndexedDb encryption disabled!")
}
// Attempt to ensure the database has been properly initialized
openRequest, err = idb.Global().Open(ctx, databaseName, currentVersion,
func(db *idb.Database, oldVersion, newVersion uint) error {
return nil
})
if err != nil {
return nil, err
}
// Wait for database open to finish
db, err = openRequest.Await(ctx)
if err != nil {
return nil, err
}
wrapper := &wasmModel{db: db, receivedMessageCB: cb, cipher: encryption}
return wrapper, nil
......
......@@ -44,14 +44,15 @@ func (m *manager) RegisterHandlers() {
m.mh.RegisterHandler(indexedDbWorker.UpdateSentStatusTag, m.updateSentStatusHandler)
}
// newWASMEventModelHandler is the handler for NewWASMEventModel.
// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns nil on
// success or an error message on failure.
func (m *manager) newWASMEventModelHandler(data []byte) []byte {
var msg mChannels.NewWASMEventModelMessage
err := json.Unmarshal(data, &msg)
if err != nil {
jww.ERROR.Printf("Could not JSON unmarshal NewWASMEventModelMessage "+
"from NewWASMEventModel in main thread: %+v", err)
return []byte{}
return nil
}
// Create new encryption cipher
......@@ -61,7 +62,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) []byte {
if err != nil {
jww.ERROR.Printf("Could not JSON unmarshal channel cipher from "+
"main thread: %+v", err)
return []byte{}
return nil
}
m.model, err = NewWASMEventModel(msg.Path, encryption,
......@@ -69,7 +70,7 @@ func (m *manager) newWASMEventModelHandler(data []byte) []byte {
if err != nil {
return []byte(err.Error())
}
return []byte{}
return nil
}
// messageReceivedCallback sends calls to the MessageReceivedCallback in the
......@@ -92,7 +93,8 @@ func (m *manager) messageReceivedCallback(
}
// Send it to the main thread
m.mh.SendResponse(indexedDbWorker.GetMessageTag, indexedDbWorker.InitID, data)
m.mh.SendResponse(
indexedDbWorker.GetMessageTag, indexedDbWorker.InitID, data)
}
// storeEncryptionStatus augments the functionality of
......@@ -121,7 +123,8 @@ func (m *manager) storeEncryptionStatus(
})
// Send encryption status to main thread
m.mh.SendResponse(indexedDbWorker.EncryptionStatusTag, indexedDbWorker.InitID, data)
m.mh.SendResponse(
indexedDbWorker.EncryptionStatusTag, indexedDbWorker.InitID, data)
// Wait for response
var response mChannels.EncryptionStatusReply
......@@ -145,7 +148,8 @@ func (m *manager) storeEncryptionStatus(
return response.EncryptionStatus, nil
}
// receiveHandler is the handler for wasmModel.Receive.
// receiveHandler is the handler for wasmModel.Receive. Returns nil on error or
// the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveHandler(data []byte) []byte {
var msg mDm.TransferMessage
err := json.Unmarshal(data, &msg)
......@@ -168,7 +172,8 @@ func (m *manager) receiveHandler(data []byte) []byte {
return uuidData
}
// receiveTextHandler is the handler for wasmModel.ReceiveText.
// receiveTextHandler is the handler for wasmModel.ReceiveText. Returns nil on
// error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveTextHandler(data []byte) []byte {
var msg mDm.TransferMessage
err := json.Unmarshal(data, &msg)
......@@ -191,7 +196,8 @@ func (m *manager) receiveTextHandler(data []byte) []byte {
return uuidData
}
// receiveReplyHandler is the handler for wasmModel.ReceiveReply.
// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns nil on
// error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReplyHandler(data []byte) []byte {
var msg mDm.TransferMessage
err := json.Unmarshal(data, &msg)
......@@ -214,7 +220,8 @@ func (m *manager) receiveReplyHandler(data []byte) []byte {
return uuidData
}
// receiveReactionHandler is the handler for wasmModel.ReceiveReaction.
// receiveReactionHandler is the handler for wasmModel.ReceiveReaction. Returns
// nil on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReactionHandler(data []byte) []byte {
var msg mDm.TransferMessage
err := json.Unmarshal(data, &msg)
......@@ -237,7 +244,8 @@ func (m *manager) receiveReactionHandler(data []byte) []byte {
return uuidData
}
// updateSentStatusHandler is the handler for wasmModel.UpdateSentStatus.
// updateSentStatusHandler is the handler for wasmModel.UpdateSentStatus. Always
// returns nil; meaning, no response is supplied (or expected).
func (m *manager) updateSentStatusHandler(data []byte) []byte {
var msg mDm.TransferMessage
err := json.Unmarshal(data, &msg)
......
......@@ -12,7 +12,6 @@ package main
import (
"crypto/ed25519"
"encoding/json"
"gitlab.com/elixxir/xxdk-wasm/indexedDb"
"strings"
"sync"
"syscall/js"
......@@ -22,6 +21,7 @@ import (
jww "github.com/spf13/jwalterweatherman"
"gitlab.com/elixxir/client/v4/cmix/rounds"
"gitlab.com/elixxir/client/v4/dm"
"gitlab.com/elixxir/xxdk-wasm/indexedDb"
"gitlab.com/elixxir/xxdk-wasm/utils"
"gitlab.com/xx_network/primitives/id"
......
......@@ -11,8 +11,6 @@ package main
import (
"crypto/ed25519"
"gitlab.com/elixxir/xxdk-wasm/indexedDb"
"gitlab.com/elixxir/xxdk-wasm/indexedDbWorker"
"syscall/js"
"time"
......@@ -21,6 +19,8 @@ import (
jww "github.com/spf13/jwalterweatherman"
"gitlab.com/elixxir/client/v4/dm"
cryptoChannel "gitlab.com/elixxir/crypto/channel"
"gitlab.com/elixxir/xxdk-wasm/indexedDb"
"gitlab.com/elixxir/xxdk-wasm/indexedDbWorker"
)
const (
......@@ -108,19 +108,6 @@ func newWASMModel(databaseName string, encryption cryptoChannel.Cipher,
jww.WARN.Printf("IndexedDb encryption disabled!")
}
// Attempt to ensure the database has been properly initialized
openRequest, err = idb.Global().Open(ctx, databaseName, currentVersion,
func(db *idb.Database, oldVersion, newVersion uint) error {
return nil
})
if err != nil {
return nil, err
}
// Wait for database open to finish
db, err = openRequest.Await(ctx)
if err != nil {
return nil, err
}
wrapper := &wasmModel{db: db, receivedMessageCB: cb, cipher: encryption}
return wrapper, nil
......
......@@ -31,7 +31,7 @@ const (
ErrDoesNotExist = "result is undefined"
)
// NewContext builds a context for indexedDbWorker operations.
// NewContext builds a context for indexedDb operations.
func NewContext() (context.Context, context.CancelFunc) {
return context.WithTimeout(context.Background(), dbTimeout)
}
......
......@@ -85,9 +85,7 @@ func NewWASMEventModel(path string, encryption cryptoChannel.Cipher,
errChan := make(chan string)
wh.SendMessage(indexedDbWorker.NewWASMEventModelTag, payload,
func(data []byte) {
errChan <- string(data)
})
func(data []byte) { errChan <- string(data) })
select {
case workerErr := <-errChan:
......
......@@ -76,9 +76,7 @@ func NewWASMEventModel(path string, encryption cryptoChannel.Cipher,
errChan := make(chan string)
wh.SendMessage(indexedDbWorker.NewWASMEventModelTag, payload,
func(data []byte) {
errChan <- string(data)
})
func(data []byte) { errChan <- string(data) })
select {
case workerErr := <-errChan:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment