imgtools/buildrom/tools/featurefile.pm
changeset 590 360bd6b35136
parent 0 044383f39525
--- a/imgtools/buildrom/tools/featurefile.pm	Wed Jun 16 16:51:40 2010 +0300
+++ b/imgtools/buildrom/tools/featurefile.pm	Wed Jun 23 16:56:47 2010 +0800
@@ -1,187 +1,187 @@
-#
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description: 
-#
-
-# This package contains common routines required for the creation of feature registry configuration/
-# features data file.
-package featurefile;
-
-# Include Module package
-use FileHandle;
-use WRITER;
-
-use strict;
-
-# Class constructor
-sub new 
-{
-	my ($class,$xmlDBHandle) = @_;
-
-	my $object = {};
-	$object->{_FEATUREFILENAME} = undef;
-	$object->{_FILEHANDLE} = undef;
-	$object->{_FILEVERSION} = undef;
-	$object->{_FEATCOUNT} = 0;
-	$object->{_DEFAULTRANGECOUNT} = 0;
-	$object->{_XMLDBHANDLE} = $xmlDBHandle;
-	
-	bless($object, $class);
-	return $object;
-}
-
-# Subroutine to create feature registry configuration/features data file
-# @param $object					- Object reference which is passed implicitly
-# @param _FEATUREFILENAME			- Feature registry configuration/features data filename
-# @param _FEATURELIST				- The complete List of features which are either to be included or excluded
-sub createFile
-{
-	my $object = shift;
-	$object->{_FEATUREFILENAME} = shift;
-	$object->{_FEATURELIST} = shift;
-		
-	# Open feature file for writing	
-	if (!$object->openFile())
-	{
-		return 0;
-	}
-
-	# Create feauture map
-	$object->createFeatureMap();
-	
-	# Set feature count
-	$object->setFeatureCount();
-
-	# Set Default Range Count
-	$object->setDefaultRangeCount();
-	
-	# Write feature file header
-	$object->writeHeader();	
-
-	# Create feature entry for the listed features
-	$object->writeFeatures();
-
-	# Write Default Supported Range 
-	$object->writeDefault();
-	
-	# Close feature file.
-	$object->closeFile();
-
-	return 1;
-}
-
-# Subroutine to open feature file 
-# @param $object					- Object reference which is passed implicitly
-sub openFile
-{
-	my $object = shift;	
-
-	open (CONFIG_FH, ">$object->{_FEATUREFILENAME}");
-	binmode(CONFIG_FH);
-	$object->{_FILEHANDLE} = *CONFIG_FH;
-
-	if(!defined $object->{_FILEHANDLE})
-	{
-		print "\nError in creating the $object->{_FEATUREFILENAME}, check for the accessability of File / Drive\n";
-		return 0;
-	}
-	return 1;
-}
-
-# Subroutine to write feature file header
-# @param $object					- Object reference which is passed implicitly
-sub writeHeader
-{
-	my $object = shift;
-
-	$object->write2File(0x74616566);
-	$object->write2File($object->{_FILEVERSION});
-	$object->write2File($object->{_FEATCOUNT});
-	$object->write2File($object->{_DEFAULTRANGECOUNT});
-}
-
-# Subroutine to check if the feature is present in feature databse XML file
-# @param $object					- Object reference which is passed implicitly
-sub isPresentInFeatureListXML
-{
-	my $object = shift;
-	my $fidMain= shift;	
-	
-	# If the feature is not found, generate an error message.
-	if(!defined $fidMain->{uid})
-	{
-		print "Error:Feature $fidMain->{name} not found in feature list XML \n";
-		return 0;
-	}	
-	return 1;
-}
-
-# Subroutine to set the count of listed features in feature file
-# @param $object					- Object reference which is passed implicitly
-sub setFeatureCount
-{
-	my $object = shift;
-
-	$object->{_FEATCOUNT} = scalar (keys %{$object->{_FEATUREHASHMAP}});	
-}
-
-# Subroutine to set the count of Default Support Range(D.S.R)
-# @param $object					- Object reference which is passed implicitly
-sub setDefaultRangeCount
-{
-	my $object = shift;
-	
-	$object->{_DEFAULTRANGECOUNT} = ($object->{_XMLDBHANDLE})->defaultIncludeCount();
-}
-
-# Write the default=present featureUID ranges (min/lowerruid,max/higheruid) to the feature file 
-# @param $object					- Object reference which is passed implicitly
-sub writeDefault
-{
-	my $object = shift;
-
-	if ($object->{_DEFAULTRANGECOUNT}) 
-	{
-		my @defaultFeatures = ($object->{_XMLDBHANDLE})->getDefaultIncludeInfo();
-		for my $i ( 0 .. $#defaultFeatures )
-		{
-			my $minuid = $defaultFeatures[$i][0];
-			my $maxuid = $defaultFeatures[$i][1];		
-			$object->write2File($minuid);
-			$object->write2File($maxuid);
-		}
-	}
-}
-
-# Subroutine to close feature file. 
-# @param $object					- Object reference which is passed implicitly
-sub closeFile
-{
-	my $object = shift;
-
-	close $object->{_FILEHANDLE};
-}
-
-# Subroutine to write the bytes to the binary file. 
-# @param $object					- Object reference which is passed implicitly
-# @param $bytes						- 32-bit value which is to be writen in binary file.
-sub write2File
-{
-	my $object = shift;
-	my $bytes = shift;
-
-	&WRITER::write32($object->{_FILEHANDLE}, $bytes);
-}
-
-1;
\ No newline at end of file
+#
+# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+# This package contains common routines required for the creation of feature registry configuration/
+# features data file.
+package featurefile;
+
+# Include Module package
+use FileHandle;
+use romutl;
+
+use strict;
+
+# Class constructor
+sub new 
+{
+	my ($class,$xmlDBHandle) = @_;
+
+	my $object = {};
+	$object->{_FEATUREFILENAME} = undef;
+	$object->{_FILEHANDLE} = undef;
+	$object->{_FILEVERSION} = undef;
+	$object->{_FEATCOUNT} = 0;
+	$object->{_DEFAULTRANGECOUNT} = 0;
+	$object->{_XMLDBHANDLE} = $xmlDBHandle;
+	
+	bless($object, $class);
+	return $object;
+}
+
+# Subroutine to create feature registry configuration/features data file
+# @param $object					- Object reference which is passed implicitly
+# @param _FEATUREFILENAME			- Feature registry configuration/features data filename
+# @param _FEATURELIST				- The complete List of features which are either to be included or excluded
+sub createFile
+{
+	my $object = shift;
+	$object->{_FEATUREFILENAME} = shift;
+	$object->{_FEATURELIST} = shift;
+		
+	# Open feature file for writing	
+	if (!$object->openFile())
+	{
+		return 0;
+	}
+
+	# Create feauture map
+	$object->createFeatureMap();
+	
+	# Set feature count
+	$object->setFeatureCount();
+
+	# Set Default Range Count
+	$object->setDefaultRangeCount();
+	
+	# Write feature file header
+	$object->writeHeader();	
+
+	# Create feature entry for the listed features
+	$object->writeFeatures();
+
+	# Write Default Supported Range 
+	$object->writeDefault();
+	
+	# Close feature file.
+	$object->closeFile();
+
+	return 1;
+}
+
+# Subroutine to open feature file 
+# @param $object					- Object reference which is passed implicitly
+sub openFile
+{
+	my $object = shift;	
+
+	open (CONFIG_FH, ">$object->{_FEATUREFILENAME}");
+	binmode(CONFIG_FH);
+	$object->{_FILEHANDLE} = *CONFIG_FH;
+
+	if(!defined $object->{_FILEHANDLE})
+	{
+		print "\nError in creating the $object->{_FEATUREFILENAME}, check for the accessability of File / Drive\n";
+		return 0;
+	}
+	return 1;
+}
+
+# Subroutine to write feature file header
+# @param $object					- Object reference which is passed implicitly
+sub writeHeader
+{
+	my $object = shift;
+
+	$object->write2File(0x74616566);
+	$object->write2File($object->{_FILEVERSION});
+	$object->write2File($object->{_FEATCOUNT});
+	$object->write2File($object->{_DEFAULTRANGECOUNT});
+}
+
+# Subroutine to check if the feature is present in feature databse XML file
+# @param $object					- Object reference which is passed implicitly
+sub isPresentInFeatureListXML
+{
+	my $object = shift;
+	my $fidMain= shift;	
+	
+	# If the feature is not found, generate an error message.
+	if(!defined $fidMain->{uid})
+	{
+		print "Error:Feature $fidMain->{name} not found in feature list XML \n";
+		return 0;
+	}	
+	return 1;
+}
+
+# Subroutine to set the count of listed features in feature file
+# @param $object					- Object reference which is passed implicitly
+sub setFeatureCount
+{
+	my $object = shift;
+
+	$object->{_FEATCOUNT} = scalar (keys %{$object->{_FEATUREHASHMAP}});	
+}
+
+# Subroutine to set the count of Default Support Range(D.S.R)
+# @param $object					- Object reference which is passed implicitly
+sub setDefaultRangeCount
+{
+	my $object = shift;
+	
+	$object->{_DEFAULTRANGECOUNT} = ($object->{_XMLDBHANDLE})->defaultIncludeCount();
+}
+
+# Write the default=present featureUID ranges (min/lowerruid,max/higheruid) to the feature file 
+# @param $object					- Object reference which is passed implicitly
+sub writeDefault
+{
+	my $object = shift;
+
+	if ($object->{_DEFAULTRANGECOUNT}) 
+	{
+		my @defaultFeatures = ($object->{_XMLDBHANDLE})->getDefaultIncludeInfo();
+		for my $i ( 0 .. $#defaultFeatures )
+		{
+			my $minuid = $defaultFeatures[$i][0];
+			my $maxuid = $defaultFeatures[$i][1];		
+			$object->write2File($minuid);
+			$object->write2File($maxuid);
+		}
+	}
+}
+
+# Subroutine to close feature file. 
+# @param $object					- Object reference which is passed implicitly
+sub closeFile
+{
+	my $object = shift;
+
+	close $object->{_FILEHANDLE};
+}
+
+# Subroutine to write the bytes to the binary file. 
+# @param $object					- Object reference which is passed implicitly
+# @param $bytes						- 32-bit value which is to be writen in binary file.
+sub write2File
+{
+	my $object = shift;
+	my $bytes = shift;
+
+	write_32bit($object->{_FILEHANDLE}, $bytes);
+}
+
+1;