精简 API

This commit is contained in:
Aoran Zeng
2026-01-21 16:54:56 +08:00
parent 843ea9e755
commit 12134395c5
19 changed files with 96 additions and 91 deletions

View File

@@ -95,7 +95,7 @@ chef_register_contributor (char *id, char *name, char *email, char *display_name
* @note 这个修改的是全局 Provider 里的信息。往往用来设置 UpstreamProvider
*/
void
chef_set_provider_speed_measure_url (SourceProvider_t *provider, char *url)
chef_set_provider_smurl (SourceProvider_t *provider, char *url)
{
provider->psmi.skip = NotSkip;
provider->psmi.url = xy_strdup (url);
@@ -109,18 +109,71 @@ chef_set_provider_speed_measure_url (SourceProvider_t *provider, char *url)
* @note 这个修改的是全局 Provider 里的信息。往往用来设置 UpstreamProvider
*/
void
chef_set_provider_speed_measure_accuracy (SourceProvider_t *provider, bool accuracy)
chef_set_provider_sm_accuracy (SourceProvider_t *provider, bool accuracy)
{
provider->psmi.accurate = accuracy;
chsrc_debug ("m", xy_strcat (4, "recipe 重新为 ", provider->code, "(镜像站信息本身) 设置测速精度: ", accuracy ? "精准" : "粗略"));
}
/**
* @brief 修改 或 补充 某个镜像站的换源链接
*
* @example 见 os_ubuntu_resetsrc() 中对非 x86_64 架构源地址的修改
*/
void
chef_set_url (Target_t *target, SourceProvider_t *provider, char *url)
{
xy_cant_be_null (target);
xy_cant_be_null (provider);
xy_cant_be_null (url);
for (int i=0; i < target->sources_n; i++)
{
Source_t *src = &target->sources[i];
SourceProvider_t *p = src->provider;
if (p == provider)
{
src->url = xy_strdup (url);
return;
}
}
xy_unreached();
}
/**
* 设置 或 修改 某个镜像站的 *精准*测速链接
*
* sm = speed measure
*/
void
chef_set_smurl (Target_t *target, SourceProvider_t *provider, char *url)
{
xy_cant_be_null (target);
xy_cant_be_null (provider);
xy_cant_be_null (url);
for (int i=0; i < target->sources_n; i++)
{
Source_t *src = &target->sources[i];
SourceProvider_t *p = src->provider;
if (p == provider)
{
src->speed_measure_url = xy_strdup (url);
return;
}
}
xy_unreached();
}
/**
* @brief 提供一个函数,这个函数基于 "换源链接" 和用户提供的数据来构造和填充精准测速链接
*/
void
chef_set_sources_speed_measure_url_with_func (
chef_set_all_smurl_with_func (
Target_t *target,
char *(*func)(const char *url, const char *user_data),
char *user_data)
@@ -150,62 +203,9 @@ chef_set_sources_speed_measure_url_with_func (
* @brief 给 "换源链接" 增加一个后缀来构造和填充专用测速链接
*/
void
chef_set_sources_speed_measure_url_with_postfix (Target_t *target, char *postfix)
chef_set_all_smurl_with_postfix (Target_t *target, char *postfix)
{
chef_set_sources_speed_measure_url_with_func (target, xy_2strcat, postfix);
}
/**
* @brief 修改 或 补充 某个镜像站的换源链接
*
* @example 见 os_ubuntu_resetsrc() 中对非 x86_64 架构源地址的修改
*/
void
chef_set_source_url (Target_t *target, SourceProvider_t *provider, char *url)
{
xy_cant_be_null (target);
xy_cant_be_null (provider);
xy_cant_be_null (url);
for (int i=0; i < target->sources_n; i++)
{
Source_t *src = &target->sources[i];
SourceProvider_t *p = src->provider;
if (p == provider)
{
src->url = xy_strdup (url);
return;
}
}
xy_unreached();
}
/**
* 设置 或 修改 某个镜像站的 *精准*测速链接
*
* sm = speed measure
*/
void
chef_set_source_smurl (Target_t *target, SourceProvider_t *provider, char *url)
{
xy_cant_be_null (target);
xy_cant_be_null (provider);
xy_cant_be_null (url);
for (int i=0; i < target->sources_n; i++)
{
Source_t *src = &target->sources[i];
SourceProvider_t *p = src->provider;
if (p == provider)
{
src->speed_measure_url = xy_strdup (url);
return;
}
}
xy_unreached();
chef_set_all_smurl_with_func (target, xy_2strcat, postfix);
}