github.com/balzaczyy/golucene@v0.0.0-20151210033525-d0be9ee89713/core/index/prefixCodedTerms.go (about)

     1  package index
     2  
     3  import (
     4  	"github.com/balzaczyy/golucene/core/store"
     5  )
     6  
     7  /* Prefix codes term instances (prefixes are shared) */
     8  type PrefixCodedTerms struct {
     9  	buffer *store.RAMFile
    10  }
    11  
    12  func newPrefixCodedTerms(buffer *store.RAMFile) *PrefixCodedTerms {
    13  	return &PrefixCodedTerms{buffer}
    14  }
    15  
    16  func (terms *PrefixCodedTerms) RamBytesUsed() int64 {
    17  	return terms.buffer.RamBytesUsed()
    18  }
    19  
    20  /* Builds a PrefixCodedTerms: call add repeatedly, then finish. */
    21  type PrefixCodedTermsBuilder struct {
    22  	buffer *store.RAMFile
    23  	output *store.RAMOutputStream
    24  }
    25  
    26  func newPrefixCodedTermsBuilder() *PrefixCodedTermsBuilder {
    27  	f := store.NewRAMFileBuffer()
    28  	return &PrefixCodedTermsBuilder{
    29  		buffer: f,
    30  		output: store.NewRAMOutputStream(f, false),
    31  	}
    32  }
    33  
    34  func (b *PrefixCodedTermsBuilder) add(term *Term) {
    35  	panic("not implemented yet")
    36  }
    37  
    38  func (b *PrefixCodedTermsBuilder) finish() *PrefixCodedTerms {
    39  	err := b.output.Close()
    40  	if err != nil {
    41  		panic(err)
    42  	}
    43  	return newPrefixCodedTerms(b.buffer)
    44  }