class_docstr: A cache of ForwardMsgs.
  
  Large ForwardMsgs (e.g. those containing big DataFrame payloads) are
  stored in this cache. The server can choose to send a ForwardMsg's hash,
  rather than the message itself, to a client. Clients can then
  request messages from this cache via another endpoint.
  
  This cache is *not* thread safe. It's intended to only be accessed by
  the server thread.
class_docstr_tok: ["A","cache","of","ForwardMsgs",".","Large","ForwardMsgs","(","e.g",".","those","containing","big","DataFrame","payloads",")","are","stored","in","this","cache",".","The","server","can","choose","to","send","a","ForwardMsg","'s","hash",",","rather","than","the","message","itself",",","to","a","client",".","Clients","can","then","request","messages","from","this","cache","via","another","endpoint",".","This","cache","is","*","not","*","thread","safe",".","It","'s","intended","to","only","be","accessed","by","the","server","thread","."]
docstr: Return True if a session has a reference to a message.
docstr_tok: ["Return","True","if","a","session","has","a","reference","to","a","message","."]
code: def has_message_reference(
      self,
      msg: ForwardMsg,
      session: "AppSession",
      script_run_count: int,
  ) -> bool:
      """Return True if a session has a reference to a message."""
      populate_hash_if_needed(msg)
  
      entry = self._entries.get(msg.hash, None)
      if entry is None or not entry.has_session_ref(session):
          return False
  
      # Ensure we're not expired
      age = entry.get_session_ref_age(session, script_run_count)
      return age <= int(config.get_option("global.maxCachedMessageAge"))
  
imports: import hashlib
  from typing import TYPE_CHECKING, Dict, List, MutableMapping, Optional
  from weakref import WeakKeyDictionary
  from streamlit import config, util
  from streamlit.logger import get_logger
  from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
  from streamlit.runtime.stats import CacheStat, CacheStatsProvider, group_stats
  from streamlit.util import HASHLIB_KWARGS
label_desc: Use image node_id 5 for calling the ForwardMsgCache obj's underlying member method code with example usage: obj.has_message_reference(msg, session, script_run_count) and returns: unknown, False