Esempio n. 1
0
 private void BasicUpdateObject(CefV8Value ires)
 {
     if (ires != null)
     {
         ires.SetValue("_MappedId", CefV8Value.CreateUInt(_Count++),
                       CefV8PropertyAttribute.ReadOnly | CefV8PropertyAttribute.DontEnum | CefV8PropertyAttribute.DontDelete);
     }
 }
 public void Test_GetSimpleValue_Uint_explicit()
 {
     Test(() =>
     {
         object res = null;
         bool ok    = _CefV8_Converter.GetSimpleValue(CefV8Value.CreateUInt(uint.MaxValue).Convert(), out res, typeof(UInt32));
         ok.Should().BeTrue();
         res.Should().Be(uint.MaxValue);
     });
 }
Esempio n. 3
0
 public static CefV8Value ConvertToV8Value(object o)
 {
     if (o == null)
     {
         return(CefV8Value.CreateUndefined());
     }
     if (o is bool)
     {
         return(CefV8Value.CreateBool((bool)o));
     }
     if (o is DateTime)
     {
         return(CefV8Value.CreateDate((DateTime)o));
     }
     if (o is double)
     {
         return(CefV8Value.CreateDouble((double)o));
     }
     if (o is int)
     {
         return(CefV8Value.CreateInt((int)o));
     }
     if (o is string)
     {
         return(CefV8Value.CreateString((string)o));
     }
     if (o is uint)
     {
         return(CefV8Value.CreateUInt((uint)o));
     }
     if (o is Array)
     {
         var a   = (Array)o;
         var rtn = CefV8Value.CreateArray(a.Length);
         for (int i = 0; i < a.Length; i++)
         {
             rtn.SetValue(i, ConvertToV8Value(a.GetValue(i)));
         }
         return(rtn);
     }
     if (o is System.Collections.IList)
     {
         var a   = (System.Collections.IList)o;
         var rtn = CefV8Value.CreateArray(a.Count);
         for (int i = 0; i < a.Count; i++)
         {
             rtn.SetValue(i, ConvertToV8Value(a[i]));
         }
         return(rtn);
     }
     throw new NotSupportedException("??");
 }
Esempio n. 4
0
 public static CefV8Value ConvertToV8Value(dynamic result)
 {
     if (result != null)
     {
         if (result is bool)
         {
             return(CefV8Value.CreateBool(result));
         }
         else if (result is DateTime)
         {
             return(CefV8Value.CreateDate(result));
         }
         else if (result is double)
         {
             return(CefV8Value.CreateDouble(result));
         }
         else if (result is int)
         {
             return(CefV8Value.CreateInt(result));
         }
         else if (result is string)
         {
             return(CefV8Value.CreateString(result));
         }
         else if (result is uint)
         {
             return(CefV8Value.CreateUInt(result));
         }
         else if (result is Array)
         {
             var source      = (Array)result;
             var destination = CefV8Value.CreateArray(source.Length);
             for (int x = 0; x < source.Length; x++)
             {
                 destination.SetValue(x, ConvertToV8Value(source.GetValue(x)));
             }
             return(destination);
         }
         else if (result is System.Collections.IList)
         {
             var source      = (System.Collections.IList)result;
             var destination = CefV8Value.CreateArray(source.Count);
             for (int x = 0; x < source.Count; x++)
             {
                 destination.SetValue(x, ConvertToV8Value(source[x]));
             }
             return(destination);
         }
         //else throw new NotSupportedException("V8 Value");
     }
     return(CefV8Value.CreateNull());
 }
Esempio n. 5
0
        private void BasicUpdateObject(CefV8Value res, ObjectObservability?objectObservability = null)
        {
            if (res == null)
            {
                return;
            }
            SetAttribute(res, NeutroniumConstants.ObjectId, CefV8Value.CreateUInt(_Count++));

            if (!objectObservability.HasValue)
            {
                return;
            }
            SetAttribute(res, NeutroniumConstants.ReadOnlyFlag, CefV8Value.CreateInt((int)objectObservability.Value));
        }
