Skip to content

Commit

Permalink
add message types
Browse files Browse the repository at this point in the history
  • Loading branch information
edwardmack committed Oct 6, 2023
1 parent d0bb0d0 commit 6813e9d
Show file tree
Hide file tree
Showing 2 changed files with 118 additions and 5 deletions.
51 changes: 47 additions & 4 deletions dot/parachain/availability-store/availabilitystore.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package availability_store

import (
"context"
"fmt"

"github.com/ChainSafe/gossamer/internal/log"
)

Expand All @@ -24,18 +24,61 @@ type AvailabilityStoreSubsystem struct {
func (av *AvailabilityStoreSubsystem) Run(ctx context.Context, OverseerToSubsystem chan any,
SubsystemToOverseer chan any) error {
av.processMessages()
return nil
}

func (av *AvailabilityStoreSubsystem) processMessages() {
for msg := range av.OverseerToSubSystem {
switch msg.(type) {
logger.Debugf("received message %v", msg)
switch msg := msg.(type) {
case QueryAvailableData:
av.handleQueryAvailableData(msg.(QueryAvailableData))
av.handleQueryAvailableData(msg)
case QueryDataAvailability:
av.handleQueryDataAvailability(msg)
case QueryChunk:
av.handleQueryChunk(msg)
case QueryChunkSize:
av.handleQueryChunkSize(msg)
case QueryAllChunks:
av.handleQueryAllChunks(msg)
case QueryChunkAvailability:
av.handleQueryChunkAvailability(msg)
case StoreChunk:
av.handleStoreChunk(msg)
case StoreAvailableData:
av.handleStoreAvailableData(msg)
}
}
fmt.Printf("AvailabilityStore: Got message %v\n", msg)
}

func (av *AvailabilityStoreSubsystem) handleQueryAvailableData(msg QueryAvailableData) {
// TODO: handle query available data
}

func (av *AvailabilityStoreSubsystem) handleQueryDataAvailability(msg QueryDataAvailability) {
// TODO: handle query data availability
}

func (av *AvailabilityStoreSubsystem) handleQueryChunk(msg QueryChunk) {
// TODO: handle query chunk
}

func (av *AvailabilityStoreSubsystem) handleQueryChunkSize(msg QueryChunkSize) {
// TODO: handle query chunk size
}

func (av *AvailabilityStoreSubsystem) handleQueryAllChunks(msg QueryAllChunks) {
// TODO: handle query all chunks
}

func (av *AvailabilityStoreSubsystem) handleQueryChunkAvailability(msg QueryChunkAvailability) {
// TODO: handle query chunk availability
}

func (av *AvailabilityStoreSubsystem) handleStoreChunk(msg StoreChunk) {
// TODO: handle store chunk
}

func (av *AvailabilityStoreSubsystem) handleStoreAvailableData(msg StoreAvailableData) {
// TODO: handle store available data
}
72 changes: 71 additions & 1 deletion dot/parachain/availability-store/messages.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,79 @@ func (QueryAvailableData) Index() uint {
return 0
}

type QueryDataAvailability struct {
CandidateHash common.Hash
// TDDO: add oneshot sender
}

func (QueryDataAvailability) Index() uint {
return 1
}

type QueryChunk struct {
CandidateHash common.Hash
ValidatorIndex uint32
// TODO: add oneshot sender
}

func (QueryChunk) Index() uint {
return 2
}

type QueryChunkSize struct {
CandidateHash common.Hash
// TODO: add oneshot sender
}

func (QueryChunkSize) Index() uint {
return 3
}

type QueryAllChunks struct {
CandidateHash common.Hash
// TODO: add oneshot sender
}

func (QueryAllChunks) Index() uint {
return 4
}

type QueryChunkAvailability struct {
CandidateHash common.Hash
ValidatorIndex uint32
// TODO: add oneshot sender
}

func (QueryChunkAvailability) Index() uint {
return 5
}

type StoreChunk struct {
CandidateHash common.Hash
Chunk []byte
// TODO: add oneshot sender
}

func (StoreChunk) Index() uint {
return 6
}

type StoreAvailableData struct {
CandidateHash common.Hash
NValidators uint32
AvailableData AvailableData
ExpectedErasureRoot common.Hash
// TODO: add oneshot sender
}

func (StoreAvailableData) Index() uint {
return 7
}

// NewCollationFetchingResponse returns a new collation fetching response varying data type
func NewAvailabilityStoreMessage() AvailabilityStoreMessage {
vdt := scale.MustNewVaryingDataType(QueryAvailableData{})
vdt := scale.MustNewVaryingDataType(QueryAvailableData{}, QueryDataAvailability{}, QueryChunk{},
QueryChunkSize{}, QueryAllChunks{}, QueryChunkAvailability{}, StoreChunk{}, StoreAvailableData{})
return AvailabilityStoreMessage(vdt)
}

Expand Down

0 comments on commit 6813e9d

Please sign in to comment.