func _GcRule_OneofSizer(msg proto.Message) (n int) { m := msg.(*GcRule) // rule switch x := m.Rule.(type) { case *GcRule_MaxNumVersions: n += proto.SizeVarint(1<<3 | proto.WireVarint) n += proto.SizeVarint(uint64(x.MaxNumVersions)) case *GcRule_MaxAge: s := proto.Size(x.MaxAge) n += proto.SizeVarint(2<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *GcRule_Intersection_: s := proto.Size(x.Intersection) n += proto.SizeVarint(3<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *GcRule_Union_: s := proto.Size(x.Union) n += proto.SizeVarint(4<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n }
// flushLog attempts to flush any pending logs to the appserver. // It should not be called concurrently. func (c *context) flushLog(force bool) (flushed bool) { c.pendingLogs.Lock() // Grab up to 30 MB. We can get away with up to 32 MB, but let's be cautious. n, rem := 0, 30<<20 for ; n < len(c.pendingLogs.lines); n++ { ll := c.pendingLogs.lines[n] // Each log line will require about 3 bytes of overhead. nb := proto.Size(ll) + 3 if nb > rem { break } rem -= nb } lines := c.pendingLogs.lines[:n] c.pendingLogs.lines = c.pendingLogs.lines[n:] c.pendingLogs.Unlock() if len(lines) == 0 && !force { // Nothing to flush. return false } rescueLogs := false defer func() { if rescueLogs { c.pendingLogs.Lock() c.pendingLogs.lines = append(lines, c.pendingLogs.lines...) c.pendingLogs.Unlock() } }() buf, err := proto.Marshal(&logpb.UserAppLogGroup{ LogLine: lines, }) if err != nil { log.Printf("internal.flushLog: marshaling UserAppLogGroup: %v", err) rescueLogs = true return false } req := &logpb.FlushRequest{ Logs: buf, } res := &basepb.VoidProto{} c.pendingLogs.Lock() c.pendingLogs.flushes++ c.pendingLogs.Unlock() if err := Call(toContext(c), "logservice", "Flush", req, res); err != nil { log.Printf("internal.flushLog: Flush RPC: %v", err) rescueLogs = true return false } return true }
func _ServerArgs_OneofSizer(msg proto.Message) (n int) { m := msg.(*ServerArgs) // argtype switch x := m.Argtype.(type) { case *ServerArgs_Setup: s := proto.Size(x.Setup) n += proto.SizeVarint(1<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *ServerArgs_Mark: s := proto.Size(x.Mark) n += proto.SizeVarint(2<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n }
func _ReadRowsRequest_OneofSizer(msg proto.Message) (n int) { m := msg.(*ReadRowsRequest) // target switch x := m.Target.(type) { case *ReadRowsRequest_RowKey: n += proto.SizeVarint(2<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(len(x.RowKey))) n += len(x.RowKey) case *ReadRowsRequest_RowRange: s := proto.Size(x.RowRange) n += proto.SizeVarint(3<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n }
func _ReadRowsResponse_Chunk_OneofSizer(msg proto.Message) (n int) { m := msg.(*ReadRowsResponse_Chunk) // chunk switch x := m.Chunk.(type) { case *ReadRowsResponse_Chunk_RowContents: s := proto.Size(x.RowContents) n += proto.SizeVarint(1<<3 | proto.WireBytes) n += proto.SizeVarint(uint64(s)) n += s case *ReadRowsResponse_Chunk_ResetRow: n += proto.SizeVarint(2<<3 | proto.WireVarint) n += 1 case *ReadRowsResponse_Chunk_CommitRow: n += proto.SizeVarint(3<<3 | proto.WireVarint) n += 1 case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) } return n }