class_docstr: Static rendezvous that is a wrapper around the TCPStore.
  
  Creates TCPStore based on the input parameters with the
  listener on the agent with group_rank=0
class_docstr_tok: ["Static","rendezvous","that","is","a","wrapper","around","the","TCPStore",".","Creates","TCPStore","based","on","the","input","parameters","with","the","listener","on","the","agent","with","group_rank=0"]
code: def next_rendezvous(self) -> Tuple[Store, int, int]:
      log.info("Creating TCPStore as the c10d::Store implementation")
      if not self._store:
          is_master = self.rank == 0
          self._store = TCPStore(  # type: ignore[call-arg]
              self.master_addr,
              self.master_port,
              self.world_size,
              is_master,
              self.timeout,
              multi_tenant=True,
          )
      store = PrefixStore(self.run_id, self._store)
      return store, self.rank, self.world_size
  
file_path: pytorch/torch/distributed/elastic/rendezvous/static_tcp_rendezvous.py
imports: import datetime
  import logging
  from typing import Tuple, cast, Optional
  from torch.distributed import Store, TCPStore, PrefixStore
  from torch.distributed.elastic.rendezvous import RendezvousHandler, RendezvousParameters
  from torch.distributed.elastic.rendezvous.utils import parse_rendezvous_endpoint
label_desc: Use image node_id 3 for calling the StaticTCPRendezvous obj's underlying member method code with example usage: obj.next_rendezvous() and returns: store,  self,  self