cache

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2024 License: MIT Imports: 6 Imported by: 0

README

cache

import "github.com/Qithub-BOT/QiiTrans/src/cache"

Package cache は key-value 型の簡易 DB です. 翻訳済みの結果をキャッシュするのに使われます.

New(<キャッシュ ID>) でインスタンスが作成されると、テンポラリ・ディレクトリにキャッシュ用のディレクトリを作成します。

主に "Set(<翻訳前テキスト>, <翻訳後テキスト>)" のように、翻訳結果をキャッシュするのに使われます。 デフォルトで共通のキャッシュ・ディレクトリを利用します。異なるキャッシュにしたい場合は任意のキャッシュ ID を指定します。

myCache := cache.New("myCache")

主なメソッド

Set(key, value) ... キャッシュの作成・更新をします
Get(key) ... キャッシュから値を取得します。
ClearAll() ... キャッシュ・ディレクトリを削除します。

Index

Constants

NameDirCacheDefault はキャッシュ時のデフォルトのディレクトリ名もしくはプレフィックス(接頭辞)です.

テンポラリ・ディレクトリの、この名前の付いたディレクトリは削除可能です.

const NameDirCacheDefault = "QiiTrans"

type TCache

TCache はキャッシュ DB の構造体です. badger(https://github.com/dgraph-io/badger) のラッパーです.

type TCache struct {
    cacheDB      *badger.DB
    NameDirCache string
    PathDirTemp  string
}

func New
func New(cacheID ...string) *TCache

New は TCache の新規オブジェクトのポインタを返します. デフォルトで共通のキャッシュを利用します。各々異なるキャッシュにしたい場合は、引数に ID を指定します.

Example

package main

import (
	"fmt"

	"github.com/Qithub-BOT/QiiTrans/src/cache"
)

func main() {
	// 汎用のキャッシュにしたくない場合は ID を指定する。この場合は "my sample DB".
	tmpCache := cache.New("my sample DB")

	// 終了時にキャッシュを削除したい場合は defer で ClearAll する
	defer tmpCache.ClearAll()

	phraseOriginal := "Hello, world!"
	phraseTranslated := "世界よ、こんにちは!"

	// Set でキャッシュに登録
	err := tmpCache.Set(phraseOriginal, phraseTranslated)
	if err != nil {
		panic(err)
	}

	// Get でキャッシュから取得
	result, err := tmpCache.Get(phraseOriginal)
	if err != nil {
		panic(err)
	}

	fmt.Println(result)
}
Output
世界よ、こんにちは!

func (*TCache) ClearAll
func (c *TCache) ClearAll()

ClearAll はキャッシュ・データを削除します.

func (*TCache) CloseDB
func (c *TCache) CloseDB()

CloseDB はキャッシュの DB をクローズします. DB がオープンされていない場合は何もしません. クローズに失敗した場合はパニックを起こします.

このメソッドは、Get() Set() でも呼び出されるため、利用時に OpenDB() CloseDB() を行う必要はありません.

func (*TCache) Get
func (c *TCache) Get(key string) (string, error)

Get はキャッシュから key を探索し、その値を文字列で返します. キャッシュに key がない場合はエラーを返します.

func (*TCache) GetPathDirCache
func (c *TCache) GetPathDirCache() string

GetPathDirCache は現在のキャッシュ先のディレクトリを返します.

func (*TCache) GetValueInByte
func (c *TCache) GetValueInByte(keyHashed []byte) ([]byte, error)

GetValueInByte はバイトデータにハッシュ化された keyHashed キーを使ってキャッシュを探索しバイトデータで返します.

func (*TCache) OpenDB
func (c *TCache) OpenDB() error

OpenDB はキャッシュ用の DB をオープンします. キャッシュ・ディレクトリが存在しない場合は、テンポラリディレクトリに新規に作成します.

このメソッドは、Get() Set() でも呼び出されるため、利用時に OpenDB() CloseDB() を行う必要はありません.

func (*TCache) Set
func (c *TCache) Set(key string, value string) error

Set は key に value の値を割り当ててキャッシュします. この関数は、主に翻訳前の文を key、翻訳後の文を value としてキャッシュに使われます.

引数 key は長さに依存しません(内部で 64 バイトの固定長にハッシュ化されるため). 呼び出しごとにキャッシュ DB を open/close するため、大量の連続呼び出しには向きません. 大量に登録する場合は SetList() 関数を利用してください.

func (*TCache) hash64
func (c *TCache) hash64(content string) []byte

hash64 は content の内容を 64 バイトのハッシュ値に変換します.


Generated by gomarkdoc

Documentation

Overview

Package cache は key-value 型の簡易 DB です. 翻訳済みの結果をキャッシュするのに使われます.

New(<キャッシュ ID>) でインスタンスが作成されると、テンポラリ・ディレクトリにキャッシュ用のディレクトリを作成します。

主に "Set(<翻訳前テキスト>, <翻訳後テキスト>)" のように、翻訳結果をキャッシュするのに使われます。 デフォルトで共通のキャッシュ・ディレクトリを利用します。異なるキャッシュにしたい場合は任意のキャッシュ ID を指定します。

myCache := cache.New("myCache")

主なメソッド

Set(key, value) ... キャッシュの作成・更新をします
Get(key) ... キャッシュから値を取得します。
ClearAll() ... キャッシュ・ディレクトリを削除します。

Index

Examples

Constants

View Source
const NameDirCacheDefault = "QiiTrans"

NameDirCacheDefault はキャッシュ時のデフォルトのディレクトリ名もしくはプレフィックス(接頭辞)です.

テンポラリ・ディレクトリの、この名前の付いたディレクトリは削除可能です.

Variables

This section is empty.

Functions

This section is empty.

Types

type TCache

type TCache struct {
	NameDirCache string
	PathDirTemp  string
	// contains filtered or unexported fields
}

TCache はキャッシュ DB の構造体です. badger(https://github.com/dgraph-io/badger) のラッパーです.

func New

func New(cacheID ...string) *TCache

New は TCache の新規オブジェクトのポインタを返します. デフォルトで共通のキャッシュを利用します。各々異なるキャッシュにしたい場合は、引数に ID を指定します.

Example
package main

import (
	"fmt"

	"github.com/Qithub-BOT/QiiTrans/src/cache"
)

func main() {
	// 汎用のキャッシュにしたくない場合は ID を指定する。この場合は "my sample DB".
	tmpCache := cache.New("my sample DB")

	// 終了時にキャッシュを削除したい場合は defer で ClearAll する
	defer tmpCache.ClearAll()

	phraseOriginal := "Hello, world!"
	phraseTranslated := "世界よ、こんにちは!"

	// Set でキャッシュに登録
	err := tmpCache.Set(phraseOriginal, phraseTranslated)
	if err != nil {
		panic(err)
	}

	// Get でキャッシュから取得
	result, err := tmpCache.Get(phraseOriginal)
	if err != nil {
		panic(err)
	}

	fmt.Println(result)
}
Output:

世界よ、こんにちは!

func (*TCache) ClearAll

func (c *TCache) ClearAll()

ClearAll はキャッシュ・データを削除します.

func (*TCache) CloseDB

func (c *TCache) CloseDB()

CloseDB はキャッシュの DB をクローズします. DB がオープンされていない場合は何もしません. クローズに失敗した場合はパニックを起こします.

このメソッドは、Get() Set() でも呼び出されるため、利用時に OpenDB() CloseDB() を行う必要はありません.

func (*TCache) Get

func (c *TCache) Get(key string) (string, error)

Get はキャッシュから key を探索し、その値を文字列で返します. キャッシュに key がない場合はエラーを返します.

func (*TCache) GetPathDirCache

func (c *TCache) GetPathDirCache() string

GetPathDirCache は現在のキャッシュ先のディレクトリを返します.

func (*TCache) GetValueInByte

func (c *TCache) GetValueInByte(keyHashed []byte) ([]byte, error)

GetValueInByte はバイトデータにハッシュ化された keyHashed キーを使ってキャッシュを探索しバイトデータで返します.

func (*TCache) OpenDB

func (c *TCache) OpenDB() error

OpenDB はキャッシュ用の DB をオープンします. キャッシュ・ディレクトリが存在しない場合は、テンポラリディレクトリに新規に作成します.

このメソッドは、Get() Set() でも呼び出されるため、利用時に OpenDB() CloseDB() を行う必要はありません.

func (*TCache) Set

func (c *TCache) Set(key string, value string) error

Set は key に value の値を割り当ててキャッシュします. この関数は、主に翻訳前の文を key、翻訳後の文を value としてキャッシュに使われます.

引数 key は長さに依存しません(内部で 64 バイトの固定長にハッシュ化されるため). 呼び出しごとにキャッシュ DB を open/close するため、大量の連続呼び出しには向きません. 大量に登録する場合は SetList() 関数を利用してください.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL