FlushAll;
The FlushAll method flushes links of objects stored in repository cache.
After executing the method local assemblies cache is also flushed with links to development environment objects and their dependencies. To flush cache without flushing assemblies cache, use the IMetabaseCache.MetabaseFlushAll or IMetabaseCache.MetabaseFlush methods.
Executing the example requires that the repository contains an object with the OBJECT_1 identifier.
Sub UserProc;
Var
MB: IMetaBase;
Obj1, Obj2, Obj3: IMetabaseObject;
Cache: IMetabaseCache;
Begin
MB := MetabaseClass.Active;
Cache := MB.Cache;
Obj1 := MB.ItemById("Object_1").Bind;
Obj2 := MB.ItemById("Object_1").Bind;
Cache.FlushAll;
Obj3 := MB.ItemById("Object_1").Bind;
If Obj1 = Obj2 Then
Debug.WriteLine("Obj1 = Obj2");
Else
Debug.WriteLine("Obj1 <> Obj2");
End If;
If Obj1 = Obj3 Then
Debug.WriteLine("Obj1 = Obj3");
Else
Debug.WriteLine("Obj1 <> Obj3");
End If;
End Sub UserProc;
On executing the example a copy of the object with the Object_1 identifier is put in repository cache. The obj1 and obj2 variables contain a link to this copy. After the FlushAll method call a link to this object is flushed and while the next call another copy of the object is put in cache. The obj3 variable contains a link to the second copy of the object with the Object_1 identifier. The result of comparing variables is displayed in the development environment console.
See also: