//private:
            DBColumnIndexer <SubHeading> CreateSubHeadingIndexer(uint tableID, ColumnID_t colID)
            {
                DBColumnIndexer <SubHeading> ndxer;

                switch (tableID)
                {
                case TablesID.PRODUCT:
                    Assert(colID == ColumnID_t.SubHeading);

                    ndxer = new DBColumnIndexer <SubHeading>(m_tblManager, tableID, d => (d as Product).SubHeading);
                    break;

                case TablesID.SPOT_VALUE:
                    Assert(colID == ColumnID_t.SubHeading);
                    ndxer = new DBColumnIndexer <SubHeading>(m_tblManager, tableID, d => (d as SpotValue).Product.SubHeading);
                    break;

                default:
                    ndxer = null;
                    Assert(false);
                    break;
                }

                return(ndxer);
            }
            public DBColumnIndexer <SubHeading> GetSubHeadingIndxer(uint tableID, ColumnID_t colID)
            {
                if (m_ndxersSubHeading == null)
                {
                    m_ndxersSubHeading = new List <ColumnIndexerEntry <SubHeading> >();
                }

                ColumnIndexerEntry <SubHeading> entry = m_ndxersSubHeading.Find(e => e.TableID == tableID && e.ColumnID == colID);

                if (entry == null)
                {
                    entry = new ColumnIndexerEntry <SubHeading>(CreateSubHeadingIndexer(tableID, colID), colID);
                    m_ndxersSubHeading.Add(entry);
                }

                if (!entry.Indexer.IsConnected)
                {
                    entry.Indexer.Connect();
                }

                return(entry.Indexer);
            }
 public ColumnIndexerEntry(DBColumnIndexer <T> ndxer, ColumnID_t colID)
 {
     Indexer  = ndxer;
     ColumnID = colID;
 }
Example #4
0
 public IDBColumnIndexer <SubHeading> GetSubHeadingIndexer(uint tableID, ColumnID_t columnID)
 {
     lock (m_lock)
         return(m_accessPath.GetSubHeadingIndxer(tableID, columnID));
 }