示例#1
0
        public bool registerCommand(string command, string description)
        {
            RegistryRequestMessage newMessage = new RegistryRequestMessage();

            RegistryRequestMessage.Types.Request.Types.Registration newRegistration = new RegistryRequestMessage.Types.Request.Types.Registration();
            newRegistration.Name             = command;
            newRegistration.PluginId         = plugin_id;
            newRegistration.Type             = PB.Registry.ItemType.Query;
            newRegistration.Info             = new PB.Registry.Information();
            newRegistration.Info.Description = description;
            RegistryRequestMessage.Types.Request request = new RegistryRequestMessage.Types.Request();
            request.Registration = newRegistration;
            newMessage.Payload.Add(request);

            NSCP.Core.Result response = core.registry(newMessage.ToByteArray());
            if (!response.result)
            {
                log.error("Failed to register: " + command);
                return(false);
            }
            RegistryResponseMessage response_message = RegistryResponseMessage.Parser.ParseFrom(response.data);

            if (response_message.Payload[0].Result.Code != PB.Common.Result.Types.StatusCodeType.StatusOk)
            {
                log.error("Failed to register: " + command);
                return(false);
            }
            return(true);
        }
示例#2
0
文件: Helpers.cs 项目: Fox-Alpha/nscp
        public bool registerCommand(string command, string description)
        {
            RegistryRequestMessage.Builder newMessage = RegistryRequestMessage.CreateBuilder();
            RegistryRequestMessage.Types.Request.Types.Registration.Builder newRegistration = RegistryRequestMessage.Types.Request.Types.Registration.CreateBuilder();
            newRegistration.SetName(command);
            newRegistration.SetPluginId(plugin_id);
            newRegistration.SetType(Registry.Types.ItemType.QUERY);
            newRegistration.SetInfo(Registry.Types.Information.CreateBuilder().SetDescription(description).Build());
            newMessage.AddPayload(RegistryRequestMessage.Types.Request.CreateBuilder().SetRegistration(newRegistration.Build()).Build());

            NSCP.Core.Result response;
            using (MemoryStream stream = new MemoryStream())
            {
                newMessage.Build().WriteTo(stream);
                response = core.registry(stream.ToArray());
            }
            if (!response.result)
            {
                log.error("Failed to register: " + command);
                return(false);
            }
            RegistryResponseMessage response_message = RegistryResponseMessage.ParseFrom(response.data);

            if (response_message.GetPayload(0).Result.Code != Common.Types.Result.Types.StatusCodeType.STATUS_OK)
            {
                log.error("Failed to register: " + command);
                return(false);
            }
            return(true);
        }
示例#3
0
        public List <string> getKeys(string path)
        {
            List <string>          ret        = new List <string>();
            SettingsRequestMessage newMessage = new SettingsRequestMessage();

            SettingsRequestMessage.Types.Request.Types.Query newQuery = new SettingsRequestMessage.Types.Request.Types.Query();
            newQuery.Node      = new Node();
            newQuery.Node.Path = path;
            newQuery.Recursive = false;
            SettingsRequestMessage.Types.Request request = new SettingsRequestMessage.Types.Request();
            request.PluginId = plugin_id;
            request.Query    = newQuery;
            newMessage.Payload.Add(request);

            NSCP.Core.Result res = core.settings(newMessage.ToByteArray());

            if (!res.result)
            {
                log.error("Failed to get value: " + path);
                return(ret);
            }
            SettingsResponseMessage response_message = SettingsResponseMessage.Parser.ParseFrom(res.data);

            if (response_message.Payload == null || response_message.Payload.Count == 0 || response_message.Payload[0].Result == null)
            {
                log.error("Failed to get value: " + path);
                return(ret);
            }

            if (response_message.Payload[0].Result.Code != PB.Common.Result.Types.StatusCodeType.StatusOk)
            {
                log.error("Failed to get value: " + path);
                return(ret);
            }
            foreach (Node node in response_message.Payload[0].Query.Nodes)
            {
                ret.Add(node.Value);
            }
            return(ret);
        }
示例#4
0
文件: Helpers.cs 项目: Fox-Alpha/nscp
        public List <string> getKeys(string path)
        {
            List <string> ret = new List <string>();

            SettingsRequestMessage.Builder newMessage = SettingsRequestMessage.CreateBuilder();
            SettingsRequestMessage.Types.Request.Types.Query.Builder newQuery = SettingsRequestMessage.Types.Request.Types.Query.CreateBuilder();
            newQuery.SetNode(Settings.Types.Node.CreateBuilder().SetPath(path).Build());
            newQuery.SetRecursive(false);
            newQuery.SetType(Common.Types.DataType.STRING);
            newMessage.AddPayload(SettingsRequestMessage.Types.Request.CreateBuilder().SetPluginId(plugin_id).SetQuery(newQuery.Build()).Build());
            System.IO.MemoryStream stream = new System.IO.MemoryStream();
            newMessage.Build().WriteTo(stream);
            NSCP.Core.Result res = core.settings(stream.ToArray());
            if (!res.result)
            {
                log.error("Failed to get value: " + path);
                return(ret);
            }
            SettingsResponseMessage response_message = SettingsResponseMessage.ParseFrom(res.data);

            if (response_message.GetPayload(0).Result.Code != Common.Types.Result.Types.StatusCodeType.STATUS_OK)
            {
                log.error("Failed to get value: " + path);
                return(ret);
            }
            foreach (string value in response_message.GetPayload(0).Query.Value.ListDataList)
            {
                ret.Add(value);
            }
            return(ret);
        }