7 // IPROJECT interface implementation for native/path mapping projects
16 // NewProjectPathMap Create a new instance of PathMap
17 func NewProjectPathMap(ctx *Context, svr *XdsServer) *PathMap {
21 folder: &FolderConfig{},
27 func (p *PathMap) Add(cfg ProjectConfig) (*ProjectConfig, error) {
30 // SEB TODO: check local/server directory access
32 err = p.server.FolderAdd(p.server.ProjectToFolder(cfg), p.folder)
37 return p.GetProject(), nil
41 func (p *PathMap) Delete() error {
42 return p.server.FolderDelete(p.folder.ID)
45 // GetProject Get public part of project config
46 func (p *PathMap) GetProject() *ProjectConfig {
47 prj := p.server.FolderToProject(*p.folder)
48 prj.ServerID = p.server.ID
52 // SetProject Set project config
53 func (p *PathMap) SetProject(prj ProjectConfig) *ProjectConfig {
54 p.folder = p.server.ProjectToFolder(prj)
58 // GetServer Get the XdsServer that holds this project
59 func (p *PathMap) GetServer() *XdsServer {
63 // GetFullPath returns the full path of a directory (from server POV)
64 func (p *PathMap) GetFullPath(dir string) string {
66 return p.folder.DataPathMap.ServerPath
68 return filepath.Join(p.folder.DataPathMap.ServerPath, dir)
71 // Sync Force project files synchronization
72 func (p *PathMap) Sync() error {
76 // IsInSync Check if project files are in-sync
77 func (p *PathMap) IsInSync() (bool, error) {