Esempio n. 6
0
        private void BasicUpdateObject(CefV8Value res, bool?readOnly = null)
        {
            if (res == null)
            {
                return;
            }
            SetAttribute(res, NeutroniumConstants.ObjectId, CefV8Value.CreateUInt(_Count++));

            if (!readOnly.HasValue)
            {
                return;
            }
            SetAttribute(res, NeutroniumConstants.ReadOnlyFlag, CefV8Value.CreateBool(readOnly.Value));
        }
Esempio n. 7
0
        public static CefV8Value CreateValue(object value)
        {
            if (value == null)
            {
                return(CefV8Value.CreateNull());
            }
            if (value is bool)
            {
                return(CefV8Value.CreateBool((bool)value));
            }
            if (value is double)
            {
                return(CefV8Value.CreateDouble((double)value));
            }
            if (value is float)
            {
                return(CefV8Value.CreateDouble((double)(float)value));
            }
            if (value is int)
            {
                return(CefV8Value.CreateInt((int)value));
            }
            var s = value as string;

            if (s != null)
            {
                return(CefV8Value.CreateString(s));
            }
            if (value is uint)
            {
                return(CefV8Value.CreateUInt((uint)value));
            }
            var list = value as IList;

            if (list == null)
            {
                return(CefV8Value.CreateUndefined());
            }
            var val = list;

            var arr = CefV8Value.CreateArray(val.Count);

            for (var i = 0; i < val.Count; i++)
            {
                arr.SetValue(i, CreateValue(val[i]));
            }

            return(arr);
        }
Esempio n. 8
0
        public static CefV8Value CreateValue(object value)
        {
            if (value == null)
            {
                return(CefV8Value.CreateNull());
            }
            if (value is bool)
            {
                return(CefV8Value.CreateBool((bool)value));
            }
            if (value is double)
            {
                return(CefV8Value.CreateDouble((double)value));
            }
            if (value is float)
            {
                return(CefV8Value.CreateDouble((double)(float)value));
            }
            if (value is int)
            {
                return(CefV8Value.CreateInt((int)value));
            }
            if (value is string)
            {
                return(CefV8Value.CreateString((string)value));
            }
            if (value is uint)
            {
                return(CefV8Value.CreateUInt((uint)value));
            }
            if (value is IList)
            {
                IList val = (IList)value;

                var arr = CefV8Value.CreateArray(val.Count);

                for (int i = 0; i < val.Count; i++)
                {
                    arr.SetValue(i, CreateValue(val[i]));
                }

                return(arr);
            }
            return(CefV8Value.CreateUndefined());
        }
Esempio n. 9
0
 private CefV8Value InvokeMethod(MethodInfo method, List <object> args, Type type)
 {
     if (method != null)
     {
         if (type == typeof(bool))
         {
             return(CefV8Value.CreateBool((bool)method.Invoke(this, args.ToArray())));
         }
         else if (type == typeof(DateTime))
         {
             return(CefV8Value.CreateDate((DateTime)method.Invoke(this, args.ToArray())));
         }
         else if (type == typeof(double))
         {
             return(CefV8Value.CreateDouble((double)method.Invoke(this, args.ToArray())));
         }
         else if (type == typeof(int))
         {
             return(CefV8Value.CreateInt((int)method.Invoke(this, args.ToArray())));
         }
         else if (type == typeof(string))
         {
             return(CefV8Value.CreateString((string)method.Invoke(this, args.ToArray())));
         }
         else if (type == typeof(uint))
         {
             return(CefV8Value.CreateUInt((uint)method.Invoke(this, args.ToArray())));
         }
         else if (type == typeof(string[]) ||
                  type == typeof(int[]) ||
                  type == typeof(double[]) ||
                  type == typeof(DateTime[]) ||
                  type == typeof(bool[]) ||
                  type == typeof(uint[]) ||
                  type == typeof(Enum[]))
         {
             return(Extension.ConvertToV8Value(method.Invoke(this, args.ToArray())));
         }
     }
     return(null);
 }
