fix: make sure host attribute is set rather than blank in logs on windows by using the env var 'COMPUTERNAME' instead of 'HOSTNAME'. Thus make it less difficult to order recipes in the log by time.
#
# 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;