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

Fix naming of handlers to callbacks

parent e713b405
No related branches found
No related tags found
2 merge requests!67fix for latest client release,!52XX-4382 / Move indexedDb databases to web workers
......@@ -28,31 +28,31 @@ import (
var zeroUUID = []byte{0, 0, 0, 0, 0, 0, 0, 0}
// manager handles the event model and the message handler, which is used to
// manager handles the event model and the message callbacks, which is used to
// send information between the event model and the main thread.
type manager struct {
mh *worker.ThreadManager
model channels.EventModel
}
// RegisterHandlers registers all the reception handlers to manage messages from
// the main thread for the channels.EventModel.
func (m *manager) RegisterHandlers() {
m.mh.RegisterCallback(wChannels.NewWASMEventModelTag, m.newWASMEventModelHandler)
m.mh.RegisterCallback(wChannels.JoinChannelTag, m.joinChannelHandler)
m.mh.RegisterCallback(wChannels.LeaveChannelTag, m.leaveChannelHandler)
m.mh.RegisterCallback(wChannels.ReceiveMessageTag, m.receiveMessageHandler)
m.mh.RegisterCallback(wChannels.ReceiveReplyTag, m.receiveReplyHandler)
m.mh.RegisterCallback(wChannels.ReceiveReactionTag, m.receiveReactionHandler)
m.mh.RegisterCallback(wChannels.UpdateFromUUIDTag, m.updateFromUUIDHandler)
m.mh.RegisterCallback(wChannels.UpdateFromMessageIDTag, m.updateFromMessageIDHandler)
m.mh.RegisterCallback(wChannels.GetMessageTag, m.getMessageHandler)
m.mh.RegisterCallback(wChannels.DeleteMessageTag, m.deleteMessageHandler)
// registerCallbacks registers all the reception callbacks to manage messages
// from the main thread for the channels.EventModel.
func (m *manager) registerCallbacks() {
m.mh.RegisterCallback(wChannels.NewWASMEventModelTag, m.newWASMEventModelCB)
m.mh.RegisterCallback(wChannels.JoinChannelTag, m.joinChannelCB)
m.mh.RegisterCallback(wChannels.LeaveChannelTag, m.leaveChannelCB)
m.mh.RegisterCallback(wChannels.ReceiveMessageTag, m.receiveMessageCB)
m.mh.RegisterCallback(wChannels.ReceiveReplyTag, m.receiveReplyCB)
m.mh.RegisterCallback(wChannels.ReceiveReactionTag, m.receiveReactionCB)
m.mh.RegisterCallback(wChannels.UpdateFromUUIDTag, m.updateFromUUIDCB)
m.mh.RegisterCallback(wChannels.UpdateFromMessageIDTag, m.updateFromMessageIDCB)
m.mh.RegisterCallback(wChannels.GetMessageTag, m.getMessageCB)
m.mh.RegisterCallback(wChannels.DeleteMessageTag, m.deleteMessageCB)
}
// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns an
// empty slice on success or an error message on failure.
func (m *manager) newWASMEventModelHandler(data []byte) ([]byte, error) {
// newWASMEventModelCB is the callback for NewWASMEventModel. Returns an empty
// slice on success or an error message on failure.
func (m *manager) newWASMEventModelCB(data []byte) ([]byte, error) {
var msg wChannels.NewWASMEventModelMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -105,7 +105,7 @@ func (m *manager) messageReceivedCallback(
//
// storeDatabaseName adheres to the storeDatabaseNameFn type.
func (m *manager) storeDatabaseName(databaseName string) error {
// Register response handler with channel that will wait for the response
// Register response callback with channel that will wait for the response
responseChan := make(chan []byte)
m.mh.RegisterCallback(wChannels.StoreDatabaseNameTag,
func(data []byte) ([]byte, error) {
......@@ -149,7 +149,7 @@ func (m *manager) storeEncryptionStatus(
return false, err
}
// Register response handler with channel that will wait for the response
// Register response callback with channel that will wait for the response
responseChan := make(chan []byte)
m.mh.RegisterCallback(wChannels.EncryptionStatusTag,
func(data []byte) ([]byte, error) {
......@@ -182,9 +182,9 @@ func (m *manager) storeEncryptionStatus(
return response.EncryptionStatus, nil
}
// joinChannelHandler is the handler for wasmModel.JoinChannel. Always returns
// nil; meaning, no response is supplied (or expected).
func (m *manager) joinChannelHandler(data []byte) ([]byte, error) {
// joinChannelCB is the callback for wasmModel.JoinChannel. Always returns nil;
// meaning, no response is supplied (or expected).
func (m *manager) joinChannelCB(data []byte) ([]byte, error) {
var channel cryptoBroadcast.Channel
err := json.Unmarshal(data, &channel)
if err != nil {
......@@ -196,9 +196,9 @@ func (m *manager) joinChannelHandler(data []byte) ([]byte, error) {
return nil, nil
}
// leaveChannelHandler is the handler for wasmModel.LeaveChannel. Always returns
// leaveChannelCB is the callback for wasmModel.LeaveChannel. Always returns
// nil; meaning, no response is supplied (or expected).
func (m *manager) leaveChannelHandler(data []byte) ([]byte, error) {
func (m *manager) leaveChannelCB(data []byte) ([]byte, error) {
channelID, err := id.Unmarshal(data)
if err != nil {
return nil, errors.Errorf(
......@@ -209,9 +209,9 @@ func (m *manager) leaveChannelHandler(data []byte) ([]byte, error) {
return nil, nil
}
// receiveMessageHandler is the handler for wasmModel.ReceiveMessage. Returns a
// UUID of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveMessageHandler(data []byte) ([]byte, error) {
// receiveMessageCB is the callback for wasmModel.ReceiveMessage. Returns a UUID
// of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveMessageCB(data []byte) ([]byte, error) {
var msg channels.ModelMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -231,9 +231,9 @@ func (m *manager) receiveMessageHandler(data []byte) ([]byte, error) {
return uuidData, nil
}
// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns a UUID
// of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReplyHandler(data []byte) ([]byte, error) {
// receiveReplyCB is the callback for wasmModel.ReceiveReply. Returns a UUID of
// 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReplyCB(data []byte) ([]byte, error) {
var msg wChannels.ReceiveReplyMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -253,9 +253,9 @@ func (m *manager) receiveReplyHandler(data []byte) ([]byte, error) {
return uuidData, nil
}
// receiveReactionHandler is the handler for wasmModel.ReceiveReaction. Returns
// a UUID of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReactionHandler(data []byte) ([]byte, error) {
// receiveReactionCB is the callback for wasmModel.ReceiveReaction. Returns a
// UUID of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReactionCB(data []byte) ([]byte, error) {
var msg wChannels.ReceiveReplyMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -275,9 +275,9 @@ func (m *manager) receiveReactionHandler(data []byte) ([]byte, error) {
return uuidData, nil
}
// updateFromUUIDHandler is the handler for wasmModel.UpdateFromUUID. Always
// returns nil; meaning, no response is supplied (or expected).
func (m *manager) updateFromUUIDHandler(data []byte) ([]byte, error) {
// updateFromUUIDCB is the callback for wasmModel.UpdateFromUUID. Always returns
// nil; meaning, no response is supplied (or expected).
func (m *manager) updateFromUUIDCB(data []byte) ([]byte, error) {
var msg wChannels.MessageUpdateInfo
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -313,9 +313,9 @@ func (m *manager) updateFromUUIDHandler(data []byte) ([]byte, error) {
return nil, nil
}
// updateFromMessageIDHandler is the handler for wasmModel.UpdateFromMessageID.
// updateFromMessageIDCB is the callback for wasmModel.UpdateFromMessageID.
// Always returns nil; meaning, no response is supplied (or expected).
func (m *manager) updateFromMessageIDHandler(data []byte) ([]byte, error) {
func (m *manager) updateFromMessageIDCB(data []byte) ([]byte, error) {
var msg wChannels.MessageUpdateInfo
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -353,11 +353,11 @@ func (m *manager) updateFromMessageIDHandler(data []byte) ([]byte, error) {
return uuidData, nil
}
// getMessageHandler is the handler for wasmModel.GetMessage. Returns JSON
// getMessageCB is the callback 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, error) {
func (m *manager) getMessageCB(data []byte) ([]byte, error) {
messageID, err := message.UnmarshalID(data)
if err != nil {
return nil, errors.Errorf(
......@@ -381,9 +381,9 @@ func (m *manager) getMessageHandler(data []byte) ([]byte, error) {
return messageData, nil
}
// deleteMessageHandler is the handler for wasmModel.DeleteMessage. Always
// returns nil; meaning, no response is supplied (or expected).
func (m *manager) deleteMessageHandler(data []byte) ([]byte, error) {
// deleteMessageCB is the callback for wasmModel.DeleteMessage. Always returns
// nil; meaning, no response is supplied (or expected).
func (m *manager) deleteMessageCB(data []byte) ([]byte, error) {
messageID, err := message.UnmarshalID(data)
if err != nil {
return nil, errors.Errorf(
......
......@@ -33,7 +33,7 @@ func main() {
js.Global().Set("RegisterLogWriter", js.FuncOf(wasm.RegisterLogWriter))
m := &manager{mh: worker.NewThreadManager("ChannelsIndexedDbWorker")}
m.RegisterHandlers()
m.registerCallbacks()
m.mh.SignalReady()
<-make(chan bool)
fmt.Println("[WW] Closing xxDK WebAssembly Channels Database Worker.")
......
......@@ -17,7 +17,6 @@ import (
"gitlab.com/elixxir/client/v4/dm"
cryptoChannel "gitlab.com/elixxir/crypto/channel"
"gitlab.com/elixxir/crypto/fastRNG"
wChannels "gitlab.com/elixxir/xxdk-wasm/indexedDb/worker/channels"
wDm "gitlab.com/elixxir/xxdk-wasm/indexedDb/worker/dm"
"gitlab.com/elixxir/xxdk-wasm/worker"
"gitlab.com/xx_network/crypto/csprng"
......@@ -26,28 +25,28 @@ import (
var zeroUUID = []byte{0, 0, 0, 0, 0, 0, 0, 0}
// manager handles the event model and the message handler, which is used to
// manager handles the event model and the message callbacks, which is used to
// send information between the event model and the main thread.
type manager struct {
mh *worker.ThreadManager
model dm.EventModel
}
// RegisterHandlers registers all the reception handlers to manage messages from
// the main thread for the channels.EventModel.
func (m *manager) RegisterHandlers() {
m.mh.RegisterCallback(wDm.NewWASMEventModelTag, m.newWASMEventModelHandler)
m.mh.RegisterCallback(wDm.ReceiveTag, m.receiveHandler)
m.mh.RegisterCallback(wDm.ReceiveTextTag, m.receiveTextHandler)
m.mh.RegisterCallback(wDm.ReceiveReplyTag, m.receiveReplyHandler)
m.mh.RegisterCallback(wDm.ReceiveReactionTag, m.receiveReactionHandler)
m.mh.RegisterCallback(wDm.UpdateSentStatusTag, m.updateSentStatusHandler)
// registerCallbacks registers all the reception callbacks to manage messages
// from the main thread for the channels.EventModel.
func (m *manager) registerCallbacks() {
m.mh.RegisterCallback(wDm.NewWASMEventModelTag, m.newWASMEventModelCB)
m.mh.RegisterCallback(wDm.ReceiveTag, m.receiveCB)
m.mh.RegisterCallback(wDm.ReceiveTextTag, m.receiveTextCB)
m.mh.RegisterCallback(wDm.ReceiveReplyTag, m.receiveReplyCB)
m.mh.RegisterCallback(wDm.ReceiveReactionTag, m.receiveReactionCB)
m.mh.RegisterCallback(wDm.UpdateSentStatusTag, m.updateSentStatusCB)
}
// newWASMEventModelHandler is the handler for NewWASMEventModel. Returns an
// empty slice on success or an error message on failure.
func (m *manager) newWASMEventModelHandler(data []byte) ([]byte, error) {
var msg wChannels.NewWASMEventModelMessage
// newWASMEventModelCB is the callback for NewWASMEventModel. Returns an empty
// slice on success or an error message on failure.
func (m *manager) newWASMEventModelCB(data []byte) ([]byte, error) {
var msg wDm.NewWASMEventModelMessage
err := json.Unmarshal(data, &msg)
if err != nil {
return []byte{}, errors.Errorf(
......@@ -99,7 +98,7 @@ func (m *manager) messageReceivedCallback(
//
// storeDatabaseName adheres to the storeDatabaseNameFn type.
func (m *manager) storeDatabaseName(databaseName string) error {
// Register response handler with channel that will wait for the response
// Register response callback with channel that will wait for the response
responseChan := make(chan []byte)
m.mh.RegisterCallback(wDm.StoreDatabaseNameTag,
func(data []byte) ([]byte, error) {
......@@ -134,7 +133,7 @@ func (m *manager) storeDatabaseName(databaseName string) error {
func (m *manager) storeEncryptionStatus(
databaseName string, encryption bool) (bool, error) {
// Package parameters for sending
msg := &wChannels.EncryptionStatusMessage{
msg := &wDm.EncryptionStatusMessage{
DatabaseName: databaseName,
EncryptionStatus: encryption,
}
......@@ -143,7 +142,7 @@ func (m *manager) storeEncryptionStatus(
return false, err
}
// Register response handler with channel that will wait for the response
// Register response callback with channel that will wait for the response
responseChan := make(chan []byte)
m.mh.RegisterCallback(wDm.EncryptionStatusTag,
func(data []byte) ([]byte, error) {
......@@ -155,7 +154,7 @@ func (m *manager) storeEncryptionStatus(
m.mh.SendMessage(wDm.EncryptionStatusTag, data)
// Wait for response
var response wChannels.EncryptionStatusReply
var response wDm.EncryptionStatusReply
select {
case responseData := <-responseChan:
if err = json.Unmarshal(responseData, &response); err != nil {
......@@ -176,9 +175,9 @@ func (m *manager) storeEncryptionStatus(
return response.EncryptionStatus, nil
}
// receiveHandler is the handler for wasmModel.Receive. Returns a UUID of 0 on
// error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveHandler(data []byte) ([]byte, error) {
// receiveCB is the callback for wasmModel.Receive. Returns a UUID of 0 on error
// or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveCB(data []byte) ([]byte, error) {
var msg wDm.TransferMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -197,9 +196,9 @@ func (m *manager) receiveHandler(data []byte) ([]byte, error) {
return uuidData, nil
}
// receiveTextHandler is the handler for wasmModel.ReceiveText. Returns a UUID
// of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveTextHandler(data []byte) ([]byte, error) {
// receiveTextCB is the callback for wasmModel.ReceiveText. Returns a UUID of 0
// on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveTextCB(data []byte) ([]byte, error) {
var msg wDm.TransferMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -219,9 +218,9 @@ func (m *manager) receiveTextHandler(data []byte) ([]byte, error) {
return uuidData, nil
}
// receiveReplyHandler is the handler for wasmModel.ReceiveReply. Returns a UUID
// of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReplyHandler(data []byte) ([]byte, error) {
// receiveReplyCB is the callback for wasmModel.ReceiveReply. Returns a UUID of
// 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReplyCB(data []byte) ([]byte, error) {
var msg wDm.TransferMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -241,9 +240,9 @@ func (m *manager) receiveReplyHandler(data []byte) ([]byte, error) {
return uuidData, nil
}
// receiveReactionHandler is the handler for wasmModel.ReceiveReaction. Returns
// a UUID of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReactionHandler(data []byte) ([]byte, error) {
// receiveReactionCB is the callback for wasmModel.ReceiveReaction. Returns a
// UUID of 0 on error or the JSON marshalled UUID (uint64) on success.
func (m *manager) receiveReactionCB(data []byte) ([]byte, error) {
var msg wDm.TransferMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......@@ -263,9 +262,9 @@ func (m *manager) receiveReactionHandler(data []byte) ([]byte, error) {
return uuidData, nil
}
// updateSentStatusHandler is the handler for wasmModel.UpdateSentStatus. Always
// updateSentStatusCB is the callback for wasmModel.UpdateSentStatus. Always
// returns nil; meaning, no response is supplied (or expected).
func (m *manager) updateSentStatusHandler(data []byte) ([]byte, error) {
func (m *manager) updateSentStatusCB(data []byte) ([]byte, error) {
var msg wDm.TransferMessage
err := json.Unmarshal(data, &msg)
if err != nil {
......
......@@ -33,7 +33,7 @@ func main() {
js.Global().Set("RegisterLogWriter", js.FuncOf(wasm.RegisterLogWriter))
m := &manager{mh: worker.NewThreadManager("DmIndexedDbWorker")}
m.RegisterHandlers()
m.registerCallbacks()
m.mh.SignalReady()
<-make(chan bool)
fmt.Println("[WW] Closing xxDK WebAssembly Channels Database Worker.")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment