class_docstr: Singleton class wrapping an ibpy ibConnection instance.
  
  The parameters can also be specified in the classes which use this store,
  like ``VCData`` and ``VCBroker``
class_docstr_tok: ["Singleton","class","wrapping","an","ibpy","ibConnection","instance",".","The","parameters","can","also","be","specified","in","the","classes","which","use","this","store",",","like","``","VCData","``","and","``","VCBroker","``"]
code: def __init__(self):
      self._connected = False  # modules/objects created
  
      self.notifs = collections.deque()  # hold notifications to deliver
  
      self.t_vcconn = None  # control connection status
  
      # hold deques to market data symbols
      self._dqs = collections.deque()
      self._qdatas = dict()
      self._tftable = dict()
  
      if not self._load_comtypes():
          txt = "Failed to import comtypes"
          msg = self._RT_COMTYPES, txt
          self.put_notification(msg, *msg)
          return
  
      vctypelibs = self.find_vchart()
      # Try to load the modules
      try:
          self.vcdsmod = self.GetModule(vctypelibs[0])
          self.vcrtmod = self.GetModule(vctypelibs[1])
          self.vcctmod = self.GetModule(vctypelibs[2])
      except WindowsError as e:
          self.vcdsmod = None
          self.vcrtmod = None
          self.vcctmod = None
          txt = "Failed to Load COM TypeLib Modules {}".format(e)
          msg = self._RT_TYPELIB, txt
          self.put_notification(msg, *msg)
          return
  
      # Try to load the main objects
      try:
          self.vcds = self.CreateObject(self.vcdsmod.DataSourceManager)
          # self.vcrt = self.CreateObject(self.vcrtmod.RealTime)
          self.vcct = self.CreateObject(self.vcctmod.Trader)
      except WindowsError as e:
          txt = (
              "Failed to Load COM TypeLib Objects but the COM TypeLibs "
              "have been loaded. If VisualChart has been recently "
              "installed/updated, restarting Windows may be necessary "
              "to register the Objects: {}".format(e)
          )
          msg = self._RT_TYPELIB, txt
          self.put_notification(msg, *msg)
          self.vcds = None
          self.vcrt = None
          self.vcct = None
          return
  
      self._connected = True
  
      # Build a table of VCRT Field_XX mappings for debugging purposes
      self.vcrtfields = dict()
      for name in dir(self.vcrtmod):
          if name.startswith("Field"):
              self.vcrtfields[getattr(self.vcrtmod, name)] = name
  
      # Modules and objects can be created
      self._tftable = {
          TimeFrame.Ticks: (self.vcdsmod.CT_Ticks, 1),
          TimeFrame.MicroSeconds: (
              self.vcdsmod.CT_Ticks,
              1,
          ),  # To Resample
          TimeFrame.Seconds: (self.vcdsmod.CT_Ticks, 1),  # To Resample
          TimeFrame.Minutes: (self.vcdsmod.CT_Minutes, 1),
          TimeFrame.Days: (self.vcdsmod.CT_Days, 1),
          TimeFrame.Weeks: (self.vcdsmod.CT_Weeks, 1),
          TimeFrame.Months: (self.vcdsmod.CT_Months, 1),
          TimeFrame.Years: (self.vcdsmod.CT_Months, 12),
      }
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import collections
  from datetime import date, datetime, time, timedelta
  import os.path
  import threading
  import time
  import ctypes
  from backtrader import TimeFrame, Position
  from backtrader.feed import DataBase
  from backtrader.metabase import MetaParams
  from backtrader.utils.py3 import MAXINT, range, queue, string_types, with_metaclass
  from backtrader.utils import AutoDict
label_desc: Use image node_id 5 to create a new VCStore object from inherited base classes:  with example: obj = VCStore()