Beispiel #1
0
        private static bool ConnectorInitialize(string path, short logLevel)
        {
            var pPath = MarshalUtf8.StringToHGlobalUtf8(path);
            var msg   = PtrToDescr(Initialize(pPath, logLevel));

            Marshal.FreeHGlobal(pPath);
            Console.Out.WriteLine(msg != null ? $"failed to init connector {msg}" : $"Initialize() OK");
            return(msg == null);
        }
Beispiel #2
0
        //--------------------------------------------------------------------------------
        public static Str ConnectorSendCommand(string command)
        {
            var pData = MarshalUtf8.StringToHGlobalUtf8(command);
            var msg   = PtrToDescr(SendCommand(pData));

            Marshal.FreeHGlobal(pData);
            return(new Str
            {
                Txt = msg
            });
        }
Beispiel #3
0
        private static string PtrToDescr(IntPtr pResult)
        {
            if (IntPtr.Zero == pResult)
            {
                return(null);
            }
            var result = MarshalUtf8.PtrToStringUtf8(pResult);

            FreeMemory(pResult);
            return(result);
        }
Beispiel #4
0
        public static bool Init(Func <string, string> callback)
        {
            CallBackDelegate predicate = data =>
            {
                var result = MarshalUtf8.PtrToStringUtf8(data);
                FreeMemory(data);
                callback(result);
                return(true);
            };
            var CallbackHandle = GCHandle.Alloc(predicate);

            if (!SetCallback(predicate))
            {
                throw new Exception("Cant set callback");
            }

            return(ConnectorInitialize(Path, 3));
        }