// // P4DepotDir.swift // DocHub // // Created by Tristan Juricek on 6/25/14. // Copyright (c) 2014 Perforce. All rights reserved. // import Foundation class P4DepotDir : NSObject, Directory { var p4DepotArea:P4DepotArea var area:Area { return p4DepotArea } var p4Dir:P4Dir var parent:Directory? = nil var children:Directory[] { var depotDirs = Array() let depotPath = "\(p4Dir.depotPath)/*" p4DepotArea.p4Library.withConnection({ (api:P4ClientApi) -> () in let (err, dirs) = api.dirs(depotPath) if let e = err { NSException(name: "DirectoryListFailed", reason: e.localizedDescription, userInfo: nil).raise() } for p4dir in dirs { let dir = P4DepotDir(depotArea:self.p4DepotArea, dir:p4dir) dir.parent = self depotDirs.append(dir) } }) return depotDirs } var files:File[] { var depotFiles = Array() let depotPath = "\(p4Dir.depotPath)/*" p4DepotArea.p4Library.withConnection({ (api:P4ClientApi) -> () in let (err, p4Files) = api.files(depotPath) if let e = err { NSException(name: "FileListFailed", reason: e.localizedDescription, userInfo: nil).raise() } for p4file in p4Files { let file = P4DepotFile(depotArea:self.p4DepotArea, p4File:p4file) file.parent = self depotFiles.append(file) } }) return depotFiles } init(depotArea:P4DepotArea, dir:P4Dir) { self.p4DepotArea = depotArea self.p4Dir = dir } }