예제 #1
0
        public void Log(LogLevel level, string message, Dictionary <string, string> fields)
        {
            var nativeMapPtr = Convertions.DictionaryToNativeMapMem(fields);

            CBridge.ctx_log(TaskId, (int)level, message, nativeMapPtr);
            Memory.FreeNativeMap(nativeMapPtr);
        }
예제 #2
0
        public void AlwaysApply(string ns, params Modifier[] modifiers)
        {
            var nativeModifiers = ToNativeModifiers(modifiers);
            var errPtr          = CBridge.ctx_always_apply(TaskId, ns, nativeModifiers);

            Memory.FreeNativeModifiers(nativeModifiers);

            Exceptions.ThrowExceptionIfError(errPtr);
        }
예제 #3
0
        public string RawConfig()
        {
            var ptr = CBridge.ctx_raw_config(TaskId);

            if (ptr != IntPtr.Zero)
            {
                return(Marshal.PtrToStringAnsi(ptr));
            }

            return("");
        }
예제 #4
0
        public string GetConfigValue(string configKey)
        {
            var ptr = CBridge.ctx_config_value(TaskId, configKey);

            if (ptr != IntPtr.Zero)
            {
                return(Marshal.PtrToStringAnsi(ptr));
            }

            return("");
        }
예제 #5
0
        private void AddMetricWithNativeValue(string ns, NativeValue nativeValue, params Modifier[] modifiers)
        {
            var nativeModifiers = ToNativeModifiers(modifiers);
            var errPtr          = CBridge.ctx_add_metric(TaskId, ns, nativeValue, nativeModifiers);

            Memory.FreeNativeModifiers(nativeModifiers);
            if (nativeValue.vtype == (int)ValueType.TypeCString)
            {
                Marshal.FreeHGlobal(nativeValue.v_cstring);
            }

            Exceptions.ThrowExceptionIfError(errPtr);
        }
예제 #6
0
 public bool ShouldProcess(string ns)
 {
     return(CBridge.ctx_should_process(TaskId, ns) > 0);
 }
예제 #7
0
 public void DismissAllModifiers()
 {
     CBridge.ctx_dismiss_all_modifiers(TaskId);
 }
예제 #8
0
 public IList <string> RequestedMetrics()
 {
     return(Convertions.NativeStringArrayToList(CBridge.ctx_requested_metrics(TaskId)));
 }
예제 #9
0
 public void AddWarning(string message)
 {
     CBridge.ctx_add_warning(TaskId, message);
 }
예제 #10
0
 public IList <string> ConfigKeys()
 {
     return(Convertions.NativeStringArrayToList(CBridge.ctx_config_keys(TaskId)));
 }