Apache VFS 6 幾個重要的概念性介面

2021-05-09 16:14:20 字數 1473 閱讀 3453

apache vfs(1): 基本介紹

apache vfs(2): 檔案的監聽和監控

apache vfs(3): 檔案過濾器和選擇器

apache vfs(4): 事件

apache vfs(5): 使用它!

apache vfs(6): 幾個重要的概念性介面

apache vfs(7): 檔案管理器解析檔案的方法

理解apache vfs的概念性介面很重要,因為apache vfs例子太少,如果不仔細研究的話,根本農不清楚:

vfscomponent介面

這個介面號稱是用來管理所有vfs元件的生命週期的。方法比較簡單:

init 用來初始化元件

close 用來關閉元件

setcontext(vfscomponentcontext ctx) 設定元件上下文,注意它維護了乙個元件上下文:vfscomponentcontextsetlogger 設定日誌

有乙個抽象類實現了這個介面abstractvfscomponent抽象類,這個抽象類加了乙個方法getcontext()來獲得元件上下文。abstractvfscomponent抽象類很重要,有幾個重要的類繼承它:

abstractfilescache

abstractfilesystem

abstractvfscontainer

defaultfilereplicator

vfscomponentcontext介面

這個介面允許vfs元件訪問他們需要的服務,例如

filereplicator介面

這個介面的任務是建立檔案的本地複製品。只有乙個方法replicatefile(fileobject src, fileselector sel), 返回乙個file物件。有兩個類實現這個介面:

defaultfilereplicator 乙個簡單的檔案複製器和臨時檔案倉庫,同時實現了filereplicator介面,temporaryfilestore介面和vfscomponent介面

priviledgedfilereplicator 乙個檔案複製器的包裝類,接受乙個檔案複製器作為引數。這個包裝類能夠執行某些需要許可權的動作

temporaryfilestore介面

這個介面負責管理本地臨時檔案倉庫,只有乙個實現類,就是defaultfilereplicator類。方法只有乙個 allocatefile(string basename) 接受乙個字串,返回乙個file物件。這個方法將分配乙個臨時檔案,當這個倉庫關閉時,臨時檔案以及所有子檔案被刪除。

fileprovider介面

每個fileprovider檔案提供器負責處理特殊型別的uri模式,例如ftp, http等都有自己的檔案提供器

幾個重要的概念

1 服務 服務是乙個個的介面,介面約定了服務,從而使隨意替換服務的實現對使用介面服務的 沒有任何的影響。像我們上面例子中的ilog,ilogformatter都是乙個個服務,我們在這個例子中支實現了乙個文字檔案的日誌記錄,如果你要是實現資料庫記錄的日誌記錄,都必須要遵守ilog這個介面。2 元件 簡...

HTTP Servlet 重要的幾個方法

http servlet繼承了gencenservlet類 gencenservlet實現了兩個介面 乙個用於servletconfig設定介面,乙個為servlet介面只要是 1 init 方法 控制servlet的生命週期 重點記憶8個方法 http servlet 使用乙個 html 來傳送和...

C 重要的幾個概念

1 虛繼承 在預設情況下,派生類物件中應該包含子類那部分。如果某個類在派生過程中出現了多次,則應該有包含該類的多個子物件。但是這樣顯然對iostream是行不通的,乙個iostream物件肯定只希望在同乙個緩衝區中進行讀寫操作,也會要求條件狀態能同時反映輸入輸出操作的情況。假如iostream包含了...