Browse Source

Replace SetEventsMode with SetOption

pull/1780/head
Jae Kwon 9 years ago
parent
commit
e40c4834a8
6 changed files with 76 additions and 80 deletions
  1. +10
    -10
      README.md
  2. +4
    -4
      example/main.go
  3. +3
    -3
      server/server.go
  4. +3
    -3
      types/application.go
  5. +0
    -7
      types/events.go
  6. +56
    -53
      types/messages.go

+ 10
- 10
README.md View File

@ -34,16 +34,6 @@ TMSP is an asynchronous streaming protocol: message responses are written back a
* __Usage__:<br/>
Roll back to the last commit
#### SetEventsMode
* __Arguments__:
* `EventsMode (int8)`:
* `EventsModeOff (0)`: Events are not reported. Used for mempool.
* `EventsModeOn (1)`: Report events that are listened on.
* __Returns__:
* `RetCode (int8)`
* __Usage__:<br/>
Set event reporting mode for future transactions
#### AddListener
* __Arguments__:
* `EventKey (string)`
@ -70,3 +60,13 @@ TMSP is an asynchronous streaming protocol: message responses are written back a
* __Usage__:<br/>
Return an array of strings about the application state. Application specific.
#### SetOption
* __Arguments__:
* `Key (string)`
* `Value (string)`
* __Returns__:
* `RetCode (int8)`
* __Usage__:<br/>
Set application options. E.g. Key="mode", Value="mempool" for a mempool connection, or Key="mode", Value="consensus" for a consensus connection.
Other options are application specific.

+ 4
- 4
example/main.go View File

