github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/ethdb/table.go (about)

     1  
     2  //<developer>
     3  //    <name>linapex 曹一峰</name>
     4  //    <email>linapex@163.com</email>
     5  //    <wx>superexc</wx>
     6  //    <qqgroup>128148617</qqgroup>
     7  //    <url>https://jsq.ink</url>
     8  //    <role>pku engineer</role>
     9  //    <date>2019-03-16 19:16:38</date>
    10  //</624450090580316160>
    11  
    12  
    13  package ethdb
    14  
    15  type table struct {
    16  	db     Database
    17  	prefix string
    18  }
    19  
    20  //NewTable返回一个数据库对象,该对象在所有键前面加上给定的
    21  //字符串。
    22  func NewTable(db Database, prefix string) Database {
    23  	return &table{
    24  		db:     db,
    25  		prefix: prefix,
    26  	}
    27  }
    28  
    29  func (dt *table) Put(key []byte, value []byte) error {
    30  	return dt.db.Put(append([]byte(dt.prefix), key...), value)
    31  }
    32  
    33  func (dt *table) Has(key []byte) (bool, error) {
    34  	return dt.db.Has(append([]byte(dt.prefix), key...))
    35  }
    36  
    37  func (dt *table) Get(key []byte) ([]byte, error) {
    38  	return dt.db.Get(append([]byte(dt.prefix), key...))
    39  }
    40  
    41  func (dt *table) Delete(key []byte) error {
    42  	return dt.db.Delete(append([]byte(dt.prefix), key...))
    43  }
    44  
    45  func (dt *table) Close() {
    46  //什么都不做;不要关闭底层数据库。
    47  }
    48