## 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: # featureregistry.pm## This package contains routines to create the feature registry file.use featurefile;package featurecfg;BEGIN{ @ISA = qw (featurefile); # Declare this a child of featurefile class} use featureparser;use strict;# Class constructorsub new{ my ($class,$xmlDBHandle) = @_; my $object = $class->SUPER::new($xmlDBHandle); # Invoke base class new function $object->{_FEATURELIST} = undef; $object->{_FEATUREHASHMAP} = undef; $object->{_FILEVERSION} = 0; return $object;}# Subroutine to create feature map# @param $object - Object reference which is passed implicitlysub createFeatureMap{ my $object = shift; foreach my $fidMain (@{$object->{_FEATURELIST}}) { my $fid = $fidMain->{uid};# Check whether the feature is present in feature list XMl file or not.# If not, then generate an error message and discard this feature. if (!$object->isPresentInFeatureListXML($fidMain)) { next; } # Initialise the status bit $fidMain->{status} = 0;# If a feature is to be included in Rom, then set the 0th bit.# If a feature is explicitly to be excluded from ROM, then nothing is to be done, # since the 0th bit is already set to zero. if ($fidMain->{include} == 1) { $fidMain->{status} |= 1; } my $featInfoRef = ($object->{_XMLDBHANDLE})->getFeatureInfo($fid);# Check if the individual feature is installable, If so, set the 1st bit. if($featInfoRef->{installable} eq "true") { $fidMain->{status} |= 2; } $object->{_FEATUREHASHMAP}->{$fid} = $fidMain->{status}; } }# Subroutine to write the feature entries in the feature registry configuration file.# @param $object - Object reference which is passed implicitlysub writeFeatures{ my $object = shift; foreach my $featureId (sort {$a <=> $b} (keys %{$object->{_FEATUREHASHMAP}})) { $object->write2File($featureId); $object->write2File($object->{_FEATUREHASHMAP}->{$featureId}); }}1;