You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axkit-dev@xml.apache.org by ma...@apache.org on 2003/12/10 23:48:53 UTC

cvs commit: xml-axkit/lib/Apache/AxKit PipeCtrl.pm

mach        2003/12/10 14:48:53

  Modified:    lib/Apache/AxKit Tag: axkit-pipeline-2 PipeCtrl.pm
  Log:
  getting rid of Pipeline::Tail, fixing trace
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.5   +53 -46    xml-axkit/lib/Apache/AxKit/Attic/PipeCtrl.pm
  
  Index: PipeCtrl.pm
  ===================================================================
  RCS file: /home/cvs/xml-axkit/lib/Apache/AxKit/Attic/PipeCtrl.pm,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- PipeCtrl.pm	28 Oct 2003 00:10:09 -0000	1.1.2.4
  +++ PipeCtrl.pm	10 Dec 2003 22:48:53 -0000	1.1.2.5
  @@ -4,7 +4,6 @@
   use Apache::AxKit::Pipeline::Trace;
   use Apache::AxKit::Pipeline::Language;
   use Apache::AxKit::Pipeline::Head;
  -use Apache::AxKit::Pipeline::Tail;
   use Apache::AxKit::Pipeline::Cache;
   use Apache::AxKit::Pipeline::DoStyles;
   use Apache::AxKit::Pipeline::Transformer;
  @@ -77,50 +76,53 @@
   		my @passthru = splice( @styles, 0, $p - 1 );
   		@styles = @passthru;
   	}
  -		
  -	# Add a pipeline head at the top of the pipeline.
  -	# Allows for cleaner interface into provider.
  -
  +	
  +	my $i = 1;
  +	
  +	# Set pipeline stage id.
  +	# Do this before trace, so trace picks up upstream stage id.
  +	
  +	foreach (@styles) {
  +		$_->{'stage'} = $i++;
  +	}
  +	
  +	# Cleaner interface between provider and pipeline.
  +	# Ideal would be to extend providers, or have a ProviderPlus
  +	# which inherits from Pipeline.
  +	
   	unshift(@styles, {
  -		module => 'Apache::AxKit::Pipeline::Head',
  -		href   => undef,
  +		module 	=> 'Apache::AxKit::Pipeline::Head',
  +		href	=> undef,
   	});
  -	
  +		
   	if( $AxKit::Cfg->TraceIntermediate ) {
   		
   		# Add a trace module between each style.
  +		# No stage id, will use upstream() id.
   				
   		@styles = map { 
  -			( { 	module 	=> 'Apache::AxKit::Pipeline::Trace',
  -					href  	=> undef }, 
  -			  $_ 
  -			) }   @styles;
  +			( $_, 
  +				{ 	module 	=> 'Apache::AxKit::Pipeline::Trace',
  +					href  	=> undef }, 			  
  +			) }   @styles;			
   	}
   
  -	# Tail adds and late added styles into the pipeline.
  -	# Note: This currently breaks any sax passthru nature
  -	# and so needs to be worked on a bit in that way.
  -	# or an alternative pipeline creator class could be built.
  -	
  -	push(@styles, {
  -		module	=> 'Apache::AxKit::Pipeline::Tail',
  -		href	=> undef,
  -	});
   	
   	my $pipeline = $provider;
  -		
  -	foreach my $style ( @styles ) {
  -		$pipeline = $self->create_processor($r, $style )->upstream($pipeline);		
  +	
  +	foreach ( @styles ) {
  +		$pipeline = $self->create_processor($r, $_ )->upstream( $pipeline );		
   		if($pipeline->enable_dynamic_styles()) {
   			$pipeline = Apache::AxKit::Pipeline::DoStyles->new()->upstream( $pipeline );
   		} 
   	}
  +
   				
   	# always ensure pipeline is cache enabled.
   	# so add one on the end, unless either there already is a cache somewhere in the pipeline
   	# or the cache is disabled.
   	
  -	if($pipeline->cache_required() && !$AxKit::Cfg->NoCache()) {
  +	if( !$AxKit::Cfg->NoCache() && $pipeline->cache_required()) {
   		 AxKit::Debug(4, "PipeCtrl: adding final cache");
   		$pipeline = Apache::AxKit::Pipeline::Cache->new()->upstream($pipeline);
   	}
  @@ -137,13 +139,11 @@
   		}
   	}
   	
  -	# initialise the pipeline. (very important).
  -
  -	$pipeline->set_stage();
   	
   	AxKit::Debug(4, "PipeCtrl: Running Initialisation phase");
  -	$pipeline->init($r);
  -		
  +
  +	$pipeline->pipeline_init($r);	# allow things like XSP to build code before cache runs.
  +	
   	return $pipeline;
   }
   
  @@ -163,11 +163,16 @@
   	my @styles = @{$self->{'pre_styles'}};
   	$self->{'pre_styles'} 	= [];
   
  +	my $i = 1;
  +	foreach (@styles) {
  +		$_->{'stage'} = $i++;
  +	}
  +
   	unshift(@styles, {
  -		module => 'Apache::AxKit::Pipeline::Head',
  -		href   => undef,
  +		module 	=> 'Apache::AxKit::Pipeline::Head',
  +		href	=> undef,
   	});
  -	
  +
   	my $pipeline = $provider;
   		
   	foreach my $style ( @styles ) {
  @@ -178,9 +183,8 @@
   			
   	}
   	
  -	$pipeline->set_stage();
   	AxKit::Debug(4, "PipeCtrl: Running Initialisation phase");	
  -	$pipeline->init($r);
  +	$pipeline->pipeline_init($r);
   	
   	return $pipeline;
   }
  @@ -192,16 +196,18 @@
   	my @styles = @{$self->{'post_styles'}};
   	$self->{'post_styles'} 	= [];
   
  -	unshift(@styles, {
  -		module => 'Apache::AxKit::Pipeline::Head',
  -		href   => undef,
  -	});
   
  -	push(@styles, {
  -		module	=> 'Apache::AxKit::Pipeline::Tail',
  +	my $i = 1;
  +	foreach (@styles) {
  +		$_->{'stage'} = $i++;
  +	}
  +
  +	unshift(@styles, {
  +		module 	=> 'Apache::AxKit::Pipeline::Head',
   		href	=> undef,
   	});
  -	
  +
  +
   	my $pipeline = $provider;
   		
   	foreach my $style ( @styles ) {
  @@ -213,9 +219,8 @@
   	
   	}
   
  -	$pipeline->set_stage();
   	AxKit::Debug(4, "PipeCtrl: Running Initialisation phase");	
  -	$pipeline->init($r);
  +	$pipeline->pipeline_init($r);
   	
   	return $pipeline;
   
  @@ -232,12 +237,14 @@
   	
   	return UNIVERSAL::isa( $processor, 'Apache::AxKit::Language') ? 
   		Apache::AxKit::Pipeline::Language->new(
  -			href		=> $style->{href},
  +			href		=> $style->{'href'},
   			module		=> $processor,
  +			stage		=> $style->{'stage'},
   			
   		) : 
   		$processor->new(
  -			href		=> $style->{href},
  +			stage		=> $style->{'stage'},
  +			href		=> $style->{'href'},
   		);	
   					
   }