/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.portal.livetrace;
import com.enonic.cms.core.image.ImageRequest;
import com.enonic.cms.core.image.ImageResponse;
/**
* Nov 25, 2010
*/
public class ImageRequestTracer
{
public static ImageRequestTrace startTracing( final LivePortalTraceService livePortalTraceService )
{
PortalRequestTrace currentPortalRequestTrace = livePortalTraceService.getCurrentPortalRequestTrace();
if ( currentPortalRequestTrace != null )
{
return livePortalTraceService.startImageRequestTracing( currentPortalRequestTrace );
}
else
{
return null;
}
}
public static void stopTracing( final ImageRequestTrace trace, final LivePortalTraceService livePortalTraceService )
{
if ( trace != null )
{
livePortalTraceService.stopTracing( trace );
}
}
public static void traceImageRequest( final ImageRequestTrace trace, final ImageRequest imageRequest )
{
if ( trace != null && imageRequest != null )
{
if ( imageRequest.getContentKey() != null )
{
trace.setContentKey( imageRequest.getContentKey() != null ? imageRequest.getContentKey().toString() : null );
trace.setLabel( imageRequest.getLabel() );
trace.setImageParamFilter( imageRequest.getParams().getFilter() );
trace.setImageParamFormat( imageRequest.getFormat() );
trace.setImageParamBackgroundColor( imageRequest.getParams().getBackgroundColorAsString() );
trace.setImageParamQuality( imageRequest.getParams().getQualityAsString() );
}
else
{
// request to user image...
trace.setLabel( imageRequest.getLabel() );
trace.setImageParamFilter( imageRequest.getParams().getFilter() );
trace.setImageParamFormat( imageRequest.getFormat() );
trace.setImageParamBackgroundColor( imageRequest.getParams().getBackgroundColorAsString() );
trace.setImageParamQuality( imageRequest.getParams().getQualityAsString() );
}
}
}
public static void traceSize( ImageRequestTrace trace, Long sizeInBytes )
{
if ( trace != null && sizeInBytes != null )
{
trace.setSizeInBytes( sizeInBytes );
}
}
public static void traceUsedCachedResult( ImageRequestTrace trace, boolean value )
{
if ( trace != null )
{
trace.getCacheUsage().setUsedCachedResult( value );
}
}
public static void traceImageResponse( ImageRequestTrace trace, ImageResponse imageResponse )
{
if ( trace != null && imageResponse != null )
{
// TODO: this name is not good for nothing.
//trace.setImageName( imageResponse.getName() );
}
}
public static void startConcurrencyBlockTimer( ImageRequestTrace trace )
{
if ( trace != null )
{
trace.getCacheUsage().startConcurrencyBlockTimer();
}
}
public static void stopConcurrencyBlockTimer( ImageRequestTrace trace )
{
if ( trace != null )
{
trace.getCacheUsage().stopConcurrencyBlockTimer();
}
}
}