首页 > 其他分享 >[AHK2 工具] 处理器管理

[AHK2 工具] 处理器管理

时间:2024-10-25 13:44:05浏览次数:5  
标签:return AHK2 Mgr handler static 处理器 工具 parsed

开始

这是最核心的部分,用于注册、管理和调用处理器。

它的前提是所有的处理器都继承于一个接口,且实现其中的方法;
管理器便明确的知道如何检查处理器的合法性、及如何调用处理器。

关于这个接口,在handle模块下介绍。

实现

以下代码实现了一个注册中心和调用中心。

#Include ../handle/baseHandle.ahk
#Include parse.ahk

class Mgr {
  static h := Map()

  static Register(which, handler) {
    if not handler() is baseHandle
      throw TypeError('无效的处理器:' handler.Prototype.__Class)
    if Mgr.h.Has(which)
      throw Error('注册重复的命令:' which)
    Mgr.h.Set(which, handler)
    return this
  }

  static Check(cmd) {
    if !(o := Parse(cmd)).valid
      return _fail(o.msg)
    if !Mgr.h.Has(o.which)
      return _fail('未注册的命令:' o.which)
    return _succ(Mgr.h.Get(o.which), o.parsed)

    _succ(h, o) => { valid: true, handler: h, parsed: o }
    _fail(msg) => { valid: false, msg: msg }
  }

  static Call(handler, parsed) {
    if !handler.nullable && !parsed.target
      return handler.Fail('目标不可为空')
    ; try
    r := handler.Handle(parsed)
    ; catch as e {
    ; return handler.Fail('ERROR:' handler.Prototype.__Class ':' e.Message)
    ; }
    return r
  }

}

使用

  • 注册
Mgr
  .Register('echo', Echo)
  • 调用
Mgr.Call('echo', 'hello $_$')

标签:return,AHK2,Mgr,handler,static,处理器,工具,parsed
From: https://www.cnblogs.com/refiz/p/18502338

相关文章

  • [AHK2 工具] 内置处理器
    开始内置处理器通常使用的是未开放的接口,如直接调用处理器管理器的方法;这些在用户处理器中是不会使用的,但可以由脚本提供。目前有五个内置处理器:Echo常用来查看关键字的值和测试。Exit退出程序Hist管理历史模块使用的本地文件Meow获取当前注册的处理器及调用处理器的Ec......
  • 【Java】Spring工具类
    1packagecom.example.demo1.utils.spring;23importorg.springframework.aop.framework.AopContext;4importorg.springframework.beans.BeansException;5importorg.springframework.beans.factory.NoSuchBeanDefinitionException;6importorg.sprin......
  • 基于全志T113-i多核异构处理器的全国产嵌入式核心板简介
    一、嵌入式核心板产品介绍基于全志公司的T113-i处理器精心设计的多核异构处理器、工业级ECK30-T13IA系列嵌入式核心板,采用邮票孔连接的低成本、低功耗、高性价比、高可靠性的全国产化工业级嵌入式核心板。ECK30系列核心板可广泛应用于工业控制、HMI、IoT等领域。全志公司的T113-......
  • 项目管理过程中有什么好的工具
    在项目管理过程中,使用适当的工具可以提高效率和组织性。项目管理过程中好的工具有::1、PingCode;2、Worktile;3、Jira;4、Asana;5、Trello;6、Monday.com;7、ClickUp。比如PingCode是知名的研发项目管理工具,知名客户有:小红书、宁德时代、中科院、中泰证券等。一、PingCode2021年36氪项......
  • 通义千问API—让大模型使用工具
    通义千问API—让大模型使用工具引言通义千问是阿里巴巴推出的一个强大的预训练语言模型,能够生成高质量的文本内容。为了让通义千问更加灵活和实用,我们推出了通义千问API,使开发者能够将大模型与各种工具和服务集成在一起。本文将详细介绍如何使用通义千问API,包括准备工作、......
  • 基于全志T113-i多核异构处理器的全国产嵌入式核心板简介
    一、嵌入式核心板产品介绍基于全志公司的T113-i处理器精心设计的多核异构处理器、工业级ECK30-T13IA系列嵌入式核心板,采用邮票孔连接的低成本、低功耗、高性价比、高可靠性的全国产化工业级嵌入式核心板。ECK30系列核心板可广泛应用于工业控制、HMI、IoT等领域。全志公司的T113-i处......
  • 命令行工具cURL 的用法
            cURL(ClientURL)是一个用于在命令行中与URL进行数据传输的工具,广泛用于网络请求和数据交互。它支持多种协议,包括HTTP、HTTPS、FTP、SFTP等。以下是cURL的一些常见用途与功能:1.下载文件你可以使用cURL下载文件到当前目录。例如:curl-Ohttps://exampl......
  • 打脸了,我偷偷又找了回来:记一款免费音频人声分离工具的实现
    说一件最近被打脸的事。前两天一位朋友想处理掉一段音频中的人声,只留背景音乐,用于做教育方面的配音使用,她折腾半天不知道如何去掉背景声,于是问了我,虽然我不是专业的媒体人,但咱毕竟是技术人。听起来也很简单,就随口答应了,“没问题,这个简单,把你的音频给我吧~”心想曾经也用过F......
  • WanFangAi论文写作:这几个工具配合ChatGPT找学术论文文献,效率真的很高!
    配合ChatGPT找学术论文文献的工具多种多样,以下是一些值得推荐的选项:ZoteroGPT简介:Zotero是一款文献管理软件,支持Windows和iOS系统,通过结合GPT技术,可以实现本地阅读文献并对全文进行总结和分析。功能:ZoteroGPT可以高效地管理文献,如自动抓取学术论文、期刊的元数据,配合GPT技......