//// PGTSValueTypes.m// BaseTen//// Copyright (C) 2008-2009 Marko Karppinen & Co. LLC.//// Before using this software, please review the available licensing options// by visiting http://www.karppinen.fi/baseten/licensing/ or by contacting// us at sales@karppinen.fi. Without an additional license, this software// may be distributed only in compliance with the GNU General Public License.////// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License, version 2.0,// as published by the Free Software Foundation.//// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA//// $Id$//#import "PGTSValueTypes.h"#import "PGTSTypeDescription.h"#import "PGTSResultSet.h"@implementationPGTSFloat+(id)copyForPGTSResultSet:(PGTSResultSet*)setwithCharacters:(constchar*)valuetype:(PGTSTypeDescription*)typeInfo{return[[NSNumberalloc]initWithFloat:strtof(value,NULL)];}@end@implementationPGTSDouble+(id)copyForPGTSResultSet:(PGTSResultSet*)setwithCharacters:(constchar*)valuetype:(PGTSTypeDescription*)typeInfo{return[[NSNumberalloc]initWithDouble:strtod(value,NULL)];}@end@implementationPGTSBool+(id)copyForPGTSResultSet:(PGTSResultSet*)setwithCharacters:(constchar*)valuetype:(PGTSTypeDescription*)typeInfo{BOOLboolValue=(value[0]=='t'?YES:NO);return[[NSNumberalloc]initWithBool:boolValue];}@end@implementationPGTSPoint+(id)copyForPGTSResultSet:(PGTSResultSet*)setwithCharacters:(constchar*)valuetype:(PGTSTypeDescription*)typeInfo{NSPointretval=NSZeroPoint;NSString*pointString=[NSStringstringWithUTF8String:value];NSScanner*pointScanner=[NSScannerscannerWithString:pointString];[pointScannersetScanLocation:1];#if CGFLOAT_IS_DOUBLE[pointScannerscanDouble:&(retval.x)];#else[pointScannerscanFloat:&(retval.x)];#endif[pointScannersetScanLocation:[pointScannerscanLocation]+1];#if CGFLOAT_IS_DOUBLE[pointScannerscanDouble:&(retval.y)];#else[pointScannerscanFloat:&(retval.y)];#endifreturn[[NSValuevalueWithPoint:retval]retain];}@end