Esempio n. 10
0
 private CefV8Value InvokeContructor(ConstructorInfo constructor, List <object> args, Type type)
 {
     if (constructor != null)
     {
         if (type == typeof(bool))
         {
             return(CefV8Value.CreateBool((bool)constructor.Invoke(args.ToArray())));
         }
         else if (type == typeof(DateTime))
         {
             return(CefV8Value.CreateDate((DateTime)constructor.Invoke(args.ToArray())));
         }
         else if (type == typeof(double))
         {
             return(CefV8Value.CreateDouble((double)constructor.Invoke(args.ToArray())));
         }
         else if (type == typeof(int))
         {
             return(CefV8Value.CreateInt((int)constructor.Invoke(args.ToArray())));
         }
         else if (type == typeof(string))
         {
             return(CefV8Value.CreateString((string)constructor.Invoke(args.ToArray())));
         }
         else if (type == typeof(uint))
         {
             return(CefV8Value.CreateUInt((uint)constructor.Invoke(args.ToArray())));
         }
         else if (type == typeof(string[]) ||
                  type == typeof(int[]) ||
                  type == typeof(double[]) ||
                  type == typeof(DateTime[]) ||
                  type == typeof(bool[]) ||
                  type == typeof(uint[]) ||
                  type == typeof(Enum[]))
         {
             return(Extension.ConvertToV8Value(constructor.Invoke(args.ToArray())));
         }
     }
     return(null);
 }
Esempio n. 11
0
        static CefV8_Factory()
        {
            Register <string>(CefV8Value.CreateString);

            Register <Int64>((source) => CefV8Value.CreateDouble((double)source));
            Register <UInt64>((source) => CefV8Value.CreateDouble((double)source));
            Register <float>((source) => CefV8Value.CreateDouble((double)source));

            Register <Int32>(CefV8Value.CreateInt);
            Register <Int16>((source) => CefV8Value.CreateInt((int)source));

            Register <UInt32>(CefV8Value.CreateUInt);
            Register <UInt16>((source) => CefV8Value.CreateUInt((UInt32)source));

            //check two way and convertion back
            Register <char>((source) => CefV8Value.CreateString(new StringBuilder().Append(source).ToString()));
            Register <double>(CefV8Value.CreateDouble);
            Register <decimal>((source) => CefV8Value.CreateDouble((double)source));
            Register <bool>(CefV8Value.CreateBool);
            Register <DateTime>(CefV8Value.CreateDate);
        }
Esempio n. 12
0
 public IJavascriptObject CreateUint(uint value)
 {
     return(new CefV8_JavascriptObject(CefV8Value.CreateUInt(value)));
 }
Esempio n. 13
0
        public CefV8Value AsV8Value()
        {
            CefV8Value result = null;

            if (this.Value is IList)
            {
                var v = (IList)this.Value;

                result = CefV8Value.CreateArray(v.Count);

                for (var i = 0; i < v.Count; i++)
                {
                    result.SetValue(i, new JSValue(v[i]).AsV8Value());
                }
            }
            else if (this.Value is Boolean)
            {
                result = CefV8Value.CreateBool((Boolean)this.Value);
            }
            else if (this.Value is DateTime)
            {
                result = CefV8Value.CreateDate((DateTime)this.Value);
            }
            else if (this.Value is Single || this.Value is Double || this.Value is Decimal || this.Value is UInt64 || this.Value is Int64)
            {
                result = CefV8Value.CreateDouble((Double)this.Value);
            }
            else if (this.Value is CefV8Handler)
            {
                result = CefV8Value.CreateFunction(null, (CefV8Handler)this.Value);
            }
            else if (this.Value is SByte || this.Value is Int16 || this.Value is Int32)
            {
                result = CefV8Value.CreateInt((Int32)this.Value);
            }
            else if (this.Value == null)
            {
                result = CefV8Value.CreateNull();
            }
            else if (this.Value is IDictionary)
            {
                var v = (IDictionary)this.Value;

                Debug.Assert(v.Keys.Count == v.Values.Count);

                var vKeys   = new String[v.Keys.Count];
                var vValues = new CefV8Value[v.Values.Count];

                result = CefV8Value.CreateObject(null);

                for (var i = 0; i < vKeys.Length; i++)
                {
                    result.SetValue(vKeys[i], new JSValue(vValues[i]).AsV8Value(), CefV8PropertyAttribute.None);
                }
            }
            else if (this.Value is String)
            {
                result = CefV8Value.CreateString((String)this.Value);
            }
            else if (this.Value is Byte || this.Value is UInt16 || this.Value is UInt32)
            {
                result = CefV8Value.CreateUInt((UInt32)this.Value);
            }

            if (result == null)
            {
                result = CefV8Value.CreateUndefined();
            }

            return(result);
        }