OmniStacksStaticModules 2.0.0
Loading...
Searching...
No Matches
ReminderSync.cppm File Reference
#include <fcntl.h>
#include <spawn.h>
#include <sys/wait.h>
#include <unistd.h>
#include <array>
#include <cerrno>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <string_view>
#include <vector>
import InterfaceLog;
import std;
Include dependency graph for ReminderSync.cppm:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ReminderSync::TaskReminder
 与外部应用同步所需的最小任务快照。 More...
struct  ReminderSync::SyncOptions
 外部应用同步选项。 More...
struct  ReminderSync::SyncResult
 同步结果;每个后端独立报告成败,便于 CLI 精确展示。 More...
struct  ReminderSync::anonymous_namespace{ReminderSync.cppm}::ProcessResult
 osascript 子进程的退出码与双管道输出。 More...

Namespaces

namespace  ReminderSync
namespace  ReminderSync::anonymous_namespace{ReminderSync.cppm}

Enumerations

enum class  ReminderSync::Provider { ReminderSync::reminders , ReminderSync::omnifocus , ReminderSync::both }
 提醒事项提供方;both 表示两个目标都执行。 More...
enum class  ReminderSync::SyncError {
  ReminderSync::invalid_task_id , ReminderSync::due_date_required , ReminderSync::invalid_due_date , ReminderSync::osascript_unavailable ,
  ReminderSync::reminders_failed , ReminderSync::omnifocus_failed , ReminderSync::process_failure
}
 可恢复同步错误分类。 More...

Functions

std::expected< SyncResult, SyncError > ReminderSync::sync_task (const TaskReminder &task, Provider provider, const SyncOptions &options={})
 将一个任务同步到指定外部应用。
std::string ReminderSync::build_reminders_script ()
 返回可在 osacompile 中独立编译的 Reminders AppleScript 源。
std::string ReminderSync::build_omnifocus_script ()
 返回可在 osacompile 中独立编译的 OmniFocus AppleScript 源。
std::string ReminderSync::provider_name (Provider provider) noexcept
 Provider 到 CLI/日志稳定名称。
std::string_view ReminderSync::sync_error_message (SyncError error) noexcept
 SyncError 到稳定可读文本。
bool ReminderSync::anonymous_namespace{ReminderSync.cppm}::valid_task_id (std::string_view value)
 任务 ID 只允许字母、数字、-、_,防止注入 action/AppleScript 参数。
std::optional< std::array< int, 3 > > ReminderSync::anonymous_namespace{ReminderSync.cppm}::split_date (std::string_view value)
 严格拆分并校验 YYYY-MM-DD;用于 AppleScript 日期构造前的领域校验。
std::string ReminderSync::anonymous_namespace{ReminderSync.cppm}::read_descriptor (int descriptor)
 读到 EOF 的管道读取器。
std::expected< ProcessResult, SyncError > ReminderSync::anonymous_namespace{ReminderSync.cppm}::run_osascript (std::string_view script, const std::vector< std::string > &arguments)
 启动 osascript,并通过独立 argv 传递用户字段。
std::vector< std::string > ReminderSync::anonymous_namespace{ReminderSync.cppm}::common_arguments (const TaskReminder &task, std::string_view marker)
 构造两个 AppleScript 共用的位置参数序列。

Variables

char ** environ

Variable Documentation

◆ environ

char** environ
extern