//
// 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<P4DepotDir>()
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<P4DepotFile>()
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
}
}