Ejemplo n.º 1
0
        public Result <ulong> StartRecordingLoadingTime(LoadingTimeMetadata metadata, TAnnotation annotation)
        {
            IntPtr metadataPtr  = IntPtr.Zero;
            uint   metadataSize = 0;

            if (metadata != null)
            {
                metadataSize = (uint)Marshal.SizeOf(metadata);
                metadataPtr  = Marshal.AllocHGlobal(Marshal.SizeOf(metadata));
                Marshal.StructureToPtr(metadata, metadataPtr, false);
            }

            var   ps        = CProtobufSerialization.Create(annotation);
            ulong handle    = 0;
            var   errorCode = m_LibraryMethods.StartRecordingLoadingTime(
                metadataPtr, metadataSize, ref ps, ref handle);

            CProtobufSerialization.CallDealloc(ref ps);

            if (metadataPtr != IntPtr.Zero)
            {
                Marshal.FreeHGlobal(metadataPtr);
            }

            return(new Result <ulong>(errorCode, handle));
        }
Ejemplo n.º 2
0
        public ErrorCode SetFidelityParameters(TFidelity fidelityParams)
        {
            var ps        = CProtobufSerialization.Create(fidelityParams);
            var errorCode = m_LibraryMethods.SetFidelityParameters(ref ps);

            CProtobufSerialization.CallDealloc(ref ps);
            return(errorCode);
        }
Ejemplo n.º 3
0
        public ErrorCode SetCurrentAnnotation(TAnnotation annotation)
        {
            var ps        = CProtobufSerialization.Create(annotation);
            var errorCode = m_LibraryMethods.SetCurrentAnnotation(ref ps);

            CProtobufSerialization.CallDealloc(ref ps);
            return(errorCode);
        }
Ejemplo n.º 4
0
        public ErrorCode SetFidelityParameters(TFidelity fidelityParams)
        {
            if (MessageUtil.HasInvalidEnumField(fidelityParams))
            {
                return(ErrorCode.InvalidFidelity);
            }
            var ps        = CProtobufSerialization.Create(fidelityParams);
            var errorCode = m_LibraryMethods.SetFidelityParameters(ref ps);

            CProtobufSerialization.CallDealloc(ref ps);
            return(errorCode);
        }
Ejemplo n.º 5
0
        public ErrorCode SetCurrentAnnotation(TAnnotation annotation)
        {
            if (MessageUtil.HasInvalidEnumField(annotation))
            {
                return(ErrorCode.InvalidAnnotation);
            }
            var ps        = CProtobufSerialization.Create(annotation);
            var errorCode = m_LibraryMethods.SetCurrentAnnotation(ref ps);

            CProtobufSerialization.CallDealloc(ref ps);
            return(errorCode);
        }
Ejemplo n.º 6
0
        public Result <TFidelity> FindFidelityParametersInApk(string filename)
        {
            var ps        = new CProtobufSerialization();
            var errorCode = m_LibraryMethods.FindFidelityParamsInApk(filename, ref ps);

            TFidelity fp = null;

            if (errorCode == ErrorCode.Ok)
            {
                fp = ps.ParseMessage <TFidelity>();
                if (fp == null)
                {
                    errorCode = ErrorCode.InvalidFidelity;
                }
            }

            CProtobufSerialization.CallDealloc(ref ps);
            return(new Result <TFidelity>(errorCode, fp));
        }
Ejemplo n.º 7
0
        public Result <TFidelity> GetFidelityParameters(TFidelity defaultFidelity, UInt32 initialTimeoutMs)
        {
            var defaultPs = CProtobufSerialization.Create(defaultFidelity);
            var newPs     = new CProtobufSerialization();
            var errorCode = m_LibraryMethods.GetFidelityParameters(
                ref defaultPs, ref newPs, initialTimeoutMs);
            TFidelity fp = null;

            if (errorCode == ErrorCode.Ok)
            {
                fp = newPs.ParseMessage <TFidelity>();
                if (fp == null)
                {
                    errorCode = ErrorCode.InvalidFidelity;
                }
            }

            CProtobufSerialization.CallDealloc(ref newPs);
            CProtobufSerialization.CallDealloc(ref defaultPs);
            return(new Result <TFidelity>(errorCode, fp));
        }