Bickley是一个元数据管理API和框架,由三个主要部分组成:
l Libkozo —— Kozo是围绕TDB库的数据库抽象。
l Libbickley —— Libbickley是一个客户端API,允许客户端通过较高级别接口访问元数据。
l Daemons —— 有两个daemon,分别用于从文件和其他来源提取元数据和对这些元数据编制索引。
Libbickley
Libbickley以列举项的形式将数据呈现给客户端。目前共有三类列举项,分别代表音频、图像和视频项。对于与这些类型相关的元数据,列举项还包含一些文件相关的元数据和一些自定义元数据,比如播放次数、排名、标签。
通过使用Libbickley,客户端不必了解libkozo是如何将数据保存在数据库中的,而且对数据的所有操作都应该通过Libbickley完成。
Daemon
组成Bickley元数据系统的两个daemon是bkl-orbiter和bkl-investigator。bkl-orbiter始终处于运行状态,可以跟踪各种来源,从而监视来源上需要为其编制索引的文件。当它发现需要提取的内容时,bkl-investigator就会启动并扫描随后要发送给orbiter的元数据文件。
目前,bkl-orbiter能够监视的来源有:
l GConf —— 表示本地文件系统。
l 可移除的媒体 —— 表示CD/DVD和可移除的存储设备。
l UPnP —— 表示局域网上基于UPnP的媒体服务器。
GConf来源可以监视键/apps/bickley/watched_uris并对在该键中找到的任意uri编制索引。
当新的来源可用时,bkl-orbiter还会发出D-Bus信号,而Libbickley可以将此信号通知客户端应用程序。
元数据的存储位置
元数据存储在设备的文件系统中。对于本地文件系统,数据库存储在~/.kozo/databases/local-media中。
l 对于UPnP,元数据也存储在~/.kozo/databases中,而数据库文件名就是UPnP设备UDN的MD5和。
l 对于可移除的媒体,如果该媒体是可写的,那么元数据存储在$(mount_point)/.kozo/databases中,否则也存储在~/.kozo/databases中,数据库文件名是挂载点的MD5和。
介绍内容来自 http://blog.csdn.net/moblin/archive/2009/08/13/4442447.aspx
简介 Bickley是一个元数据管理API和框架,由三个主要部分组成: l Libkozo —— Kozo是围绕TDB库的数据库抽象。 l Libbickley —— Libbickley是一个客户端API,允许客户端通过较高级别接口访问元数据。 l Daemons —— 有两个daemon,分别用于从文件和其他来源提取元数据和对这些元数据编制索引。 Libbickley Libbickley以列
<script type="text/javascript"> document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text"); if (text && text.len
我开发了kervel驱动程序,并与dell进行了通信。尝试做一个快照功能和行走功能 我的结构是 在我的快照函数中,我这样做。 在walk函数中,我执行以下操作 当我在我的驱动程序条目中(当驱动程序加载时)使用这个函数时,所有的工作都很好。但当我从dll中调用它时,只有2秒钟的时间“Word Fine”,然后我就会出现蓝屏。 当我尝试从SM_MSI结构中删除Name变量时,所有工作都很完美。!!所以
本章描述 Linux 内核中的内存管理。在本章中你会看到一系列描述 Linux 内核内存管理框架的不同部分的帖子。 内存块 - 描述早期的 memblock 分配器。 固定映射地址和 ioremap - 描述固定映射的地址和早期的 ioremap 。 kmemcheck - 第三部分描述 kmemcheck 工具。
DatabaseType SPI 名称 详细说明 DatabaseType 支持的数据库类型 已知实现类 详细说明 SQL92DatabaseType 遵循 SQL92 标准的数据库类型 MySQLDatabaseType MySQL 数据库 MariaDBDatabaseType MariaDB 数据库 PostgreSQLDatabaseType PostgreSQL 数据库 OracleDa
RT-Thread 内核,包括内核库和实时内核的实现 模块 基础定义 RT-Thread 基本数据类型 系统初始化 RT-Thread 的启动流程 内核对象管理 内核对象管理接口 线程管理 线程管理接口 时钟管理 时钟管理接口 定时器管理 定时器管理接口 线程间通讯 线程间通讯接口 内存池管理 静态内存池接
问题内容: 我有一个非常简单的脚本,该脚本在打印和报告的同时分配内存,这是对大型对象的唯一引用。运行脚本后,heapy告诉我应该不使用太多内存,而pidstat告诉我相反: 输出如下: 如何确定该内存已返回操作系统? 问题答案: 何时可以在进程内重新使用内存与何时将内存释放到OS之间可能会有差异。特别是,标准的Python解释器(CPython)维护其自己的池和用于特定类型对象的空闲列表。它将在这
问题内容: VS 哪种被认为是 正确的 (语法上)且性能最高的方法,为什么? 后一个示例中的语法对我来说似乎更合乎逻辑,但我的假设是JOIN会更快。 我看过查询计划,还无法从中解密任何内容。 查询计划1 查询计划2 问题答案: 两种语法有不同的用途。假设使用Join语法,则需要StockToCategory和Category表中的某些内容。如果每个类别的StockToCategory表中有多个条目
arm内核发展历史 arm内核 架构 arm7 armv6 cortex-m0 armv6-m cortex-m0+ armv6-m cortex-m3 armv7-m cortex-m4 armv7-m cortex-m7 armv7-m arm9 ARMv6 arm11 ARMv6 arm12 ARMv6 cortex-a7 armv7-a cortex-a8 armv7-a cortex-a
本节的目标是对Hana的核心进行一个高层次的概述。 这个核心是基于tag的概念,它是从Boost.Fusion和Boost.MPL库借用的,Hana更进一步地加深了这个概念。 这些tag随后会用于多个目的,如算法定制,文档分组,改进错误消息和将容器转换为其他容器等。 得益于其模块化设计,Hana可以非常容易地以ad-hoc方式扩展。 事实上,库的所有功能都是通过ad-hoc定制机制提供的。 Tag