mirror of
https://github.com/pikami/cosmium.git
synced 2026-01-06 11:07:11 +00:00
Refactor to support multiple server instances in shared library
This commit is contained in:
37
internal/repositories/repositories.go
Normal file
37
internal/repositories/repositories.go
Normal file
@@ -0,0 +1,37 @@
|
||||
package repositories
|
||||
|
||||
import repositorymodels "github.com/pikami/cosmium/internal/repository_models"
|
||||
|
||||
type DataRepository struct {
|
||||
storedProcedures []repositorymodels.StoredProcedure
|
||||
triggers []repositorymodels.Trigger
|
||||
userDefinedFunctions []repositorymodels.UserDefinedFunction
|
||||
storeState repositorymodels.State
|
||||
|
||||
initialDataFilePath string
|
||||
persistDataFilePath string
|
||||
}
|
||||
|
||||
type RepositoryOptions struct {
|
||||
InitialDataFilePath string
|
||||
PersistDataFilePath string
|
||||
}
|
||||
|
||||
func NewDataRepository(options RepositoryOptions) *DataRepository {
|
||||
repository := &DataRepository{
|
||||
storedProcedures: []repositorymodels.StoredProcedure{},
|
||||
triggers: []repositorymodels.Trigger{},
|
||||
userDefinedFunctions: []repositorymodels.UserDefinedFunction{},
|
||||
storeState: repositorymodels.State{
|
||||
Databases: make(map[string]repositorymodels.Database),
|
||||
Collections: make(map[string]map[string]repositorymodels.Collection),
|
||||
Documents: make(map[string]map[string]map[string]repositorymodels.Document),
|
||||
},
|
||||
initialDataFilePath: options.InitialDataFilePath,
|
||||
persistDataFilePath: options.PersistDataFilePath,
|
||||
}
|
||||
|
||||
repository.InitializeRepository()
|
||||
|
||||
return repository
|
||||
}
|
||||
Reference in New Issue
Block a user