etcdserver/etcdserverpb: rpc WatchResponse with events slice

This commit is contained in:
Gyu-Ho Lee 2015-12-31 19:24:46 -08:00
parent 73230f9603
commit 8da6e76588
2 changed files with 29 additions and 29 deletions

View File

@ -368,9 +368,8 @@ func (m *WatchRequest) String() string { return proto.CompactTextString(m) }
func (*WatchRequest) ProtoMessage() {} func (*WatchRequest) ProtoMessage() {}
type WatchResponse struct { type WatchResponse struct {
Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"` Header *ResponseHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
// TODO: support batched events response? Events []*storagepb.Event `protobuf:"bytes,2,rep,name=events" json:"events,omitempty"`
Event *storagepb.Event `protobuf:"bytes,2,opt,name=event" json:"event,omitempty"`
} }
func (m *WatchResponse) Reset() { *m = WatchResponse{} } func (m *WatchResponse) Reset() { *m = WatchResponse{} }
@ -384,9 +383,9 @@ func (m *WatchResponse) GetHeader() *ResponseHeader {
return nil return nil
} }
func (m *WatchResponse) GetEvent() *storagepb.Event { func (m *WatchResponse) GetEvents() []*storagepb.Event {
if m != nil { if m != nil {
return m.Event return m.Events
} }
return nil return nil
} }
@ -1567,15 +1566,17 @@ func (m *WatchResponse) MarshalTo(data []byte) (int, error) {
} }
i += n12 i += n12
} }
if m.Event != nil { if len(m.Events) > 0 {
data[i] = 0x12 for _, msg := range m.Events {
i++ data[i] = 0x12
i = encodeVarintRpc(data, i, uint64(m.Event.Size())) i++
n13, err := m.Event.MarshalTo(data[i:]) i = encodeVarintRpc(data, i, uint64(msg.Size()))
if err != nil { n, err := msg.MarshalTo(data[i:])
return 0, err if err != nil {
return 0, err
}
i += n
} }
i += n13
} }
return i, nil return i, nil
} }
@ -1622,11 +1623,11 @@ func (m *LeaseCreateResponse) MarshalTo(data []byte) (int, error) {
data[i] = 0xa data[i] = 0xa
i++ i++
i = encodeVarintRpc(data, i, uint64(m.Header.Size())) i = encodeVarintRpc(data, i, uint64(m.Header.Size()))
n14, err := m.Header.MarshalTo(data[i:]) n13, err := m.Header.MarshalTo(data[i:])
if err != nil { if err != nil {
return 0, err return 0, err
} }
i += n14 i += n13
} }
if m.LeaseId != 0 { if m.LeaseId != 0 {
data[i] = 0x10 data[i] = 0x10
@ -1689,11 +1690,11 @@ func (m *LeaseRevokeResponse) MarshalTo(data []byte) (int, error) {
data[i] = 0xa data[i] = 0xa
i++ i++
i = encodeVarintRpc(data, i, uint64(m.Header.Size())) i = encodeVarintRpc(data, i, uint64(m.Header.Size()))
n15, err := m.Header.MarshalTo(data[i:]) n14, err := m.Header.MarshalTo(data[i:])
if err != nil { if err != nil {
return 0, err return 0, err
} }
i += n15 i += n14
} }
return i, nil return i, nil
} }
@ -1740,11 +1741,11 @@ func (m *LeaseKeepAliveResponse) MarshalTo(data []byte) (int, error) {
data[i] = 0xa data[i] = 0xa
i++ i++
i = encodeVarintRpc(data, i, uint64(m.Header.Size())) i = encodeVarintRpc(data, i, uint64(m.Header.Size()))
n16, err := m.Header.MarshalTo(data[i:]) n15, err := m.Header.MarshalTo(data[i:])
if err != nil { if err != nil {
return 0, err return 0, err
} }
i += n16 i += n15
} }
if m.LeaseId != 0 { if m.LeaseId != 0 {
data[i] = 0x10 data[i] = 0x10
@ -2065,9 +2066,11 @@ func (m *WatchResponse) Size() (n int) {
l = m.Header.Size() l = m.Header.Size()
n += 1 + l + sovRpc(uint64(l)) n += 1 + l + sovRpc(uint64(l))
} }
if m.Event != nil { if len(m.Events) > 0 {
l = m.Event.Size() for _, e := range m.Events {
n += 1 + l + sovRpc(uint64(l)) l = e.Size()
n += 1 + l + sovRpc(uint64(l))
}
} }
return n return n
} }
@ -3862,7 +3865,7 @@ func (m *WatchResponse) Unmarshal(data []byte) error {
iNdEx = postIndex iNdEx = postIndex
case 2: case 2:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Event", wireType) return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType)
} }
var msglen int var msglen int
for shift := uint(0); ; shift += 7 { for shift := uint(0); ; shift += 7 {
@ -3883,10 +3886,8 @@ func (m *WatchResponse) Unmarshal(data []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
if m.Event == nil { m.Events = append(m.Events, &storagepb.Event{})
m.Event = &storagepb.Event{} if err := m.Events[len(m.Events)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
}
if err := m.Event.Unmarshal(data[iNdEx:postIndex]); err != nil {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex

View File

@ -210,8 +210,7 @@ message WatchRequest {
message WatchResponse { message WatchResponse {
ResponseHeader header = 1; ResponseHeader header = 1;
// TODO: support batched events response? repeated storagepb.Event events = 2;
storagepb.Event event = 2;
} }
message LeaseCreateRequest { message LeaseCreateRequest {