github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/cassandra/wrapper/session.go (about)

     1  package wrapper
     2  
     3  // Initializer is a common interface for functionality to start a new session
     4  type Initializer interface {
     5  	NewSession() (Holder, error)
     6  }
     7  
     8  // Holder allows to store a close sessions
     9  type Holder interface {
    10  	GetSession() SessionInterface
    11  	CloseSession()
    12  }
    13  
    14  // SessionInterface is an interface to wrap gocql methods used in Motiv
    15  type SessionInterface interface {
    16  	Query( stmt string, values ...interface{}) QueryInterface
    17  	Close()
    18  }
    19  
    20  type QueryInterface interface {
    21  	Exec() error
    22  	Scan( dest ...interface{}) error
    23  	Iter() IterInterface
    24  	PageState(state []byte, ) QueryInterface
    25  	PageSize(n int, ) QueryInterface
    26  }
    27  
    28  type IterInterface interface {
    29  	Scan( dest ...interface{}) bool
    30  	WillSwitchPage() bool
    31  	PageState() []byte
    32  	Close() error
    33  	ScanAndClose( handle func() bool, dest ...interface{}) error
    34  }