00001 /* 00002 * This file is part of the "Archon" framework. 00003 * (http://files3d.sourceforge.net) 00004 * 00005 * Copyright © 2002 by Kristian Spangsege and Brian Kristiansen. 00006 * 00007 * Permission to use, copy, modify, and distribute this software and 00008 * its documentation under the terms of the GNU General Public License is 00009 * hereby granted. No representations are made about the suitability of 00010 * this software for any purpose. It is provided "as is" without express 00011 * or implied warranty. See the GNU General Public License 00012 * (http://www.gnu.org/copyleft/gpl.html) for more details. 00013 * 00014 * The characters in this file are ISO8859-1 encoded. 00015 * 00016 * The documentation in this file is in "Doxygen" style 00017 * (http://www.doxygen.org). 00018 */ 00019 00020 #ifndef ARCHON_X3D_SAI_APPLICATION_SCENE_H 00021 #define ARCHON_X3D_SAI_APPLICATION_SCENE_H 00022 00023 #include <archon/util/mutex.H> 00024 #include <archon/util/ref.H> 00025 #include <archon/util/uri.H> 00026 00027 #include <archon/x3d/server/server.H> 00028 00029 #include <archon/x3d/sai/sai.H> 00030 00031 namespace Archon 00032 { 00033 namespace X3D 00034 { 00035 namespace SAI 00036 { 00037 using namespace Utilities; 00038 00039 struct ApplicationScene: SceneBase 00040 { 00041 ApplicationScene(Ref<Server> server, Uri baseUri, 00042 Ref<AbstractFileServer> fileServer): 00043 SceneBase(server, baseUri, fileServer) {} 00044 00051 void launch(Ref<GroupingNode> socket) 00052 throw(ForwardDestroyedException, x3d::sai::AlreadyLaunchedException, 00053 UnexpectedException); 00054 00059 void withdraw() throw(UnexpectedException); 00060 00061 private: 00062 Mutex launchMutex; 00063 00073 BackRef<GroupingNode> socket; 00074 00081 BackRef<Transform> transform; 00082 }; 00083 } 00084 } 00085 } 00086 00087 #endif // ARCHON_X3D_SAI_APPLICATION_SCENE_H