<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="behavior.xsl"?>
  <behavioral manifest="commandHandler.xml" version="2.0">
    <file>"XSLcommandHandler.xml"</file>
    <Author>Jim Fawcett</Author>
    <!--
      This is a behavioral desciption of a commandHandler process invoked by manifestScanner.
    -->
 
    <process name="CommandHandler">
      Handles manifest operations in response to a new manifest invocation, called by the
      Scanner Process.  It registers with the scanner for invocations in response to a client
      command.  The registration points to an event handler that processes the client command.
    </process>

    <inputs>
      <input variable="commandType">
        <def>defines the client requested command</def>
        <text>The commandType may take the values: build, extract, or view.</text>
      </input>
    </inputs>

    <outputs>
      <output variable="compoundCommandMessage">
        <def>carries the results of the command back to client</def>
        <text>Creates a compound message defining a set of files to be transferred to the client.</text>
        <connectsToTitle>Communication Process</connectsToTitle>
        <connectsToFile>XMLcommunication.xml</connectsToFile>
      </output>
      <output variable="CommandMessage">
        <def>carries request to build or view tools</def>
        <text>Creates a message requesting a component build or a component view.</text>
        <connectsToTitle>Builder Process</connectsToTitle>
        <connectsToFile>XMLbuilder.xml</connectsToFile>
      </output>
    </outputs>

    <requirements>
      <test No="CommandHandler_1">
        <def>test extract command</def>
        <traces to="derived"/>
        <text>
          Creates a compound message for file transmission consisting of one message for each
          file defined by the current manifest.  Each message contains a file to be transferred
          and is posted to the Communication Process.
      </text>
      </test>
      <test No="CommandHandler_2">
        <def>test build command</def>
        <traces to="derived"/>
        <text>Submits a build class library (DLL) request for each module manifest encountered.</text>
      </test>
      <test No="CommandHandler_3">
        <def>test view command</def>
        <traces to="derived"/>
        <text>Submits a view manifest request for each module manifest encountered.</text>
      </test>
    </requirements>
  </behavioral>