Exemple #1
0
            /// <summary>
            /// compares two instances of this class for equality.
            /// </summary>
            /// <param name="obj"></param>
            /// <returns></returns>
            public override bool Equals(object obj)
            {
                NosDBDependencyListener listener = obj as NosDBDependencyListener;

                if (listener != null)
                {
                    bool key   = _cacheKey.Equals(listener._cacheKey);
                    bool conn  = _connString.Equals(listener._connString);
                    bool query = _queryString.Equals(listener._queryString);
                    if (key && conn && query)
                    {
                        return(true);
                    }
                }
                return(false);
            }
Exemple #2
0
        /// <summary>
        /// Create and initialize dependency listener and Add it to the listener list and
        /// </summary>
        /// <param name="key">key used to reference object</param>
        /// <param name="connString">connection string used to connect to database</param>
        /// <param name="queryString">query string for which dataset is created to be monitored</param>
        /// <param name="doInitialize"></param>
        /// <param name="hintType"></param>
        /// <returns></returns>
        public bool Add(string key, string connString, string queryString, bool doInitialize, ExpirationHintType hintType)
        {
            DependencyListener listener = null;


            if (hintType == ExpirationHintType.OracleCacheDependency)
            {
#if NET40
                string fullAssemblyName             = "Alachisoft.NCache.RuntimeDependencies, Version=" + Assembly.GetExecutingAssembly().GetName().Version;
                System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(fullAssemblyName);
                Type     factoryType = assembly.GetType("Alachisoft.NCache.RuntimeDependencies.DependencyListenerFactory");
                Object[] oDLArgs     = new Object[7];
                oDLArgs[0] = key;
                oDLArgs[1] = connString;
                oDLArgs[2] = queryString;
                oDLArgs[3] = this;
                oDLArgs[4] = this;
                oDLArgs[5] = _context.NCacheLog;
                oDLArgs[6] = hintType;
                Object     dLFactory             = Activator.CreateInstance(factoryType);
                MethodInfo dLFactoryCreateMethod = factoryType.GetMethod("Create");

                listener = (DependencyListener)(dLFactoryCreateMethod.Invoke(dLFactory, oDLArgs));
#else
                return(true);
#endif
            }
            else if (hintType == ExpirationHintType.SqlYukonCacheDependency)
            {
                if (hintType == ExpirationHintType.SqlYukonCacheDependency)
                {
                    listener = new YukonDependencyListener(key, connString, queryString, _context, hintType);
                }
                else if (hintType == ExpirationHintType.NosDBCacheDependency)
                {
                    listener = new NosDBDependencyListener(key, connString, queryString, _context, hintType);
                }
            }
            if (doInitialize)
            {
                listener.Initialize();
                lock (_listeners.SyncRoot)
                {
                    if (!_listeners.Contains(listener.CacheKey))
                    {
                        ArrayList _dblistner = new ArrayList();
                        _dblistner.Add(listener);
                        _listeners[listener.CacheKey] = _dblistner;
                    }
                    else
                    {
                        ArrayList _dblistner = (ArrayList)_listeners[listener.CacheKey];
                        _dblistner.Add(listener);
                        _listeners[listener.CacheKey] = _dblistner;
                    }
                }
            }
            else
            {
                lock (_silentListeners.SyncRoot)
                {
                    _silentListeners[listener.CacheKey] = listener;
                }
            }
            return(true);
        }