public void CFNumberRoundTrip_Byte(byte number) { using (var cfNumber = new CFNumber(number)) Assert.Equal(number, cfNumber.ToByte()); }
public void CFNumberRoundTrip_Int16(short number) { using (var cfNumber = new CFNumber(number)) Assert.Equal(number, cfNumber.ToInt16()); }
public void CFNumberRoundTrip_Single(float number) { using (var cfNumber = new CFNumber(number)) Assert.Equal(number, cfNumber.ToSingle()); }
public void CFNumberRoundTrip_Double(double number) { using (var cfNumber = new CFNumber(number)) Assert.Equal(number, cfNumber.ToDouble()); }
protected override bool StorageSetValue(string key, object value) { CFObject cfValue = null; try { switch (value) { case bool v: SetValue(key, CFBoolean.ToCFBoolean(v)); return(true); case string v: cfValue = new CFString(v); break; case IEnumerable <string> v: var cfArray = new CFMutableArray(); cfArray.AddRange(v); cfValue = cfArray; break; case sbyte v: cfValue = new CFNumber(v); break; case byte v: cfValue = new CFNumber(v); break; case short v: cfValue = new CFNumber(v); break; case ushort v: cfValue = new CFNumber(v); break; case int v: cfValue = new CFNumber(v); break; case uint v: cfValue = new CFNumber(v); break; case long v: cfValue = new CFNumber(v); break; case ulong v: cfValue = new CFNumber(v); break; case float v: cfValue = new CFNumber(v); break; case double v: cfValue = new CFNumber(v); break; default: return(false); } SetValue(key, cfValue.Handle); return(true); } finally { cfValue?.Dispose(); } }
public void CFNumberRoundTrip_UInt64(ulong number) { using (var cfNumber = new CFNumber(number)) Assert.Equal(number, cfNumber.ToUInt64()); }
public static extern IntPtr CFNumberCreate_5(IntPtr intptr_2, CFNumber.CFNumberType enum20_0, ref double double_0);
protected override bool StorageTryGetValue( string key, Type valueType, TypeCode valueTypeCode, out object value) { using (var cfKey = new CFString(key)) { var valuePtr = CFPreferences.CopyValue( cfKey.Handle, applicationId.Handle, CFPreferences.kCFPreferencesCurrentUser, CFPreferences.kCFPreferencesAnyHost); if (valuePtr == IntPtr.Zero) { value = null; return(false); } var typeId = CoreFoundation.CFGetTypeID(valuePtr); if (typeId == CoreFoundation.CFTypeID.CFBoolean) { value = CFBoolean.ToBoolean(valuePtr); return(true); } if (typeId == CoreFoundation.CFTypeID.CFString) { using (var cfString = new CFString(valuePtr)) value = cfString.ToString(); return(true); } if (typeId == CoreFoundation.CFTypeID.CFNumber) { using (var cfNumber = new CFNumber(valuePtr)) { switch (cfNumber.Type) { case CFNumberType.SInt8: case CFNumberType.Char: value = valueTypeCode == TypeCode.Byte ? cfNumber.ToByte() : (object)cfNumber.ToSByte(); return(true); case CFNumberType.SInt16: case CFNumberType.Short: value = valueTypeCode == TypeCode.UInt16 ? cfNumber.ToUInt16() : (object)cfNumber.ToInt16(); return(true); case CFNumberType.SInt32: case CFNumberType.Int: case CFNumberType.Long: value = valueTypeCode == TypeCode.UInt32 ? cfNumber.ToUInt32() : (object)cfNumber.ToInt32(); return(true); case CFNumberType.SInt64: case CFNumberType.LongLong: case CFNumberType.CFIndex: case CFNumberType.NSInteger: value = valueTypeCode == TypeCode.UInt64 ? cfNumber.ToUInt64() : (object)cfNumber.ToInt64(); return(true); case CFNumberType.Float32: case CFNumberType.Float: value = cfNumber.ToSingle(); return(true); case CFNumberType.Float64: case CFNumberType.Double: case CFNumberType.CGFloat: value = cfNumber.ToDouble(); return(true); } } } if (typeId == CoreFoundation.CFTypeID.CFArray) { try { value = CFArray .FromCFStringArray(valuePtr) ?.ToArray(); return(value != null); } catch { value = null; return(false); } } value = null; return(false); } }
public static extern IntPtr CFNumberCreate_4(IntPtr intptr_2, CFNumber.CFNumberType enum20_0, ref float float_0);
public static extern IntPtr CFNumberCreate_3(IntPtr intptr_2, CFNumber.CFNumberType enum20_0, ref long long_0);
public static extern IntPtr CFNumberCreate_2(IntPtr intptr_2, CFNumber.CFNumberType enum20_0, ref int int_1);
public static extern IntPtr CFNumberCreate_1(IntPtr intptr_2, CFNumber.CFNumberType enum20_0, ref short short_0);
public static extern IntPtr CFNumberCreate(IntPtr intptr_2, CFNumber.CFNumberType enum20_0, IntPtr intptr_3);