3 // IPROJECT interface implementation for native/path mapping projects
9 folder *XdsFolderConfig
12 // NewProjectPathMap Create a new instance of PathMap
13 func NewProjectPathMap(ctx *Context, svr *XdsServer) *PathMap {
17 folder: &XdsFolderConfig{},
23 func (p *PathMap) Add(cfg ProjectConfig) (*ProjectConfig, error) {
26 // SEB TODO: check local/server directory access
28 err = p.server.FolderAdd(p.server.ProjectToFolder(cfg), p.folder)
33 return p.GetProject(), nil
37 func (p *PathMap) Delete() error {
38 return p.server.FolderDelete(p.folder.ID)
41 // GetProject Get public part of project config
42 func (p *PathMap) GetProject() *ProjectConfig {
43 prj := p.server.FolderToProject(*p.folder)
44 prj.ServerID = p.server.ID
48 // UpdateProject Set project config
49 func (p *PathMap) UpdateProject(prj ProjectConfig) (*ProjectConfig, error) {
50 p.folder = p.server.ProjectToFolder(prj)
52 if err := p.events.Emit(EVTProjectChange, np); err != nil {
58 // GetServer Get the XdsServer that holds this project
59 func (p *PathMap) GetServer() *XdsServer {
63 // Sync Force project files synchronization
64 func (p *PathMap) Sync() error {
68 // IsInSync Check if project files are in-sync
69 func (p *PathMap) IsInSync() (bool, error) {