00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <base/Application>
00026
00027 #include <iostream>
00028 #include <iomanip>
00029 #include <string>
00030
00031 #include <base/Universe>
00032 #include <base/StdFileSystem>
00033 #include <base/Time>
00034
00035
00036 using base::Application;
00037
00038 Application* Application::app=0;
00039
00040
00041
00042 Application::Application(const String& resourceDirectoryName, const String& cacheDirectoryName)
00043 {
00044 if (app!=0)
00045 throw std::runtime_error("Application::Application - Application is a singleton, only one can exist");
00046 else
00047 app=this;
00048
00049
00050 std::cout.exceptions(std::ios::badbit | std::ios::failbit );
00051 std::cin.exceptions(std::ios::badbit | std::ios::failbit );
00052
00053 theTime = new Time();
00054 theFileSystem = ref<VFileSystem>( NewNamedObj("StdFileSystem") StdFileSystem());
00055 theUniverse = ref<Universe>(NewNamedObj("Universe") Universe(theFileSystem,resourceDirectoryName,cacheDirectoryName));
00056 }
00057
00058
00059 Application::~Application()
00060 {
00061 delete theTime;
00062 }
00063
00064
00065 void Application::displayHeader(const String& appName)
00066 {
00067 if (appName == "") {
00068 Consoleln("OpenSim v" << getVersion());
00069 Consoleln(" (C)1996-2004 David Jung. Licensed under the GNU General Public License.");
00070 }
00071 else {
00072 Consoleln(""+appName+" (OpenSim v" << getVersion() << " GPL Licensed)");
00073 }
00074 }
00075