pub struct TagManager {
pub cache: RwLock<HashMap<String, TagMetadata>>,
pub udt_definitions: RwLock<HashMap<String, UdtDefinition>>,
/* private fields */
}Expand description
Manager for PLC tag discovery and caching
Fields§
§cache: RwLock<HashMap<String, TagMetadata>>§udt_definitions: RwLock<HashMap<String, UdtDefinition>>Implementations§
Source§impl TagManager
impl TagManager
pub fn new() -> Self
pub async fn get_metadata(&self, tag_name: &str) -> Option<TagMetadata>
pub async fn update_metadata(&self, tag_name: String, metadata: TagMetadata)
pub async fn validate_tag( &self, tag_name: &str, required_permissions: &TagPermissions, ) -> Result<()>
pub async fn clear_cache(&self)
pub async fn remove_stale_entries(&self)
Sourcepub async fn discover_udt_members(
&self,
client: &mut EipClient,
udt_name: &str,
) -> Result<Vec<(String, TagMetadata)>>
pub async fn discover_udt_members( &self, client: &mut EipClient, udt_name: &str, ) -> Result<Vec<(String, TagMetadata)>>
Discovers members of a UDT/structure
Sourcepub fn build_udt_definition_request(&self, udt_name: &str) -> Result<Vec<u8>>
pub fn build_udt_definition_request(&self, udt_name: &str) -> Result<Vec<u8>>
Builds a CIP request to get UDT definition
Sourcepub fn parse_udt_definition_response(
&self,
response: &[u8],
udt_name: &str,
) -> Result<UdtDefinition>
pub fn parse_udt_definition_response( &self, response: &[u8], udt_name: &str, ) -> Result<UdtDefinition>
Parses UDT definition from CIP response
Sourcepub fn get_udt_definition_cached(&self, udt_name: &str) -> Option<UdtDefinition>
pub fn get_udt_definition_cached(&self, udt_name: &str) -> Option<UdtDefinition>
Gets a cached UDT definition
Sourcepub fn list_udt_definitions(&self) -> Vec<String>
pub fn list_udt_definitions(&self) -> Vec<String>
Lists all cached UDT definitions
Sourcepub fn clear_udt_cache(&self)
pub fn clear_udt_cache(&self)
Clears UDT definition cache
pub fn parse_tag_list( &self, response: &[u8], ) -> Result<Vec<(String, TagMetadata)>>
Recursively drill down into UDT structures (similar to TypeScript drillDown function)
Trait Implementations§
Source§impl Debug for TagManager
impl Debug for TagManager
Auto Trait Implementations§
impl !Freeze for TagManager
impl RefUnwindSafe for TagManager
impl Send for TagManager
impl Sync for TagManager
impl Unpin for TagManager
impl UnwindSafe for TagManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more