예제 #1
0
void decrRefCount_Array(Array array, MemoryDecrementer decrementer){
    decrRefCount(array.memory);
    
    if(decrementer != NULL){
        unsigned i=0;
        for(; i < array.length; ++i){
            decrementer(getItemPointer(&array, i));    
        }
    }
}
예제 #2
0
/**
 * constructor
 *
 * This is the 'normal' constructor.  It builds a fully fledged glom parameters
 * data item.
 *
 * @param interval   - Number of ticks in the event building coincidence window.
 * @param isBuilding - If true the output of glom is built rather than just
 *                     ordered/formatted events.
 * @param policy     - The timestamp policy used by glom.
 */
CGlomParameters::CGlomParameters(
    uint64_t interval, bool isBuilding, CGlomParameters::TimestampPolicy policy
) :
    CRingItem(EVB_GLOM_INFO, sizeof(GlomParameters))
{
    // Fill in the body of the item:
    
    pGlomParameters pItem = reinterpret_cast<pGlomParameters>(getItemPointer());
    pItem->s_coincidenceTicks = interval;
    pItem->s_isBuilding       = (isBuilding ? 0xffff : 0);
    pItem->s_timestampPolicy  = policy;
    
    // Set the insertion cursor...and compute the final item size.
    
    setBodyCursor(&(pItem[1]));
    updateSize();
}