Module: projects-protocol-internals Synopsis: Project manager protocol library Author: Andy Armstrong Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND /// Project conditions define open abstract class () end class ; /// Project errors define open class (, ) end class ; define method project-error (project :: , format-string :: , #rest format-args) error(make(, format-string: format-string, format-arguments: format-args)) end method project-error; define class () sealed constant slot condition-locator :: , required-init-keyword: locator:; end class ; define method project-file-error (project :: , location :: , format-string :: , #rest format-args) error(make(, project: project, locator: location, format-string: format-string, format-arguments: format-args)) end method project-file-error; /// Project warnings define open class (, ) sealed constant slot warning-project :: , required-init-keyword: project:; end class ; define open class () end class ; define function project-warning (project :: , string, #rest args) let warning = make(, project: project, format-string: string, format-arguments: args); register-project-condition(project, warning); signal(warning) end function project-warning; define function project-serious-warning (project :: , string, #rest args) let warning = make(, project: project, format-string: string, format-arguments: args); register-project-condition(project, warning); signal(warning) end function project-serious-warning; define function resignal-project-warning (project :: , c :: , #key abort? :: = #f) => () apply(project-warning, project, c.condition-format-string, c.condition-format-arguments); abort? & abort-build(project) end function resignal-project-warning; /// Build warnings define open class (, ) sealed constant slot warning-project :: , required-init-keyword: project:; end class ; define open class () end class ; define function build-warning (project :: , string, #rest args) let warning = make(, project: project, format-string: string, format-arguments: args); register-project-condition(project, warning); signal(warning) end function build-warning; define function build-serious-warning (project :: , string, #rest args) let warning = make(, project: project, format-string: string, format-arguments: args); register-project-condition(project, warning); signal(warning) end function build-serious-warning; define function resignal-build-warning (project :: , c :: , #key abort? :: = #f) => () apply(build-warning, project, c.condition-format-string, c.condition-format-arguments); abort? & abort-build(project) end function resignal-build-warning;