protected synchronized void add ( Object id , int bufferType , int cause , int source , boolean fromDepIdTemplateInvalidation , boolean fireEvent , boolean isAlias ) { final String methodName = "add(Object)" ; if ( id == null ) { return ; } if ( bufferType == EXPLICIT_BUFFER ) { byte info = 0 ; if ( cause != 0 && source != 0 ) { info = ( byte ) cause ; if ( source == CachePerf . REMOTE ) { info = ( byte ) ( info | STATUS_REMOTE ) ; } if ( fromDepIdTemplateInvalidation ) { info = ( byte ) ( info | STATUS_FROM_DEPID_TEMPLATE ) ; } if ( isAlias ) { info = ( byte ) ( info | STATUS_ALIAS ) ; } if ( fireEvent ) { info = ( byte ) ( info | STATUS_FIRE_EVENT ) ; } } this . explicitBuffer . put ( id , new Byte ( info ) ) ; this . scanBuffer . remove ( id ) ; } else if ( bufferType == SCAN_BUFFER ) { if ( ! this . explicitBuffer . containsKey ( id ) ) { this . scanBuffer . add ( id ) ; } } else if ( bufferType == GC_BUFFER ) { this . garbageCollectorBuffer . add ( id ) ; } traceDebug ( methodName , "cacheName=" + this . cod . cacheName + " id=" + id + " bufferType=" + bufferType + " ExplicitBuffer=" + this . explicitBuffer . size ( ) + " ScanBuffer=" + this . scanBuffer . size ( ) + " GCBuffer=" + this . garbageCollectorBuffer . size ( ) + " cause=" + cause + " source=" + source + " fireEvent=" + fireEvent ) ; if ( isFull ( ) || bufferType == GC_BUFFER ) { // 3821 NK end invokeBackgroundInvalidation ( ! SCAN ) ; } }
Call this method to store a cache id in the one of invalidation buffers . The entry is going to remove from the disk using LPBT .