Improve channel status return
This commit is contained in:
@@ -20,7 +20,6 @@ use conn::ChannelStateInfo;
|
||||
use conn::ChannelStatusPartial;
|
||||
use conn::ConnCommand;
|
||||
use conn::ConnCommandResult;
|
||||
use core::fmt;
|
||||
use dbpg::seriesbychannel::BoxedSend;
|
||||
use dbpg::seriesbychannel::CanSendChannelInfoResult;
|
||||
use dbpg::seriesbychannel::ChannelInfoQuery;
|
||||
@@ -55,6 +54,7 @@ use stats::CaProtoStats;
|
||||
use stats::IocFinderStats;
|
||||
use std::collections::BTreeMap;
|
||||
use std::collections::VecDeque;
|
||||
use std::fmt;
|
||||
use std::net::SocketAddr;
|
||||
use std::net::SocketAddrV4;
|
||||
use std::pin::Pin;
|
||||
@@ -584,13 +584,7 @@ impl CaConnSet {
|
||||
|
||||
fn handle_add_channel_new(cmd: ChannelAdd, ress: StateTransRes) -> Result<(), Error> {
|
||||
{
|
||||
let item = ChannelState {
|
||||
value: ChannelStateValue::Active(ActiveChannelState::WaitForStatusSeriesId {
|
||||
since: SystemTime::now(),
|
||||
}),
|
||||
config: cmd.ch_cfg.clone(),
|
||||
touched: 1,
|
||||
};
|
||||
let item = ChannelState::new_wait_for_cssid(&cmd.ch_cfg);
|
||||
*ress.chst = item;
|
||||
}
|
||||
{
|
||||
|
||||
@@ -188,6 +188,7 @@ pub struct ChannelState {
|
||||
pub value: ChannelStateValue,
|
||||
pub config: ChannelConfig,
|
||||
pub touched: u8,
|
||||
config_file_basename: String,
|
||||
}
|
||||
|
||||
impl ChannelState {
|
||||
@@ -199,6 +200,26 @@ impl ChannelState {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new_dummy() -> Self {
|
||||
Self {
|
||||
value: ChannelStateValue::InitDummy,
|
||||
config: ChannelConfig::dummy(),
|
||||
touched: 0,
|
||||
config_file_basename: String::new(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn new_wait_for_cssid(ch_cfg: &crate::conf::ChannelConfig) -> Self {
|
||||
Self {
|
||||
value: ChannelStateValue::Active(ActiveChannelState::WaitForStatusSeriesId {
|
||||
since: SystemTime::now(),
|
||||
}),
|
||||
config: ch_cfg.clone(),
|
||||
touched: 1,
|
||||
config_file_basename: ch_cfg.config_file_basename().into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
@@ -230,11 +251,7 @@ impl ChannelStateMap {
|
||||
|
||||
pub fn get_mut_or_dummy_init(&mut self, k: &ChannelName) -> &mut ChannelState {
|
||||
if !self.map.contains_key(k) {
|
||||
let dummy = ChannelState {
|
||||
value: ChannelStateValue::InitDummy,
|
||||
config: ChannelConfig::dummy(),
|
||||
touched: 0,
|
||||
};
|
||||
let dummy = ChannelState::new_dummy();
|
||||
self.map.insert(k.clone(), dummy);
|
||||
}
|
||||
self.map.get_mut(k).unwrap()
|
||||
|
||||
Reference in New Issue
Block a user