UnitHolder::select_unit logic

master
Chris Punches 2017-04-21 02:04:15 -04:00
parent c0cd9f3549
commit f66391d2b0
12 changed files with 5543 additions and 131 deletions

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -11,7 +11,17 @@
</configurations> </configurations>
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="50b7ab1f-b700-44ff-b78d-e32f34492ff2" name="Default" comment="" /> <list default="true" id="50b7ab1f-b700-44ff-b78d-e32f34492ff2" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/cmake-build-debug/CMakeFiles/ftests.dir/examplar.cpp.o" afterPath="$PROJECT_DIR$/cmake-build-debug/CMakeFiles/ftests.dir/examplar.cpp.o" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/cmake-build-debug/CMakeFiles/ftests.dir/src/loaders.cpp.o" afterPath="$PROJECT_DIR$/cmake-build-debug/CMakeFiles/ftests.dir/src/loaders.cpp.o" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/cmake-build-debug/ftests" afterPath="$PROJECT_DIR$/cmake-build-debug/ftests" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/cmake-build-debug/CMakeFiles/ftests.dir/CXX.includecache" afterPath="$PROJECT_DIR$/cmake-build-debug/CMakeFiles/ftests.dir/CXX.includecache" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/cmake-build-debug/conf/test.plan" afterPath="$PROJECT_DIR$/cmake-build-debug/conf/test.plan" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/examplar.cpp" afterPath="$PROJECT_DIR$/examplar.cpp" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/loaders.cpp" afterPath="$PROJECT_DIR$/src/loaders.cpp" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/loaders.h" afterPath="$PROJECT_DIR$/src/loaders.h" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" /> <option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@ -30,11 +40,11 @@
<splitter split-orientation="horizontal" split-proportion="0.4510178"> <splitter split-orientation="horizontal" split-proportion="0.4510178">
<split-first> <split-first>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="loaders.h" pinned="false" current-in-tab="false"> <file leaf-file-name="loaders.h" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/loaders.h"> <entry file="file://$PROJECT_DIR$/src/loaders.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306"> <state relative-caret-position="24">
<caret line="17" column="12" lean-forward="true" selection-start-line="17" selection-start-column="12" selection-end-line="17" selection-end-column="12" /> <caret line="13" column="0" lean-forward="true" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding> <folding>
<element signature="e#0#2#0" expanded="true" /> <element signature="e#0#2#0" expanded="true" />
</folding> </folding>
@ -46,17 +56,17 @@
<entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/units/all_test.units"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/units/all_test.units">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378"> <state relative-caret-position="378">
<caret line="21" column="1" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="21" selection-end-column="1" /> <caret line="21" column="1" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="21" selection-end-column="1" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="test.plan" pinned="false" current-in-tab="true"> <file leaf-file-name="test.plan" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/test.plan"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/test.plan">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="72">
<caret line="5" column="1" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="1" /> <caret line="4" column="35" lean-forward="false" selection-start-line="4" selection-start-column="35" selection-end-line="4" selection-end-column="35" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -65,59 +75,15 @@
</leaf> </leaf>
</split-first> </split-first>
<split-second> <split-second>
<leaf> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="loaders.cpp" pinned="false" current-in-tab="false"> <file leaf-file-name="loaders.cpp" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/loaders.cpp"> <entry file="file://$PROJECT_DIR$/src/loaders.cpp">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1111"> <state relative-caret-position="1446">
<caret line="85" column="0" lean-forward="true" selection-start-line="85" selection-start-column="0" selection-end-line="85" selection-end-column="0" /> <caret line="89" column="13" lean-forward="false" selection-start-line="89" selection-start-column="13" selection-end-line="89" selection-end-column="13" />
<folding> <folding>
<element signature="e#1910#2044#0" expanded="true" /> <element signature="e#1915#2049#0" expanded="true" />
<element signature="e#2297#2358#0" expanded="true" /> <element signature="e#3196#3318#0" expanded="true" />
<element signature="e#2991#3142#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="json.h" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/json/json.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="640">
<caret line="2118" column="4" lean-forward="false" selection-start-line="2118" selection-start-column="4" selection-end-line="2118" selection-end-column="4" />
<folding>
<element signature="e#7757#8005#0" expanded="false" />
<element signature="e#8108#8144#0" expanded="false" />
<element signature="e#8186#8286#0" expanded="false" />
<element signature="e#8619#8655#0" expanded="false" />
<element signature="e#8967#9039#0" expanded="false" />
<element signature="e#9132#9167#0" expanded="false" />
<element signature="e#9229#9273#0" expanded="false" />
<element signature="e#9318#9426#0" expanded="false" />
<element signature="e#11703#11722#0" expanded="false" />
<element signature="e#15036#15057#0" expanded="false" />
<element signature="e#15102#15119#0" expanded="false" />
<element signature="e#15213#15240#0" expanded="false" />
<element signature="e#15270#15297#0" expanded="false" />
<element signature="e#15533#15582#0" expanded="false" />
<element signature="e#15677#15705#0" expanded="false" />
<element signature="e#15870#15923#0" expanded="false" />
<element signature="e#23048#23102#0" expanded="false" />
<element signature="e#24764#24803#0" expanded="false" />
<element signature="e#25775#25862#0" expanded="false" />
<element signature="e#26144#26185#0" expanded="false" />
<element signature="e#30259#30548#0" expanded="false" />
<element signature="e#31166#31333#0" expanded="false" />
<element signature="e#33483#33590#0" expanded="false" />
<element signature="e#43349#43402#0" expanded="false" />
<element signature="e#56086#56106#0" expanded="false" />
<element signature="e#56939#56957#0" expanded="false" />
<element signature="e#57002#57019#0" expanded="false" />
<element signature="e#57205#57258#0" expanded="false" />
<element signature="e#67649#67669#0" expanded="false" />
<element signature="e#68485#68504#0" expanded="false" />
<element signature="e#68560#68579#0" expanded="false" />
<element signature="e#69490#70083#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -127,17 +93,17 @@
<entry file="file://$PROJECT_DIR$/cmake-build-debug/config.json"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/config.json">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72"> <state relative-caret-position="72">
<caret line="4" column="0" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="4" selection-end-column="0" /> <caret line="4" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file leaf-file-name="examplar.cpp" pinned="false" current-in-tab="true"> <file leaf-file-name="examplar.cpp" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/examplar.cpp"> <entry file="file://$PROJECT_DIR$/examplar.cpp">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="432"> <state relative-caret-position="252">
<caret line="24" column="0" lean-forward="true" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" /> <caret line="14" column="9" lean-forward="false" selection-start-line="14" selection-start-column="9" selection-end-line="14" selection-end-column="9" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -147,6 +113,9 @@
</split-second> </split-second>
</splitter> </splitter>
</component> </component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
<list> <list>
@ -155,13 +124,13 @@
<option value="$PROJECT_DIR$/plan.conf" /> <option value="$PROJECT_DIR$/plan.conf" />
<option value="$PROJECT_DIR$/CMakeLists.txt" /> <option value="$PROJECT_DIR$/CMakeLists.txt" />
<option value="$PROJECT_DIR$/cmake-build-debug/config.json" /> <option value="$PROJECT_DIR$/cmake-build-debug/config.json" />
<option value="$PROJECT_DIR$/cmake-build-debug/conf/test.plan" />
<option value="$PROJECT_DIR$/main.cpp" /> <option value="$PROJECT_DIR$/main.cpp" />
<option value="$PROJECT_DIR$/src/jsoncpp.cpp.cpp" /> <option value="$PROJECT_DIR$/src/jsoncpp.cpp.cpp" />
<option value="$PROJECT_DIR$/cmake-build-debug/conf/units/all_test.units" />
<option value="$PROJECT_DIR$/examplar.cpp" />
<option value="$PROJECT_DIR$/cmake-build-debug/conf/test.plan" />
<option value="$PROJECT_DIR$/src/loaders.h" /> <option value="$PROJECT_DIR$/src/loaders.h" />
<option value="$PROJECT_DIR$/src/loaders.cpp" /> <option value="$PROJECT_DIR$/src/loaders.cpp" />
<option value="$PROJECT_DIR$/examplar.cpp" />
<option value="$PROJECT_DIR$/cmake-build-debug/conf/units/all_test.units" />
</list> </list>
</option> </option>
</component> </component>
@ -172,10 +141,10 @@
<sorting>DEFINITION_ORDER</sorting> <sorting>DEFINITION_ORDER</sorting>
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="x" value="3075" /> <option name="x" value="1919" />
<option name="y" value="-8" /> <option name="y" value="-21" />
<option name="width" value="2673" /> <option name="width" value="3842" />
<option name="height" value="2134" /> <option name="height" value="2160" />
</component> </component>
<component name="ProjectView"> <component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1"> <navigator currentView="ProjectPane" proportions="" version="1">
@ -487,12 +456,13 @@
<updated>1491540343823</updated> <updated>1491540343823</updated>
<workItem from="1491540345736" duration="17928000" /> <workItem from="1491540345736" duration="17928000" />
<workItem from="1491759279673" duration="614000" /> <workItem from="1491759279673" duration="614000" />
<workItem from="1492298506932" duration="45000000" /> <workItem from="1492298506932" duration="46583000" />
<workItem from="1492752608203" duration="1988000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="63542000" /> <option name="totallyTimeSpent" value="67113000" />
</component> </component>
<component name="TodoView"> <component name="TodoView">
<todo-panel id="selected-file"> <todo-panel id="selected-file">
@ -504,27 +474,27 @@
</todo-panel> </todo-panel>
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="3075" y="-8" width="2673" height="2134" extended-state="0" /> <frame x="1919" y="-21" width="3842" height="2160" extended-state="0" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16719326" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295342" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295342" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3295342" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32941753" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="CMake" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="CMake" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1407334" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32903865" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1103081" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="LuaJ" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="LuaJ" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32925636" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24278022" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2499049" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2499049" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32892805" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3999021" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32925636" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout> </layout>
<layout-to-restore> <layout-to-restore>
@ -556,46 +526,52 @@
<option name="myLimit" value="2678400000" /> <option name="myLimit" value="2678400000" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager /> <breakpoint-manager>
<option name="time" value="1" />
</breakpoint-manager>
<watches-manager /> <watches-manager />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/conf/units.conf" /> <entry file="file://$PROJECT_DIR$/src/loaders.h">
<entry file="file://$PROJECT_DIR$/conf/plan.conf" />
<entry file="file://$PROJECT_DIR$/cmake-build-debug/ftests.cbp">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="306">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="17" column="12" lean-forward="true" selection-start-line="17" selection-start-column="12" selection-end-line="17" selection-end-column="12" />
<folding>
<element signature="e#0#2#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/json.hpp"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/units/all_test.units">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2430"> <state relative-caret-position="378">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="21" column="1" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="21" selection-end-column="1" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/CMakeLists.txt"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/test.plan">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108"> <state relative-caret-position="90">
<caret line="6" column="38" lean-forward="true" selection-start-line="6" selection-start-column="38" selection-end-line="6" selection-end-column="38" /> <caret line="5" column="1" lean-forward="true" selection-start-line="5" selection-start-column="1" selection-end-line="5" selection-end-column="1" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/json/jsoncpp.cpp"> <entry file="file://$PROJECT_DIR$/src/loaders.cpp">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1558"> <state relative-caret-position="1764">
<caret line="3113" column="23" lean-forward="true" selection-start-line="3113" selection-start-column="23" selection-end-line="3113" selection-end-column="23" /> <caret line="98" column="0" lean-forward="false" selection-start-line="98" selection-start-column="0" selection-end-line="98" selection-end-column="0" />
<folding /> <folding>
<element signature="e#1915#2049#0" expanded="true" />
<element signature="e#3196#3318#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/json/json.h"> <entry file="file://$PROJECT_DIR$/src/json/json.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="640"> <state relative-caret-position="38124">
<caret line="2118" column="4" lean-forward="false" selection-start-line="2118" selection-start-column="4" selection-end-line="2118" selection-end-column="4" /> <caret line="2118" column="4" lean-forward="false" selection-start-line="2118" selection-start-column="4" selection-end-line="2118" selection-end-column="4" />
<folding> <folding>
<element signature="e#7757#8005#0" expanded="false" /> <element signature="e#7757#8005#0" expanded="false" />
@ -634,6 +610,64 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cmake-build-debug/config.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
<caret line="4" column="0" lean-forward="true" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/examplar.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/conf/units.conf" />
<entry file="file://$PROJECT_DIR$/conf/plan.conf" />
<entry file="file://$PROJECT_DIR$/cmake-build-debug/ftests.cbp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/json.hpp" />
<entry file="file://$PROJECT_DIR$/CMakeLists.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108">
<caret line="6" column="38" lean-forward="true" selection-start-line="6" selection-start-column="38" selection-end-line="6" selection-end-column="38" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/json/jsoncpp.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1558">
<caret line="3113" column="23" lean-forward="true" selection-start-line="3113" selection-start-column="23" selection-end-line="3113" selection-end-column="23" />
<folding>
<element signature="e#0#64#0" expanded="true" />
<element signature="e#2978#3051#0" expanded="true" />
<element signature="e#3272#3345#0" expanded="true" />
<element signature="e#3960#4136#0" expanded="true" />
<element signature="e#5982#6194#0" expanded="true" />
<element signature="e#6453#6626#0" expanded="true" />
<element signature="e#7270#7343#0" expanded="true" />
<element signature="e#80097#80114#0" expanded="true" />
<element signature="e#86376#86393#0" expanded="true" />
<element signature="e#90202#90543#0" expanded="true" />
<element signature="e#91265#91302#0" expanded="true" />
<element signature="e#92828#92921#0" expanded="true" />
<element signature="e#93710#93727#0" expanded="true" />
<element signature="e#100233#100409#0" expanded="true" />
<element signature="e#144847#144864#0" expanded="true" />
<element signature="e#190023#190040#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/json/jsoncpp.cpp"> <entry file="file://$PROJECT_DIR$/src/json/jsoncpp.cpp">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="756"> <state relative-caret-position="756">
@ -659,24 +693,51 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/loaders.cpp"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/units/all_test.units">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1111"> <state relative-caret-position="378">
<caret line="85" column="0" lean-forward="true" selection-start-line="85" selection-start-column="0" selection-end-line="85" selection-end-column="0" /> <caret line="21" column="1" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="21" selection-end-column="1" />
<folding> <folding />
<element signature="e#1910#2044#0" expanded="true" />
<element signature="e#2297#2358#0" expanded="true" />
<element signature="e#2991#3142#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/loaders.h"> <entry file="file://$PROJECT_DIR$/src/json/json.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306"> <state relative-caret-position="928">
<caret line="17" column="12" lean-forward="true" selection-start-line="17" selection-start-column="12" selection-end-line="17" selection-end-column="12" /> <caret line="2118" column="4" lean-forward="false" selection-start-line="2118" selection-start-column="4" selection-end-line="2118" selection-end-column="4" />
<folding> <folding>
<element signature="e#0#2#0" expanded="true" /> <element signature="e#7757#8005#0" expanded="false" />
<element signature="e#8108#8144#0" expanded="false" />
<element signature="e#8186#8286#0" expanded="false" />
<element signature="e#8619#8655#0" expanded="false" />
<element signature="e#8967#9039#0" expanded="false" />
<element signature="e#9132#9167#0" expanded="false" />
<element signature="e#9229#9273#0" expanded="false" />
<element signature="e#9318#9426#0" expanded="false" />
<element signature="e#11703#11722#0" expanded="false" />
<element signature="e#15036#15057#0" expanded="false" />
<element signature="e#15102#15119#0" expanded="false" />
<element signature="e#15213#15240#0" expanded="false" />
<element signature="e#15270#15297#0" expanded="false" />
<element signature="e#15533#15582#0" expanded="false" />
<element signature="e#15677#15705#0" expanded="false" />
<element signature="e#15870#15923#0" expanded="false" />
<element signature="e#23048#23102#0" expanded="false" />
<element signature="e#24764#24803#0" expanded="false" />
<element signature="e#25775#25862#0" expanded="false" />
<element signature="e#26144#26185#0" expanded="false" />
<element signature="e#30259#30548#0" expanded="false" />
<element signature="e#31166#31333#0" expanded="false" />
<element signature="e#33483#33590#0" expanded="false" />
<element signature="e#43349#43402#0" expanded="false" />
<element signature="e#56086#56106#0" expanded="false" />
<element signature="e#56939#56957#0" expanded="false" />
<element signature="e#57002#57019#0" expanded="false" />
<element signature="e#57205#57258#0" expanded="false" />
<element signature="e#67649#67669#0" expanded="false" />
<element signature="e#68485#68504#0" expanded="false" />
<element signature="e#68560#68579#0" expanded="false" />
<element signature="e#69490#70083#0" expanded="false" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -684,34 +745,47 @@
<entry file="file://$PROJECT_DIR$/cmake-build-debug/config.json"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/config.json">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72"> <state relative-caret-position="72">
<caret line="4" column="0" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="4" selection-end-column="0" /> <caret line="4" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/units/all_test.units">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="378">
<caret line="21" column="1" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="21" selection-end-column="1" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/test.plan"> <entry file="file://$PROJECT_DIR$/cmake-build-debug/conf/test.plan">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="72">
<caret line="5" column="1" lean-forward="true" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="1" /> <caret line="4" column="35" lean-forward="false" selection-start-line="4" selection-start-column="35" selection-end-line="4" selection-end-column="35" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/examplar.cpp"> <entry file="file://$PROJECT_DIR$/examplar.cpp">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="432"> <state relative-caret-position="252">
<caret line="24" column="0" lean-forward="true" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" /> <caret line="14" column="9" lean-forward="false" selection-start-line="14" selection-start-column="9" selection-end-line="14" selection-end-column="9" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/loaders.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="24">
<caret line="13" column="0" lean-forward="true" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
<folding>
<element signature="e#0#2#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/loaders.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1446">
<caret line="89" column="13" lean-forward="false" selection-start-line="89" selection-start-column="13" selection-end-line="89" selection-end-column="13" />
<folding>
<element signature="e#1915#2049#0" expanded="true" />
<element signature="e#3196#3318#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component> </component>
</project> </project>

