Skip to main content

rocketmq_protocol/protocol/header/broker/
broker_heartbeat_request_header.rs

1// Copyright 2023 The RocketMQ Rust Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15use cheetah_string::CheetahString;
16use rocketmq_macros::RequestHeaderCodec;
17use serde::Deserialize;
18use serde::Serialize;
19
20#[derive(Debug, Serialize, Deserialize, Default, RequestHeaderCodec)]
21#[header(
22    type_id = "rocketmq_protocol::protocol::header::broker::broker_heartbeat_request_header::BrokerHeartbeatRequestHeader",
23    java_class = "org.apache.rocketmq.remoting.protocol.header.namesrv.BrokerHeartbeatRequestHeader"
24)]
25pub struct BrokerHeartbeatRequestHeader {
26    #[serde(rename = "clusterName")]
27    #[header(required)]
28    pub cluster_name: CheetahString,
29
30    #[serde(rename = "brokerAddr")]
31    #[header(required)]
32    pub broker_addr: CheetahString,
33
34    #[serde(rename = "brokerName")]
35    #[header(required)]
36    pub broker_name: CheetahString,
37
38    #[serde(rename = "brokerId")]
39    pub broker_id: Option<i64>,
40
41    pub epoch: Option<i32>,
42
43    #[serde(rename = "maxOffset")]
44    pub max_offset: Option<i64>,
45
46    #[serde(rename = "confirmOffset")]
47    pub confirm_offset: Option<i64>,
48
49    #[serde(rename = "heartbeatTimeoutMills")]
50    pub heartbeat_timeout_mills: Option<i64>,
51
52    #[serde(rename = "electionPriority")]
53    pub election_priority: Option<i32>,
54}