code.gitea.io/gitea@v1.22.3/modules/indexer/internal/indexer.go (about)

     1  // Copyright 2023 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package internal
     5  
     6  import (
     7  	"context"
     8  	"fmt"
     9  )
    10  
    11  // Indexer defines an basic indexer interface
    12  type Indexer interface {
    13  	// Init initializes the indexer
    14  	// returns true if the index was opened/existed (with data populated), false if it was created/not-existed (with no data)
    15  	Init(ctx context.Context) (bool, error)
    16  	// Ping checks if the indexer is available
    17  	Ping(ctx context.Context) error
    18  	// Close closes the indexer
    19  	Close()
    20  }
    21  
    22  // NewDummyIndexer returns a dummy indexer
    23  func NewDummyIndexer() Indexer {
    24  	return &dummyIndexer{}
    25  }
    26  
    27  type dummyIndexer struct{}
    28  
    29  func (d *dummyIndexer) Init(ctx context.Context) (bool, error) {
    30  	return false, fmt.Errorf("indexer is not ready")
    31  }
    32  
    33  func (d *dummyIndexer) Ping(ctx context.Context) error {
    34  	return fmt.Errorf("indexer is not ready")
    35  }
    36  
    37  func (d *dummyIndexer) Close() {}