@ -51,6 +51,10 @@ func (dapp *DummyApplication) Info() []string {
return []string{Fmt("size:%v", dapp.state.Size())}
}
func (dapp *DummyApplication) SetOption(key string, value string) types.RetCode {
return 0
}
func (dapp *DummyApplication) AppendTx(tx []byte) ([]types.Event, types.RetCode) {
dapp.state.Set(tx, tx)
return nil, 0
@ -71,10 +75,6 @@ func (dapp *DummyApplication) Rollback() types.RetCode {
return 0
}
func (dapp *DummyApplication) SetEventsMode(mode types.EventsMode) types.RetCode {
return 0
}
func (dapp *DummyApplication) AddListener(key string) types.RetCode {
return 0
}


+ 3
- 3
server/server.go View File

@ -77,6 +77,9 @@ func handleRequest(app types.Application, req types.Request, responses chan<- ty
case types.RequestInfo:
data := app.Info()
responses <- types.ResponseInfo{data}
case types.RequestSetOption:
retCode := app.SetOption(req.Key, req.Value)
responses <- types.ResponseSetOption{retCode}
case types.RequestAppendTx:
events, retCode := app.AppendTx(req.TxBytes)
responses <- types.ResponseAppendTx{retCode}
@ -92,9 +95,6 @@ func handleRequest(app types.Application, req types.Request, responses chan<- ty
case types.RequestRollback:
retCode := app.Rollback()
responses <- types.ResponseRollback{retCode}
case types.RequestSetEventsMode:
retCode := app.SetEventsMode(req.EventsMode)
responses <- types.ResponseSetEventsMode{retCode}
case types.RequestAddListener:
retCode := app.AddListener(req.EventKey)
responses <- types.ResponseAddListener{retCode}


+ 3
- 3
types/application.go View File

@ -8,6 +8,9 @@ type Application interface {
// Return application info
Info() []string
// Set application option (e.g. mode=mempool, mode=consensus)
SetOption(key string, value string) RetCode
// Append a tx, which may or may not get committed
AppendTx(tx []byte) ([]Event, RetCode)
@ -20,9 +23,6 @@ type Application interface {
// Rollback to the latest commit
Rollback() RetCode
// Set events reporting mode
SetEventsMode(mode EventsMode) RetCode
// Add event listener
AddListener(key string) RetCode


+ 0
- 7
types/events.go View File

@ -1,12 +1,5 @@
package types
type EventsMode int8
const (
EventsModeOff = EventsMode(0)
EventsModeOn = EventsMode(1)
)
type Event struct {
Key string
Data []byte


+ 56
- 53
types/messages.go View File

@ -3,32 +3,34 @@ package types
import "github.com/tendermint/go-wire"
const (
requestTypeEcho = byte(0x01)
requestTypeFlush = byte(0x02)
requestTypeInfo = byte(0x03)
requestTypeEcho = byte(0x01)
requestTypeFlush = byte(0x02)
requestTypeInfo = byte(0x03)
requestTypeSetOption = byte(0x04)
// reserved for GetOption = byte(0x05)
responseTypeException = byte(0x10)
responseTypeEcho = byte(0x11)
responseTypeFlush = byte(0x12)
responseTypeInfo = byte(0x13)
requestTypeAppendTx = byte(0x21)
requestTypeGetHash = byte(0x22)
requestTypeCommit = byte(0x23)
requestTypeRollback = byte(0x24)
requestTypeSetEventsMode = byte(0x25)
requestTypeAddListener = byte(0x26)
requestTypeRemListener = byte(0x27)
// reserved for responseTypeEvent 0x28
responseTypeAppendTx = byte(0x31)
responseTypeGetHash = byte(0x32)
responseTypeCommit = byte(0x33)
responseTypeRollback = byte(0x34)
responseTypeSetEventsMode = byte(0x35)
responseTypeAddListener = byte(0x36)
responseTypeRemListener = byte(0x37)
responseTypeEvent = byte(0x38)
responseTypeSetOption = byte(0x14)
// reserved for GetOption = byte(0x15)
requestTypeAppendTx = byte(0x21)
requestTypeGetHash = byte(0x22)
requestTypeCommit = byte(0x23)
requestTypeRollback = byte(0x24)
requestTypeAddListener = byte(0x25)
requestTypeRemListener = byte(0x26)
// reserved for responseTypeEvent 0x27
responseTypeAppendTx = byte(0x31)
responseTypeGetHash = byte(0x32)
responseTypeCommit = byte(0x33)
responseTypeRollback = byte(0x34)
responseTypeAddListener = byte(0x35)
responseTypeRemListener = byte(0x36)
responseTypeEvent = byte(0x37)
)
//----------------------------------------
@ -43,6 +45,11 @@ type RequestFlush struct {
type RequestInfo struct {
}
type RequestSetOption struct {
Key string
Value string
}
type RequestAppendTx struct {
TxBytes []byte
}
@ -56,10 +63,6 @@ type RequestCommit struct {
type RequestRollback struct {
}
type RequestSetEventsMode struct {
EventsMode
}
type RequestAddListener struct {
EventKey string
}
@ -72,27 +75,27 @@ type Request interface {
AssertRequestType()
}
func (_ RequestEcho) AssertRequestType() {}
func (_ RequestFlush) AssertRequestType() {}
func (_ RequestInfo) AssertRequestType() {}
func (_ RequestAppendTx) AssertRequestType() {}
func (_ RequestGetHash) AssertRequestType() {}
func (_ RequestCommit) AssertRequestType() {}
func (_ RequestRollback) AssertRequestType() {}
func (_ RequestSetEventsMode) AssertRequestType() {}
func (_ RequestAddListener) AssertRequestType() {}
func (_ RequestRemListener) AssertRequestType() {}
func (_ RequestEcho) AssertRequestType() {}
func (_ RequestFlush) AssertRequestType() {}
func (_ RequestInfo) AssertRequestType() {}
func (_ RequestSetOption) AssertRequestType() {}
func (_ RequestAppendTx) AssertRequestType() {}
func (_ RequestGetHash) AssertRequestType() {}
func (_ RequestCommit) AssertRequestType() {}
func (_ RequestRollback) AssertRequestType() {}
func (_ RequestAddListener) AssertRequestType() {}
func (_ RequestRemListener) AssertRequestType() {}
var _ = wire.RegisterInterface(
struct{ Request }{},
wire.ConcreteType{RequestEcho{}, requestTypeEcho},
wire.ConcreteType{RequestFlush{}, requestTypeFlush},
wire.ConcreteType{RequestInfo{}, requestTypeInfo},
wire.ConcreteType{RequestSetOption{}, requestTypeSetOption},
wire.ConcreteType{RequestAppendTx{}, requestTypeAppendTx},
wire.ConcreteType{RequestGetHash{}, requestTypeGetHash},
wire.ConcreteType{RequestCommit{}, requestTypeCommit},
wire.ConcreteType{RequestRollback{}, requestTypeRollback},
wire.ConcreteType{RequestSetEventsMode{}, requestTypeSetEventsMode},
wire.ConcreteType{RequestAddListener{}, requestTypeAddListener},
wire.ConcreteType{RequestRemListener{}, requestTypeRemListener},
)
@ -110,6 +113,10 @@ type ResponseInfo struct {
Data []string
}
type ResponseSetOption struct {
RetCode
}
type ResponseAppendTx struct {
RetCode
}
@ -127,10 +134,6 @@ type ResponseRollback struct {
RetCode
}
type ResponseSetEventsMode struct {
RetCode
}
type ResponseAddListener struct {
RetCode
}
@ -151,29 +154,29 @@ type Response interface {
AssertResponseType()
}
func (_ ResponseEcho) AssertResponseType() {}
func (_ ResponseFlush) AssertResponseType() {}
func (_ ResponseInfo) AssertResponseType() {}
func (_ ResponseAppendTx) AssertResponseType() {}
func (_ ResponseGetHash) AssertResponseType() {}
func (_ ResponseCommit) AssertResponseType() {}
func (_ ResponseRollback) AssertResponseType() {}
func (_ ResponseSetEventsMode) AssertResponseType() {}
func (_ ResponseAddListener) AssertResponseType() {}
func (_ ResponseRemListener) AssertResponseType() {}
func (_ ResponseException) AssertResponseType() {}
func (_ ResponseEvent) AssertResponseType() {}
func (_ ResponseEcho) AssertResponseType() {}
func (_ ResponseFlush) AssertResponseType() {}
func (_ ResponseInfo) AssertResponseType() {}
func (_ ResponseSetOption) AssertResponseType() {}
func (_ ResponseAppendTx) AssertResponseType() {}
func (_ ResponseGetHash) AssertResponseType() {}
func (_ ResponseCommit) AssertResponseType() {}
func (_ ResponseRollback) AssertResponseType() {}
func (_ ResponseAddListener) AssertResponseType() {}
func (_ ResponseRemListener) AssertResponseType() {}
func (_ ResponseException) AssertResponseType() {}
func (_ ResponseEvent) AssertResponseType() {}
var _ = wire.RegisterInterface(
struct{ Response }{},
wire.ConcreteType{ResponseEcho{}, responseTypeEcho},
wire.ConcreteType{ResponseFlush{}, responseTypeFlush},
wire.ConcreteType{ResponseInfo{}, responseTypeInfo},
wire.ConcreteType{ResponseSetOption{}, responseTypeSetOption},
wire.ConcreteType{ResponseAppendTx{}, responseTypeAppendTx},
wire.ConcreteType{ResponseGetHash{}, responseTypeGetHash},
wire.ConcreteType{ResponseCommit{}, responseTypeCommit},
wire.ConcreteType{ResponseRollback{}, responseTypeRollback},
wire.ConcreteType{ResponseSetEventsMode{}, responseTypeSetEventsMode},
wire.ConcreteType{ResponseAddListener{}, responseTypeAddListener},
wire.ConcreteType{ResponseRemListener{}, responseTypeRemListener},
wire.ConcreteType{ResponseException{}, responseTypeException},


Loading…
Cancel
Save