示例#1
0
    public static void Main()
    {
        Eina.Config.Init();

        var bytes = new byte[] { 0, 1, 2, 3, 4, 5, 6 };

        var bb = new Eina.Binbuf();

        // Append initial bytes
        bb.Append(bytes);

        WriteLine("Printing each byte.");

        int idx = 0;

        foreach (byte b in bb.GetBytes())
        {
            WriteLine($"byte at[{idx}]: {b}");
            ++idx;
        }

        // Append more byte by byte
        bb.Append((byte)7);
        bb.Append((byte)8);
        bb.Append((byte)9);
        bb.Append((byte)0);

        WriteLine("\nPrinting each byte.");

        idx = 0;
        foreach (byte b in bb.GetBytes())
        {
            WriteLine($"byte at[{idx}]: {b}");
            ++idx;
        }

        // Remove some
        bb.Remove(2, 5);

        WriteLine("\nPrinting each byte.");

        idx = 0;
        foreach (byte b in bb.GetBytes())
        {
            WriteLine($"byte at[{idx}]: {b}");
            ++idx;
        }

        // Insert new bytes in the middle
        bb.Insert(new byte[] { 22, 33, 44 }, 2);

        WriteLine("\nPrinting each byte.");

        idx = 0;
        foreach (byte b in bb.GetBytes())
        {
            WriteLine($"byte at[{idx}]: {b}");
            ++idx;
        }
    }
示例#2
0
        internal static Dummy.StructComplex structComplexWithValues()
        {
            var Farray = new Eina.Array <string>();

            Farray.Add("0x0");
            Farray.Add("0x2A");
            Farray.Add("0x42");

            var Flist = new Eina.List <string>();

            Flist.Add("0x0");
            Flist.Add("0x2A");
            Flist.Add("0x42");

            var Fhash = new Eina.Hash <string, string>();

            Fhash["aa"] = "aaa";
            Fhash["bb"] = "bbb";
            Fhash["cc"] = "ccc";

            var Fiterator = ((Eina.Array <string>)Farray).GetIterator();
            var Faccessor = ((Eina.Array <string>)Farray).GetAccessor();

            var Fany_value = new Eina.Value(Eina.ValueType.Double);

            Fany_value.Set(-9007199254740992.0);

            var Fany_value_ref = new Eina.Value(Eina.ValueType.String);

            Fany_value_ref.Set("abc");

            var Fbinbuf = new Eina.Binbuf();

            Fbinbuf.Append(126);

            var Fslice = new Eina.Slice(Eina.MemoryNative.Alloc(1), (UIntPtr)1);

            Marshal.WriteByte(Fslice.Mem, 125);

            var Fobj = new Dummy.Numberwrapper();

            Fobj.Number = 42;

            return(new Dummy.StructComplex(
                       farray: Farray,
                       flist: Flist,
                       fhash: Fhash,
                       fiterator: Fiterator,
                       faccessor: Faccessor,
                       fanyValue: Fany_value,
                       fanyValueRef: Fany_value_ref,
                       fbinbuf: Fbinbuf,
                       fslice: Fslice,
                       fobj: Fobj
                       ));
        }
示例#3
0
        override public bool EinaBinbufOutOwn(out Eina.Binbuf binbuf)
        {
            binbuf_out_own_flag = true;

            binbuf = new Eina.Binbuf();
            binbuf.Append(33);

            binbuf_out_own_binbuf = binbuf;

            return(true);
        }
示例#4
0
        override public Eina.Binbuf EinaBinbufReturnOwn()
        {
            binbuf_return_own_flag = true;

            var binbuf = new Eina.Binbuf();

            binbuf.Append(33);

            binbuf_return_own_binbuf = binbuf;

            return(binbuf);
        }
示例#5
0
        override public bool EinaBinbufInOwn(Eina.Binbuf binbuf)
        {
            binbuf_in_own_flag = true;

            bool r = binbuf.GetBytes().SequenceEqual(BaseSequence.Values());

            r = r && binbuf.Own;

            binbuf.Insert(42, 0);
            binbuf.Insert(43, 0);
            binbuf.Append(33);

            binbuf_in_own_binbuf = binbuf;

            return(r);
        }