This folder contains the BORDER DEVS model implemented in CDBoost

/**************************/
/****FILES ORGANIZATION****/
/**************************/
README.txt	
borderCDBoost.docx [This document contains the report of the border model done in CDBoost]
border [This folder contains the border project files done in CD++ and the border report done by Scott Stewart]
atomics [This folder contains atomic models implemented in CDBoost]
	decider.hpp
	line.hpp
	secondaryDecider.hpp
data_structures [This folder contains message data structure used in the model]
	message.hpp
	message.cpp
test [This folder contains the unit test of the atomic models and the coupled models]
	decider [This folder contains the unit test of the decider atomic model]
		main.cpp
		makefile
		decider_input_test.txt
		decider_test_output.txt
    line [This folder contains the unit test of the line atomic model]
		main.cpp
		makefile
		line_input_test.txt
		line_test_output.txt
	secondaryDecider [This folder contains the unit test of the secondaryDecider atomic model]
		main.cpp
		makefile
		secondaryDecider_input_test.txt
		secondaryDecider_test_output.txt
	extraChecks [This folder contains the unit test of the extraChecks coupled model]
		main.cpp
		makefile
	    extraChecks_input_test.txt
		extraChecks_test_output.txt
	frontDesk [This folder contains the unit test of the frontDesk coupled model]
		main.cpp
		makefile
		frontDesk_input_test.txt
		frontDesk_test_output.txt
	interview [This folder contains the unit test of the interview coupled model]
		main.cpp
		makefile
		interview_input_test.txt
		interview_test_output.txt
vendor [This folder contains the time class, the model to generate the inputs to the DEVS model, the filter model (which lets in several inputs but only lets one output through) and the portConversor model (which converts the name of the model's input to a desired name)]
	input_event_stream.hpp
	britime.hpp
	filterPort.hpp
	portConversor.hpp
borderTop [This folder contains the Border top model]	
	main.cpp
	makefile
	borderTop_input_test.txt
	borderTop_test_output.txt
	
/*************/
/****STEPS****/
/*************/

0 - borderCDBoost.docx contains the explanation of this model

1 - Update include paths in all the makefiles in this folder and subfolders. You need to update the following lines:
	INCLUDEBCDPP=-I ../../../../../../../cdboost/include
    Update the relative path to cdboost/include from the folder where the makefile is. 
    You need to take into account where you copied the folder during the installation process. If your makefile is in the decider folder and cdboost is installed in the Home folder, the following directory will take you to the decider folder 
    Home/Documents/My_docs/sysc5104/Assignment1_Border_Crossing/test/decider 
    You will need 6 directory paths to get to the makefile folder (decider) from the Home so you will need to update the line in the makefile document to the following
	Example: INCLUDEBCDPP=-I ../../../../../../cdboost/include
* ../ means going up a level in the directory tree.

2 - Run the unit tests
	2.1. Run decider test
		1 - Open the terminal. Press in your keyboard Ctrl+Alt+t
		2 - Set the command prompt in the decider folder. To do so, type in the terminal the path to this folder.
			Example: cd Documents/My_docs/sysc5104/Assignment1_Border_Crossing/test/decider
		3 - To compile the test, type in the terminal:
			make clean; make all
		4 - To run the test, type in the terminal "./NAME_OF_THE_COMPILED_FILE NAME_OF_THE_INPUT_FILE". For this specific test you need to type:
			./decider decider_input_test.txt
		5 - To check the output of the test, open  "decider_test_output.txt"
	2.2. Run line test
		1 - Open the terminal. Press in your keyboard Ctrl+Alt+t
		2 - Set the command prompt in the line folder. To do so, type in the terminal the path to this folder.
			Example: cd ../line
		3 - To compile the test, type in the terminal:
			make clean; make all
		4 - To run the test, type in the terminal "./NAME_OF_THE_COMPILED_FILE NAME_OF_THE_INPUT_FILE". For this specific test you need to type:
			./line line_input_test.txt
		5 - To check the output of the test, open  "line_test_output.txt"
	2.3. To run secondaryDecider, extraChecks, frontDesk and interview tests, the steps are analogous to 2.1 and 2.2
			
3 - Run the top model
	1 - Open the terminal. Press in your keyboard Ctrl+Alt+t
	2 - Set the command prompt in the top_model folder. To do so, type in the terminal the path to this folder.
		Example: cd ../../borderTop
	3 - To compile the model, type in the terminal:
		make clean; make all
	4 - To run the model, type in the terminal "./NAME_OF_THE_COMPILED_FILE NAME_OF_THE_INPUT_FILE". For this test you need to type:
		./borderTop borderTop_input_test.txt
	5 - To check the output of the model, open  "borderTop_test_output.txt"
	6 - To run the model with different inputs
		6.1. Create new .txt files with the same structure as borderTop_input_test_0.txt or borderTop_input_test_1.txt
		6.2. Run the model using the instructions in step 4 but using the new input .txt file name Example ./borderTop borderTop_input_test_0.txt
		6.3. If you want to keep the output, rename borderTop_test_output.txt. To do so, type in the terminal: "mv borderTop_test_output.txt NEW_NAME"
			Example: mv borderTop_test_output.txt borderTop_test_output_0.txt. 
			The old output will be saved in borderTop_test_output_0.txt and the new output if you run the model again will be saved in borderTop_test_output.txt