View File

@ -195,4 +195,6 @@ iostream
- -
fstream fstream
- -
cstdlib
-

View File

@ -1,6 +1,8 @@
{ {
"plan": [ "plan": [
{ "name": "gcc is present", "depends on": [ null ] }, { "name": "gcc is present", "depends on": [ null ] },
{ "name": "gcc can compile", "depends on": [ "gcc is present" ] },
{ "name": "gcc can compile2", "depends on": [ "gcc is present" ] },
{ "name": "gcc can compile", "depends on": [ "gcc is present" ] } { "name": "gcc can compile", "depends on": [ "gcc is present" ] }
] ]
} }

Binary file not shown.

View File

@ -22,7 +22,5 @@ int main()
std::cout << "Associated Unit heals:\t\t" << current_unit.get_rectify() << std::endl << std::endl; std::cout << "Associated Unit heals:\t\t" << current_unit.get_rectify() << std::endl << std::endl;
} }
return 0; return 0;
} }

5324
src/json/jsoncpp.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,7 @@ JLoader::JLoader( std::string filename )
if (! parsingSuccessful ) if (! parsingSuccessful )
{ {
std::cerr << "Failed to parse " << filename << ":\n\t" << reader.getFormattedErrorMessages(); std::cerr << "Failed to parse " << filename << ":\n\t" << reader.getFormattedErrorMessages();
exit( 1 ); std::exit( 1 );
} else { } else {
std::cout << "Parsed " << filename << " with " << this->json_root.size() << " elements." << std::endl; std::cout << "Parsed " << filename << " with " << this->json_root.size() << " elements." << std::endl;
} }
@ -71,18 +71,24 @@ UnitHolder::UnitHolder( std::string filename ): JLoader( filename )
Unit UnitHolder::select_unit(std::string provided_name) Unit UnitHolder::select_unit(std::string provided_name)
{ {
/*
* TODO: Implement fetch unit by name method.
*/
Unit * returnable; Unit * returnable;
bool foundMatch = false;
for ( int i = 0; i < this->units.size(); i++ ) for ( int i = 0; i < this->units.size(); i++ )
{ {
std::string unit_name = this->units[i].get_name(); std::string unit_name = this->units[i].get_name();
if ( unit_name == provided_name ) { if ( unit_name == provided_name )
{
returnable = & this->units[i]; returnable = & this->units[i];
foundMatch = true;
break;
} }
} }
if (! foundMatch )
{
std::cerr << "Unit name \"" << provided_name << "\" was referenced in a plan task but not defined!" << std::endl;
std::exit(1);
}
return * returnable; return * returnable;
} }
@ -100,7 +106,6 @@ Plan::Plan( std::string filename ): JLoader( filename )
{ {
/* Plan loads a file and deserializes the Unit JSON object to Task types as a vector member /* Plan loads a file and deserializes the Unit JSON object to Task types as a vector member
* Plan { vector<Task> } * Plan { vector<Task> }
* TODO: Ensure FIFO order.
*/ */
Json::Value raw_tasks = this->get_root()["plan"]; Json::Value raw_tasks = this->get_root()["plan"];

View File

@ -10,6 +10,7 @@
#include "json/json-forwards.h" #include "json/json-forwards.h"
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
#include <cstdlib>
inline bool exists (const std::string& name); inline bool exists (const std::string& name);