Thread: [brlcad-commits] SF.net SVN: brlcad:[32053] (Page 2)
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <ma...@us...> - 2008-07-29 14:58:50
|
Revision: 32053 http://brlcad.svn.sourceforge.net/brlcad/?rev=32053&view=rev Author: mafm Date: 2008-07-29 14:58:59 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Adding event for when we update the camera every frame Modified Paths: -------------- rt^3/trunk/src/g3d/CameraManager.cxx rt^3/trunk/src/g3d/CameraManager.h rt^3/trunk/src/g3d/GuiWindowManager.cxx Modified: rt^3/trunk/src/g3d/CameraManager.cxx =================================================================== --- rt^3/trunk/src/g3d/CameraManager.cxx 2008-07-29 14:57:40 UTC (rev 32052) +++ rt^3/trunk/src/g3d/CameraManager.cxx 2008-07-29 14:58:59 UTC (rev 32053) @@ -88,6 +88,10 @@ } getActiveCameraMode().updateCamera(camera, elapsedSeconds); + + // notify observers + notify(CameraObserverEvent(CameraObserverEvent::UPDATED, + "no-data")); } void CameraManager::cycleCameraMode() Modified: rt^3/trunk/src/g3d/CameraManager.h =================================================================== --- rt^3/trunk/src/g3d/CameraManager.h 2008-07-29 14:57:40 UTC (rev 32052) +++ rt^3/trunk/src/g3d/CameraManager.h 2008-07-29 14:58:59 UTC (rev 32053) @@ -55,7 +55,7 @@ { public: /** Action Identifier enumerator */ - enum ActionId { MODE_CHANGED = 1, PROJECTION_CHANGED = 2 }; + enum ActionId { MODE_CHANGED = 1, PROJECTION_CHANGED, UPDATED }; /** Action Identifier */ const ActionId _actionId; Modified: rt^3/trunk/src/g3d/GuiWindowManager.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiWindowManager.cxx 2008-07-29 14:57:40 UTC (rev 32052) +++ rt^3/trunk/src/g3d/GuiWindowManager.cxx 2008-07-29 14:58:59 UTC (rev 32053) @@ -259,6 +259,8 @@ throw "CameraProjection button not found"; } break; + case CameraObserverEvent::UPDATED: + break; default: throw "Action not understood by Observer"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2008-07-29 22:19:45
|
Revision: 32106 http://brlcad.svn.sourceforge.net/brlcad/?rev=32106&view=rev Author: ralith Date: 2008-07-29 22:19:53 +0000 (Tue, 29 Jul 2008) Log Message: ----------- Dirty hacks to make OIS build on FreeBSD until upstream ports joystick support properly Modified Paths: -------------- rt^3/trunk/src/other/ois/src/linux/EventHelpers.cpp rt^3/trunk/src/other/ois/src/linux/LinuxForceFeedback.cpp rt^3/trunk/src/other/ois/src/linux/LinuxInputManager.cpp rt^3/trunk/src/other/ois/src/linux/LinuxJoyStickEvents.cpp Modified: rt^3/trunk/src/other/ois/src/linux/EventHelpers.cpp =================================================================== --- rt^3/trunk/src/other/ois/src/linux/EventHelpers.cpp 2008-07-29 21:30:29 UTC (rev 32105) +++ rt^3/trunk/src/other/ois/src/linux/EventHelpers.cpp 2008-07-29 22:19:53 UTC (rev 32106) @@ -20,6 +20,7 @@ 3. This notice may not be removed or altered from any source distribution. */ +#ifndef __FreeBSD__ #include "linux/EventHelpers.h" #include "linux/LinuxPrereqs.h" #include "linux/LinuxForceFeedback.h" @@ -240,3 +241,5 @@ delete *ff; *ff = 0; } + +#endif Modified: rt^3/trunk/src/other/ois/src/linux/LinuxForceFeedback.cpp =================================================================== --- rt^3/trunk/src/other/ois/src/linux/LinuxForceFeedback.cpp 2008-07-29 21:30:29 UTC (rev 32105) +++ rt^3/trunk/src/other/ois/src/linux/LinuxForceFeedback.cpp 2008-07-29 22:19:53 UTC (rev 32106) @@ -20,6 +20,7 @@ 3. This notice may not be removed or altered from any source distribution. */ +#ifndef __FreeBSD__ #include "linux/LinuxForceFeedback.h" #include "OISException.h" @@ -59,3 +60,4 @@ { } +#endif Modified: rt^3/trunk/src/other/ois/src/linux/LinuxInputManager.cpp =================================================================== --- rt^3/trunk/src/other/ois/src/linux/LinuxInputManager.cpp 2008-07-29 21:30:29 UTC (rev 32105) +++ rt^3/trunk/src/other/ois/src/linux/LinuxInputManager.cpp 2008-07-29 22:19:53 UTC (rev 32106) @@ -22,7 +22,9 @@ */ #include "linux/LinuxInputManager.h" #include "linux/LinuxKeyboard.h" +#ifndef __FreeBSD__ #include "linux/LinuxJoyStickEvents.h" +#endif #include "linux/LinuxMouse.h" #include "OISException.h" #include <cstdlib> @@ -50,7 +52,9 @@ LinuxInputManager::~LinuxInputManager() { //Close all joysticks + #ifndef __FreeBSD__ LinuxJoyStick::_clearJoys(unusedJoyStickList); + #endif } //--------------------------------------------------------------------------------// @@ -99,8 +103,10 @@ void LinuxInputManager::_enumerateDevices() { //Enumerate all attached devices + #ifndef __FreeBSD__ unusedJoyStickList = LinuxJoyStick::_scanJoys(); joySticks = unusedJoyStickList.size(); + #endif } //----------------------------------------------------------------------------// @@ -114,8 +120,10 @@ if( mouseUsed == false ) ret.insert(std::make_pair(OISMouse, mInputSystemName)); + #ifndef __FreeBSD__ for(JoyStickInfoList::iterator i = unusedJoyStickList.begin(); i != unusedJoyStickList.end(); ++i) ret.insert(std::make_pair(OISJoyStick, i->vendor)); + #endif return ret; } @@ -127,7 +135,11 @@ { case OISKeyboard: return 1; case OISMouse: return 1; + #ifdef __FreeBSD__ + case OISJoyStick: return 0; + #else case OISJoyStick: return joySticks; + #endif default: return 0; } } @@ -139,7 +151,11 @@ { case OISKeyboard: return keyboardUsed ? 0 : 1; case OISMouse: return mouseUsed ? 0 : 1; + #ifdef __FreeBSD__ + case OISJoyStick: return 0; + #else case OISJoyStick: return (int)unusedJoyStickList.size(); + #endif default: return 0; } } @@ -180,6 +196,7 @@ obj = new LinuxMouse(this, bufferMode, grabMouse, hideMouse); break; } + #ifndef __FreeBSD__ case OISJoyStick: { for(JoyStickInfoList::iterator i = unusedJoyStickList.begin(); i != unusedJoyStickList.end(); ++i) @@ -193,6 +210,7 @@ } break; } + #endif default: break; } @@ -208,10 +226,12 @@ { if( obj ) { + #ifndef __FreeBSD__ if( obj->type() == OISJoyStick ) { unusedJoyStickList.push_back( ((LinuxJoyStick*)obj)->_getJoyInfo() ); } + #endif delete obj; } Modified: rt^3/trunk/src/other/ois/src/linux/LinuxJoyStickEvents.cpp =================================================================== --- rt^3/trunk/src/other/ois/src/linux/LinuxJoyStickEvents.cpp 2008-07-29 21:30:29 UTC (rev 32105) +++ rt^3/trunk/src/other/ois/src/linux/LinuxJoyStickEvents.cpp 2008-07-29 22:19:53 UTC (rev 32106) @@ -20,6 +20,7 @@ 3. This notice may not be removed or altered from any source distribution. */ +#ifndef __FreeBSD__ #include "OISConfig.h" #include "linux/LinuxJoyStickEvents.h" @@ -297,3 +298,5 @@ return 0; } + +#endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2008-07-29 22:32:11
|
Revision: 32107 http://brlcad.svn.sourceforge.net/brlcad/?rev=32107&view=rev Author: ralith Date: 2008-07-29 22:32:19 +0000 (Tue, 29 Jul 2008) Log Message: ----------- FreeBSD support for Mocha Modified Paths: -------------- rt^3/trunk/src/other/mocha/CMakeLists.txt rt^3/trunk/src/other/mocha/Include/Mocha/Platform.h rt^3/trunk/src/other/mocha/Source/GUID.cpp rt^3/trunk/src/other/mocha/Source/Mutex.cpp rt^3/trunk/src/other/mocha/Source/Thread.cpp rt^3/trunk/src/other/mocha/Source/Timer.cpp Modified: rt^3/trunk/src/other/mocha/CMakeLists.txt =================================================================== --- rt^3/trunk/src/other/mocha/CMakeLists.txt 2008-07-29 22:19:53 UTC (rev 32106) +++ rt^3/trunk/src/other/mocha/CMakeLists.txt 2008-07-29 22:32:19 UTC (rev 32107) @@ -21,7 +21,11 @@ include_directories(Include/ Lua/) add_library(mocha SHARED ${MOCHA_SOURCES}) set_target_properties(mocha PROPERTIES LINKER_LANGUAGE CXX) -target_link_libraries(mocha pthread uuid) +if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + target_link_libraries(mocha pthread) +else(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + target_link_libraries(mocha pthread uuid) +endif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") # pkg-config file file(WRITE ${PROJECT_BINARY_DIR}/Mocha.pc "prefix=${CMAKE_INSTALL_PREFIX} Modified: rt^3/trunk/src/other/mocha/Include/Mocha/Platform.h =================================================================== --- rt^3/trunk/src/other/mocha/Include/Mocha/Platform.h 2008-07-29 22:19:53 UTC (rev 32106) +++ rt^3/trunk/src/other/mocha/Include/Mocha/Platform.h 2008-07-29 22:32:19 UTC (rev 32107) @@ -32,8 +32,12 @@ #include <string> #ifdef POSIX +#ifdef __FreeBSD__ +#include <uuid.h> +#else #include <uuid/uuid.h> #endif +#endif namespace Mocha { Modified: rt^3/trunk/src/other/mocha/Source/GUID.cpp =================================================================== --- rt^3/trunk/src/other/mocha/Source/GUID.cpp 2008-07-29 22:19:53 UTC (rev 32106) +++ rt^3/trunk/src/other/mocha/Source/GUID.cpp 2008-07-29 22:32:19 UTC (rev 32107) @@ -87,7 +87,12 @@ memcpy( mData, &id, sizeof( id ) ); #elif defined( POSIX ) uuid_t id; +#ifdef __FreeBSD__ + unsigned int status; // dummy + uuid_create(&id, &status); +#else uuid_generate(id); +#endif memcpy( mData, &id, sizeof( id ) ); #else #error "No GUID implementation" @@ -174,9 +179,13 @@ CoCreateGuid( &GUIDStruct ); #else uuid_t GUIDStruct; - uuid_generate(GUIDStruct); - +#ifdef __FreeBSD__ + unsigned int status; // dummy + uuid_create(&GUIDStruct, &status); +#else + uuid_generate(GUIDStruct); #endif +#endif String Value; Modified: rt^3/trunk/src/other/mocha/Source/Mutex.cpp =================================================================== --- rt^3/trunk/src/other/mocha/Source/Mutex.cpp 2008-07-29 22:19:53 UTC (rev 32106) +++ rt^3/trunk/src/other/mocha/Source/Mutex.cpp 2008-07-29 22:32:19 UTC (rev 32107) @@ -28,7 +28,10 @@ #ifdef POSIX #include <pthread.h> +#ifdef __FreeBSD__ +#include <pthread_np.h> #endif +#endif namespace Mocha { @@ -71,7 +74,11 @@ Mutex::Mutex( ) { pthread_mutexattr_t mutexattr; + #ifdef __FreeBSD__ + pthread_mutexattr_setkind_np(&mutexattr, PTHREAD_MUTEX_RECURSIVE); + #else pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE_NP); + #endif pthread_mutex_init(&mCritSection, &mutexattr); pthread_mutexattr_destroy(&mutexattr); } Modified: rt^3/trunk/src/other/mocha/Source/Thread.cpp =================================================================== --- rt^3/trunk/src/other/mocha/Source/Thread.cpp 2008-07-29 22:19:53 UTC (rev 32106) +++ rt^3/trunk/src/other/mocha/Source/Thread.cpp 2008-07-29 22:32:19 UTC (rev 32107) @@ -27,6 +27,10 @@ #include "Mocha/Thread.h" #include "Mocha/Exception.h" +#ifdef __FreeBSD__ +#include <sys/time.h> +#endif + #define STACK_SIZE 4096 namespace Mocha Modified: rt^3/trunk/src/other/mocha/Source/Timer.cpp =================================================================== --- rt^3/trunk/src/other/mocha/Source/Timer.cpp 2008-07-29 22:19:53 UTC (rev 32106) +++ rt^3/trunk/src/other/mocha/Source/Timer.cpp 2008-07-29 22:32:19 UTC (rev 32107) @@ -26,6 +26,10 @@ #include "Mocha/Timer.h" +#ifdef __FreeBSD__ +#include <sys/time.h> +#endif + namespace Mocha { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-31 14:11:04
|
Revision: 32162 http://brlcad.svn.sourceforge.net/brlcad/?rev=32162&view=rev Author: mafm Date: 2008-07-31 14:11:10 +0000 (Thu, 31 Jul 2008) Log Message: ----------- Adding custom Widget based in RBGui::Widget intending to represent and control rotations Added Paths: ----------- rt^3/trunk/src/g3d/GuiWidgetRotation.cxx rt^3/trunk/src/g3d/GuiWidgetRotation.h Added: rt^3/trunk/src/g3d/GuiWidgetRotation.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiWidgetRotation.cxx (rev 0) +++ rt^3/trunk/src/g3d/GuiWidgetRotation.cxx 2008-07-31 14:11:10 UTC (rev 32162) @@ -0,0 +1,100 @@ +/* G U I W I D G E T R O T A T I O N . C X X + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ + +/** @file GuiWidgetRotation.cxx + * + * @author Manuel A. Fernandez Montecelo <ma...@us...> + * + * @brief + * Implementation of the GuiWidgetRotation class of 3D Geometry + * Editor (g3d). + */ + +#include "GuiWidgetRotation.h" + +#include <RBGui/Widget.h> +#include <RBGui/GuiManager.h> + + +/******************************************************************************* + * GuiWidgetRotation + ******************************************************************************/ +GuiWidgetRotation::GuiWidgetRotation(RBGui::GuiManager* guiManager) : + Widget(guiManager), + _texture(0), + _progress(0.0f) +{ + _texture = getRenderTheme()->getTexture("BrlcadCameraRotation"); +} + +RBGui::Widget* GuiWidgetRotation::factory(RBGui::GuiManager* manager) +{ + return new GuiWidgetRotation(manager); +} + +Mocha::String GuiWidgetRotation::getClassName() const +{ + return "GuiWidgetRotation"; +} + +void GuiWidgetRotation::onDraw(RBGui::Brush& brush) const +{ + brush.setColor(getRenderColor()); + + brush.setFilterMode(RBGui::BRUSHFILTER_LINEAR); + brush.setBlendMode(RBGui::BRUSHBLEND_ALPHA); + brush.setTexture(_texture); + + brush.drawRectangle(getClientRectangle()); +} + +void GuiWidgetRotation::getValueList(Mocha::ObjectValueEntryList& out) const +{ + RBGui::Widget::getValueList(out); + //out.push_back(Mocha::ObjectValueEntry("Image", "text", "Image" )); +} + +Mocha::CommandResult GuiWidgetRotation::invoke(const Mocha::String& name, + const Mocha::ValueList& in, + Mocha::ValueList& out) +{ + // not configurable + + return Widget::invoke(name, in, out); +} + +void GuiWidgetRotation::setProgress(float progress) +{ + _progress = progress; +} + +float GuiWidgetRotation::getProgress() const +{ + return _progress; +} + + +// Local Variables: *** +// mode: C++ *** +// tab-width: 8 *** +// c-basic-offset: 2 *** +// indent-tabs-mode: t *** +// End: *** +// ex: shiftwidth=2 tabstop=8 Property changes on: rt^3/trunk/src/g3d/GuiWidgetRotation.cxx ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/g3d/GuiWidgetRotation.h =================================================================== --- rt^3/trunk/src/g3d/GuiWidgetRotation.h (rev 0) +++ rt^3/trunk/src/g3d/GuiWidgetRotation.h 2008-07-31 14:11:10 UTC (rev 32162) @@ -0,0 +1,95 @@ +/* G U I W I D G E T R O T A T I O N . H + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ + +/** @file GuiWidgetRotation.h + * + * @author Manuel A. Fernandez Montecelo <ma...@us...> + * + * @brief + * Header of the GuiWidgetRotation class of 3D Geometry Editor + * (g3d). + */ + +#ifndef __G3D_GUIWIDGETROTATION_H__ +#define __G3D_GUIWIDGETROTATION_H__ + + +#include <RBGui/Texture.h> +#include <RBGui/Widget.h> + + +/** + * @brief GUI Widget Rotation class of the 3D Geometry Editor. + * + * @author Manuel A. Fernandez Montecelo <ma...@us...> + * + * This class implements the Widget Rotation (a custom widget). + */ +class GuiWidgetRotation : public RBGui::Widget +{ +public: + /** + * Default constructor + * + * @param guiMgr Link to RBGui's GuiManager + */ + GuiWidgetRotation(RBGui::GuiManager* guiMgr); + + /** Destructor */ + virtual ~GuiWidgetRotation() { } + + /** @see RBGui::Widget::getClassName */ + virtual Mocha::String getClassName() const; + /** @see RBGui::Widget::getValueList */ + virtual void getValueList(Mocha::ObjectValueEntryList& out) const; + /** @see RBGui::Widget::invoke */ + virtual Mocha::CommandResult invoke(const Mocha::String& name, + const Mocha::ValueList& in, + Mocha::ValueList& out); + /** @see RBGui::Widget::factory */ + static RBGui::Widget* factory(RBGui::GuiManager* manager); + + /** Set progress, in the range 0-1 */ + void setProgress(float progress); + /** Get progress, in the range 0-1 */ + float getProgress() const; + +protected: + /** @see RBGui::Widget::onDraw */ + virtual void onDraw(RBGui::Brush& brush) const; + +private: + /** Texture */ + RBGui::Texture* _texture; + + /** Progress */ + float _progress; +}; + +#endif + + +// Local Variables: *** +// mode: C++ *** +// tab-width: 8 *** +// c-basic-offset: 2 *** +// indent-tabs-mode: t *** +// End: *** +// ex: shiftwidth=2 tabstop=8 Property changes on: rt^3/trunk/src/g3d/GuiWidgetRotation.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-31 14:15:23
|
Revision: 32163 http://brlcad.svn.sourceforge.net/brlcad/?rev=32163&view=rev Author: mafm Date: 2008-07-31 14:15:28 +0000 (Thu, 31 Jul 2008) Log Message: ----------- Adding window to control camera and display different properties Added Paths: ----------- rt^3/trunk/src/g3d/GuiCamera.cxx rt^3/trunk/src/g3d/GuiCamera.h Added: rt^3/trunk/src/g3d/GuiCamera.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiCamera.cxx (rev 0) +++ rt^3/trunk/src/g3d/GuiCamera.cxx 2008-07-31 14:15:28 UTC (rev 32163) @@ -0,0 +1,189 @@ +/* G U I C A M E R A . C X X + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ + +/** @file GuiCamera.cxx + * + * @author Manuel A. Fernandez Montecelo <ma...@us...> + * + * @brief + * Implementation of the GUI Camera class of 3D Geometry Editor + * (g3d). + */ + +#include "GuiCamera.h" + +#include "Logger.h" +#include "CameraManager.h" +#include "GuiWindowManager.h" +#include "GuiWidgetRotation.h" + +#include <OIS/OISKeyboard.h> +#include <OGRE/OgreRenderWindow.h> +#include <RBGui/GuiDefines.h> +#include <RBGui/GuiManager.h> +#include <RBGui/Window.h> +#include <RBGui/Widgets/ButtonWidget.h> +#include <RBGui/Widgets/ImageWidget.h> +#include <RBGui/Widgets/TextWidget.h> +#include <RBGui/Widgets/TextEntryWidget.h> + + +/******************************************************************************* + * GuiCamera + ******************************************************************************/ +GuiCamera::GuiCamera(RBGui::GuiManager& guiMgr) : + GuiBaseWindow(guiMgr, "Camera", "Camera", true), + _xRotation(0), _yRotation(0), _zRotation(0), + _up(0), _down(0), _left(0), _right(0), + _zoomIn(0), _zoomOut(0), _center(0) +{ + // creating windows and widgets + _mainWindow->setCloseable(true); + _mainWindow->setMovable(true); + _mainWindow->setResizeable(false); + _mainWindow->setBorderVisible(true); + show(); + + _xRotation = static_cast<GuiWidgetRotation*>(_mainWindow->createWidget("GuiWidgetRotation")); + _xRotation->setName("X Rotation"); + _xRotation->setProgress(0.33f); + _yRotation = static_cast<GuiWidgetRotation*>(_mainWindow->createWidget("GuiWidgetRotation")); + _yRotation->setName("Y Rotation"); + _yRotation->setProgress(0.66f); + _zRotation = static_cast<GuiWidgetRotation*>(_mainWindow->createWidget("GuiWidgetRotation")); + _zRotation->setName("Z Rotation"); + _zRotation->setProgress(0.50f); + + _up = static_cast<RBGui::ButtonWidget*>(_mainWindow->createWidget("Button")); + _up->setName("CameraUp button"); + _up->setImage("BrlcadCameraUp"); + _down = static_cast<RBGui::ButtonWidget*>(_mainWindow->createWidget("Button")); + _down->setName("CameraDown button"); + _down->setImage("BrlcadCameraDown"); + _left = static_cast<RBGui::ButtonWidget*>(_mainWindow->createWidget("Button")); + _left->setName("CameraLeft button"); + _left->setImage("BrlcadCameraLeft"); + _right = static_cast<RBGui::ButtonWidget*>(_mainWindow->createWidget("Button")); + _right->setName("CameraRight button"); + _right->setImage("BrlcadCameraRight"); + _zoomIn = static_cast<RBGui::ButtonWidget*>(_mainWindow->createWidget("Button")); + _zoomIn->setName("CameraZoomIn button"); + _zoomIn->setImage("BrlcadCameraZoomIn"); + _zoomOut = static_cast<RBGui::ButtonWidget*>(_mainWindow->createWidget("Button")); + _zoomOut->setName("CameraZoomOut button"); + _zoomOut->setImage("BrlcadCameraZoomOut"); + _center = static_cast<RBGui::ButtonWidget*>(_mainWindow->createWidget("Button")); + _center->setName("CameraCenter button"); + _center->setImage("BrlcadCameraCenter"); + + GuiWindowManager::instance().registerWindow(this); + CameraManager::instance().attach(this); +} + +GuiCamera::~GuiCamera() +{ + CameraManager::instance().detach(this); + + delete _xRotation; _xRotation = 0; + delete _yRotation; _yRotation = 0; + delete _zRotation; _zRotation = 0; + delete _up; _up = 0; + delete _down; _down = 0; + delete _left; _left = 0; + delete _right; _right = 0; + delete _zoomIn; _zoomIn = 0; + delete _zoomOut; _zoomOut = 0; + delete _center; _center = 0; +} + +void GuiCamera::resize(float contentLeft, float contentTop, float contentWidth, float contentHeight) +{ + // main window + _mainWindow->setPosition(Mocha::Vector2(contentLeft + (contentWidth*0.5f), + contentTop)); + _mainWindow->setSize(Mocha::Vector2(contentWidth*0.5f, contentHeight)); + + // widgets + Mocha::Vector2 rotControlSize = _mainWindow->getClientRectangle().getSize(); + rotControlSize.x /= 3.0f; + rotControlSize.y /= 10.0f; + + _xRotation->setPosition(Mocha::Vector2(rotControlSize.x*0.0f, 0.0f)); + _xRotation->setSize(rotControlSize); + _yRotation->setPosition(Mocha::Vector2(rotControlSize.x*1.0f, 0.0f)); + _yRotation->setSize(rotControlSize); + _zRotation->setPosition(Mocha::Vector2(rotControlSize.x*2.0f, 0.0f)); + _zRotation->setSize(rotControlSize); + + Mocha::Vector2 arrowControlSize = _mainWindow->getClientRectangle().getSize(); + arrowControlSize.x /= 3.0f; + arrowControlSize.y /= 10.0f; + _up->setPosition(Mocha::Vector2(arrowControlSize.x*1.0f, arrowControlSize.y*7.0f)); + _up->setSize(arrowControlSize); + _down->setPosition(Mocha::Vector2(arrowControlSize.x*1.0f, arrowControlSize.y*9.0f)); + _down->setSize(arrowControlSize); + _left->setPosition(Mocha::Vector2(arrowControlSize.x*0.0f, arrowControlSize.y*8.0f)); + _left->setSize(arrowControlSize); + _right->setPosition(Mocha::Vector2(arrowControlSize.x*2.0f, arrowControlSize.y*8.0f)); + _right->setSize(arrowControlSize); + _zoomIn->setPosition(Mocha::Vector2(arrowControlSize.x*0.0f, arrowControlSize.y*7.0f)); + _zoomIn->setSize(arrowControlSize); + _zoomOut->setPosition(Mocha::Vector2(arrowControlSize.x*2.0f, arrowControlSize.y*7.0f)); + _zoomOut->setSize(arrowControlSize); + _center->setPosition(Mocha::Vector2(arrowControlSize.x, arrowControlSize.y*8.0f)); + _center->setSize(arrowControlSize); +} + +void GuiCamera::update(const ObserverEvent& event) +{ + try { + // camera events + { + const CameraObserverEvent* e = dynamic_cast<const CameraObserverEvent*>(&event); + if (e) { + switch (e->_actionId) { + case CameraObserverEvent::MODE_CHANGED: + case CameraObserverEvent::PROJECTION_CHANGED: + break; + case CameraObserverEvent::UPDATED: + Logger::logWARNING("GuiCamera: '%s' event: %s", event._className.c_str(), "updated"); + break; + default: + throw "Action not understood by Observer"; + } + return; + } + } + + // event not processed before + throw "Event type not expected by Observer"; + } catch (const char* error) { + Logger::logWARNING("GuiCamera: '%s' event: %s", event._className.c_str(), error); + } +} + + +// Local Variables: *** +// mode: C++ *** +// tab-width: 8 *** +// c-basic-offset: 2 *** +// indent-tabs-mode: t *** +// End: *** +// ex: shiftwidth=2 tabstop=8 Property changes on: rt^3/trunk/src/g3d/GuiCamera.cxx ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/g3d/GuiCamera.h =================================================================== --- rt^3/trunk/src/g3d/GuiCamera.h (rev 0) +++ rt^3/trunk/src/g3d/GuiCamera.h 2008-07-31 14:15:28 UTC (rev 32163) @@ -0,0 +1,104 @@ +/* G U I C A M E R A . H + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ + +/** @file GuiCamera.h + * + * @author Manuel A. Fernandez Montecelo <ma...@us...> + * + * @brief + * Header of the GuiCamera class of 3D Geometry Editor (g3d). + */ + +#ifndef __G3D_GUICAMERA_H__ +#define __G3D_GUICAMERA_H__ + + +#include "GuiBaseWindow.h" +#include "Observer.h" + +#include <Mocha/Value.h> + + +class GuiWidgetRotation; +namespace RBGui { + class ButtonWidget; + class ImageWidget; +} + + +/** + * @brief GUI Camera class of the 3D Geometry Editor. + * + * @author Manuel A. Fernandez Montecelo <ma...@us...> + * + * This class implements the Camera control for the application. + */ +class GuiCamera : public GuiBaseWindow, public Observer +{ +public: + /** + * Default constructor + * + * @param guiMgr Link to RBGui's GuiManager + */ + GuiCamera(RBGui::GuiManager& guiMgr); + + /** Destructor */ + ~GuiCamera(); + + /** @see GuiBaseWindow::resize */ + virtual void resize(float contentLeft, float contentTop, float contentWidth, float contentHeight); + + /** @see Observer::update */ + virtual void update(const ObserverEvent& event); + +private: + /** Widgets for rotation */ + GuiWidgetRotation* _xRotation; + /** Widgets for rotation */ + GuiWidgetRotation* _yRotation; + /** Widgets for rotation */ + GuiWidgetRotation* _zRotation; + /** Widgets for rotation */ + RBGui::ButtonWidget* _up; + /** Widgets for rotation */ + RBGui::ButtonWidget* _down; + /** Widgets for rotation */ + RBGui::ButtonWidget* _left; + /** Widgets for rotation */ + RBGui::ButtonWidget* _right; + /** Widgets for rotation */ + RBGui::ButtonWidget* _zoomIn; + /** Widgets for rotation */ + RBGui::ButtonWidget* _zoomOut; + /** Widgets for rotation */ + RBGui::ButtonWidget* _center; +}; + +#endif + + +// Local Variables: *** +// mode: C++ *** +// tab-width: 8 *** +// c-basic-offset: 2 *** +// indent-tabs-mode: t *** +// End: *** +// ex: shiftwidth=2 tabstop=8 Property changes on: rt^3/trunk/src/g3d/GuiCamera.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-31 14:36:57
|
Revision: 32164 http://brlcad.svn.sourceforge.net/brlcad/?rev=32164&view=rev Author: mafm Date: 2008-07-31 14:37:00 +0000 (Thu, 31 Jul 2008) Log Message: ----------- Whitespace and debug logging messages Modified Paths: -------------- rt^3/trunk/src/g3d/GuiBaseWindow.cxx rt^3/trunk/src/g3d/GuiWindowManager.cxx Modified: rt^3/trunk/src/g3d/GuiBaseWindow.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiBaseWindow.cxx 2008-07-31 14:15:28 UTC (rev 32163) +++ rt^3/trunk/src/g3d/GuiBaseWindow.cxx 2008-07-31 14:37:00 UTC (rev 32164) @@ -75,7 +75,6 @@ } - // Local Variables: *** // mode: C++ *** // tab-width: 8 *** Modified: rt^3/trunk/src/g3d/GuiWindowManager.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiWindowManager.cxx 2008-07-31 14:15:28 UTC (rev 32163) +++ rt^3/trunk/src/g3d/GuiWindowManager.cxx 2008-07-31 14:37:00 UTC (rev 32164) @@ -137,11 +137,14 @@ void GuiWindowManager::registerWindow(GuiBaseWindow* w) { const char* name = w->getName().c_str(); - Logger::logDEBUG("GuiWindowManager::registerWindow(%s)", name); + Logger::logDEBUG("GuiWindowManager::registerWindow(%s), in taskbar? %s", + name, w->getPresentInTaskbar() ? "yes" : "no"); // if (w->getPresentInTaskbar()) { _windowList.push_back(w); + Logger::logDEBUG("smee"); + // create new button in the "taskbar" RBGui::ButtonWidget* b = static_cast<RBGui::ButtonWidget*>(_taskbar->createWidget("Button")); b->setText(name); @@ -202,9 +205,11 @@ buttonSize.x /= children.size(); for (size_t i = 0; i < children.size(); ++i) { + /* Logger::logDEBUG("_topbar children: '%s':'%s'", children[i]->getName().c_str(), children[i]->getText().c_str()); + */ children[i]->setPosition(Mocha::Vector2(buttonSize.x*i, 0.0f)); children[i]->setSize(buttonSize); @@ -224,6 +229,8 @@ b->setPosition(Mocha::Vector2(buttonSize.x*i, 0.0f)); b->setSize(buttonSize); } + } else { + Logger::logDEBUG("Taskbar with no items..."); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-07-31 14:38:06
|
Revision: 32165 http://brlcad.svn.sourceforge.net/brlcad/?rev=32165&view=rev Author: mafm Date: 2008-07-31 14:38:11 +0000 (Thu, 31 Jul 2008) Log Message: ----------- Adding new window and widget, and commenting out test code Modified Paths: -------------- rt^3/trunk/src/g3d/Application.cxx rt^3/trunk/src/g3d/Application.h Modified: rt^3/trunk/src/g3d/Application.cxx =================================================================== --- rt^3/trunk/src/g3d/Application.cxx 2008-07-31 14:37:00 UTC (rev 32164) +++ rt^3/trunk/src/g3d/Application.cxx 2008-07-31 14:38:11 UTC (rev 32165) @@ -27,10 +27,21 @@ * (g3d), along with some internal classes. */ +#include "Application.h" + +#include "Logger.h" +#include "CameraManager.h" +#include "CameraMode.h" +#include "GuiBaseWindow.h" +#include "GuiCamera.h" +#include "GuiCommandOverlay.h" +#include "GuiConsole.h" +#include "GuiWindowManager.h" +#include "GuiWidgetRotation.h" + #include <Mocha/DataSection.h> #include <Mocha/Stream.h> #include <Mocha/Timer.h> - #include <RBGui/Core.h> #include <RBGui/BrushCursorManager.h> #include <RBGui/SimpleWindowFader.h> @@ -50,11 +61,9 @@ #include <RBGui/Widgets/ProgressWidget.h> #include <RBGui/Widgets/ScrollWidget.h> #include <RBGui/Widgets/TextWidget.h> - #include <OGRE/Ogre.h> #include <OGRE/OgreSceneNode.h> #include <OIS/OIS.h> - #if defined(WIN32) #include <RBGui/Win32PlatformManager.h> #include <RBGui/Win32CursorManager.h> @@ -66,16 +75,6 @@ #error "No platform manager available" #endif -#include "Logger.h" -#include "GuiBaseWindow.h" -#include "GuiCommandOverlay.h" -#include "GuiConsole.h" -#include "GuiWindowManager.h" -#include "CameraManager.h" -#include "CameraMode.h" - -#include "Application.h" - using namespace std; @@ -432,6 +431,10 @@ _guiManager->setDefaultWindowAnimator("Wobble"); _guiManager->setDefaultWindowFader("Simple"); + // Register custom widgets + RBGui::AddWidgetFactory("GuiWidgetRotation", &GuiWidgetRotation::factory); + + // Setup all the input stuff { size_t data; @@ -480,6 +483,7 @@ GuiWindowManager::instance().setGuiManager(_guiManager); _windowList.push_back(new GuiConsole(*_guiManager)); _windowList.push_back(new GuiCommandOverlay(*_guiManager)); + _windowList.push_back(new GuiCamera(*_guiManager)); //createTestingWindows(); @@ -678,6 +682,7 @@ /*----------------------------------------------------------------------------- * Testing code ahead... *----------------------------------------------------------------------------*/ +/* void Application::createTestingWindows() { // Setup a test window @@ -793,12 +798,10 @@ w->updateAttribute("SPLINE", v); // Test persistance - /* Mocha::DataSection s; win->getRoot()->save(s); Mocha::RefPointer<CustomStream> stream = new CustomStream("test.widget"); s.write(*stream); - */ } void Application::browserResized(RBGui::GuiElement& vElement, const Mocha::ValueList& vData) @@ -848,9 +851,9 @@ else if (id == "HELP_ABOUT") _guiManager->createMessageBox("About", "Right Brain Games GUI\nOgre Sample Application\nVersion 1.0")->show(); } +*/ - // Local Variables: *** // mode: C++ *** // tab-width: 8 *** Modified: rt^3/trunk/src/g3d/Application.h =================================================================== --- rt^3/trunk/src/g3d/Application.h 2008-07-31 14:37:00 UTC (rev 32164) +++ rt^3/trunk/src/g3d/Application.h 2008-07-31 14:38:11 UTC (rev 32165) @@ -155,6 +155,7 @@ /***************************************************************************** * TESTING CODE AHEAD ****************************************************************************/ +/* void createTestingWindows(); void fileSelected(RBGui::GuiElement& vElement, const Mocha::ValueList& vData); @@ -164,6 +165,7 @@ void attributeChanged(RBGui::GuiElement& vElement, const Mocha::ValueList& vData); void menuPicked(RBGui::GuiElement& vElement, const Mocha::ValueList& vData); +*/ }; #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-08-01 10:26:41
|
Revision: 32186 http://brlcad.svn.sourceforge.net/brlcad/?rev=32186&view=rev Author: mafm Date: 2008-08-01 10:26:49 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Adding new icons for windows Modified Paths: -------------- rt^3/trunk/data/g3d/RBGui/themes/brlcad.theme Added Paths: ----------- rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_center.png rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_down.png rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_left.png rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_right.png rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_rotation.png rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_up.png rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_zoomin.png rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_zoomout.png Modified: rt^3/trunk/data/g3d/RBGui/themes/brlcad.theme =================================================================== --- rt^3/trunk/data/g3d/RBGui/themes/brlcad.theme 2008-08-01 05:32:54 UTC (rev 32185) +++ rt^3/trunk/data/g3d/RBGui/themes/brlcad.theme 2008-08-01 10:26:49 UTC (rev 32186) @@ -12,7 +12,7 @@ part right "54 23 7 5" part bottom "24 30 4 15" - minsize "140 74" + minsize "140 54" adjust "7 22 -7 -15" @@ -322,13 +322,20 @@ image FileIcon "file.png" image FolderIcon "folder.png" image ParentIcon "parent.png" +image BrlcadCameraUp "brlcad_camera_up.png" +image BrlcadCameraDown "brlcad_camera_down.png" +image BrlcadCameraLeft "brlcad_camera_left.png" +image BrlcadCameraRight "brlcad_camera_right.png" +image BrlcadCameraZoomIn "brlcad_camera_zoomin.png" +image BrlcadCameraZoomOut "brlcad_camera_zoomout.png" +image BrlcadCameraCenter "brlcad_camera_center.png" +image BrlcadCameraRotation "brlcad_camera_rotation.png" -default_font "ttf-bitstream-vera/VeraBd.ttf" 7 +default_font "ttf-bitstream-vera/VeraBd.ttf" 8 +font Button "ttf-bitstream-vera/VeraBd.ttf" 8 +font Window "ttf-bitstream-vera/VeraBd.ttf" 8 +font MenuEntry "ttf-bitstream-vera/VeraBd.ttf" 8 -font Button "ttf-bitstream-vera/VeraBd.ttf" 7 -font Window "ttf-bitstream-vera/VeraBd.ttf" 7 -font MenuEntry "ttf-bitstream-vera/VeraBd.ttf" 7 - color ListWidgetSelected "0.2 0.2 0.2 1.00" color ListWidgetTextColor "0.2 0.2 0.2 1.0" color ListWidgetTextSelectedColor "1.0 1.0 1.0 1.0" Property changes on: rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_center.png ___________________________________________________________________ Added: svn:mime-type + image/png Property changes on: rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_down.png ___________________________________________________________________ Added: svn:mime-type + image/png Property changes on: rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_left.png ___________________________________________________________________ Added: svn:mime-type + image/png Property changes on: rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_right.png ___________________________________________________________________ Added: svn:mime-type + image/png Property changes on: rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_rotation.png ___________________________________________________________________ Added: svn:mime-type + image/png Property changes on: rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_up.png ___________________________________________________________________ Added: svn:mime-type + image/png Property changes on: rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_zoomin.png ___________________________________________________________________ Added: svn:mime-type + image/png Property changes on: rt^3/trunk/data/g3d/RBGui/themes/brlcad_camera_zoomout.png ___________________________________________________________________ Added: svn:mime-type + image/png This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-08-01 10:33:43
|
Revision: 32187 http://brlcad.svn.sourceforge.net/brlcad/?rev=32187&view=rev Author: mafm Date: 2008-08-01 10:33:52 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Adding new method for getting the default theme being used (and thus be able to ask for resources like images easily) Modified Paths: -------------- rt^3/trunk/src/g3d/GuiWindowManager.cxx rt^3/trunk/src/g3d/GuiWindowManager.h Modified: rt^3/trunk/src/g3d/GuiWindowManager.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiWindowManager.cxx 2008-08-01 10:26:49 UTC (rev 32186) +++ rt^3/trunk/src/g3d/GuiWindowManager.cxx 2008-08-01 10:33:52 UTC (rev 32187) @@ -37,6 +37,7 @@ #include <OGRE/OgreRenderWindow.h> #include <OGRE/OgreRoot.h> #include <OGRE/OgreWindowEventUtilities.h> +#include <RBGui/Core.h> #include <RBGui/GuiDefines.h> #include <RBGui/GuiManager.h> #include <RBGui/Window.h> @@ -157,6 +158,11 @@ windowResized(&Application::instance().getRenderWindow()); } +RBGui::Theme* GuiWindowManager::getDefaultTheme() const +{ + return RBGui::Core::Get().getThemeManager().getDefaultTheme(); +} + const std::vector<GuiBaseWindow*>& GuiWindowManager::getWindowList() const { return _windowList; Modified: rt^3/trunk/src/g3d/GuiWindowManager.h =================================================================== --- rt^3/trunk/src/g3d/GuiWindowManager.h 2008-08-01 10:26:49 UTC (rev 32186) +++ rt^3/trunk/src/g3d/GuiWindowManager.h 2008-08-01 10:33:52 UTC (rev 32187) @@ -42,6 +42,7 @@ class ButtonWidget; class GuiElement; class GuiManager; + class Theme; class Window; } @@ -59,6 +60,10 @@ /** Singleton, access to the manager */ static GuiWindowManager& instance(); + /** Get default theme (for convenience, to call it from other + * windows) */ + RBGui::Theme* getDefaultTheme() const; + /** Register window */ void registerWindow(GuiBaseWindow* w); /** Get list of registered windows */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-01 11:34:02
|
Revision: 32189 http://brlcad.svn.sourceforge.net/brlcad/?rev=32189&view=rev Author: davidloman Date: 2008-08-01 11:34:03 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Added Paths: ----------- rt^3/trunk/src/geometryService/java/stractNet/src/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNConfig.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNRoot.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/SNCipher.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/SimpleDHExample.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestSNCipher.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestingJavaxCrypto.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/NoSecretKeyException.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/SNException.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MsgStop.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/NetID.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/WayPoint.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsg.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsgTypes.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsgUtil.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/BooleanFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/ByteArrayFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/DoubleFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/FloatFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/IntegerFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/LongFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/MsgFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/ShortFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/StringFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/frags/WayPointFrag.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/tests/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/tests/MsgSerializationTest01.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/tests/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/tests/MSTest01.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/tests/MSTest02.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/tests/PlaceboMessageServer.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/tests/PlaceboMsgStoppableClass.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/Portal.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/PortalChangeRequest.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/PortalDataEvent.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/PortalManager.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTest01.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTest02.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTest03.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTest04.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTest05.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTest06.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTest07.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTest08.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/portals/tests/PortalTestAbstract.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/tests/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/tests/EchoSubsystem.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/tests/ReactionSubsystem.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/tests/SampleApplication01.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/tests/SampleApplication02.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/tests/SendAndEchoSubSystem.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/tests/SendSubSystem.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/tests/TestAppCore.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/util/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/util/SNUtilities.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/util/tests/ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/util/tests/ByteConverterTests.java Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNConfig.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNConfig.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNConfig.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,9 @@ +package stractNet; + +public class SNConfig extends SNRoot { + + public SNConfig(String Name) { + super(Name); + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNConfig.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNRoot.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNRoot.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNRoot.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,92 @@ +package stractNet; + +import stractNet.messaging.MessagingSystem; + +public abstract class SNRoot { + public SNRoot (String Name) { + this.ObjName = Name; + this.MS_Local = SNRoot.MS_Global; + } + + /* + * 0 = Normal Waypoints + * 1 = Object Status reports (NON-Debuging) + * 2 = Object Data output (Debuging) + * + */ + public static int VerbosityLevel = 0; + + protected String ObjName = ""; + + + + + + //Messaging System configurations + private static MessagingSystem MS_Global; + private MessagingSystem MS_Local = SNRoot.MS_Global; + + public static MessagingSystem getGlobalMS() { + return SNRoot.MS_Global; + } + + public static void setGlobalMS(MessagingSystem ms) { + SNRoot.MS_Global = ms; + } + + + public MessagingSystem getLocalMS() { + return this.MS_Local; + } + + public void setLocalMS(MessagingSystem ms) { + this.MS_Local = ms; + } + + + + + + + protected void out(String message, int vLevel) { + SNRoot.sout(gON() + ":\t" + message, vLevel); + } + + protected void err(String message, int vLevel) { + SNRoot.serr(gON() + ":\t" + message, vLevel); + } + + // TODO Clean up out,err,sout,err routing. + public static void sout(String message, int vLevel) { + if (vLevel <= SNRoot.VerbosityLevel) { + synchronized(System.out) { + System.out.println(message); + } + } + } + + public static void serr(String message, int vLevel) { + if (vLevel <= SNRoot.VerbosityLevel) { + synchronized(System.err) { + System.err.println(message); + } + } + } + + + + + + + // Quick & Dirty getter'n'setters -> simplifies inclusion into Strings + public String gON() { + return this.ObjName; + } + public void sON(String name) { + this.ObjName = name; + } + + public String gOT() { + return this.getClass().getSimpleName(); + } +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/SNRoot.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/SNCipher.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/SNCipher.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/SNCipher.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,167 @@ +package stractNet.crypto; + +import java.math.BigInteger; +import javax.crypto.*; +import javax.crypto.spec.*; + +import stractNet.SNRoot; +import stractNet.exceptions.NoSecretKeyException; + +import java.security.*; +import java.security.spec.*; + + + +public class SNCipher extends SNRoot { + private BigInteger p; + private BigInteger g; + private SecretKey secretKey; + private PrivateKey privateKey; + private PublicKey publicKey; + private Cipher ecipher; + private Cipher dcipher; + + + public SNCipher(String Name, String sp, String sg) { + super(Name); + this.p = new BigInteger(sp,16); + this.g = new BigInteger(sg,16); + } + + public SNCipher(String Name, BigInteger sp, BigInteger sg) { + super(Name); + this.p = sp; + this.g = sg; + } + + + public boolean GenerateLocalKeys() { + try { + // Use the values to generate a key pair + + //Get instance of KeyPairGeneratro from factory + KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH"); + + //Define the DH parameters I want. + DHParameterSpec dhSpec = new DHParameterSpec(this.p, this.g); + + //Initialize the KeyGen to the DH parameters + keyGen.initialize(dhSpec); + + //Generate my Keypair + KeyPair keypair = keyGen.generateKeyPair(); + + // Get the generated public and private keys + this.privateKey = keypair.getPrivate(); + this.publicKey = keypair.getPublic(); + + } catch (java.security.InvalidAlgorithmParameterException e) { + return false; + } catch (java.security.NoSuchAlgorithmException e) { + return false; + } + return true; + } + + public boolean GenerateSecretKey (byte[] otherGuysPublicKey) { + try { + + // Convert the public key bytes into a PublicKey object + X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(otherGuysPublicKey); + KeyFactory keyFact = KeyFactory.getInstance("DH"); + PublicKey othersPublicKey = keyFact.generatePublic(x509KeySpec); + + // Prepare to generate the secret key with the private key and public key of the other party + KeyAgreement ka = KeyAgreement.getInstance("DH"); + ka.init(privateKey); + ka.doPhase(othersPublicKey, true); + + // Generate the secret key + this.secretKey = ka.generateSecret("DES"); //DH? + + + } catch (java.security.InvalidKeyException e) { + return false; + } catch (java.security.spec.InvalidKeySpecException e) { + return false; + } catch (java.security.NoSuchAlgorithmException e) { + return false; + } + + //initialize Ciphers + + try { + ecipher = Cipher.getInstance("DES"); + dcipher = Cipher.getInstance("DES"); + ecipher.init(Cipher.ENCRYPT_MODE, this.secretKey); + dcipher.init(Cipher.DECRYPT_MODE, this.secretKey); + + } catch (javax.crypto.NoSuchPaddingException e) { + return false; + } catch (java.security.NoSuchAlgorithmException e) { + return false; + } catch (java.security.InvalidKeyException e) { + return false; + } + + + return true; + } + + + public PublicKey getPublicKey() { + return publicKey; + } + + + public byte[] Encrypt (byte[] data) throws NoSecretKeyException { + + if (!this.hasSecretKey()) {throw new NoSecretKeyException("No Secret Key.");} + if (data == null) {return null;} + + try { + return this.ecipher.doFinal(data); + } catch (javax.crypto.BadPaddingException e) { + return new byte[0]; + } catch (IllegalBlockSizeException e) { + return new byte[0]; + } + } + + public byte[] Decrypt (byte[] data) throws NoSecretKeyException { + + if (!this.hasSecretKey()) {throw new NoSecretKeyException("No Secret Key.");} + if (data == null) {return null;} + + try { + // Decrypt + return dcipher.doFinal(data); + } catch (javax.crypto.BadPaddingException e) { + return new byte[0]; + } catch (IllegalBlockSizeException e) { + return new byte[0]; + } + } + + public boolean hasSecretKey() { + if (this.secretKey == null) { + return false; + } + return true; + } + + public boolean hasPrivateKey() { + if (this.privateKey == null) { + return false; + } + return true; + } + + public boolean hasPublicKey() { + if (this.publicKey == null) { + return false; + } + return true; + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/SNCipher.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/SimpleDHExample.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/SimpleDHExample.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/SimpleDHExample.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,57 @@ +package stractNet.crypto.tests; +import java.math.BigInteger; + +public class SimpleDHExample { + + /** + * @param args + */ + public static void main(String[] args) { + + String sp = "FB4656B4BE81A42C37C4A2614AAC659031B6832663940895568D5EBF94105A37B6821A752BF194B77E56C6D1F518E1A5139EC18598B732DB38091AF85CDA4F9F6793728F754F0BBD6961971FEEFB5BB085C4277E4142C2F1DA648F4E28FD2A63"; + BigInteger p = new BigInteger(sp,16); + + String sg = "05"; + BigInteger g = new BigInteger(sg,16); + + //p and g are hard coded into Alice and Bob + + //Alice picks a number + BigInteger a = new BigInteger("8",10); + + //Bob picks a number + BigInteger b = new BigInteger("9",10); + + //Alice calculates A + BigInteger A = g.modPow(a, p); + + //Bob calculates B + BigInteger B = g.modPow(b, p); + + + //A and B are sent in the clear!!!!! + System.out.println("Data in the clear (A): " + A.toString()); + System.out.println("Data in the clear (B): " + B.toString()); + + //Alice Calculates K + BigInteger AliceK = B.modPow(a, p); + + //Bob Calculates K + BigInteger BobK = A.modPow(b, p); + + System.out.println("\n"); + System.out.println("Alice: " + AliceK.toString()); + System.out.println("Bob: " + BobK.toString()); + + + } + +} + + + + + + + + Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/SimpleDHExample.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestSNCipher.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestSNCipher.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestSNCipher.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,100 @@ +package stractNet.crypto.tests; + +import stractNet.exceptions.NoSecretKeyException; +import stractNet.crypto.SNCipher; + +public class TestSNCipher { + + public static void main(String[] args) { + + String sp = "FB4656B4BE81A42C37C4A2614AAC659031B6832663940895568D5EBF94105A37B6821A752BF194B77E56C6D1F518E1A5139EC18598B732DB38091AF85CDA4F9F6793728F754F0BBD6961971FEEFB5BB085C4277E4142C2F1DA648F4E28FD2A63"; + String sg = "05"; + + SNCipher Alice = new SNCipher("AliceCihper", sp, sg); + SNCipher Bob = new SNCipher("BobCihper", sp, sg); + + // Each side Generates a private then public key. + Alice.GenerateLocalKeys(); + Bob.GenerateLocalKeys(); + + // Get Byte arrays of Public Keys + byte[] AlicesPubKey = Alice.getPublicKey().getEncoded(); + byte[] BobsPubKey = Bob.getPublicKey().getEncoded(); + + // Theoretical transfer of public keys across a network here. + + // Now have each side Generate their SecretKeys; + Alice.GenerateSecretKey(BobsPubKey); + Bob.GenerateSecretKey(AlicesPubKey); + + try { + + // /Test + + String s1 = "This is a test!!"; + byte[] b1 = s1.getBytes(); + + System.out.print(s1.concat(" -> ")); + printByteArray(b1); + System.out.println(); + + byte[] be1 = Alice.Encrypt(b1); + System.out.print("After Alice Encrypt(bytes): "); + printByteArray(be1); + System.out.println("After Alice Encrypt(string): " + .concat(new String(be1))); + System.out.println(); + + byte[] bd1 = Bob.Decrypt(be1); + System.out.print("After Bob Decrypt(bytes): "); + printByteArray(bd1); + System.out.println("After Bob Decrypt(string): ".concat(new String( + bd1))); + + System.out.println(); + System.out.println(); + System.out.println(); + System.out.println(); + + // Now send it back, modified. + + String s2 = new String(bd1); + s2 = s2 + .concat(" I have received your test and am replying in kind."); + byte[] b2 = s2.getBytes(); + + System.out.print(s2.concat(" -> ")); + printByteArray(b2); + System.out.println(); + + byte[] be2 = Bob.Encrypt(b2); + System.out.print("After Bob Encrypt(bytes): "); + printByteArray(be2); + System.out.println("After Bob Encrypt(string): ".concat(new String( + be2))); + System.out.println(); + + byte[] bd2 = Alice.Decrypt(be2); + System.out.print("After Alice Decrypt(bytes): "); + printByteArray(bd2); + System.out.println("After Alice Decrypt(string): " + .concat(new String(bd2))); + System.out.println(); + + } catch (NoSecretKeyException nske) { + System.err.println(nske.getMessage()); + } + + return; + } + + private static void printByteArray(byte[] data) { + for (byte b : data) { + System.out.print(b); + System.out.print(","); + } + System.out.println(); + + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestSNCipher.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestingJavaxCrypto.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestingJavaxCrypto.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestingJavaxCrypto.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,83 @@ +package stractNet.crypto.tests; + +import java.math.BigInteger; + +import javax.crypto.*; +import javax.crypto.spec.*; +import java.security.*; +import java.security.spec.*; + +public class TestingJavaxCrypto { + + public static void main(String[] args) { + + String sp = "FB4656B4BE81A42C37C4A2614AAC659031B6832663940895568D5EBF94105A37B6821A752BF194B77E56C6D1F518E1A5139EC18598B732DB38091AF85CDA4F9F6793728F754F0BBD6961971FEEFB5BB085C4277E4142C2F1DA648F4E28FD2A63"; + BigInteger p = new BigInteger(sp,16); + + String sg = "05"; + BigInteger g = new BigInteger(sg,16); + + + try { + // Use the values to generate a key pair + KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH"); + DHParameterSpec dhSpec = new DHParameterSpec(p, g); + keyGen.initialize(dhSpec); + KeyPair keypair = keyGen.generateKeyPair(); + + // Get the generated public and private keys + PrivateKey privateKey = keypair.getPrivate(); + PublicKey publicKey = keypair.getPublic(); + + // Send the public key bytes to the other party... + byte[] publicKeyBytes = publicKey.getEncoded(); + + System.out.println(privateKey.toString()); + System.out.println("\n"); + System.out.println(publicKey.toString()); + System.out.println("\n"); + System.out.println(publicKeyBytes.toString()); + + // Convert the public key bytes into a PublicKey object + X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(publicKeyBytes); + KeyFactory keyFact = KeyFactory.getInstance("DH"); + publicKey = keyFact.generatePublic(x509KeySpec); + + // Prepare to generate the secret key with the private key and public key of the other party + KeyAgreement ka = KeyAgreement.getInstance("DH"); + ka.init(privateKey); + ka.doPhase(publicKey, true); + + // Specify the type of key to generate; + // see e458 Listing All Available Symmetric Key Generators + String algorithm = "DES"; + + // Generate the secret key + SecretKey secretKey = ka.generateSecret(algorithm); + System.out.println(secretKey.toString()); + + // Use the secret key to encrypt/decrypt data; + // see e462 Encrypting a String with DES + } catch (java.security.InvalidKeyException e) { + } catch (java.security.spec.InvalidKeySpecException e) { + } catch (java.security.InvalidAlgorithmParameterException e) { + } catch (java.security.NoSuchAlgorithmException e) { + } + + + + + + + + + + + } + + + + + + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/crypto/tests/TestingJavaxCrypto.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/NoSecretKeyException.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/NoSecretKeyException.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/NoSecretKeyException.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,18 @@ +package stractNet.exceptions; + +public class NoSecretKeyException extends SNException { + + public NoSecretKeyException(String arg0, Throwable arg1) { + super(arg0, arg1); + } + + public NoSecretKeyException(String arg0) { + super(arg0); + } + + public NoSecretKeyException(Throwable arg0) { + super(arg0); + } + + static final long serialVersionUID = 1L; +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/NoSecretKeyException.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/SNException.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/SNException.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/SNException.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,24 @@ +package stractNet.exceptions; + +import stractNet.SNRoot; + +public class SNException extends Exception { + static final long serialVersionUID = 1L; + + + public SNException(String arg0, Throwable arg1) { + super(arg0, arg1); + SNRoot.serr(arg1.getMessage(),0); + } + + public SNException(String arg0) { + super(arg0); + SNRoot.serr(arg0,0); + } + + public SNException(Throwable arg0) { + super(arg0); + SNRoot.serr(arg0.getMessage(),0); + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/exceptions/SNException.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,255 @@ +package stractNet.messaging; + +import java.util.ArrayList; +import java.util.Date; +import java.util.Set; +import java.util.Iterator; + +import stractNet.messaging.MessagingSystem; +import stractNet.messaging.MsgStop; +import stractNet.messaging.msgs.StdMsg; +import stractNet.messaging.msgs.StdMsgTypes; +import stractNet.portals.Portal; +import stractNet.SNRoot; +import stractThread.STRunnable; +import stractThread.STUtilities; + +public class MessageDispatcher extends SNRoot implements STRunnable { + private Thread myThread; + private boolean runStatus = false; + private boolean runCmd = false; + public long MsgsProcessed = 0L; + + // FIXME I think i need to seperate the MessageDispatcher from the + // MessagingSystem for performance reasons. + + public MessageDispatcher(String Name, MessagingSystem ms) { + super(Name); + this.setLocalMS(ms); + } + + public MessageDispatcher(String Name) { + super(Name); + this.setLocalMS(SNRoot.getGlobalMS()); + } + + public void run() { + this.runStatus = true; + this.out("Running.", 1); + + // TODO add in functionality to allow User to select FORCEQUIT or + // QUIT_WHEN_QUEUE_EMPTY + while (this.runCmd || !this.getLocalMS().isQueueEmpty()) { + + synchronized (this.getLocalMS().getQ()) { + + this.getLocalMS().getQ().notify(); + + if (this.getLocalMS().isQueueEmpty()) { + try { + this.getLocalMS().getQ().wait(50); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + if (!this.getLocalMS().isQueueEmpty()) { + this.runStatus = true; + + StdMsg msg; + + synchronized (this.getLocalMS()) { + msg = this.getLocalMS().pollQ(); + } + + if (msg == null) { + continue; + } + + // check for echo msgs + if (CheckDuplicateMsg(msg)) { + this.err(msg.getMsgID().toString() + + " is a duplicate.",0); + continue; + } + + this.MsgsProcessed++; + + if (this.MsgsProcessed % 10000 == 0) { + this.getLocalMS().purgeDispatchedMsgList(); + } + + this.getLocalMS().getDispatchedMsgs().put(new Date().getTime(), + msg.getMsgID().toString()); + + // Determine Local or Remote + String destHost = msg.getToHost(); + if (destHost.equals(this.getLocalMS().getHostName())) { + // LOCAL DELIVERY + this.deliverLocal(msg); + + } else if (destHost.equals(StdMsgTypes.AllHosts)) { + // LOCAL AND REMOTE Deliveries. + this.deliverLocal(msg); + this.deliverRemote(msg); + + } else { + // REMOTE DELIVERY + this.deliverRemote(msg); + } + } else { + STUtilities.pause(25); + + } + this.runStatus = false; + } + this.runStatus = false; + this.out("Shutdown.", 1); + } + + private boolean CheckDuplicateMsg(StdMsg msg) { + return this.getLocalMS().getDispatchedMsgs().containsValue( + msg.getMsgID().toString()); + } + + private void deliverRemote(StdMsg msg) { + ArrayList<String> hosts; + + if (msg.getToHost().equals(StdMsgTypes.AllHosts)) { + // Deliever to EVERYONE on the map + + hosts = this.getLocalMS().getRemoteHostNamesArray(); + } else { + // just one host + hosts = new ArrayList<String>(); + hosts.add(msg.getToHost()); + } + + // Now remove any hosts that have already been delivered to. + ArrayList<WayPoint> wps = msg.getWayPoints(); + + for (WayPoint wp : wps) { + hosts.remove(wp.getHost()); + } + + String sout = ""; + for (String s : hosts) { + sout += "[" + s + "]"; + } + + if (hosts.size() == 0) { + this.out("No Remote Hosts qualify for delievery of StdMsg: " + msg.toString(), 2); + return; + } + + + this.out("Dispatching(Remote) StdMsg with MsgID/Type: " + + msg.getMsgID() + " / " + msg.getMsgType() + " to hosts: " + + sout, 2); + + for (String s : hosts) { + Portal p = this.getLocalMS().getPortal(s); + + // COPY it, don't get a new Msg! We need to keep the MsgID intact + StdMsg msg2 = new StdMsg(msg); + + // msg2.setToHost(s); + + if (p == null) { + this.err( + "Undeliverable Msg. Localhost: " + + this.getLocalMS().gON() + + " doesn't know about Remotehost: " + + msg2.getToHost(), 0); + // TODO add an Undeliverable Msg Queue / System. + return; + } + + p.SendToRemHost(msg2); + + } + + return; + } + + private void deliverLocal(StdMsg msg) { + + int msgType = msg.getMsgType(); + + Set<MsgStop> hs = null; + + // get the set of stops for this msg's opcode + if (msg.getMsgType() == StdMsgTypes.mtBroadcast) { + // Deliver to ALL stops: + hs = this.getLocalMS().getAllMsgStops(); + } else { + // Deliver to specific stops: + hs = this.getLocalMS().getMsgStops(msgType); + } + + // Null if there are no stops for this opcode! + if (hs == null) { + this.out("Unknown MsgType Encountered:".concat(Integer.toString(msg + .getMsgType()) + ""), 0); + return; + } + + if (hs.size() == 0) { + this.out("No Local Stops qualify for delievery of StdMsg: " + msg.toString(), 2); + return; + } + + + + // Iterate through all the stops + Iterator<MsgStop> it = hs.iterator(); + while (it.hasNext()) { + // Get the MsgStop + MsgStop msgstop = it.next(); + + if (msgstop == msg.getLocalFrom()) { + continue; + } + + this.out("Dispatching(Local) StdMsg with MsgID/Type: " + msg.getMsgID() + + " / " + msg.getMsgType() + " to MsgStop: " + msgstop.gON(), 2); + // Pass It a reference to the Message. + msgstop.sendToMsgStop(msg); + } + } + + /* + * Use start() when you want to run this object in a dedicated Thread aka + * Non-Blocking. + */ + @Override + public void start() { + this.out("Received Startup Command.", 1); + this.runCmd = true; + this.myThread = new Thread(this, this.gON().concat("-Thread")); + this.myThread.start(); + } + + @Override + public Thread getThread() { + return this.myThread; + } + + @Override + public boolean getRunStatus() { + return this.runStatus; + } + + @Override + public void stop() { + this.out("Received Shutdown Command.", 1); + this.runCmd = false; + } + + @Override + public boolean getRunCmd() { + return this.runCmd; + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,322 @@ +package stractNet.messaging; + +import java.io.DataInputStream; +import java.io.IOException; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +import stractNet.messaging.MessageDispatcher; +import stractNet.messaging.MessagingSystem; +import stractNet.messaging.MsgStop; +import stractNet.messaging.msgs.StdMsg; +import stractNet.portals.Portal; +import stractNet.SNRoot; + +public class MessagingSystem extends SNRoot { + + private ConcurrentLinkedQueue<StdMsg> Q = null; + private int MsgIDCnt = 0; + private int MsgsRouted = 0; + + /** + * MsgType, List of MsgStops<BR/><BR/> + */ + private HashMap<Integer, HashSet<MsgStop>> msgTypeRoutingTable = null; + + /** + * MsgType, List of MsgStops<BR/><BR/> + */ + private HashSet<MsgStop> msgStops = null; + + /** + * HostName, local Portal Reference<BR/><BR/> + */ + // private Hashtable<String, Portal> portals = new Hashtable<String, + // Portal>(); + private ArrayList<Portal> portals = new ArrayList<Portal>(); + /** + * TimeStamp, MS assigned Network ID<BR/><BR/> + */ + private HashMap<Long, String> DispatchedMsgs = new HashMap<Long, String>(); + + // private MessageDispatcher MD = null; + private int MDCounter = 0; + + public MessagingSystem(String HostName) { + super(HostName); + this.Q = new ConcurrentLinkedQueue<StdMsg>(); + this.msgTypeRoutingTable = new HashMap<Integer, HashSet<MsgStop>>(); + this.msgStops = new HashSet<MsgStop>(); + } + + public String getHostName() { + return this.gON(); + } + + /* + * Message addition, removal and peeking. + */ + + public boolean isQueueEmpty() { + synchronized (this.Q) { + return this.Q.isEmpty(); + } + } + + public synchronized StdMsg pollQ() { + synchronized (this.Q) { + this.MsgsRouted++; + return this.Q.poll(); + } + } + + public synchronized StdMsg peekQ() { + synchronized (this.Q) { + return this.Q.peek(); + } + } + + /* + * StdMsg Factories + */ + + public synchronized StdMsg generateNewMsg(int msgType) { + return generateNewMsgCommon(new StdMsg(msgType)); + } + + public synchronized StdMsg generateNewMsg(int msgType, String to) { + return generateNewMsgCommon(new StdMsg(msgType, to)); + } + + public synchronized StdMsg generateNewMsg(StdMsg msg) throws IOException { + return generateNewMsgCommon(new StdMsg(msg)); + } + + public synchronized StdMsg generateNewMsg(DataInputStream in) + throws IOException { + return new StdMsg(in); // Don't issue a new MsgID when deserializing! + } + + public synchronized StdMsg generateNewMsg(byte[] data) throws IOException { + return new StdMsg(data); // Don't issue a new MsgID when deserializing! + } + + private synchronized StdMsg generateNewMsgCommon(StdMsg sm) { + this.MsgIDCnt++; + sm.setMsgID(new NetID(this.MsgIDCnt, this.getHostName())); + sm.setFromHost(this.getHostName()); + + this.out("Issued new StdMsg with MsgID of: " + sm.getMsgID(), 2); + + return sm; + } + + public synchronized NetID AddMsgToQueue(StdMsg msg) { + msg.StampWayPoint(this.gON()); + this.out("Recieved StdMsg with MsgID/Type: " + msg.getMsgID() + " / " + + msg.getMsgType(), 2); + this.out("Details:\n\t" + msg.toString() + "\n" + + msg.ElementsToString(), 3); + synchronized (this.Q) { + this.Q.add(msg); + this.Q.notify(); + } + return new NetID(msg.getMsgID()); + } + + public ConcurrentLinkedQueue<StdMsg> getQ() { + return Q; + } + + /* + * Portal Utilities. + */ + public Portal getPortal(String Hostname) { + synchronized (this.portals) { + for (Portal p : this.portals) { + if (p.getRemoteHostName().equals(Hostname)) { + return p; + } + } + } + return null; + } + + public boolean hasRemoteHostOnFile(String Hostname) { + if (this.getPortal(Hostname) == null) { + return false; + } else { + return true; + } + } + + public synchronized ArrayList<Portal> getAllPortals() { + return this.portals; + } + + public synchronized String getRemoteHostNamesString() { + String sout = ""; + synchronized (this.portals) { + for (Portal p : this.portals) { + sout += "[" + p.getRemoteHostName() + "]"; + } + } + return sout; + } + + public synchronized ArrayList<String> getRemoteHostNamesArray() { + ArrayList<String> sout = new ArrayList<String>(); + synchronized (this.portals) { + for (Portal p : this.portals) { + sout.add(p.getRemoteHostName()); + } + } + return sout; + } + + public boolean RegisterPortal(Portal p) { + + synchronized (this.portals) { + // String RemHostName = new String(p.getRemoteHostName()); + + this.out("Recieved Registration Request for remote Portal: " + + p.getRemoteHostName(), 2); + + if (this.portals.contains(p) == false) { + // No entry for RemHostName + this.portals.add(p); + return true; + } else { + this.err("Warning: Remote Hostname already Registered", 0); + return false; + } + } + } + + public boolean UnRegisterPortal(Portal p) { + if (p == null) { + return false; + } + + this.out("Recieved UnRegistration Request for remote Portal: " + + p.getRemoteHostName(), 2); + + synchronized (this.portals) { + return this.portals.remove(p); + } + } + + /* + * MsgStop Utilities. + */ + + public synchronized HashSet<MsgStop> getMsgStops(int msgType) { + return this.msgTypeRoutingTable.get(msgType); + } + + public synchronized HashSet<MsgStop> getAllMsgStops() { + return this.msgStops; + } + + public synchronized void RegisterMsgStop(MsgStop ms) { + this.out("Recieved Registration Request for MsgStop: " + ms.gON(), 2); + + // Add to master MsgStop HashSet + this.msgStops.add(ms); + + // Get msgTypes for this stop. + HashSet<Integer> msgTypes = ms.getMsgTypesHashSet(); + + // Iterate though them. + for (int type : msgTypes) { + // Pull the routing table reference for this MsgType + HashSet<MsgStop> hs = this.msgTypeRoutingTable.get(type); + + // Check to see if there is one. + if (hs != null) { + // if yes, add to the HashSet of MsgStops + hs.add(ms); + } else { + // if not, make a new HashSet<MsgStop> + hs = new HashSet<MsgStop>(); + // add the stop + hs.add(ms); + // then add the New Hashset to the Routing table using msgType + // as key. + this.msgTypeRoutingTable.put(type, hs); + } + } + + return; + } + + public synchronized void UnRegisterMsgStop(MsgStop ms) { + this.out("Recieved UnRegistration Request for MsgStop: " + ms.gON(), 2); + + this.msgStops.remove(ms); + + // Get the set of existing msgTypes on the Entire Routing Table + Set<Integer> msgTypes = this.msgTypeRoutingTable.keySet(); + + for (int type : msgTypes) { + // For each type, get the reference to the HashSet of MsgStop IDs + HashSet<MsgStop> hs = this.msgTypeRoutingTable.get(type); + if (hs != null) { + // remove the ms from the HashSet + hs.remove(ms); + } + } + + return; + } + + /* + * + * Message Dispatcher Routines + */ + + public MessageDispatcher generateNewMD() { + this.MDCounter++; + return new MessageDispatcher(this.gON() + "MsgDisp-" + this.MDCounter, + this); + } + + public void purgeDispatchedMsgList() { + + ArrayList<Long> toDel = null; + long cutoff; + // FIXME there is a synchronization issue here. + synchronized (this.DispatchedMsgs) { + cutoff = new Date().getTime() - 60000L; // 600000 = 1 min + + toDel = new ArrayList<Long>(); + + for (long l : this.DispatchedMsgs.keySet()) { + if (l < cutoff) { + toDel.add(l); + } + } + } + synchronized (this.DispatchedMsgs) { + for (long l : toDel) { + this.DispatchedMsgs.remove(l); + } + // this.out("Purged Dispatch History: (" + before + " -> " + // + this.DispatchedMsgs.size() + ")", 2); + } + + } + + public int getMsgsRouted() { + return MsgsRouted; + } + + public synchronized HashMap<Long, String> getDispatchedMsgs() { + return DispatchedMsgs; + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MsgStop.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MsgStop.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MsgStop.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,92 @@ +package stractNet.messaging; + +/* + * Meant to be an Aggragate class. + */ + +import java.util.LinkedList; +import java.util.HashSet; +import stractNet.messaging.msgs.StdMsg; +import stractNet.messaging.msgs.StdMsgTypes; +import stractNet.SNRoot; +import java.util.Iterator; + +public class MsgStop extends SNRoot { + + // This is a reference to the Queue for messages coming FROM the MS to the + // destined MsgStop + private LinkedList<StdMsg> msgQ = null; + private HashSet<Integer> MsgTypes; + + public MsgStop(String Name, HashSet<Integer> msgTypes, + LinkedList<StdMsg> inQ) { + super(Name); + this.MsgTypes = msgTypes; + this.msgQ = inQ; + + this.addMsgType(StdMsgTypes.mtBroadcast); + this.addMsgType(StdMsgTypes.mtHello); + } + + + + public MsgStop(String Name, LinkedList<StdMsg> inQ) { + this(Name, new HashSet<Integer>(), inQ); + } + + public void sendToMsgStop(StdMsg msg) { + synchronized (this.msgQ) { + this.out("Recieved StdMsg from " + this.getLocalMS().gON() + " with MsgID/Type: " + msg.getMsgID() + + " / " + msg.getMsgType(), 2); + this.out("\n" + msg.ElementsToString(), 3); + this.msgQ.add(msg); + this.msgQ.notify(); + } + } + + + + public void sendToMS(StdMsg msg) { + this.out("Sent StdMsg to " + this.getLocalMS().gON() + " with MsgID/Type: " + msg.getMsgID() + + " / " + msg.getMsgType(), 2); + this.out("\n" + msg.ElementsToString(), 3); + msg.setLocalFrom(this); + this.getLocalMS().AddMsgToQueue(msg); + } + + public HashSet<Integer> getMsgTypesHashSet() { + return MsgTypes; + } + + public int[] getMsgTypesIntArray() { + + Iterator<Integer> it = this.MsgTypes.iterator(); + int[] mts = new int[this.MsgTypes.size()]; + + for (int i = 0; i < this.MsgTypes.size(); i++) { + mts[i] = it.next(); + } + + return mts; + } + + public void addMsgType(int msgType) { + MsgTypes.add(msgType); + } + +// public void addMsgTypes(HashSet<Integer> msgTypes) { +// MsgTypes.addAll(MsgTypes); +// } + + public void addMsgTypes(int[] msgTypes) { + for (int t : msgTypes) { + this.addMsgType(t); + } + } + + public void remMsgType(int msgType) { + MsgTypes.remove(msgType); + } + + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MsgStop.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/NetID.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/NetID.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/NetID.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,127 @@ +package stractNet.messaging; + + +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; + +import stractNet.SNRoot; +import stractNet.messaging.msgs.frags.LongFrag; +import stractNet.messaging.msgs.frags.StringFrag; + +public class NetID extends SNRoot { + + private LongFrag ID; + private StringFrag Host; + + /* + * Manual Constructor + */ + public NetID(long ID, String host) { + super(""); + this.ID = new LongFrag(ID); + Host = new StringFrag(host); + } + //Copy constructor + public NetID(NetID addr) { + super("NetID"); + ID = new LongFrag(addr.getID()); + Host = new StringFrag(addr.getHost()); + } + + + /* + * Deserializing Constructor + */ +// public NetID(byte[] data) throws IOException { +// super("SNAddr"); +// +// // Setup Streams +// ByteArrayInputStream bais = new ByteArrayInputStream(data); +// DataInputStream in = new DataInputStream(bais); +// +// // Deserialize Components +// this.ID = new LongFrag(in); +// this.Host = new StringFrag(in); +// } + + public NetID(DataInputStream in) throws IOException { + super("NetID"); + in.readInt(); + this.ID = new LongFrag(in); + in.readInt(); + this.Host = new StringFrag(in); + } + + + + public byte[] Serialize() { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(baos); + + this.Serialize(out); + + return baos.toByteArray(); + } + + public void Serialize(DataOutputStream out) { + try { + this.ID.Serialize(out); + this.Host.Serialize(out); + + } catch (IOException ioe) { + SNRoot.serr("IOException in Serialize()", 0); + } + return; + } + + + + + + + + +// public byte[] Serialize(byte[] prevData) { +// ByteArrayOutputStream baos = new ByteArrayOutputStream(); +// DataOutputStream out = new DataOutputStream(baos); +// +// try { +// // Write in prevdata +// out.write(prevData); +// out.write(this.Serialize()); +// +// return baos.toByteArray(); +// } catch (IOException ioe) { +// SNRoot.serr("IOException in Serialize()", 0); +// } +// +// return null; +// +// } + + + /** + * @return the msgStopID + */ + public long getID() { + return ID.getField(); + } + + /** + * @return the host + */ + public String getHost() { + return Host.getField(); + } + + @Override + public String toString() { + return Long.toString(this.ID.getField()).concat("@").concat(Host.getField()); + } + + + + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/NetID.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/WayPoint.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/WayPoint.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/WayPoint.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,92 @@ +package stractNet.messaging; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.Date; + +import stractNet.SNRoot; + +public class WayPoint extends SNRoot { + + private long time; + private String Host; + + /* + * Manual Constructor + */ + public WayPoint(long time, String host) { + super("WayPoint"); + this.time = time; + Host = host; + } + + + public WayPoint(String host) { + this(new Date().getTime(), host); + } + + + /* + * Deserializing Constructor + */ + public WayPoint(byte[] data) throws IOException { + this(new DataInputStream(new ByteArrayInputStream(data))); + } + + public WayPoint(DataInputStream in) throws IOException { + super("WayPoint"); + + // Deserialize Header Components + this.time = in.readLong(); + int strLen = in.readInt(); + char[] c = new char[strLen]; + + for (int i = 0; i < strLen; i++) { + c[i] = in.readChar(); + } + this.Host = new String(c); + + } + + public byte[] Serialize() { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(baos); + + try { + // Write in Header + out.writeLong(this.time); + out.writeInt(this.Host.length()); // chars are 2 bytes + out.writeChars(this.Host); + + return baos.toByteArray(); + } catch (IOException ioe) { + SNRoot.serr("IOException in Serialize()", 0); + } + + return null; + + } + + /** + * @return the host + */ + public String getHost() { + return Host; + } + + /** + * @return the time + */ + public long getTime() { + return time; + } + + @Override + public String toString() { + return Host.concat("@").concat(Long.toString(this.time)); + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/WayPoint.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsg.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsg.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsg.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,376 @@ +package stractNet.messaging.msgs; + +import stractNet.messaging.MsgStop; +import stractNet.messaging.NetID; +import stractNet.messaging.WayPoint; +import stractNet.messaging.msgs.frags.*; +import stractNet.SNRoot; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.EOFException; +import java.io.IOException; +import java.util.ArrayList; + +public class StdMsg extends SNRoot { + + /* + * Header Fields + */ + private NetID MsgID; + private IntegerFrag MsgType; + private StringFrag toHost; + private StringFrag fromHost; + private ArrayList<MsgFrag<?>> elements = new ArrayList<MsgFrag<?>>(); + private MsgStop LocalFrom; + + // private ArrayList<Integer> elementMap = new ArrayList<Integer>(); + + /* + * Copy Constructor + */ + + public StdMsg(StdMsg sm) { + super("StdMsg"); + this.MsgID = new NetID(sm.getMsgID()); + this.MsgType = new IntegerFrag(sm.getMsgType()); + this.toHost = new StringFrag(sm.getToHost()); + this.elements = new ArrayList<MsgFrag<?>>(sm.GetElements()); + // Don't need a Deep Copy ... I think. + this.LocalFrom = sm.LocalFrom; + this.fromHost = sm.fromHost; + } + + /* + * Manual Constructors + */ + + public StdMsg(int msgType) { + this(msgType, null); + } + + public StdMsg(int msgType, String to) { + super("StdMsg"); + this.MsgType = new IntegerFrag(msgType); + this.MsgID = new NetID(-1, "DEFAULT"); + this.toHost = new StringFrag(to); + } + + /* + * Deserializing Constructors + */ + public StdMsg(byte[] inData) { + this(new DataInputStream(new ByteArrayInputStream(inData))); + } + + public StdMsg(DataInputStream in) { + super("StdMsg"); + + // Get the total number of bytes for this message. + int totalBytes; + byte[] b; + try { + totalBytes = in.readInt(); + b = new byte[totalBytes]; // make a buffer + in.readFully(b); // read in till the buffer's full. + + // make an input stream out of the buffer + DataInputStream dis = new DataInputStream(new ByteArrayInputStream( + b)); + + try { + this.DeserializeHeader(dis); + } catch (IOException e) { + System.err.println("Failed in Header Gen."); + } + try { + this.DeserializeElements(dis); + } catch (IOException e) { + System.err.println("Failed in Element Gen."); + } + } catch (IOException e1) { + System.err.println("MessageLen to Actual Data Read mismatch."); + } + + } + + private void DeserializeHeader(DataInputStream in) throws IOException { + // Read MsgID + this.MsgID = new NetID(in); + + // Read Type + in.readInt(); + this.MsgType = new IntegerFrag(in); + + // Read TO + in.readInt(); + this.toHost = new StringFrag(in); + + // Read FROM + in.readInt(); + this.fromHost = new StringFrag(in); + return; + } + + private void DeserializeElements(DataInputStream in) throws IOException { + + try { + // try to read what type of Frag is next: + int nextFrag = in.readInt(); + + // loop till there arent anymore Elements + while (nextFrag != -1) { + + switch (nextFrag) { + case (MsgFrag.mftBoolean): + this.elements.add(new BooleanFrag(in)); + break; + case (MsgFrag.mftDouble): + this.elements.add(new DoubleFrag(in)); + break; + case (MsgFrag.mftFloat): + this.elements.add(new FloatFrag(in)); + break; + case (MsgFrag.mftInteger): + this.elements.add(new IntegerFrag(in)); + break; + case (MsgFrag.mftLong): + this.elements.add(new LongFrag(in)); + break; + case (MsgFrag.mftShort): + this.elements.add(new ShortFrag(in)); + break; + case (MsgFrag.mftString): + this.elements.add(new StringFrag(in)); + break; + case (MsgFrag.mftWaypoint): + this.elements.add(new WayPointFrag(in)); + break; + case (MsgFrag.mftByteArray): + this.elements.add(new ByteArrayFrag(in)); + break; + default: + this.err("Unknown Message Fragment: " + nextFrag, 0); + break; + + } + + // try to read what type of Frag is next: + nextFrag = in.readInt(); + + } + } catch (EOFException eof) { + // We read till the end of the stream + + } + } + + /* + * Serializer + */ + + public byte[] Serialize() { + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(baos); + + try { + if (!this.Serialize(out)) { + return null; + } + + // get the message data + byte[] b1 = baos.toByteArray(); + + // reset baos. + ByteArrayOutputStream baos2 = new ByteArrayOutputStream(); + DataOutputStream out2 = new DataOutputStream(baos2); + + // Write the length of all the data in the message. + out2.writeInt(b1.length); + + // Write in all the data + baos2.write(b1); + + return baos2.toByteArray(); + } catch (IOException e) { + this.err("IOException in Serialize(}", 0); + return null; + } + + } + + private boolean Serialize(DataOutputStream out) throws IOException { + + // validate data: + if (this.toHost.getField() == null || this.toHost.getField().equals("")) { + this.err( + "MsgID: " + this.MsgID.toString() + ": 'To' Field is Null", + 0); + return false; + } + + if (out == null) { + System.err.println("OUT IS NULL"); + } + + this.SerializeHeader(out); + this.SerializeElements(out); + + return true; + } + + private void SerializeHeader(DataOutputStream out) throws IOException { + // Write MsgID + this.MsgID.Serialize(out); + + // Write Type + this.MsgType.Serialize(out); + + // Write To + this.toHost.Serialize(out); + + // Write To + this.fromHost.Serialize(out); + + } + + private void SerializeElements(DataOutputStream out) throws IOException { + // Write in All Frags. + for (MsgFrag<?> mf : this.elements) { + mf.Serialize(out); + } + + } + + /* + * Utilities + */ + public void StampWayPoint(WayPoint wp) { + this.elements.add(new WayPointFrag(wp)); + } + + public void StampWayPoint(String Host) { + this.elements.add(new WayPointFrag(new WayPoint(Host))); + } + + public void AddElement(MsgFrag<?> element) { + this.elements.add(element); + } + + public boolean RemoveElement(MsgFrag<?> element) { + return this.elements.remove(element); + } + + public boolean HasElement(MsgFrag<?> element) { + return this.elements.contains(element); + } + + public int IndexOfElement(MsgFrag<?> element) { + return this.elements.indexOf(element); + } + + public ArrayList<MsgFrag<?>> GetElements() { + return this.elements; + } + + public MsgFrag<?> GetElement(int index) { + return this.elements.get(index); + } + + public String toString() { + return "StdMsg" + "(ID: " + this.MsgID.toString() + "): \tType: " + + this.MsgType + " \tTo: " + this.toHost.toString() + + " \tFrom: " + this.fromHost.toString() + " \tElements: " + + this.elements.size(); + } + + public String WaypointsToString() { + String out = ""; + for (WayPoint wp : this.getWayPoints()) { + out = out.concat("\t" + wp.toString()) + "\n"; + } + return out; + } + + public String ElementsToString() { + String out = ""; + for (MsgFrag<?> mf : this.elements) { + out = out.concat("\t".concat(mf.toString())).concat("\n"); + } + return out; + } + + /* + * Getters & Setters + */ + public ArrayList<WayPoint> getWayPoints() { + ArrayList<WayPoint> wps = new ArrayList<WayPoint>(); + + for (MsgFrag<?> mf : this.elements) { + if (mf.getMFType() == MsgFrag.mftWaypoint) { + wps.add((WayPoint) mf.getField()); + } + } + return wps; + } + + public NetID getMsgID() { + return MsgID; + } + + public void setMsgID(NetID msgID) { + MsgID = msgID; + } + + public int getMsgType() { + return MsgType.getField(); + } + + public void setMsgType(int msgType) { + this.MsgType.setField(msgType); + } + + public String getToHost() { + return toHost.getField(); + } + + public StringFrag getToHostFrag() { + return toHost; + } + + public void setToHost(String toHost) { + this.toHost = new StringFrag(toHost); + } + + public void setToHostFrag(StringFrag toHostFrag) { + this.toHost = toHostFrag; + } + + public String getFromHost() { + return fromHost.getField(); + } + + public StringFrag getFromHostFrag() { + return fromHost; + } + + public void setFromHost(String fromHost) { + this.fromHost = new StringFrag(fromHost); + } + + public void setFromHostFrag(StringFrag fromHostFrag) { + this.fromHost = fromHostFrag; + } + + public MsgStop getLocalFrom() { + return LocalFrom; + } + + public void setLocalFrom(MsgStop localFrom) { + LocalFrom = localFrom; + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsg.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsgTypes.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsgTypes.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsgTypes.java 2008-08-01 11:34:03 UTC (rev 32189) @@ -0,0 +1,29 @@ +package stractNet.messaging.msgs; + +public class StdMsgTypes { + /* + * + * MsgType enumeration Completely Static Class Inherits from + * java.lang.Object + */ + + + //Ensure a unique name to avoid collisions with a HostName that someone might pick. + public static String AllHosts = "ALLHOSTS"; + + public final static int mtBroadcast = 0; + public final static int mtHello = 1; + public final static int mtGoodBye = 2; + public final static int mtMSCannotAcceptConn = 3; + public final static int mtMyMsgTypes = 4; + + public final static int mtPortalSetRemoteHostName = 10; + public final static int mtPortalHostNameNotUnique = 11; + public final static int mtPortalHostNameAlreadyInUse = 12; + public final static int mtPortalHostNameAlreadyOnNet = 13; + public final static int mtMSNotMaster = 14; + + public final static int mtPing = 20; + public final static int mtPong = 21; + +} Property changes on: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/msgs/StdMsgTypes.java ___________________________________________________________________ Added: svn:execut... [truncated message content] |
From: <dav...@us...> - 2008-08-01 11:36:56
|
Revision: 32190 http://brlcad.svn.sourceforge.net/brlcad/?rev=32190&view=rev Author: davidloman Date: 2008-08-01 11:37:04 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Added Paths: ----------- rt^3/trunk/src/geometryService/java/stractNet/.classpath rt^3/trunk/src/geometryService/java/stractNet/.project Added: rt^3/trunk/src/geometryService/java/stractNet/.classpath =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/.classpath (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/.classpath 2008-08-01 11:37:04 UTC (rev 32190) @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry combineaccessrules="false" kind="src" path="/StractThread-Java"/> + <classpathentry kind="output" path="bin"/> +</classpath> Property changes on: rt^3/trunk/src/geometryService/java/stractNet/.classpath ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractNet/.project =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/.project (rev 0) +++ rt^3/trunk/src/geometryService/java/stractNet/.project 2008-08-01 11:37:04 UTC (rev 32190) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>StractNet-Java</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> Property changes on: rt^3/trunk/src/geometryService/java/stractNet/.project ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-01 11:46:03
|
Revision: 32192 http://brlcad.svn.sourceforge.net/brlcad/?rev=32192&view=rev Author: davidloman Date: 2008-08-01 11:46:11 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Added Paths: ----------- rt^3/trunk/src/geometryService/java/stractNet/docs/ rt^3/trunk/src/geometryService/java/stractNet/docs/PortalToPortal Handshake.png rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet.eap rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet.ldb rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet2.eap Property changes on: rt^3/trunk/src/geometryService/java/stractNet/docs/PortalToPortal Handshake.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet.eap ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet.ldb ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Property changes on: rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet2.eap ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-01 12:23:50
|
Revision: 32193 http://brlcad.svn.sourceforge.net/brlcad/?rev=32193&view=rev Author: davidloman Date: 2008-08-01 12:23:57 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Added Paths: ----------- rt^3/trunk/src/geometryService/java/stractThread/.classpath rt^3/trunk/src/geometryService/java/stractThread/.project rt^3/trunk/src/geometryService/java/stractThread/src/ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseManager.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseable.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunManager.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunnable.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STUtilities.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/StractThread.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboPauseable.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboRunnable.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STPauseManagerTest01.java rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STRunManagerTest01.java Added: rt^3/trunk/src/geometryService/java/stractThread/.classpath =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/.classpath (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/.classpath 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="output" path="bin"/> +</classpath> Property changes on: rt^3/trunk/src/geometryService/java/stractThread/.classpath ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/.project =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/.project (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/.project 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>StractThread-Java</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> Property changes on: rt^3/trunk/src/geometryService/java/stractThread/.project ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseManager.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseManager.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseManager.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,289 @@ +package stractThread; + + + +public class STPauseManager extends STRunManager { + + private long timeOut = 10000L; + + /* + * Constructors + */ + + public STPauseManager(String Name) { + super(Name); + } + + + + + + /* + * Utilities + */ + + public int getNumRunnables() { + int cnt = 0; + for (STRunnable stru : this.Pool.values()) { + //Check the class type + if (!StractThread.Implements(stru, "STPauseable")) { + cnt++; + } + } + return cnt; + } + + + public int getNumPauseables() { + int cnt = 0; + for (STRunnable stru : this.Pool.values()) { + //Check the class type + if (!StractThread.Implements(stru, "STPauseable")) { + cnt++; + } + } + return cnt; + } + + + public int getNumEnabled() { + int cnt = 0; + + for (STRunnable stru : this.Pool.values()) { + + //Check the class type + if (!StractThread.Implements(stru, "STPauseable")) { + //this.err("Not a STPauseable"); + continue; + } + //cast up + STPauseable stpa = (STPauseable)stru; + + if (stpa.isEnabled() == true) { + cnt++; + } + } + return cnt; + } + + public int getNumDisabled() { + int cnt = 0; + + for (STRunnable stru : this.Pool.values()) { + + //Check the class type + if (!StractThread.Implements(stru, "STPauseable")) { + //this.err("Not a STPauseable"); + continue; + } + //cast up + STPauseable stpa = (STPauseable)stru; + + if (stpa.isEnabled() == false) { + cnt++; + } + } + return cnt; + } + + + /* + * getStatus + */ + + public boolean areAllEnabled() { + // Are ALL in the group Enabled? + for (STRunnable stru : this.Pool.values()) { + //type check + if (!StractThread.Implements(stru, "STPauseable")) { + //this.err("Not a STPauseable"); + continue; + } + //cast up + STPauseable stp = (STPauseable)stru; + + if (stp.isEnabled() == false) { + return false; + } + } + return true; + } + + public boolean areAnyEnabled() { + // Are ANY Enabled? + for (STRunnable stru : this.Pool.values()) { + //type check + if (!StractThread.Implements(stru, "STPauseable")) { + //this.err("Not a STPauseable"); + continue; + } + //cast up + STPauseable stp = (STPauseable)stru; + + if (stp.isEnabled() == true) { + return true; + } + } + return false; + } + + + /* + * set Status -> ENABLE + */ + + public void enableAll() { + this.enableAll( false); + } + public void enableAll(boolean block) { + // Set all STPauseables to ENABLE! + this._ModThreadEnableStatus_All(true, block); + } + + public boolean enable(String name) { + return this.enable(name, false); + } + public boolean enable(String name, boolean block) { + STRunnable stru = this.Pool.get(name); + //type check + if (!StractThread.Implements(stru, "STPauseable")) { + //this.err("Not a STPauseable"); + return false; + } + //cast up + STPauseable stp = (STPauseable)stru; + return this._enable(stp, block); + } + + + + + + + /* + * set Status -> DISABLE + */ + public void disableAll() { + this.disableAll( false); + } + public void disableAll(boolean block) { + // Set all STPauseables to DISABLE! + this._ModThreadEnableStatus_All(false, block); + } + + public boolean disable(String name) { + return this.disable(name, false); + } + public boolean disable(String name, boolean block) { + STRunnable stru = this.Pool.get(name); + //type check + if (!StractThread.Implements(stru, "STPauseable")) { + //this.err("Not a STPauseable"); + return false; + } + //cast up + STPauseable stp = (STPauseable)stru; + return this._disable(stp, block); + } + + + + + + + + /* + * Internals + */ + + private void _ModThreadEnableStatus_All(boolean status, boolean block) { + for (STRunnable stru : this.Pool.values()) { + this._ModThreadEnableStatus(stru, status, block); + } + } + + private boolean _ModThreadEnableStatus(STRunnable stru, boolean status, + boolean block) { + + // null check + if (stru == null) { + return false; + } + + //type check + if (!StractThread.Implements(stru, "STPauseable")) { + //this.err("Not a STPauseable"); + return false; + } + //cast up + STPauseable stp = (STPauseable)stru; + + if (stp.getThread().isAlive() != status) { + if (status == false) { + return this._enable(stp, block); + } else { + return this._disable(stp, block); + } + } + + return stru.getThread().isAlive(); + } + + private boolean _enable(STPauseable stp, boolean block) { + // null check + if (stp == null) { + return false; + } + + //type check + if (!StractThread.Implements(stp, "STPauseable")) { + //this.err("Not a STPauseable"); + return false; + } + + stp.enable(); + + if (block) { + StractThread.waitForThreadEnableStatusChange(stp, true, timeOut); + } + + return stp.isEnabled(); + } + + private boolean _disable(STPauseable stp, boolean block) { + // null check + if (stp == null) { + return false; + } + + //type check + if (!StractThread.Implements(stp, "STPauseable")) { + //this.err("Not a STPauseable"); + return false; + } + + + stp.disable(); + + if (block) { + StractThread.waitForThreadEnableStatusChange(stp, false, timeOut); + } + + return stp.isEnabled(); + } + + + + + public long getTimeOut() { + return timeOut; + } + public void setTimeOut(long timeOut) { + this.timeOut = timeOut; + } + + + +} + + Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseManager.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseable.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseable.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseable.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,9 @@ +package stractThread; + +public interface STPauseable extends STRunnable { + + public void enable(); + public void disable(); + public boolean isEnabled(); + +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STPauseable.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunManager.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunManager.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunManager.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,303 @@ +package stractThread; + +import java.util.HashMap; + +public class STRunManager extends StractThread { + + private long timeOut = 10000L; + + protected HashMap<String, STRunnable> Pool = new HashMap<String, STRunnable>(); + + /* + * Constructors + */ + + public STRunManager(String Name) { + this.ObjName = Name; + } + + /* + * Utilities + */ + public int getNumThreads() { + int cnt = 0; + + for (STRunnable stru : this.Pool.values()) { + if (stru.getThread() != null) { + cnt++; + } + } + return cnt; + } + + public int getNumRunning() { + int cnt = 0; + + for (STRunnable stru : this.Pool.values()) { + Thread t = stru.getThread(); + if ((t != null) && (t.isAlive() == true)) { + cnt++; + } + } + return cnt; + } + + public int getNumNotRunning() { + int cnt = 0; + + for (STRunnable stru : this.Pool.values()) { + Thread t = stru.getThread(); + if ((t != null) && (t.isAlive() != true)) { + cnt++; + } + } + return cnt; + } + + /* + * Add-ers and Rem-ers + */ + + public void addDoNotExecute(String name, STRunnable stru) { + this.Pool.put(name, stru); + } + + public boolean addExecute(String name, STRunnable stru) { + this.Pool.put(name, stru); + return this.execute(name); + } + + public STRunnable rem(String name) { + return this.Pool.remove(name); + } + + /* + * getStatus + */ + + public boolean areAllThreadsRunning() { + // Are ALL in the group running? + for (STRunnable stru : this.Pool.values()) { + Thread t = stru.getThread(); + if ((t == null) || (t.isAlive() == false)) { + return false; + } + } + return true; + } + + public boolean areAnyThreadsRunning() { + // Are ANY running? + for (STRunnable stru : this.Pool.values()) { + Thread t = stru.getThread(); + if ((t != null) && (t.isAlive() == true)) { + return true; + } + } + return false; + } + + public boolean areAllStatusRunning() { + // Are ALL in the group running? + for (STRunnable stru : this.Pool.values()) { + if (!stru.getRunStatus()) { + return false; + } + } + return true; + } + + public boolean areAnyStatusRunning() { + // Are ANY running? + for (STRunnable stru : this.Pool.values()) { + if (stru.getRunStatus()) { + return true; + } + } + return false; + } + + /* + * set Status -> RUN + */ + + public void executeAll() { + for (String s : this.Pool.keySet()) { + this.execute(s, true); + } + } + + public void executeAll(boolean block) { + for (String s : this.Pool.keySet()) { + this.execute(s, block); + } + } + + public boolean execute(String name) { + return execute(name, true); + } + + public boolean execute(String name, boolean block) { + STRunnable stru = this.Pool.get(name); + + // start + if (stru.getRunCmd() == false && stru.getThread() == null) { + stru.start(); + } else if (stru.getThread() == null) { + stru.start(); + } else if (stru.getRunCmd() == false && stru.getThread() != null) { + // RE-start + stop_int(stru, true); + stru.start(); + } + + while (!stru.getThread().isAlive() && block) { + STUtilities.pause(25); + } + + return stru.getRunStatus(); + } + + /* + * set Status -> STOP + */ + public void stopAll() { + this.stopAll(true); + } + + public void stopAll(boolean block) { + //Initial Call + for (STRunnable stru : this.Pool.values()) { + stru.stop(); + } + + // Set all SBEmuRnnables to stop! + for (STRunnable stru : this.Pool.values()) { + stop_int(stru, block); + } + } + + public boolean stop(String name) { + return this.stop(name, false); + } + + public boolean stop(String name, boolean block) { + STRunnable stru = this.Pool.get(name); + if (stru == null) { + return true; + } else { + return this.stop_int(stru, block); + } + } + + private boolean stop_int(STRunnable stru, boolean block) { + stru.stop(); + + Thread t = stru.getThread(); + if (t == null) { + return true; + } + try { + t.join(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return t.isAlive(); + } + + /* + * Internals + */ + + // private void _ModThreadRunStatus_All(boolean status, boolean block) { + // ArrayList<String> toRem = new ArrayList<String>(); + // + // synchronized (this.Pool) { + // for (String s : this.Pool.keySet()) { + // + // STRunnable stru = this.Pool.get(s); + // + // if (stru.getRunStatus() != status) { + // this._ModThreadRunStatus(stru, status, block); + // } + // if (status == false) { + // toRem.add(s); + // } + // } + // + // for (String s : toRem) { + // this.Pool.remove(s); + // } + // + // } + // + // // for (STRunnable stru : this.Pool.values()) { + // // this._ModThreadRunStatus(stru, status, block); + // // } + // } + // + // private boolean _ModThreadRunStatus(STRunnable stru, boolean status, + // boolean block) { + // + // // null check + // if (stru == null) { + // return false; + // } + // + // if ((stru.getThread() == null) && (status == false)) { + // // null thread, but Stop requested. + // return true; + // } else if ((stru.getThread() == null) && (status == true)) { + // // null thread, Start requested. + // return this._start(stru, block); + // } + // + // if (stru.getThread().isAlive() != status) { + // if (status == false) { + // return this._stop(stru, block); + // } else { + // return this._start(stru, block); + // } + // } + // + // return stru.getThread().isAlive(); + // } + // private boolean _start(STRunnable stru, boolean block) { + // // null check + // if (stru == null) { + // return false; + // } + // + // stru.start(); // call start() not run() !!!!!! + // + // if (block) { + // StractThread.waitForThreadRunStatusChange(stru, true, timeOut); + // } + // + // return stru.getThread().isAlive(); + // } + // + // private boolean _stop(STRunnable stru, boolean block) { + // // null check + // if (stru == null) { + // return false; + // } + // + // stru.stop(); + // + // if (block) { + // StractThread.waitForThreadRunStatusChange(stru, false, timeOut); + // } + // + // return stru.getThread().isAlive(); + // } + public long getTimeOut() { + return timeOut; + } + + public void setTimeOut(long timeOut) { + this.timeOut = timeOut; + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunManager.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunnable.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunnable.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunnable.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,10 @@ +package stractThread; + +public interface STRunnable extends Runnable { + + public void start(); + public Thread getThread(); + public void stop(); + public boolean getRunStatus(); + public boolean getRunCmd(); +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STRunnable.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STUtilities.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STUtilities.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STUtilities.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,17 @@ +package stractThread; + +import stractThread.StractThread; + +public class STUtilities extends StractThread { + + + public static void pause(long ms) { + try { + Thread.sleep(ms); + } catch (InterruptedException ie) { + StractThread.serr("InterruptedException."); + } + } + + +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/STUtilities.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/StractThread.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/StractThread.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/StractThread.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,129 @@ +package stractThread; + +public abstract class StractThread { + protected String ObjName; + + protected void out(String message) { + StractThread.sout(gON() + ": " + message); + } + + protected void err(String message) { + StractThread.serr(gON() + ": " + message); + } + + // TODO Clean up out,err,sout,err routing. + public static void sout(String message) { + System.out.println(message); + } + + public static void serr(String message) { + System.err.println(message); + } + + // Quick & Dirty getters -> simplifies inclusion into Strings + public String gON() { + return this.ObjName; + } + + public String gOT() { + return this.getClass().getSimpleName(); + } + + public static boolean Implements(Object object, String Interface) { + Class<?>[] intfs = object.getClass().getInterfaces(); + + for (Class<?> c : intfs) { + if (c.getSimpleName().equals(Interface)) { + return true; + } + } + return false; + } + + + + + public static final long threadTick = 25; + + + public static boolean waitForThreadRunStatusChange(STRunnable stru, + boolean toStatus) { + return waitForThreadRunStatusChange(stru, toStatus, 10000L); + } + public static boolean waitForThreadRunStatusChange(STRunnable stru, + boolean toStatus, long timeOutInMS) { + long tcnt = 0L; + + if(stru.getRunStatus() == toStatus) {return true;} + + if(stru.getRunCmd() != toStatus) { + if (toStatus == true) { + stru.start(); + } else { + stru.stop(); + } + } + + Thread t = stru.getThread(); + + if (t == null) { + if (toStatus == false) { + // thread must have already exited. + return true; + } else { + serr("Attempted to set a null Thread to RUN in StractThread.waitForThreadRunStatusChange()"); + return false; + } + } + + while (stru.getRunStatus() != toStatus) { + + try { + Thread.sleep(threadTick); + tcnt += threadTick; + + if (tcnt >= timeOutInMS) { + serr("Timeout reached in StractThread.waitForThreadRunStatusChange(): " + t.getName()); + return false; + } + + } catch (InterruptedException ie) { + serr("InterruptedException in StractThread.waitForThreadRunStatusChange()."); + return false; + } + } + return true; + } + + public static boolean waitForThreadEnableStatusChange(STPauseable stp, + boolean toStatus) { + return waitForThreadEnableStatusChange(stp, toStatus, 10000L); + } + public static boolean waitForThreadEnableStatusChange(STPauseable stp, + boolean toStatus, long timeOutInMS) { + long tcnt = 0L; + + if (stp == null) { + // something BAD happened + return false; + } + + while (stp.isEnabled() != toStatus) { + try { + Thread.sleep(threadTick); + tcnt += threadTick; + + if (tcnt >= timeOutInMS) { + serr("Timeout reached in StractThread.waitForThreadEnableStatusChange()"); + return false; + } + + } catch (InterruptedException ie) { + serr("InterruptedException in StractThread.waitForThreadEnableStatusChange()."); + return false; + } + } + return true; + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/StractThread.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboPauseable.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboPauseable.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboPauseable.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,103 @@ +package stractThread.tests; + +import stractThread.*; + +public class PlaceboPauseable extends StractThread implements STPauseable { + private Thread myThread; + private boolean runStatus = true; + private boolean runCmd = true; + private boolean enabledStatus = true; + private boolean enabledCmd = true; + + public PlaceboPauseable(String Name) { + this.ObjName = Name; + this.myThread = new Thread(this.gON().concat("-Thread")); + } + + /* + * Use start() when you want to run this object in a dedicated Thread aka + * Non-Blocking. + */ + @Override + public void start() { + this.out("Received Startup Command."); + this.runCmd = true; + this.enabledCmd = true; + this.myThread = new Thread(this, this.gON().concat("-Thread")); + this.myThread.start(); + } + + /* + * Use start() when you want to run this object in a Blocking mode. + */ + @Override + public void run() { + this.runStatus = true; + this.out("Running."); + + while (this.runCmd) { + + if (this.enabledCmd) { + this.enabledStatus = true; + + // this.out("\tEnabled"); + + try { + Thread.sleep(750); + } catch (InterruptedException ie) { + this + .err("InterruptedException in waitForThreadStatusChange()."); + } + + this.enabledStatus = false; + } else { + try { + Thread.sleep(1000); + } catch (InterruptedException ie) { + this + .err("InterruptedException in waitForThreadStatusChange()."); + } + + } + } + this.runStatus = false; + this.out("Shutdown."); + } + + @Override + public Thread getThread() { + return this.myThread; + } + + @Override + public boolean getRunStatus() { + return this.runStatus; + } + + @Override + public void stop() { + this.out("Received Shutdown Command."); + this.runCmd = false; + } + + @Override + public void disable() { + this.enabledCmd = false; + } + + @Override + public void enable() { + this.enabledCmd = true; + } + + @Override + public boolean isEnabled() { + return this.enabledStatus; + } + + @Override + public boolean getRunCmd() { + return this.runCmd; + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboPauseable.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboRunnable.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboRunnable.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboRunnable.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,80 @@ +package stractThread.tests; + +import stractThread.STRunnable; +import stractThread.StractThread; + +public class PlaceboRunnable extends StractThread implements STRunnable { + private Thread myThread; + private boolean runStatus = false; + private boolean runCmd = false; + + + + public PlaceboRunnable(String Name) { + this.ObjName = Name; + this.myThread = new Thread(this.gON().concat("-Thread")); + } + + + + /* + * Use start() when you want to run this object in a dedicated Thread + * aka Non-Blocking. + */ + @Override + public void start() { + this.out("Received Startup Command."); + this.runCmd = true; + this.myThread = new Thread(this, this.gON().concat("-Thread")); + this.myThread.start(); + } + + /* + * Use start() when you want to run this object in a Blocking mode. + */ + @Override + public void run() { + this.runStatus = true; + this.out("Running."); + + while (this.runCmd) { + + //this.out("\tMessage"); + try { + Thread.sleep(100); + } catch (InterruptedException ie) { + this.err("InterruptedException in waitForThreadStatusChange()."); + } + + } + this.runStatus = false; + this.out("Shutdown."); + } + + + + @Override + public Thread getThread() { + return this.myThread; + } + + @Override + public boolean getRunStatus() { + return this.runStatus; + } + + @Override + public void stop() { + this.out("Received Shutdown Command."); + this.runCmd = false; + } + + + + @Override + public boolean getRunCmd() { + return this.runCmd; + } + + +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/PlaceboRunnable.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STPauseManagerTest01.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STPauseManagerTest01.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STPauseManagerTest01.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,120 @@ +package stractThread.tests; + +import stractThread.*; + +public class STPauseManagerTest01 { + + public static void main(String[] args) { + STPauseManager stpm = new STPauseManager("MyPauseManager"); + + System.out.println(stpm.gOT()); + + + //Instantiate Runnables & Pauseables; + PlaceboRunnable r00 = new PlaceboRunnable("r00"); + PlaceboPauseable p01 = new PlaceboPauseable("p01"); + PlaceboRunnable r02 = new PlaceboRunnable("r02"); + PlaceboPauseable p03 = new PlaceboPauseable("p03"); + PlaceboRunnable r04 = new PlaceboRunnable("r04"); + PlaceboPauseable p05 = new PlaceboPauseable("p05"); + + //Execute some + stpm.addExecute("Runnable 00", r00); + stpm.addExecute("Pauseable 01", p01); + stpm.addExecute("Runnable 02", r02); + stpm.addExecute("Pauseable 03", p03); + + //Add but don't execute a few. + stpm.addDoNotExecute("Runnable 04", r04); + stpm.addDoNotExecute("Pauseable 05", p05); + + System.err.println("\n\n\nStart / Stop Tests..."); + + printstatus(stpm); + + + + + STUtilities.pause(3000); + + //stop one. + System.err.println("Stopping Pauseable 03..."); + stpm.stop("Pauseable 03"); + printstatus(stpm); + + + STUtilities.pause(3000); + + //start all + System.err.println("Starting all..."); + stpm.executeAll(); + printstatus(stpm); + + STUtilities.pause(5000); + + + System.err.println("\n\n\nEnable/Disable Tests..."); + printstatus(stpm); + + + + //disable one. + System.err.println("Disabling Pauseable 03..."); + stpm.disable("Pauseable 03"); + printstatus(stpm); + + STUtilities.pause(3000); + + + //disable all. + System.err.println("Disabling all..."); + stpm.disableAll(); + printstatus(stpm); + + STUtilities.pause(3000); + + + //enable one. + System.err.println("Enabling Pauseable 03..."); + stpm.enable("Pauseable 03"); + printstatus(stpm); + + STUtilities.pause(3000); + + //enable all. + System.err.println("Enabling all..."); + stpm.enableAll(); + printstatus(stpm); + + STUtilities.pause(3000); + + + //stop all + System.err.println("Stopping all..."); + stpm.stopAll(); + + //print totals + printstatus(stpm); + + + + System.out.println("Main Thread Exit."); + return; + } + + + public static void printstatus(STPauseManager p) { + System.out.println("\n\tTotal Threads: " + p.getNumThreads()); + System.out.println("\tRunning: " + p.getNumRunning()); + System.out.println("\tNot Running: " + p.getNumNotRunning()); + System.out.println("\tEnabled: " + p.getNumEnabled()); + System.out.println("\tDisabled: " + p.getNumDisabled()); + System.out.println("\n\n"); + } + + + + + + +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STPauseManagerTest01.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STRunManagerTest01.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STRunManagerTest01.java (rev 0) +++ rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STRunManagerTest01.java 2008-08-01 12:23:57 UTC (rev 32193) @@ -0,0 +1,74 @@ +package stractThread.tests; + +import stractThread.*; + +public class STRunManagerTest01 { + + public static void main(String[] args) { + long pause = 300L; + + + STRunManager strm = new STRunManager("MyRunManager"); + + // Instantiate Runnables; + PlaceboRunnable r00 = new PlaceboRunnable("r00"); + PlaceboRunnable r01 = new PlaceboRunnable("r01"); + PlaceboRunnable r02 = new PlaceboRunnable("r02"); + PlaceboRunnable r03 = new PlaceboRunnable("r03"); + PlaceboRunnable r04 = new PlaceboRunnable("r04"); + PlaceboRunnable r05 = new PlaceboRunnable("r05"); + + // Execute some + strm.addExecute("Runnable 00", r00); + strm.addExecute("Runnable 01", r01); + strm.addExecute("Runnable 02", r02); + strm.addExecute("Runnable 03", r03); + + // Add but don't execute a few. + strm.addDoNotExecute("Runnable 04", r04); + strm.addDoNotExecute("Runnable 05", r05); + + STUtilities.pause(pause); + printstatus(strm,6,4); + STUtilities.pause(pause); + + // stop one. + strm.stop("Runnable 03"); + STUtilities.pause(pause); + printstatus(strm,6,3); + + STUtilities.pause(pause); + + // start all + strm.executeAll(); + STUtilities.pause(pause); + printstatus(strm,6,6); + STUtilities.pause(pause); + + // stop all + strm.stopAll(true); + STUtilities.pause(pause); + printstatus(strm,6,0); + STUtilities.pause(pause); + + System.out.println("Main Thread Exit."); + return; + } + + public static void printstatus(STRunManager p, int total, int run) { + synchronized (System.out) { + System.out.println("Test: Should be " + run + " of " + total + " threads running."); + + System.out.println("\tTotal Threads: " + p.getNumThreads()); + System.out.println("\tRunning: " + p.getNumRunning()); + System.out.println("\tNot Running: " + p.getNumNotRunning()); + if (p.getNumThreads()== total && p.getNumRunning() == run) { + System.out.println("Test Step Passed."); + } else { + System.out.println("Test Step Failed."); + } + System.out.println("\n"); + } + } + +} Property changes on: rt^3/trunk/src/geometryService/java/stractThread/src/stractThread/tests/STRunManagerTest01.java ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-01 12:29:16
|
Revision: 32195 http://brlcad.svn.sourceforge.net/brlcad/?rev=32195&view=rev Author: davidloman Date: 2008-08-01 12:29:25 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Modified Paths: -------------- rt^3/trunk/src/geometryService/java/stractNet/.classpath rt^3/trunk/src/geometryService/java/stractNet/.project Added Paths: ----------- rt^3/trunk/src/geometryService/java/stractNet/docs/PortalToPortalHandshake.png Removed Paths: ------------- rt^3/trunk/src/geometryService/java/stractNet/docs/PortalToPortal Handshake.png Modified: rt^3/trunk/src/geometryService/java/stractNet/.classpath =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/.classpath 2008-08-01 12:28:27 UTC (rev 32194) +++ rt^3/trunk/src/geometryService/java/stractNet/.classpath 2008-08-01 12:29:25 UTC (rev 32195) @@ -2,6 +2,6 @@ <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> - <classpathentry combineaccessrules="false" kind="src" path="/StractThread-Java"/> + <classpathentry combineaccessrules="false" kind="src" path="/StractThread-SF-Java"/> <classpathentry kind="output" path="bin"/> </classpath> Modified: rt^3/trunk/src/geometryService/java/stractNet/.project =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/.project 2008-08-01 12:28:27 UTC (rev 32194) +++ rt^3/trunk/src/geometryService/java/stractNet/.project 2008-08-01 12:29:25 UTC (rev 32195) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>StractNet-Java</name> + <name>StractNet-SF-Java</name> <comment></comment> <projects> </projects> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-01 12:57:07
|
Revision: 32196 http://brlcad.svn.sourceforge.net/brlcad/?rev=32196&view=rev Author: davidloman Date: 2008-08-01 12:57:13 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Modified Paths: -------------- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java Modified: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java 2008-08-01 12:29:25 UTC (rev 32195) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessageDispatcher.java 2008-08-01 12:57:13 UTC (rev 32196) @@ -20,9 +20,6 @@ private boolean runCmd = false; public long MsgsProcessed = 0L; - // FIXME I think i need to seperate the MessageDispatcher from the - // MessagingSystem for performance reasons. - public MessageDispatcher(String Name, MessagingSystem ms) { super(Name); this.setLocalMS(ms); @@ -39,13 +36,13 @@ // TODO add in functionality to allow User to select FORCEQUIT or // QUIT_WHEN_QUEUE_EMPTY - while (this.runCmd || !this.getLocalMS().isQueueEmpty()) { + while (this.runCmd || !this.getLocalMS().isQEmpty()) { synchronized (this.getLocalMS().getQ()) { this.getLocalMS().getQ().notify(); - if (this.getLocalMS().isQueueEmpty()) { + if (this.getLocalMS().isQEmpty()) { try { this.getLocalMS().getQ().wait(50); } catch (InterruptedException e) { @@ -54,7 +51,7 @@ } } - if (!this.getLocalMS().isQueueEmpty()) { + if (!this.getLocalMS().isQEmpty()) { this.runStatus = true; StdMsg msg; Modified: rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java =================================================================== --- rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java 2008-08-01 12:29:25 UTC (rev 32195) +++ rt^3/trunk/src/geometryService/java/stractNet/src/stractNet/messaging/MessagingSystem.java 2008-08-01 12:57:13 UTC (rev 32196) @@ -61,7 +61,7 @@ * Message addition, removal and peeking. */ - public boolean isQueueEmpty() { + public boolean isQEmpty() { synchronized (this.Q) { return this.Q.isEmpty(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-08-01 13:29:57
|
Revision: 32198 http://brlcad.svn.sourceforge.net/brlcad/?rev=32198&view=rev Author: mafm Date: 2008-08-01 13:30:05 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Enhancing camera modes by adding bindings for actions in the camera control window Modified Paths: -------------- rt^3/trunk/src/g3d/CameraMode.h rt^3/trunk/src/g3d/CameraModeBlender.cxx rt^3/trunk/src/g3d/CameraModeBlender.h rt^3/trunk/src/g3d/CameraModeMGED.cxx rt^3/trunk/src/g3d/CameraModeMGED.h rt^3/trunk/src/g3d/CameraModeOrbital.cxx rt^3/trunk/src/g3d/CameraModeOrbital.h Modified: rt^3/trunk/src/g3d/CameraMode.h =================================================================== --- rt^3/trunk/src/g3d/CameraMode.h 2008-08-01 13:13:34 UTC (rev 32197) +++ rt^3/trunk/src/g3d/CameraMode.h 2008-08-01 13:30:05 UTC (rev 32198) @@ -172,6 +172,34 @@ virtual bool injectMouseScrolled(Direction /* direction */) { return false; } + /** Bindings for buttons in control window */ + virtual void cameraControlUpPressed() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlDownPressed() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlLeftPressed() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlRightPressed() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlZoomInPressed() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlZoomOutPressed() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlCenterPressed() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlUpReleased() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlDownReleased() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlLeftReleased() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlRightReleased() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlZoomInReleased() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlZoomOutReleased() = 0; + /** Bindings for buttons in control window */ + virtual void cameraControlCenterReleased() = 0; protected: /** Speed of the rotation */ Modified: rt^3/trunk/src/g3d/CameraModeBlender.cxx =================================================================== --- rt^3/trunk/src/g3d/CameraModeBlender.cxx 2008-08-01 13:13:34 UTC (rev 32197) +++ rt^3/trunk/src/g3d/CameraModeBlender.cxx 2008-08-01 13:30:05 UTC (rev 32198) @@ -71,8 +71,7 @@ return true; case OIS::KC_NUMPAD8: if (_panModeEnabled) { - // pan up - pan(0, (_camera->getOrthoWindowHeight()/PAN_FRACTION)); + panUp(); } else { // orbit up decreaseVarWithLimit(_verticalRot, @@ -82,8 +81,7 @@ return true; case OIS::KC_NUMPAD2: if (_panModeEnabled) { - // pan down - pan(0, -(_camera->getOrthoWindowHeight()/PAN_FRACTION)); + panDown(); } else { // orbit down increaseVarWithLimit(_verticalRot, @@ -93,8 +91,7 @@ return true; case OIS::KC_NUMPAD4: if (_panModeEnabled) { - // pan left - pan((_camera->getOrthoWindowWidth()/PAN_FRACTION), 0); + panLeft(); } else { // orbit left _horizontalRot -= ROTATION_STEP; @@ -102,8 +99,7 @@ return true; case OIS::KC_NUMPAD6: if (_panModeEnabled) { - // pan right - pan(-(_camera->getOrthoWindowWidth()/PAN_FRACTION), 0); + panRight(); } else { // orbit right _horizontalRot += ROTATION_STEP; @@ -197,6 +193,96 @@ } } +void CameraModeBlender::cameraControlUpPressed() +{ + // nothing +} + +void CameraModeBlender::cameraControlDownPressed() +{ + // nothing +} + +void CameraModeBlender::cameraControlLeftPressed() +{ + // nothing +} + +void CameraModeBlender::cameraControlRightPressed() +{ + // nothing +} + +void CameraModeBlender::cameraControlZoomInPressed() +{ + // nothing +} + +void CameraModeBlender::cameraControlZoomOutPressed() +{ + // nothing +} + +void CameraModeBlender::cameraControlCenterPressed() +{ + // nothing +} + +void CameraModeBlender::cameraControlUpReleased() +{ + panUp(); +} + +void CameraModeBlender::cameraControlDownReleased() +{ + panDown(); +} + +void CameraModeBlender::cameraControlLeftReleased() +{ + panLeft(); +} + +void CameraModeBlender::cameraControlRightReleased() +{ + panRight(); +} + +void CameraModeBlender::cameraControlZoomInReleased() +{ + doZoomIn(); +} + +void CameraModeBlender::cameraControlZoomOutReleased() +{ + doZoomOut(); +} + +void CameraModeBlender::cameraControlCenterReleased() +{ + setResetToCenter(true); +} + +void CameraModeBlender::panUp() +{ + pan(0, (_camera->getOrthoWindowHeight()/PAN_FRACTION)); +} + +void CameraModeBlender::panDown() +{ + pan(0, -(_camera->getOrthoWindowHeight()/PAN_FRACTION)); +} + +void CameraModeBlender::panLeft() +{ + pan((_camera->getOrthoWindowWidth()/PAN_FRACTION), 0); +} + +void CameraModeBlender::panRight() +{ + pan(-(_camera->getOrthoWindowWidth()/PAN_FRACTION), 0); +} + void CameraModeBlender::doZoomIn() { divideVarWithLimit(_radius, ZOOM_STEP, RADIUS_MIN_DISTANCE); Modified: rt^3/trunk/src/g3d/CameraModeBlender.h =================================================================== --- rt^3/trunk/src/g3d/CameraModeBlender.h 2008-08-01 13:13:34 UTC (rev 32197) +++ rt^3/trunk/src/g3d/CameraModeBlender.h 2008-08-01 13:30:05 UTC (rev 32198) @@ -60,10 +60,39 @@ /** @see CameraMode::injectMouseScrolled */ virtual bool injectMouseScrolled(Direction direction); + /** @see CameraMode::cameraControlUpPressed */ + virtual void cameraControlUpPressed(); + /** @see CameraMode::cameraControlDownPressed */ + virtual void cameraControlDownPressed(); + /** @see CameraMode::cameraControlLeftPressed */ + virtual void cameraControlLeftPressed(); + /** @see CameraMode::cameraControlRightPressed */ + virtual void cameraControlRightPressed(); + /** @see CameraMode::cameraControlZoomInPressed */ + virtual void cameraControlZoomInPressed(); + /** @see CameraMode::cameraControlZoomOutPressed */ + virtual void cameraControlZoomOutPressed(); + /** @see CameraMode::cameraControlCenterPressed */ + virtual void cameraControlCenterPressed(); + /** @see CameraMode::cameraControlUpReleased */ + virtual void cameraControlUpReleased(); + /** @see CameraMode::cameraControlDownReleased */ + virtual void cameraControlDownReleased(); + /** @see CameraMode::cameraControlLeftReleased */ + virtual void cameraControlLeftReleased(); + /** @see CameraMode::cameraControlRightReleased */ + virtual void cameraControlRightReleased(); + /** @see CameraMode::cameraControlZoomInReleased */ + virtual void cameraControlZoomInReleased(); + /** @see CameraMode::cameraControlZoomOutReleased */ + virtual void cameraControlZoomOutReleased(); + /** @see CameraMode::cameraControlCenterReleased */ + virtual void cameraControlCenterReleased(); + private: /** Default rotation step */ static const float ROTATION_STEP; // radians - /** Default pan distance */ + /** Default pan fraction */ static const float PAN_FRACTION; // ratio /** Default zoom step ratio */ static const float ZOOM_STEP; // ratio @@ -84,6 +113,14 @@ /** Common functionality for all places needing it */ + void panUp(); + /** Common functionality for all places needing it */ + void panDown(); + /** Common functionality for all places needing it */ + void panLeft(); + /** Common functionality for all places needing it */ + void panRight(); + /** Common functionality for all places needing it */ void doZoomIn(); /** Common functionality for all places needing it */ void doZoomOut(); Modified: rt^3/trunk/src/g3d/CameraModeMGED.cxx =================================================================== --- rt^3/trunk/src/g3d/CameraModeMGED.cxx 2008-08-01 13:13:34 UTC (rev 32197) +++ rt^3/trunk/src/g3d/CameraModeMGED.cxx 2008-08-01 13:30:05 UTC (rev 32198) @@ -41,6 +41,7 @@ * CameraModeMGED ******************************************************************************/ const float CameraModeMGED::ROTATION_STEP = PI_NUMBER/12.0f; // 15 degrees, in radians +const float CameraModeMGED::PAN_FRACTION = 20.0f; // m const float CameraModeMGED::ZOOM_STEP = 1.25f; // ratio const float CameraModeMGED::ZOOM_SCALE = 4.0f; // ratio @@ -301,6 +302,76 @@ //Logger::logDEBUG("CameraModeMGED scale: radius=%g, scale=%g", _radius, scale); } +void CameraModeMGED::cameraControlUpPressed() +{ + // nothing +} + +void CameraModeMGED::cameraControlDownPressed() +{ + // nothing +} + +void CameraModeMGED::cameraControlLeftPressed() +{ + // nothing +} + +void CameraModeMGED::cameraControlRightPressed() +{ + // nothing +} + +void CameraModeMGED::cameraControlZoomInPressed() +{ + // nothing +} + +void CameraModeMGED::cameraControlZoomOutPressed() +{ + // nothing +} + +void CameraModeMGED::cameraControlCenterPressed() +{ + // nothing +} + +void CameraModeMGED::cameraControlUpReleased() +{ + panUp(); +} + +void CameraModeMGED::cameraControlDownReleased() +{ + panDown(); +} + +void CameraModeMGED::cameraControlLeftReleased() +{ + panLeft(); +} + +void CameraModeMGED::cameraControlRightReleased() +{ + panRight(); +} + +void CameraModeMGED::cameraControlZoomInReleased() +{ + doZoomIn(); +} + +void CameraModeMGED::cameraControlZoomOutReleased() +{ + doZoomOut(); +} + +void CameraModeMGED::cameraControlCenterReleased() +{ + setResetToCenter(true); +} + void CameraModeMGED::doZoomIn() { divideVarWithLimit(_radius, ZOOM_STEP, RADIUS_MIN_DISTANCE); @@ -318,7 +389,27 @@ pan(panWidth, panHeight, _dragOriginalCenter); } +void CameraModeMGED::panUp() +{ + pan(0, (_camera->getOrthoWindowHeight()/PAN_FRACTION)); +} +void CameraModeMGED::panDown() +{ + pan(0, -(_camera->getOrthoWindowHeight()/PAN_FRACTION)); +} + +void CameraModeMGED::panLeft() +{ + pan((_camera->getOrthoWindowWidth()/PAN_FRACTION), 0); +} + +void CameraModeMGED::panRight() +{ + pan(-(_camera->getOrthoWindowWidth()/PAN_FRACTION), 0); +} + + // Local Variables: *** // mode: C++ *** // tab-width: 8 *** Modified: rt^3/trunk/src/g3d/CameraModeMGED.h =================================================================== --- rt^3/trunk/src/g3d/CameraModeMGED.h 2008-08-01 13:13:34 UTC (rev 32197) +++ rt^3/trunk/src/g3d/CameraModeMGED.h 2008-08-01 13:30:05 UTC (rev 32198) @@ -60,9 +60,40 @@ /** @see CameraMode::injectMouseReleased */ virtual bool injectMouseReleased(OIS::MouseButtonID buttonId, int x, int y); + /** @see CameraMode::cameraControlUpPressed */ + virtual void cameraControlUpPressed(); + /** @see CameraMode::cameraControlDownPressed */ + virtual void cameraControlDownPressed(); + /** @see CameraMode::cameraControlLeftPressed */ + virtual void cameraControlLeftPressed(); + /** @see CameraMode::cameraControlRightPressed */ + virtual void cameraControlRightPressed(); + /** @see CameraMode::cameraControlZoomInPressed */ + virtual void cameraControlZoomInPressed(); + /** @see CameraMode::cameraControlZoomOutPressed */ + virtual void cameraControlZoomOutPressed(); + /** @see CameraMode::cameraControlCenterPressed */ + virtual void cameraControlCenterPressed(); + /** @see CameraMode::cameraControlUpReleased */ + virtual void cameraControlUpReleased(); + /** @see CameraMode::cameraControlDownReleased */ + virtual void cameraControlDownReleased(); + /** @see CameraMode::cameraControlLeftReleased */ + virtual void cameraControlLeftReleased(); + /** @see CameraMode::cameraControlRightReleased */ + virtual void cameraControlRightReleased(); + /** @see CameraMode::cameraControlZoomInReleased */ + virtual void cameraControlZoomInReleased(); + /** @see CameraMode::cameraControlZoomOutReleased */ + virtual void cameraControlZoomOutReleased(); + /** @see CameraMode::cameraControlCenterReleased */ + virtual void cameraControlCenterReleased(); + private: /** Default rotation step */ static const float ROTATION_STEP; // radians + /** Default pan fraction */ + static const float PAN_FRACTION; // ratio /** Default zoom step ratio */ static const float ZOOM_STEP; // ratio /** Default zoom scale ratio */ @@ -111,6 +142,14 @@ void doZoomOut(); /** Common functionality for all places needing it */ void panScreenRelativeCoords(int x, int y); + /** Common functionality for all places needing it */ + void panUp(); + /** Common functionality for all places needing it */ + void panDown(); + /** Common functionality for all places needing it */ + void panLeft(); + /** Common functionality for all places needing it */ + void panRight(); }; Modified: rt^3/trunk/src/g3d/CameraModeOrbital.cxx =================================================================== --- rt^3/trunk/src/g3d/CameraModeOrbital.cxx 2008-08-01 13:13:34 UTC (rev 32197) +++ rt^3/trunk/src/g3d/CameraModeOrbital.cxx 2008-08-01 13:30:05 UTC (rev 32198) @@ -99,7 +99,77 @@ } } +void CameraModeOrbital::cameraControlUpPressed() +{ + setRotateX(CameraMode::POSITIVE); +} +void CameraModeOrbital::cameraControlDownPressed() +{ + setRotateX(CameraMode::NEGATIVE); +} + +void CameraModeOrbital::cameraControlLeftPressed() +{ + setRotateY(CameraMode::POSITIVE); +} + +void CameraModeOrbital::cameraControlRightPressed() +{ + setRotateY(CameraMode::NEGATIVE); +} + +void CameraModeOrbital::cameraControlZoomInPressed() +{ + setZoom(CameraMode::POSITIVE); +} + +void CameraModeOrbital::cameraControlZoomOutPressed() +{ + setZoom(CameraMode::NEGATIVE); +} + +void CameraModeOrbital::cameraControlCenterPressed() +{ + setResetToCenter(true); +} + +void CameraModeOrbital::cameraControlUpReleased() +{ + setRotateX(CameraMode::NEUTRAL); +} + +void CameraModeOrbital::cameraControlDownReleased() +{ + setRotateX(CameraMode::NEUTRAL); +} + +void CameraModeOrbital::cameraControlLeftReleased() +{ + setRotateY(CameraMode::NEUTRAL); +} + +void CameraModeOrbital::cameraControlRightReleased() +{ + setRotateY(CameraMode::NEUTRAL); +} + +void CameraModeOrbital::cameraControlZoomInReleased() +{ + setZoom(CameraMode::NEUTRAL); +} + +void CameraModeOrbital::cameraControlZoomOutReleased() +{ + setZoom(CameraMode::NEUTRAL); +} + +void CameraModeOrbital::cameraControlCenterReleased() +{ + setResetToCenter(true); +} + + // Local Variables: *** // mode: C++ *** // tab-width: 8 *** Modified: rt^3/trunk/src/g3d/CameraModeOrbital.h =================================================================== --- rt^3/trunk/src/g3d/CameraModeOrbital.h 2008-08-01 13:13:34 UTC (rev 32197) +++ rt^3/trunk/src/g3d/CameraModeOrbital.h 2008-08-01 13:30:05 UTC (rev 32198) @@ -52,6 +52,35 @@ virtual bool injectKeyPressed(OIS::KeyCode keyCode); /** @see CameraMode::injectKeyReleased */ virtual bool injectKeyReleased(OIS::KeyCode keyCode); + + /** @see CameraMode::cameraControlUpPressed */ + virtual void cameraControlUpPressed(); + /** @see CameraMode::cameraControlDownPressed */ + virtual void cameraControlDownPressed(); + /** @see CameraMode::cameraControlLeftPressed */ + virtual void cameraControlLeftPressed(); + /** @see CameraMode::cameraControlRightPressed */ + virtual void cameraControlRightPressed(); + /** @see CameraMode::cameraControlZoomInPressed */ + virtual void cameraControlZoomInPressed(); + /** @see CameraMode::cameraControlZoomOutPressed */ + virtual void cameraControlZoomOutPressed(); + /** @see CameraMode::cameraControlCenterPressed */ + virtual void cameraControlCenterPressed(); + /** @see CameraMode::cameraControlUpReleased */ + virtual void cameraControlUpReleased(); + /** @see CameraMode::cameraControlDownReleased */ + virtual void cameraControlDownReleased(); + /** @see CameraMode::cameraControlLeftReleased */ + virtual void cameraControlLeftReleased(); + /** @see CameraMode::cameraControlRightReleased */ + virtual void cameraControlRightReleased(); + /** @see CameraMode::cameraControlZoomInReleased */ + virtual void cameraControlZoomInReleased(); + /** @see CameraMode::cameraControlZoomOutReleased */ + virtual void cameraControlZoomOutReleased(); + /** @see CameraMode::cameraControlCenterReleased */ + virtual void cameraControlCenterReleased(); }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2008-08-01 13:31:35
|
Revision: 32199 http://brlcad.svn.sourceforge.net/brlcad/?rev=32199&view=rev Author: mafm Date: 2008-08-01 13:31:44 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Bind actions in camera control window with camera modes Modified Paths: -------------- rt^3/trunk/src/g3d/GuiCamera.cxx rt^3/trunk/src/g3d/GuiCamera.h Modified: rt^3/trunk/src/g3d/GuiCamera.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiCamera.cxx 2008-08-01 13:30:05 UTC (rev 32198) +++ rt^3/trunk/src/g3d/GuiCamera.cxx 2008-08-01 13:31:44 UTC (rev 32199) @@ -103,6 +103,14 @@ img = GuiWindowManager::instance().getDefaultTheme()->getTexture("BrlcadCameraCenter"); _center->setImage(img); + _up->setCallback(&GuiCamera::callbackButtonUpMouseReleased, this, "onMouseReleased"); + _down->setCallback(&GuiCamera::callbackButtonDownMouseReleased, this, "onMouseReleased"); + _left->setCallback(&GuiCamera::callbackButtonLeftMouseReleased, this, "onMouseReleased"); + _right->setCallback(&GuiCamera::callbackButtonRightMouseReleased, this, "onMouseReleased"); + _zoomIn->setCallback(&GuiCamera::callbackButtonZoomInMouseReleased, this, "onMouseReleased"); + _zoomOut->setCallback(&GuiCamera::callbackButtonZoomOutMouseReleased, this, "onMouseReleased"); + _center->setCallback(&GuiCamera::callbackButtonCenterMouseReleased, this, "onMouseReleased"); + GuiWindowManager::instance().registerWindow(this); CameraManager::instance().attach(this); } @@ -189,7 +197,77 @@ } } +void GuiCamera::callbackButtonUpMousePressed(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlUpPressed(); +} +void GuiCamera::callbackButtonDownMousePressed(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlDownPressed(); +} + +void GuiCamera::callbackButtonLeftMousePressed(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlLeftPressed(); +} + +void GuiCamera::callbackButtonRightMousePressed(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlRightPressed(); +} + +void GuiCamera::callbackButtonZoomInMousePressed(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlZoomInPressed(); +} + +void GuiCamera::callbackButtonZoomOutMousePressed(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlZoomOutPressed(); +} + +void GuiCamera::callbackButtonCenterMousePressed(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlCenterPressed(); +} + +void GuiCamera::callbackButtonUpMouseReleased(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlUpReleased(); +} + +void GuiCamera::callbackButtonDownMouseReleased(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlDownReleased(); +} + +void GuiCamera::callbackButtonLeftMouseReleased(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlLeftReleased(); +} + +void GuiCamera::callbackButtonRightMouseReleased(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlRightReleased(); +} + +void GuiCamera::callbackButtonZoomInMouseReleased(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlZoomInReleased(); +} + +void GuiCamera::callbackButtonZoomOutMouseReleased(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlZoomOutReleased(); +} + +void GuiCamera::callbackButtonCenterMouseReleased(RBGui::GuiElement& /* element */, const Mocha::ValueList& /* data */) +{ + CameraManager::instance().getActiveCameraMode().cameraControlCenterReleased(); +} + + // Local Variables: *** // mode: C++ *** // tab-width: 8 *** Modified: rt^3/trunk/src/g3d/GuiCamera.h =================================================================== --- rt^3/trunk/src/g3d/GuiCamera.h 2008-08-01 13:30:05 UTC (rev 32198) +++ rt^3/trunk/src/g3d/GuiCamera.h 2008-08-01 13:31:44 UTC (rev 32199) @@ -39,6 +39,7 @@ class GuiWidgetRotation; namespace RBGui { class ButtonWidget; + class GuiElement; class ImageWidget; } @@ -90,6 +91,36 @@ RBGui::ButtonWidget* _zoomOut; /** Widgets for rotation */ RBGui::ButtonWidget* _center; + + + /** Callback for "MousePressed" in the control buttons */ + void callbackButtonUpMousePressed(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MousePressed" in the control buttons */ + void callbackButtonDownMousePressed(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MousePressed" in the control buttons */ + void callbackButtonLeftMousePressed(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MousePressed" in the control buttons */ + void callbackButtonRightMousePressed(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MousePressed" in the control buttons */ + void callbackButtonZoomInMousePressed(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MousePressed" in the control buttons */ + void callbackButtonZoomOutMousePressed(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MousePressed" in the control buttons */ + void callbackButtonCenterMousePressed(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MouseReleased" in the control buttons */ + void callbackButtonUpMouseReleased(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MouseReleased" in the control buttons */ + void callbackButtonDownMouseReleased(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MouseReleased" in the control buttons */ + void callbackButtonLeftMouseReleased(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MouseReleased" in the control buttons */ + void callbackButtonRightMouseReleased(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MouseReleased" in the control buttons */ + void callbackButtonZoomInMouseReleased(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MouseReleased" in the control buttons */ + void callbackButtonZoomOutMouseReleased(RBGui::GuiElement& element, const Mocha::ValueList& data); + /** Callback for "MouseReleased" in the control buttons */ + void callbackButtonCenterMouseReleased(RBGui::GuiElement& element, const Mocha::ValueList& data); }; #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-01 13:38:54
|
Revision: 32200 http://brlcad.svn.sourceforge.net/brlcad/?rev=32200&view=rev Author: davidloman Date: 2008-08-01 13:39:01 +0000 (Fri, 01 Aug 2008) Log Message: ----------- Modified Paths: -------------- rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet.eap Removed Paths: ------------- rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet.ldb This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ra...@us...> - 2008-08-02 10:53:44
|
Revision: 32220 http://brlcad.svn.sourceforge.net/brlcad/?rev=32220&view=rev Author: ralith Date: 2008-08-02 10:53:48 +0000 (Sat, 02 Aug 2008) Log Message: ----------- Reordered #includes as recommended by HACKING Modified Paths: -------------- rt^3/trunk/src/g3d/Application.cxx rt^3/trunk/src/g3d/CameraManager.cxx rt^3/trunk/src/g3d/CameraManager.h rt^3/trunk/src/g3d/CameraMode.cxx rt^3/trunk/src/g3d/CameraModeBlender.cxx rt^3/trunk/src/g3d/CameraModeMGED.cxx rt^3/trunk/src/g3d/CommandInterpreter.cxx rt^3/trunk/src/g3d/GeometryConversion.cxx rt^3/trunk/src/g3d/GeometryConversion.h rt^3/trunk/src/g3d/GuiBaseWindow.cxx rt^3/trunk/src/g3d/GuiCamera.cxx rt^3/trunk/src/g3d/GuiCamera.h rt^3/trunk/src/g3d/GuiCommandOverlay.cxx rt^3/trunk/src/g3d/GuiCommandOverlay.h rt^3/trunk/src/g3d/GuiConsole.cxx rt^3/trunk/src/g3d/GuiConsole.h rt^3/trunk/src/g3d/GuiWidgetRotation.cxx rt^3/trunk/src/g3d/GuiWindowManager.cxx rt^3/trunk/src/g3d/History.h rt^3/trunk/src/g3d/Logger.h Modified: rt^3/trunk/src/g3d/Application.cxx =================================================================== --- rt^3/trunk/src/g3d/Application.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/Application.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,18 +27,6 @@ * (g3d), along with some internal classes. */ -#include "Application.h" - -#include "Logger.h" -#include "CameraManager.h" -#include "CameraMode.h" -#include "GuiBaseWindow.h" -#include "GuiCamera.h" -#include "GuiCommandOverlay.h" -#include "GuiConsole.h" -#include "GuiWindowManager.h" -#include "GuiWidgetRotation.h" - #include <Mocha/DataSection.h> #include <Mocha/Stream.h> #include <Mocha/Timer.h> @@ -75,6 +63,18 @@ #error "No platform manager available" #endif +#include "Application.h" + +#include "Logger.h" +#include "CameraManager.h" +#include "CameraMode.h" +#include "GuiBaseWindow.h" +#include "GuiCamera.h" +#include "GuiCommandOverlay.h" +#include "GuiConsole.h" +#include "GuiWindowManager.h" +#include "GuiWidgetRotation.h" + using namespace std; Modified: rt^3/trunk/src/g3d/CameraManager.cxx =================================================================== --- rt^3/trunk/src/g3d/CameraManager.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/CameraManager.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,6 +27,9 @@ * Editor (g3d). */ +#include <OGRE/OgreCamera.h> +#include <OGRE/OgreSceneNode.h> + #include "CameraManager.h" #include "Logger.h" @@ -35,10 +38,7 @@ #include "CameraModeMGED.h" #include "CameraModeOrbital.h" -#include <OGRE/OgreCamera.h> -#include <OGRE/OgreSceneNode.h> - /******************************************************************************* * CameraManager ******************************************************************************/ Modified: rt^3/trunk/src/g3d/CameraManager.h =================================================================== --- rt^3/trunk/src/g3d/CameraManager.h 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/CameraManager.h 2008-08-02 10:53:48 UTC (rev 32220) @@ -31,14 +31,14 @@ #define __G3D_CAMERAMANAGER_H__ -#include "Observer.h" -#include "CameraMode.h" +#include <deque> +#include <list> #include <OIS/OISKeyboard.h> #include <OIS/OISMouse.h> -#include <deque> -#include <list> +#include "Observer.h" +#include "CameraMode.h" namespace Ogre { Modified: rt^3/trunk/src/g3d/CameraMode.cxx =================================================================== --- rt^3/trunk/src/g3d/CameraMode.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/CameraMode.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,15 +27,15 @@ * Geometry Editor (g3d). */ +#include <OGRE/OgreCamera.h> +#include <OGRE/OgreSceneNode.h> +#include <OGRE/OgreViewport.h> + #include "CameraMode.h" #include "Logger.h" -#include <OGRE/OgreCamera.h> -#include <OGRE/OgreSceneNode.h> -#include <OGRE/OgreViewport.h> - /******************************************************************************* * CameraMode ******************************************************************************/ Modified: rt^3/trunk/src/g3d/CameraModeBlender.cxx =================================================================== --- rt^3/trunk/src/g3d/CameraModeBlender.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/CameraModeBlender.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,13 +27,13 @@ * Editor (g3d). */ +#include <OGRE/OgreCamera.h> + #include "CameraModeBlender.h" #include "Logger.h" -#include <OGRE/OgreCamera.h> - /******************************************************************************* * CameraModeBlender ******************************************************************************/ Modified: rt^3/trunk/src/g3d/CameraModeMGED.cxx =================================================================== --- rt^3/trunk/src/g3d/CameraModeMGED.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/CameraModeMGED.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,16 +27,16 @@ * (g3d). */ -#include "CameraModeMGED.h" +#include <cmath> -#include "Logger.h" - #include <OGRE/OgreCamera.h> #include <OGRE/OgreRay.h> -#include <cmath> +#include "CameraModeMGED.h" +#include "Logger.h" + /******************************************************************************* * CameraModeMGED ******************************************************************************/ Modified: rt^3/trunk/src/g3d/CommandInterpreter.cxx =================================================================== --- rt^3/trunk/src/g3d/CommandInterpreter.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/CommandInterpreter.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,14 +27,14 @@ * Console-like windows. */ +#include <vector> + #include "CommandInterpreter.h" #include "Logger.h" #include "Commands.h" -#include <vector> - /******************************************************************************* * CommandOutput ******************************************************************************/ Modified: rt^3/trunk/src/g3d/GeometryConversion.cxx =================================================================== --- rt^3/trunk/src/g3d/GeometryConversion.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GeometryConversion.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,12 +27,12 @@ * the rest of the program. */ +#include <OGRE/OgreColourValue.h> +#include <OGRE/OgreMesh.h> + #include "GeometryConversion.h" -#include "OGRE/OgreColourValue.h" -#include "OGRE/OgreMesh.h" - SampleTetrahedron::SampleTetrahedron(float scale) : _manualObject(Ogre::String("tetrahedron")) { Modified: rt^3/trunk/src/g3d/GeometryConversion.h =================================================================== --- rt^3/trunk/src/g3d/GeometryConversion.h 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GeometryConversion.h 2008-08-02 10:53:48 UTC (rev 32220) @@ -31,9 +31,9 @@ #define __G3D_GEOMETRYCONVERSION_H__ -#include "OGRE/OgreSceneNode.h" -#include "OGRE/OgreManualObject.h" -#include "OGRE/OgreString.h" +#include <OGRE/OgreSceneNode.h> +#include <OGRE/OgreManualObject.h> +#include <OGRE/OgreString.h> /** @brief Tetrahedron geometry Modified: rt^3/trunk/src/g3d/GuiBaseWindow.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiBaseWindow.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiBaseWindow.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -26,14 +26,14 @@ * */ +#include <RBGui/GuiManager.h> +#include <RBGui/Window.h> + #include "GuiBaseWindow.h" #include "Logger.h" -#include <RBGui/GuiManager.h> -#include <RBGui/Window.h> - /******************************************************************************* * GuiBaseWindow ******************************************************************************/ Modified: rt^3/trunk/src/g3d/GuiCamera.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiCamera.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiCamera.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,13 +27,6 @@ * (g3d). */ -#include "GuiCamera.h" - -#include "Logger.h" -#include "CameraManager.h" -#include "GuiWindowManager.h" -#include "GuiWidgetRotation.h" - #include <OIS/OISKeyboard.h> #include <OGRE/OgreRenderWindow.h> #include <RBGui/GuiDefines.h> @@ -45,7 +38,14 @@ #include <RBGui/Widgets/TextWidget.h> #include <RBGui/Widgets/TextEntryWidget.h> +#include "GuiCamera.h" +#include "Logger.h" +#include "CameraManager.h" +#include "GuiWindowManager.h" +#include "GuiWidgetRotation.h" + + /******************************************************************************* * GuiCamera ******************************************************************************/ Modified: rt^3/trunk/src/g3d/GuiCamera.h =================================================================== --- rt^3/trunk/src/g3d/GuiCamera.h 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiCamera.h 2008-08-02 10:53:48 UTC (rev 32220) @@ -30,12 +30,12 @@ #define __G3D_GUICAMERA_H__ +#include <Mocha/Value.h> + #include "GuiBaseWindow.h" #include "Observer.h" -#include <Mocha/Value.h> - class GuiWidgetRotation; namespace RBGui { class ButtonWidget; Modified: rt^3/trunk/src/g3d/GuiCommandOverlay.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiCommandOverlay.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiCommandOverlay.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,13 +27,6 @@ * Editor (g3d). */ -#include "GuiCommandOverlay.h" - -#include "Logger.h" -#include "History.h" -#include "CommandInterpreter.h" -#include "GuiWindowManager.h" - #include <OIS/OISKeyboard.h> #include <OGRE/OgreRenderWindow.h> #include <RBGui/GuiDefines.h> @@ -42,7 +35,14 @@ #include <RBGui/Widgets/TextWidget.h> #include <RBGui/Widgets/TextEntryWidget.h> +#include "GuiCommandOverlay.h" +#include "Logger.h" +#include "History.h" +#include "CommandInterpreter.h" +#include "GuiWindowManager.h" + + /******************************************************************************* * GuiCommandOverlay ******************************************************************************/ Modified: rt^3/trunk/src/g3d/GuiCommandOverlay.h =================================================================== --- rt^3/trunk/src/g3d/GuiCommandOverlay.h 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiCommandOverlay.h 2008-08-02 10:53:48 UTC (rev 32220) @@ -30,12 +30,12 @@ #define __G3D_GUICOMMANDOVERLAY_H__ +#include <Mocha/Value.h> + #include "GuiBaseWindow.h" #include "History.h" -#include <Mocha/Value.h> - namespace RBGui { class GuiElement; class TextEntryWidget; Modified: rt^3/trunk/src/g3d/GuiConsole.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiConsole.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiConsole.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,13 +27,6 @@ * (g3d). */ -#include "GuiConsole.h" - -#include "Logger.h" -#include "History.h" -#include "CommandInterpreter.h" -#include "GuiWindowManager.h" - #include <OIS/OISKeyboard.h> #include <OGRE/OgreRenderWindow.h> #include <RBGui/GuiDefines.h> @@ -42,7 +35,14 @@ #include <RBGui/Widgets/TextWidget.h> #include <RBGui/Widgets/TextEntryWidget.h> +#include "GuiConsole.h" +#include "Logger.h" +#include "History.h" +#include "CommandInterpreter.h" +#include "GuiWindowManager.h" + + /******************************************************************************* * GuiConsole ******************************************************************************/ Modified: rt^3/trunk/src/g3d/GuiConsole.h =================================================================== --- rt^3/trunk/src/g3d/GuiConsole.h 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiConsole.h 2008-08-02 10:53:48 UTC (rev 32220) @@ -30,12 +30,12 @@ #define __G3D_GUICONSOLE_H__ +#include <Mocha/Value.h> + #include "GuiBaseWindow.h" #include "History.h" -#include <Mocha/Value.h> - namespace RBGui { class GuiElement; class TextEntryWidget; Modified: rt^3/trunk/src/g3d/GuiWidgetRotation.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiWidgetRotation.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiWidgetRotation.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,12 +27,12 @@ * Editor (g3d). */ -#include "GuiWidgetRotation.h" - #include <RBGui/Widget.h> #include <RBGui/GuiManager.h> +#include "GuiWidgetRotation.h" + /******************************************************************************* * GuiWidgetRotation ******************************************************************************/ Modified: rt^3/trunk/src/g3d/GuiWindowManager.cxx =================================================================== --- rt^3/trunk/src/g3d/GuiWindowManager.cxx 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/GuiWindowManager.cxx 2008-08-02 10:53:48 UTC (rev 32220) @@ -27,13 +27,6 @@ * Editor (g3d), along with some internal classes. */ -#include "GuiWindowManager.h" - -#include "Logger.h" -#include "Application.h" -#include "CameraManager.h" -#include "GuiBaseWindow.h" - #include <OGRE/OgreRenderWindow.h> #include <OGRE/OgreRoot.h> #include <OGRE/OgreWindowEventUtilities.h> @@ -45,7 +38,14 @@ #include <RBGui/Widgets/TextWidget.h> #include <RBGui/Widgets/TextEntryWidget.h> +#include "GuiWindowManager.h" +#include "Logger.h" +#include "Application.h" +#include "CameraManager.h" +#include "GuiBaseWindow.h" + + /******************************************************************************* * GuiWindowManager ******************************************************************************/ Modified: rt^3/trunk/src/g3d/History.h =================================================================== --- rt^3/trunk/src/g3d/History.h 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/History.h 2008-08-02 10:53:48 UTC (rev 32220) @@ -30,12 +30,12 @@ #define __G3D_HISTORY_H__ -#include "Observer.h" - #include <string> #include <vector> +#include "Observer.h" + /** * @brief ObserverEvent for History * Modified: rt^3/trunk/src/g3d/Logger.h =================================================================== --- rt^3/trunk/src/g3d/Logger.h 2008-08-02 10:49:28 UTC (rev 32219) +++ rt^3/trunk/src/g3d/Logger.h 2008-08-02 10:53:48 UTC (rev 32220) @@ -55,12 +55,12 @@ #endif -#include "Observer.h" - #include <string> #include <vector> +#include "Observer.h" + /** * @brief ObserverEvent for Logger * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <br...@us...> - 2008-08-02 11:10:51
|
Revision: 32223 http://brlcad.svn.sourceforge.net/brlcad/?rev=32223&view=rev Author: brlcad Date: 2008-08-02 11:11:00 +0000 (Sat, 02 Aug 2008) Log Message: ----------- this is untested and might break the build temporarily, but re-remove the blasted using namespace std lines. namespaces should be explicit unless it's on an implementation only but still never with std in order to avoid a handful of portability and maintenance issues. Modified Paths: -------------- rt^3/trunk/src/g3d/Application.cxx rt^3/trunk/src/g3d/Logger.cxx Modified: rt^3/trunk/src/g3d/Application.cxx =================================================================== --- rt^3/trunk/src/g3d/Application.cxx 2008-08-02 11:09:57 UTC (rev 32222) +++ rt^3/trunk/src/g3d/Application.cxx 2008-08-02 11:11:00 UTC (rev 32223) @@ -75,9 +75,7 @@ #include "GuiWindowManager.h" #include "GuiWidgetRotation.h" -using namespace std; - /** @brief Internal class for writing files. * * @author Manuel A. Fernandez Montecelo <ma...@us...> @@ -89,7 +87,7 @@ * * @param name Name of the file */ - CustomStream(const string& name) { _file = fopen(name.c_str(), "wb+"); } + CustomStream(const std::string& name) { _file = fopen(name.c_str(), "wb+"); } /** Default destructor */ virtual ~CustomStream() { fclose(_file); } @@ -440,20 +438,20 @@ size_t data; _renderWindow->getCustomAttribute("WINDOW", &data); - ostringstream windowString; + std::ostringstream windowString; windowString << data; OIS::ParamList paramList; - paramList.insert(make_pair(string("WINDOW"), windowString.str())); + paramList.insert(make_pair(std::string("WINDOW"), windowString.str())); #if defined(WIN32) - paramList.insert(make_pair(string("w32_mouse"), string("DISCL_FOREGROUND"))); - paramList.insert(make_pair(string("w32_mouse"), string("DISCL_NONEXCLUSIVE"))); - paramList.insert(make_pair(string("w32_keyboard"), string("DISCL_FOREGROUND"))); - paramList.insert(make_pair(string("w32_keyboard"), string("DISCL_NONEXCLUSIVE"))); + paramList.insert(make_pair(std::string("w32_mouse"), std::string("DISCL_FOREGROUND"))); + paramList.insert(make_pair(std::string("w32_mouse"), std::string("DISCL_NONEXCLUSIVE"))); + paramList.insert(make_pair(std::string("w32_keyboard"), std::string("DISCL_FOREGROUND"))); + paramList.insert(make_pair(std::string("w32_keyboard"), std::string("DISCL_NONEXCLUSIVE"))); #else - paramList.insert(make_pair(string("XAutoRepeatOn"), string("true"))); - paramList.insert(make_pair(string("x11_keyboard_grab"), string("false"))); - paramList.insert(make_pair(string("x11_mouse_grab"), string("false"))); + paramList.insert(make_pair(std::string("XAutoRepeatOn"), std::string("true"))); + paramList.insert(make_pair(std::string("x11_keyboard_grab"), std::string("false"))); + paramList.insert(make_pair(std::string("x11_mouse_grab"), std::string("false"))); #endif // Create input object using parameter list, then keyboard and mouse Modified: rt^3/trunk/src/g3d/Logger.cxx =================================================================== --- rt^3/trunk/src/g3d/Logger.cxx 2008-08-02 11:09:57 UTC (rev 32222) +++ rt^3/trunk/src/g3d/Logger.cxx 2008-08-02 11:11:00 UTC (rev 32223) @@ -29,11 +29,9 @@ #include <cstdarg> #include <ctime> #include <cstdio> -#include <string> #include "Logger.h" -using namespace std; /// Max length for log messages const int LOGSTR_LENGTH = 255; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-04 11:14:49
|
Revision: 32242 http://brlcad.svn.sourceforge.net/brlcad/?rev=32242&view=rev Author: davidloman Date: 2008-08-04 11:14:55 +0000 (Mon, 04 Aug 2008) Log Message: ----------- Added Paths: ----------- rt^3/trunk/src/geometryService/java/geometryService/src/ rt^3/trunk/src/geometryService/java/geometryService/src/geometryService/ rt^3/trunk/src/geometryService/java/geometryService/src/geometryService/core/ rt^3/trunk/src/geometryService/java/geometryService/src/geometryService/executables/ rt^3/trunk/src/geometryService/java/geometryService/src/geometryService/subsystems/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-04 11:24:23
|
Revision: 32243 http://brlcad.svn.sourceforge.net/brlcad/?rev=32243&view=rev Author: davidloman Date: 2008-08-04 11:24:29 +0000 (Mon, 04 Aug 2008) Log Message: ----------- Added Paths: ----------- rt^3/trunk/src/geometryService/java/geometryService/.classpath rt^3/trunk/src/geometryService/java/geometryService/.project Added: rt^3/trunk/src/geometryService/java/geometryService/.classpath =================================================================== --- rt^3/trunk/src/geometryService/java/geometryService/.classpath (rev 0) +++ rt^3/trunk/src/geometryService/java/geometryService/.classpath 2008-08-04 11:24:29 UTC (rev 32243) @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> + <classpathentry kind="output" path="bin"/> +</classpath> Property changes on: rt^3/trunk/src/geometryService/java/geometryService/.classpath ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/java/geometryService/.project =================================================================== --- rt^3/trunk/src/geometryService/java/geometryService/.project (rev 0) +++ rt^3/trunk/src/geometryService/java/geometryService/.project 2008-08-04 11:24:29 UTC (rev 32243) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>GeometryService-SF-Java</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> Property changes on: rt^3/trunk/src/geometryService/java/geometryService/.project ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-04 16:08:44
|
Revision: 32247 http://brlcad.svn.sourceforge.net/brlcad/?rev=32247&view=rev Author: davidloman Date: 2008-08-04 16:08:35 +0000 (Mon, 04 Aug 2008) Log Message: ----------- Modified Paths: -------------- rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet.eap Removed Paths: ------------- rt^3/trunk/src/geometryService/java/stractNet/docs/stractNet2.eap This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <d_r...@us...> - 2008-08-05 13:25:55
|
Revision: 32258 http://brlcad.svn.sourceforge.net/brlcad/?rev=32258&view=rev Author: d_rossberg Date: 2008-08-05 13:26:03 +0000 (Tue, 05 Aug 2008) Log Message: ----------- start of an attempt to create a C++ interface to BRL-CAD's core libraries Added Paths: ----------- rt^3/trunk/include/brlcad/ rt^3/trunk/include/brlcad/ConstDatabase.h rt^3/trunk/include/brlcad/Database.h rt^3/trunk/include/brlcad/common.h rt^3/trunk/include/brlcad/readme.txt rt^3/trunk/src/coreInterface/ rt^3/trunk/src/coreInterface/ConstDatabase.cpp rt^3/trunk/src/coreInterface/readme.txt Added: rt^3/trunk/include/brlcad/ConstDatabase.h =================================================================== --- rt^3/trunk/include/brlcad/ConstDatabase.h (rev 0) +++ rt^3/trunk/include/brlcad/ConstDatabase.h 2008-08-05 13:26:03 UTC (rev 32258) @@ -0,0 +1,94 @@ +/* C O N S T D A T A B A S E . H + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file ConstDatabase.h + * + * BRL-CAD core C++ interface: + * declares a handle on a read-only database + * + * Origin - + * TNO (Netherlands) + * IABG mbH (Germany) + */ + +#ifndef BRLCAD_CONSTDATABASE_INCLUDED +#define BRLCAD_CONSTDATABASE_INCLUDED + +#include <brlcad/Common.h> + + +struct rt_i; +struct resource; + + +namespace BRLCAD { + class ConstDatabase { + public: + ConstDatabase(void) throw(); + virtual ~ConstDatabase(void) throw(); + + /// associates the handle with a BRL-CAD database file (*.g) + /** If the handle was already associated with a database file this association will be discarded. + The file will be opened for reading only. */ + BRLCAD_COREINTERFACE_EXPORT bool Load(const char* fileName) throw(); + + /// @name Parsing the database + //@{ + /// title string read from the database + BRLCAD_COREINTERFACE_EXPORT const char* Title(void) const throw(); + /// returns the list of the top level objects via call-backs + /** To get a list of objects contained in a combination see ListObjects(). */ + BRLCAD_COREINTERFACE_EXPORT void ListTopObjects(StringCalback& callback) const; + //@} + + /// @name Active set functions + //@{ + /// add the database object \a objectName to the active set + /** The function accepts a space separated list of object names too, + but it is not sure that this behaviour will be kept in future versions. */ + BRLCAD_COREINTERFACE_EXPORT void Select(const char* objectName) throw(); + /// clear the active set + BRLCAD_COREINTERFACE_EXPORT void UnSelectAll(void) throw(); + + BRLCAD_COREINTERFACE_EXPORT bool SelectionIsEmpty(void) const throw(); + BRLCAD_COREINTERFACE_EXPORT Vector3D BoundingBoxMinima(void) const throw(); + BRLCAD_COREINTERFACE_EXPORT Vector3D BoundingBoxMaxima(void) const throw(); + //@} + + /// @name Accessing objects + //@{ + BRLCAD_COREINTERFACE_EXPORT bool IsRegion(const char* objectName); + /// returns the list of the objects contained in the combination \a objectName via call-backs + /** To get a list of top level objects see ListTopObjects(). */ + BRLCAD_COREINTERFACE_EXPORT void ListObjects(const char* objectName, + StringCalback& callback) const; + //@} + + private: + const char* m_title; + rt_i* m_rtip; + resource* m_resp; + + ConstDatabase(const ConstDatabase&) throw(); // not implemented + const ConstDatabase& operator=(const ConstDatabase&) throw(); // not implemented + }; +} + + +#endif // BRLCAD_CONSTDATABASE_INCLUDED Property changes on: rt^3/trunk/include/brlcad/ConstDatabase.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/include/brlcad/Database.h =================================================================== --- rt^3/trunk/include/brlcad/Database.h (rev 0) +++ rt^3/trunk/include/brlcad/Database.h 2008-08-05 13:26:03 UTC (rev 32258) @@ -0,0 +1,42 @@ +/* D A T A B A S E . H + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file Database.h + * + * BRL-CAD core C++ interface: + * declares a handle on a writable database + * + * Origin - + * TNO (Netherlands) + * IABG mbH (Germany) + */ + +#ifndef BRLCAD_DATABASE_INCLUDED +#define BRLCAD_DATABASE_INCLUDED + +#include <brlcad/ConstDatabase.h> + + +namespace BRLCAD { + class Database : public ConstDatabase { + }; +} + + +#endif // BRLCAD_DATABASE_INCLUDED Property changes on: rt^3/trunk/include/brlcad/Database.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/include/brlcad/common.h =================================================================== --- rt^3/trunk/include/brlcad/common.h (rev 0) +++ rt^3/trunk/include/brlcad/common.h 2008-08-05 13:26:03 UTC (rev 32258) @@ -0,0 +1,65 @@ +/* C O M M O N . H + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file Common.h + * + * BRL-CAD core C++ interface: + * declares common understanding + * + * Origin - + * TNO (Netherlands) + * IABG mbH (Germany) + */ + +#ifndef BRLCAD_COMMON_INCLUDED +#define BRLCAD_COMMON_INCLUDED + +/// a define for the interface's binding +/** Meaningful values are for example __declspec(dllexport), __declspec(dllimport) or virtual. + It has to be defined by the build environment (Makefile, *.vcproj etc.). + The default is no special declaration. */ +#ifndef BRLCAD_COREINTERFACE_EXPORT +# define BRLCAD_COREINTERFACE_EXPORT +#endif + + +struct Vector3D { + double coordinates[3]; +}; + + +namespace BRLCAD { + class StringCalback { + public: + virtual ~StringCalback(void) {} + + /** return true: go on; false: stop + The return value gives the calling function the possibility to optimize. + However be aware the return value may be ignored. */ + virtual bool operator()(const char* string) = 0; + + protected: + StringCalback(void) {} + StringCalback(const StringCalback&) {} + const StringCalback& operator=(const StringCalback&) {return *this;} + }; +} + + +#endif // BRLCAD_COMMON_INCLUDED Property changes on: rt^3/trunk/include/brlcad/common.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/include/brlcad/readme.txt =================================================================== --- rt^3/trunk/include/brlcad/readme.txt (rev 0) +++ rt^3/trunk/include/brlcad/readme.txt 2008-08-05 13:26:03 UTC (rev 32258) @@ -0,0 +1,2 @@ +This directory contains the header files of BRL-CAD's core C++ interface. They are intended to be installed in the /usr/include/brlcad directory. +These files are intended as a replacement for the C interface header files around raytrace.h for external applications. \ No newline at end of file Property changes on: rt^3/trunk/include/brlcad/readme.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/coreInterface/ConstDatabase.cpp =================================================================== --- rt^3/trunk/src/coreInterface/ConstDatabase.cpp (rev 0) +++ rt^3/trunk/src/coreInterface/ConstDatabase.cpp 2008-08-05 13:26:03 UTC (rev 32258) @@ -0,0 +1,286 @@ +/* C O N S T D A T A B A S E . C P P + * BRL-CAD + * + * Copyright (c) 2008 United States Government as represented by + * the U.S. Army Research Laboratory. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * version 2.1 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this file; see the file named COPYING for more + * information. + */ +/** @file ConstDatabase.cpp + * + * BRL-CAD core C++ interface: + * implements a handle on a read-only database + * + * Origin - + * TNO (Netherlands) + * IABG mbH (Germany) + */ + +#include <cstdlib> +#include <cstring> + +#include <brlcad/ConstDatabase.h> + +#include "common.h" +#include "raytrace.h" + + +using namespace BRLCAD; + + +ConstDatabase::ConstDatabase(void) throw() : m_title(0), m_rtip(0), m_resp(0) { + m_resp = static_cast<resource*>(calloc(1, sizeof(resource))); +} + + +ConstDatabase::~ConstDatabase(void) throw() { + if (m_rtip != 0) { + if (BU_SETJUMP) + goto END_MARK; + + m_title = 0; + rt_free_rti(m_rtip); + +END_MARK: + BU_UNSETJUMP; + } + + if (m_resp != 0) + free(m_resp); +} + + +bool ConstDatabase::Load +( + const char* fileName +) throw() { + if (m_resp != 0) { + if (m_rtip != 0) { + if (BU_SETJUMP) + goto TRY_IT_MARK; + + m_title = 0; + rt_free_rti(m_rtip); + } + +TRY_IT_MARK: + BU_UNSETJUMP; + + if (BU_SETJUMP) + goto END_MARK; + + m_rtip = rt_dirbuild(fileName, 0, 0); + + if (m_rtip != 0) { + rt_init_resource(m_resp, 0, m_rtip); + m_title = m_rtip->rti_dbip->dbi_title; + } + +END_MARK: + BU_UNSETJUMP; + } + + return (m_rtip != 0); +} + + +const char* ConstDatabase::Title(void) const throw() { + return m_title; +} + + +void ConstDatabase::ListTopObjects +( + StringCalback& callback +) const { + if (m_rtip != 0) { + if (BU_SETJUMP) + goto END_MARK; + + { + db_update_nref(m_rtip->rti_dbip, m_resp); + + for (size_t i = 0; i < RT_DBNHASH; i++) + for (directory* pDir = m_rtip->rti_dbip->dbi_Head[i]; pDir != DIR_NULL; pDir = pDir->d_forw) + if (pDir->d_nref == 0) + callback(pDir->d_namep); + } + +END_MARK: + BU_UNSETJUMP; + } +} + + +void ConstDatabase::Select +( + const char* objectName +) throw() { + if (m_rtip != 0) { + if (BU_SETJUMP) + goto END_MARK; + + rt_gettree(m_rtip, objectName); + +END_MARK: + BU_UNSETJUMP; + } +} + + +void ConstDatabase::UnSelectAll(void) throw() { + if (m_rtip != 0) { + if (BU_SETJUMP) + goto END_MARK; + + rt_clean(m_rtip); + +END_MARK: + BU_UNSETJUMP; + } +} + + +bool ConstDatabase::SelectionIsEmpty(void) const throw() { + bool ret = true; + + if (m_rtip != 0) + ret = m_rtip->nsolids < 1; + + return ret; +} + + +Vector3D ConstDatabase::BoundingBoxMinima(void) const throw() { + Vector3D ret = {0., 0., 0.}; + + if (!SelectionIsEmpty()) { + if (BU_SETJUMP) + goto END_MARK; + + if (m_rtip->needprep) + rt_prep(m_rtip); + + VMOVE(ret.coordinates, m_rtip->mdl_min); + +END_MARK: + BU_UNSETJUMP; + } + + return ret; +} + + +Vector3D ConstDatabase::BoundingBoxMaxima(void) const throw() { + Vector3D ret = {0., 0., 0.}; + + if (!SelectionIsEmpty()) { + if (BU_SETJUMP) + goto END_MARK; + + if (m_rtip->needprep) + rt_prep(m_rtip); + + VMOVE(ret.coordinates, m_rtip->mdl_max); + +END_MARK: + BU_UNSETJUMP; + } + + return ret; +} + + +bool ConstDatabase::IsRegion +( + const char* objectName +) { + bool ret = false; + + if (m_rtip != 0) { + if (BU_SETJUMP) + goto END_MARK; + + if ((objectName != 0) && (strlen(objectName) > 0)) { + directory* pDir = db_lookup(m_rtip->rti_dbip, objectName, LOOKUP_NOISY); + + if (pDir != DIR_NULL) { + if (pDir->d_flags & DIR_REGION) + ret = true; + } + } + +END_MARK: + BU_UNSETJUMP; + } + + return ret; +} + + +void ConstDatabase::ListObjects +( + const char* objectName, + StringCalback& callback +) const { + if (m_rtip != 0) { + if (BU_SETJUMP) + goto END_MARK; + + if ((objectName != 0) && (strlen(objectName) > 0)) { + directory* pDir = db_lookup(m_rtip->rti_dbip, objectName, LOOKUP_NOISY); + + if (pDir != DIR_NULL) { + if (pDir->d_flags & DIR_COMB) { + struct rt_db_internal intern; + int id = rt_db_get_internal(&intern, pDir, m_rtip->rti_dbip, 0, m_resp); + + if (id >= 0) { + rt_comb_internal* comb = static_cast<rt_comb_internal*>(intern.idb_ptr); + + if (comb->tree != 0) { + if (db_ck_v4gift_tree(comb->tree) < 0) + db_non_union_push(comb->tree, m_resp); + + if (db_ck_v4gift_tree(comb->tree) >= 0) { + int nodeCount = db_tree_nleaves(comb->tree); + + if (nodeCount > 0) { + rt_tree_array* pRtTreeArray = static_cast<rt_tree_array*>(bu_calloc(nodeCount, sizeof( struct rt_tree_array ), "tree list" )); + int actualCount = db_flatten_tree(pRtTreeArray, comb->tree, OP_UNION, 1, m_resp) - pRtTreeArray; + + comb->tree = TREE_NULL; + + if (actualCount <= nodeCount) { + for (int i = 0; i < actualCount; i++) { + callback(pRtTreeArray[i].tl_tree->tr_l.tl_name); + db_free_tree(pRtTreeArray[i].tl_tree, m_resp); + } + } + + bu_free(pRtTreeArray, "tree list"); + } + } + } + + rt_db_free_internal(&intern, m_resp); + } + } + } + } + +END_MARK: + BU_UNSETJUMP; + } +} Property changes on: rt^3/trunk/src/coreInterface/ConstDatabase.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/coreInterface/readme.txt =================================================================== --- rt^3/trunk/src/coreInterface/readme.txt (rev 0) +++ rt^3/trunk/src/coreInterface/readme.txt 2008-08-05 13:26:03 UTC (rev 32258) @@ -0,0 +1 @@ +This directory contains the implementation files of BRL-CAD's core C++ interface. \ No newline at end of file Property changes on: rt^3/trunk/src/coreInterface/readme.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dav...@us...> - 2008-08-06 12:15:23
|
Revision: 32281 http://brlcad.svn.sourceforge.net/brlcad/?rev=32281&view=rev Author: davidloman Date: 2008-08-06 12:15:14 +0000 (Wed, 06 Aug 2008) Log Message: ----------- Phase 1 of code conversion effort. Added Paths: ----------- rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.cpp rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.h rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.cpp rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.h rt^3/trunk/src/geometryService/cpp/stractNet/MsgFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.cpp rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.h rt^3/trunk/src/geometryService/cpp/stractNet/NetID.cpp rt^3/trunk/src/geometryService/cpp/stractNet/NetID.h rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.cpp rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.h rt^3/trunk/src/geometryService/cpp/stractNet/Portal.cpp rt^3/trunk/src/geometryService/cpp/stractNet/Portal.h rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.cpp rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.h rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.cpp rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.h rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.cpp rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.h rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.cpp rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.h rt^3/trunk/src/geometryService/cpp/stractNet/SNConfig.cpp rt^3/trunk/src/geometryService/cpp/stractNet/SNConfig.h rt^3/trunk/src/geometryService/cpp/stractNet/SNException.cpp rt^3/trunk/src/geometryService/cpp/stractNet/SNException.h rt^3/trunk/src/geometryService/cpp/stractNet/SNRoot.cpp rt^3/trunk/src/geometryService/cpp/stractNet/SNRoot.h rt^3/trunk/src/geometryService/cpp/stractNet/SNUtilities.cpp rt^3/trunk/src/geometryService/cpp/stractNet/SNUtilities.h rt^3/trunk/src/geometryService/cpp/stractNet/ShortFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/ShortFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/StdMsg.cpp rt^3/trunk/src/geometryService/cpp/stractNet/StdMsg.h rt^3/trunk/src/geometryService/cpp/stractNet/StdMsgTypes.cpp rt^3/trunk/src/geometryService/cpp/stractNet/StdMsgTypes.h rt^3/trunk/src/geometryService/cpp/stractNet/StdMsgUtil.cpp rt^3/trunk/src/geometryService/cpp/stractNet/StdMsgUtil.h rt^3/trunk/src/geometryService/cpp/stractNet/StringFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/StringFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/WayPoint.cpp rt^3/trunk/src/geometryService/cpp/stractNet/WayPoint.h rt^3/trunk/src/geometryService/cpp/stractNet/WayPointFrag.cpp rt^3/trunk/src/geometryService/cpp/stractNet/WayPointFrag.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/ rt^3/trunk/src/geometryService/cpp/stractNet/tests/ByteConverterTests.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/ByteConverterTests.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/EchoSubsystem.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/EchoSubsystem.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/MSTest01.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/MSTest01.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/MSTest02.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/MSTest02.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/MsgSerializationTest01.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/MsgSerializationTest01.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PlaceboMessageServer.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PlaceboMessageServer.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PlaceboMsgStoppableClass.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PlaceboMsgStoppableClass.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest01.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest01.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest02.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest02.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest03.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest03.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest04.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest04.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest05.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest05.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest06.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest06.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest07.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest07.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest08.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTest08.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTestAbstract.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/PortalTestAbstract.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/ReactionSubsystem.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/ReactionSubsystem.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/SampleApplication01.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/SampleApplication01.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/SampleApplication02.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/SampleApplication02.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/SendAndEchoSubSystem.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/SendAndEchoSubSystem.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/SendSubSystem.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/SendSubSystem.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/SimpleDHExample.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/SimpleDHExample.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/TestAppCore.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/TestAppCore.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/TestSNCipher.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/TestSNCipher.h rt^3/trunk/src/geometryService/cpp/stractNet/tests/TestingJavaxCrypto.cpp rt^3/trunk/src/geometryService/cpp/stractNet/tests/TestingJavaxCrypto.h Added: rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////// +// BooleanFrag.cpp +// Implementation of the Class BooleanFrag +// Created on: 06-Aug-2008 7:52:28 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "BooleanFrag.h" + + +BooleanFrag::BooleanFrag(){ + +} + + + +BooleanFrag::~BooleanFrag(){ + +} + + + + + +BooleanFrag::BooleanFrag(boolean boo){ + +} + + +BooleanFrag::BooleanFrag(DataInputStream in){ + +} + + +void BooleanFrag::Deserialize(DataInputStream in){ + +} + + +void BooleanFrag::Serialize_Specific(DataOutputStream out){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////// +// BooleanFrag.h +// Implementation of the Class BooleanFrag +// Created on: 06-Aug-2008 7:52:28 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_1F57D000_5859_498b_8D6D_9B169E7E2DB2__INCLUDED_) +#define EA_1F57D000_5859_498b_8D6D_9B169E7E2DB2__INCLUDED_ + +#include "MsgFrag.h" + +class BooleanFrag : public MsgFrag<Boolean> +{ + +public: + BooleanFrag(); + virtual ~BooleanFrag(); + + BooleanFrag(boolean boo); + BooleanFrag(DataInputStream in); + void Deserialize(DataInputStream in); + +protected: + void Serialize_Specific(DataOutputStream out); + +}; +#endif // !defined(EA_1F57D000_5859_498b_8D6D_9B169E7E2DB2__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/BooleanFrag.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////// +// ByteArrayFrag.cpp +// Implementation of the Class ByteArrayFrag +// Created on: 06-Aug-2008 7:52:41 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "ByteArrayFrag.h" + + +ByteArrayFrag::ByteArrayFrag(){ + +} + + + +ByteArrayFrag::~ByteArrayFrag(){ + +} + + + + + +ByteArrayFrag::ByteArrayFrag(byte[] b){ + +} + + +ByteArrayFrag::ByteArrayFrag(DataInputStream in){ + +} + + +void ByteArrayFrag::Deserialize(DataInputStream in){ + +} + + +void ByteArrayFrag::Serialize_Specific(DataOutputStream out){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////// +// ByteArrayFrag.h +// Implementation of the Class ByteArrayFrag +// Created on: 06-Aug-2008 7:52:40 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_2F9DFEE6_BD43_4c45_A58A_43688FA45A18__INCLUDED_) +#define EA_2F9DFEE6_BD43_4c45_A58A_43688FA45A18__INCLUDED_ + +#include "MsgFrag.h" + +class ByteArrayFrag : public MsgFrag<byte[]> +{ + +public: + ByteArrayFrag(); + virtual ~ByteArrayFrag(); + + ByteArrayFrag(byte[] b); + ByteArrayFrag(DataInputStream in); + void Deserialize(DataInputStream in); + +protected: + void Serialize_Specific(DataOutputStream out); + +}; +#endif // !defined(EA_2F9DFEE6_BD43_4c45_A58A_43688FA45A18__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/ByteArrayFrag.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////// +// DoubleFrag.cpp +// Implementation of the Class DoubleFrag +// Created on: 06-Aug-2008 7:52:13 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "DoubleFrag.h" + + +DoubleFrag::DoubleFrag(){ + +} + + + +DoubleFrag::~DoubleFrag(){ + +} + + + + + +DoubleFrag::DoubleFrag(double db){ + +} + + +DoubleFrag::DoubleFrag(DataInputStream in){ + +} + + +void DoubleFrag::Deserialize(DataInputStream in){ + +} + + +void DoubleFrag::Serialize_Specific(DataOutputStream out){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////// +// DoubleFrag.h +// Implementation of the Class DoubleFrag +// Created on: 06-Aug-2008 7:52:12 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_EE9D6A7A_2375_4574_9A3B_F0F382147DFE__INCLUDED_) +#define EA_EE9D6A7A_2375_4574_9A3B_F0F382147DFE__INCLUDED_ + +#include "MsgFrag.h" + +class DoubleFrag : public MsgFrag<Double> +{ + +public: + DoubleFrag(); + virtual ~DoubleFrag(); + + DoubleFrag(double db); + DoubleFrag(DataInputStream in); + void Deserialize(DataInputStream in); + +protected: + void Serialize_Specific(DataOutputStream out); + +}; +#endif // !defined(EA_EE9D6A7A_2375_4574_9A3B_F0F382147DFE__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/DoubleFrag.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////// +// FloatFrag.cpp +// Implementation of the Class FloatFrag +// Created on: 06-Aug-2008 7:52:20 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "FloatFrag.h" + + +FloatFrag::FloatFrag(){ + +} + + + +FloatFrag::~FloatFrag(){ + +} + + + + + +FloatFrag::FloatFrag(float fl){ + +} + + +FloatFrag::FloatFrag(DataInputStream in){ + +} + + +void FloatFrag::Deserialize(DataInputStream in){ + +} + + +void FloatFrag::Serialize_Specific(DataOutputStream out){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////// +// FloatFrag.h +// Implementation of the Class FloatFrag +// Created on: 06-Aug-2008 7:52:20 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_34BAE8DF_320B_400e_8914_A1DF2627E7EA__INCLUDED_) +#define EA_34BAE8DF_320B_400e_8914_A1DF2627E7EA__INCLUDED_ + +#include "MsgFrag.h" + +class FloatFrag : public MsgFrag<Float> +{ + +public: + FloatFrag(); + virtual ~FloatFrag(); + + FloatFrag(float fl); + FloatFrag(DataInputStream in); + void Deserialize(DataInputStream in); + +protected: + void Serialize_Specific(DataOutputStream out); + +}; +#endif // !defined(EA_34BAE8DF_320B_400e_8914_A1DF2627E7EA__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/FloatFrag.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////// +// IntegerFrag.cpp +// Implementation of the Class IntegerFrag +// Created on: 06-Aug-2008 7:51:52 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "IntegerFrag.h" + + +IntegerFrag::IntegerFrag(){ + +} + + + +IntegerFrag::~IntegerFrag(){ + +} + + + + + +IntegerFrag::IntegerFrag(int in){ + +} + + +IntegerFrag::IntegerFrag(DataInputStream in){ + +} + + +void IntegerFrag::Deserialize(DataInputStream in){ + +} + + +void IntegerFrag::Serialize_Specific(DataOutputStream out){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////// +// IntegerFrag.h +// Implementation of the Class IntegerFrag +// Created on: 06-Aug-2008 7:51:51 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_772433B9_5456_46d4_8DE2_9FF255CD4F98__INCLUDED_) +#define EA_772433B9_5456_46d4_8DE2_9FF255CD4F98__INCLUDED_ + +#include "MsgFrag.h" + +class IntegerFrag : public MsgFrag<Integer> +{ + +public: + IntegerFrag(); + virtual ~IntegerFrag(); + + IntegerFrag(int in); + IntegerFrag(DataInputStream in); + void Deserialize(DataInputStream in); + +protected: + void Serialize_Specific(DataOutputStream out); + +}; +#endif // !defined(EA_772433B9_5456_46d4_8DE2_9FF255CD4F98__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/IntegerFrag.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////// +// LongFrag.cpp +// Implementation of the Class LongFrag +// Created on: 06-Aug-2008 7:51:41 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "LongFrag.h" + + +LongFrag::LongFrag(){ + +} + + + +LongFrag::~LongFrag(){ + +} + + + + + +LongFrag::LongFrag(Long lo){ + +} + + +LongFrag::LongFrag(DataInputStream in){ + +} + + +void LongFrag::Deserialize(DataInputStream in){ + +} + + +void LongFrag::Serialize_Specific(DataOutputStream out){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,28 @@ +/////////////////////////////////////////////////////////// +// LongFrag.h +// Implementation of the Class LongFrag +// Created on: 06-Aug-2008 7:51:40 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_E60DFF19_2099_4b1d_9A9E_BEBA965FCFF7__INCLUDED_) +#define EA_E60DFF19_2099_4b1d_9A9E_BEBA965FCFF7__INCLUDED_ + +#include "MsgFrag.h" + +class LongFrag : public MsgFrag<Long> +{ + +public: + LongFrag(); + virtual ~LongFrag(); + + LongFrag(Long lo); + LongFrag(DataInputStream in); + void Deserialize(DataInputStream in); + +protected: + void Serialize_Specific(DataOutputStream out); + +}; +#endif // !defined(EA_E60DFF19_2099_4b1d_9A9E_BEBA965FCFF7__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/LongFrag.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,85 @@ +/////////////////////////////////////////////////////////// +// MessageDispatcher.cpp +// Implementation of the Class MessageDispatcher +// Created on: 06-Aug-2008 7:49:34 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "MessageDispatcher.h" + + +MessageDispatcher::MessageDispatcher(){ + +} + + + +MessageDispatcher::~MessageDispatcher(){ + +} + + + + + +MessageDispatcher::MessageDispatcher(String Name, MessagingSystem ms){ + +} + + +MessageDispatcher::MessageDispatcher(String Name){ + +} + + +boolean MessageDispatcher::CheckDuplicateMsg(StdMsg msg){ + + return NULL; +} + + +void MessageDispatcher::deliverLocal(StdMsg msg){ + +} + + +void MessageDispatcher::deliverRemote(StdMsg msg){ + +} + + +boolean MessageDispatcher::getRunCmd(){ + + return NULL; +} + + +boolean MessageDispatcher::getRunStatus(){ + + return NULL; +} + + +Thread MessageDispatcher::getThread(){ + + return NULL; +} + + +void MessageDispatcher::run(){ + +} + + +/** + * Use start() when you want to run this object in a dedicated Thread aka Non- + * Blocking. + */ +void MessageDispatcher::start(){ + +} + + +void MessageDispatcher::stop(){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,42 @@ +/////////////////////////////////////////////////////////// +// MessageDispatcher.h +// Implementation of the Class MessageDispatcher +// Created on: 06-Aug-2008 7:49:34 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_61DD6466_ADFC_4871_BDD0_33F0918F56E7__INCLUDED_) +#define EA_61DD6466_ADFC_4871_BDD0_33F0918F56E7__INCLUDED_ + +#include "StdMsg.java" +#include "MessagingSystem.java" +#include "SNRoot.java" + +class MessageDispatcher : public SNRoot +{ + +public: + MessageDispatcher(); + virtual ~MessageDispatcher(); + long MsgsProcessed; + + MessageDispatcher(String Name, MessagingSystem ms); + MessageDispatcher(String Name); + boolean getRunCmd(); + boolean getRunStatus(); + Thread getThread(); + void run(); + void start(); + void stop(); + +private: + Thread myThread; + boolean runCmd; + boolean runStatus; + + boolean CheckDuplicateMsg(StdMsg msg); + void deliverLocal(StdMsg msg); + void deliverRemote(StdMsg msg); + +}; +#endif // !defined(EA_61DD6466_ADFC_4871_BDD0_33F0918F56E7__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/MessageDispatcher.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,201 @@ +/////////////////////////////////////////////////////////// +// MessagingSystem.cpp +// Implementation of the Class MessagingSystem +// Created on: 06-Aug-2008 7:50:12 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "MessagingSystem.h" + + +MessagingSystem::MessagingSystem(){ + +} + + + +MessagingSystem::~MessagingSystem(){ + +} + + + + + +MessagingSystem::MessagingSystem(String HostName){ + +} + + +NetID MessagingSystem::AddMsgToQueue(StdMsg msg){ + + return NULL; +} + + +/** + * Message Dispatcher Routines + */ +MessageDispatcher MessagingSystem::generateNewMD(){ + + return NULL; +} + + +/** + * StdMsg Factories + */ +StdMsg MessagingSystem::generateNewMsg(int msgType){ + + return NULL; +} + + +StdMsg MessagingSystem::generateNewMsg(int msgType, String to){ + + return NULL; +} + + +StdMsg MessagingSystem::generateNewMsg(StdMsg msg) throw IOException{ + + return NULL; +} + + +StdMsg MessagingSystem::generateNewMsg(DataInputStream in) throw IOException{ + + return NULL; +} + + +StdMsg MessagingSystem::generateNewMsg(byte[] data) throw IOException{ + + return NULL; +} + + +StdMsg MessagingSystem::generateNewMsgCommon(StdMsg sm){ + + return NULL; +} + + +HashSet<MsgStop> MessagingSystem::getAllMsgStops(){ + + return NULL; +} + + +ArrayList<Portal> MessagingSystem::getAllPortals(){ + + return NULL; +} + + +HashMap<Long, String> MessagingSystem::getDispatchedMsgs(){ + + return DispatchedMsgs; +} + + +String MessagingSystem::getHostName(){ + + return NULL; +} + + +int MessagingSystem::getMsgsRouted(){ + + return MsgsRouted; +} + + +/** + * MsgStop Utilities. + */ +HashSet<MsgStop> MessagingSystem::getMsgStops(int msgType){ + + return NULL; +} + + +/** + * Portal Utilities. + */ +Portal MessagingSystem::getPortal(String Hostname){ + + return NULL; +} + + +ConcurrentLinkedQueue<StdMsg> MessagingSystem::getQ(){ + + return Q; +} + + +ArrayList<String> MessagingSystem::getRemoteHostNamesArray(){ + + return NULL; +} + + +String MessagingSystem::getRemoteHostNamesString(){ + + return NULL; +} + + +boolean MessagingSystem::hasRemoteHostOnFile(String Hostname){ + + return NULL; +} + + +/** + * Message addition, removal and peeking. + */ +boolean MessagingSystem::isQEmpty(){ + + return NULL; +} + + +StdMsg MessagingSystem::peekQ(){ + + return NULL; +} + + +StdMsg MessagingSystem::pollQ(){ + + return NULL; +} + + +void MessagingSystem::purgeDispatchedMsgList(){ + +} + + +void MessagingSystem::RegisterMsgStop(MsgStop ms){ + +} + + +boolean MessagingSystem::RegisterPortal(Portal p){ + + return NULL; +} + + +void MessagingSystem::UnRegisterMsgStop(MsgStop ms){ + +} + + +boolean MessagingSystem::UnRegisterPortal(Portal p){ + + return NULL; +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,81 @@ +/////////////////////////////////////////////////////////// +// MessagingSystem.h +// Implementation of the Class MessagingSystem +// Created on: 06-Aug-2008 7:50:12 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_597FB80E_BE25_471e_A681_E1E6E605229C__INCLUDED_) +#define EA_597FB80E_BE25_471e_A681_E1E6E605229C__INCLUDED_ + +#include "NetID.java" +#include "StdMsg.java" +#include "MessageDispatcher.h" +#include "Portal.java" +#include "MsgStop.java" +#include "SNRoot.java" + +class MessagingSystem : public SNRoot +{ + +public: + MessagingSystem(); + virtual ~MessagingSystem(); + + MessagingSystem(String HostName); + NetID AddMsgToQueue(StdMsg msg); + MessageDispatcher generateNewMD(); + StdMsg generateNewMsg(int msgType); + StdMsg generateNewMsg(int msgType, String to); + StdMsg generateNewMsg(StdMsg msg) throw IOException; + StdMsg generateNewMsg(DataInputStream in) throw IOException; + StdMsg generateNewMsg(byte[] data) throw IOException; + HashSet<MsgStop> getAllMsgStops(); + ArrayList<Portal> getAllPortals(); + HashMap<Long, String> getDispatchedMsgs(); + String getHostName(); + int getMsgsRouted(); + HashSet<MsgStop> getMsgStops(int msgType); + Portal getPortal(String Hostname); + ConcurrentLinkedQueue<StdMsg> getQ(); + ArrayList<String> getRemoteHostNamesArray(); + String getRemoteHostNamesString(); + boolean hasRemoteHostOnFile(String Hostname); + boolean isQEmpty(); + StdMsg peekQ(); + StdMsg pollQ(); + void purgeDispatchedMsgList(); + void RegisterMsgStop(MsgStop ms); + boolean RegisterPortal(Portal p); + void UnRegisterMsgStop(MsgStop ms); + boolean UnRegisterPortal(Portal p); + +private: + /** + * TimeStamp, MS assigned Network ID<BR/><BR/> + */ + HashMap<Long, String> DispatchedMsgs; + /** + * private MessageDispatcher MD = null; + */ + int MDCounter; + int MsgIDCnt; + int MsgsRouted; + /** + * MsgType, List of MsgStops<BR/><BR/> + */ + HashSet<MsgStop> msgStops; + /** + * MsgType, List of MsgStops<BR/><BR/> + */ + HashMap<Integer, HashSet<MsgStop>> msgTypeRoutingTable; + /** + * private Hashtable<String, Portal> portals = new Hashtable<String, Portal>(); + */ + ArrayList<Portal> portals; + ConcurrentLinkedQueue<StdMsg> Q; + + StdMsg generateNewMsgCommon(StdMsg sm); + +}; +#endif // !defined(EA_597FB80E_BE25_471e_A681_E1E6E605229C__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/MessagingSystem.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/MsgFrag.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/MsgFrag.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/MsgFrag.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,71 @@ +/////////////////////////////////////////////////////////// +// MsgFrag.h +// Implementation of the Class MsgFrag +// Created on: 06-Aug-2008 7:51:32 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_7F69ABBB_419C_4b74_A909_67A3AFCCEA27__INCLUDED_) +#define EA_7F69ABBB_419C_4b74_A909_67A3AFCCEA27__INCLUDED_ + +#include "SNRoot.h" + +template<E> +class MsgFrag : public SNRoot +{ + +public: + MsgFrag(); + virtual ~MsgFrag(); + static const int mftBoolean = 0; + static const int mftByteArray = 8; + static const int mftDouble = 1; + static const int mftFloat = 2; + static const int mftInteger = 3; + static const int mftLong = 4; + static const int mftShort = 5; + static const int mftString = 6; + static const int mftWaypoint = 7; + + E getField(){ + + return NULL; + } + int getMFType(){ + + return MFType; + } + byte Serialize(){ + + return NULL; + } + void Serialize(DataOutputStream out) throw IOException{ + + } + void setField(E val){ + + } + String toString(){ + + return NULL; + } + +protected: + E field; + int MFType; + + MsgFrag(String name, E in, int mfType){ + + } + MsgFrag(String name, DataInputStream in, int mfType){ + + } + virtual void Deserialize(DataInputStream in){ + + } + virtual void Serialize_Specific(DataOutputStream out){ + + } + +}; +#endif // !defined(EA_7F69ABBB_419C_4b74_A909_67A3AFCCEA27__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/MsgFrag.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,73 @@ +/////////////////////////////////////////////////////////// +// MsgStop.cpp +// Implementation of the Class MsgStop +// Created on: 06-Aug-2008 7:51:11 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "MsgStop.h" + + +MsgStop::MsgStop(){ + +} + + + +MsgStop::~MsgStop(){ + +} + + + + + +MsgStop::MsgStop(String Name, HashSet<Integer> msgTypes, LinkedList<StdMsg> inQ){ + +} + + +MsgStop::MsgStop(String Name, LinkedList<StdMsg> inQ){ + +} + + +void MsgStop::addMsgType(int msgType){ + +} + + +/** + * public void addMsgTypes(HashSet<Integer> msgTypes) { MsgTypes.addAll(MsgTypes); + * } + */ +void MsgStop::addMsgTypes(int[] msgTypes){ + +} + + +HashSet<Integer> MsgStop::getMsgTypesHashSet(){ + + return NULL; +} + + +int MsgStop::getMsgTypesIntArray(){ + + return 0; +} + + +void MsgStop::remMsgType(int msgType){ + +} + + +void MsgStop::sendToMS(StdMsg msg){ + +} + + +void MsgStop::sendToMsgStop(StdMsg msg){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,40 @@ +/////////////////////////////////////////////////////////// +// MsgStop.h +// Implementation of the Class MsgStop +// Created on: 06-Aug-2008 7:51:11 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_F1D00E32_F7E9_4409_8C53_5C60B1234B36__INCLUDED_) +#define EA_F1D00E32_F7E9_4409_8C53_5C60B1234B36__INCLUDED_ + +#include "StdMsg.h" +#include "SNRoot.h" + +class MsgStop : public SNRoot +{ + +public: + MsgStop(); + virtual ~MsgStop(); + + MsgStop(String Name, HashSet<Integer> msgTypes, LinkedList<StdMsg> inQ); + MsgStop(String Name, LinkedList<StdMsg> inQ); + void addMsgType(int msgType); + void addMsgTypes(int[] msgTypes); + HashSet<Integer> getMsgTypesHashSet(); + int getMsgTypesIntArray(); + void remMsgType(int msgType); + void sendToMS(StdMsg msg); + void sendToMsgStop(StdMsg msg); + +private: + /** + * This is a reference to the Queue for messages coming FROM the MS to the + * destined MsgStop + */ + LinkedList<StdMsg> msgQ; + HashSet<Integer> MsgTypes; + +}; +#endif // !defined(EA_F1D00E32_F7E9_4409_8C53_5C60B1234B36__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/MsgStop.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/NetID.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/NetID.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/NetID.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,84 @@ +/////////////////////////////////////////////////////////// +// NetID.cpp +// Implementation of the Class NetID +// Created on: 06-Aug-2008 7:50:46 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "NetID.h" + + +NetID::NetID(){ + +} + + + +NetID::~NetID(){ + +} + + + + + +/** + * Manual Constructor + */ +NetID::NetID(long ID, String host){ + +} + + +/** + * Copy constructor + */ +NetID::NetID(NetID addr){ + +} + + +/** + * public NetID(byte[] data) throws IOException { super("SNAddr"); Setup Streams + * ByteArrayInputStream bais = new ByteArrayInputStream(data); DataInputStream in + * = new DataInputStream(bais); Deserialize Components this.ID = new LongFrag(in); + * this.Host = new StringFrag(in); } + */ +NetID::NetID(DataInputStream in) throw IOException{ + +} + + +/** + * @return the host + */ +String NetID::getHost(){ + + return Host; +} + + +/** + * @return the msgStopID + */ +long NetID::getID(){ + + return ID; +} + + +byte NetID::Serialize(){ + + return NULL; +} + + +void NetID::Serialize(DataOutputStream out){ + +} + + +String NetID::toString(){ + + return NULL; +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/NetID.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/NetID.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/NetID.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/NetID.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,36 @@ +/////////////////////////////////////////////////////////// +// NetID.h +// Implementation of the Class NetID +// Created on: 06-Aug-2008 7:50:46 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_8BE75042_9F10_49ed_973D_2EDE117DAA72__INCLUDED_) +#define EA_8BE75042_9F10_49ed_973D_2EDE117DAA72__INCLUDED_ + +#include "StringFrag.java" +#include "LongFrag.java" +#include "SNRoot.h" + +class NetID : public SNRoot +{ + +public: + NetID(); + virtual ~NetID(); + + NetID(long ID, String host); + NetID(NetID addr); + NetID(DataInputStream in) throw IOException; + String getHost(); + long getID(); + byte Serialize(); + void Serialize(DataOutputStream out); + String toString(); + +private: + StringFrag Host; + LongFrag ID; + +}; +#endif // !defined(EA_8BE75042_9F10_49ed_973D_2EDE117DAA72__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/NetID.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,37 @@ +/////////////////////////////////////////////////////////// +// NoSecretKeyException.cpp +// Implementation of the Class NoSecretKeyException +// Created on: 06-Aug-2008 7:49:10 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "NoSecretKeyException.h" + + +NoSecretKeyException::NoSecretKeyException(){ + +} + + + +NoSecretKeyException::~NoSecretKeyException(){ + +} + + + + + +NoSecretKeyException::NoSecretKeyException(String arg0, Throwable arg1){ + +} + + +NoSecretKeyException::NoSecretKeyException(String arg0){ + +} + + +NoSecretKeyException::NoSecretKeyException(Throwable arg0){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////// +// NoSecretKeyException.h +// Implementation of the Class NoSecretKeyException +// Created on: 06-Aug-2008 7:49:10 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_36251D48_5DD6_4e76_A753_A73D5065ECF5__INCLUDED_) +#define EA_36251D48_5DD6_4e76_A753_A73D5065ECF5__INCLUDED_ + +#include "SNException.h" + +class NoSecretKeyException : public SNException +{ + +public: + NoSecretKeyException(); + virtual ~NoSecretKeyException(); + static const long serialVersionUID = 1L; + + NoSecretKeyException(String arg0, Throwable arg1); + NoSecretKeyException(String arg0); + NoSecretKeyException(Throwable arg0); + +}; +#endif // !defined(EA_36251D48_5DD6_4e76_A753_A73D5065ECF5__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/NoSecretKeyException.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/Portal.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/Portal.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/Portal.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,74 @@ +/////////////////////////////////////////////////////////// +// Portal.cpp +// Implementation of the Class Portal +// Created on: 06-Aug-2008 7:50:30 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "Portal.h" + + +Portal::Portal(){ + +} + + + +Portal::~Portal(){ + +} + + + + + +Portal::Portal(String Name, PortalManager pm, SocketChannel sockChan){ + +} + + +Portal::Portal(String Name, PortalManager pm, SocketChannel sockChan, MessagingSystem ms){ + +} + + +void Portal::finishDisconnect(){ + +} + + +String Portal::getRemoteHostName(){ + + return RemoteHostName; +} + + +SocketChannel Portal::getSockChan(){ + + return NULL; +} + + +void Portal::PortalSetRemoteHostName(StdMsg sm){ + +} + + +void Portal::Send(StdMsg sm){ + +} + + +void Portal::SendHostInfo(){ + +} + + +void Portal::SendToMS(StdMsg sm){ + +} + + +void Portal::SendToRemHost(StdMsg sm){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/Portal.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/Portal.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/Portal.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/Portal.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,41 @@ +/////////////////////////////////////////////////////////// +// Portal.h +// Implementation of the Class Portal +// Created on: 06-Aug-2008 7:50:30 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_76E3E888_D74B_4ddf_916D_37E9645E5C0A__INCLUDED_) +#define EA_76E3E888_D74B_4ddf_916D_37E9645E5C0A__INCLUDED_ + +#include "PortalManager.h" +#include "MessagingSystem.h" +#include "StdMsg.java" +#include "SNRoot.h" + +class Portal : public SNRoot +{ + +public: + Portal(); + virtual ~Portal(); + + Portal(String Name, PortalManager pm, SocketChannel sockChan); + Portal(String Name, PortalManager pm, SocketChannel sockChan, MessagingSystem ms); + String getRemoteHostName(); + SocketChannel getSockChan(); + void Send(StdMsg sm); + void SendToMS(StdMsg sm); + void SendToRemHost(StdMsg sm); + +private: + PortalManager PM; + String RemoteHostName; + SocketChannel sockChan; + + void finishDisconnect(); + void PortalSetRemoteHostName(StdMsg sm); + void SendHostInfo(); + +}; +#endif // !defined(EA_76E3E888_D74B_4ddf_916D_37E9645E5C0A__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/Portal.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,27 @@ +/////////////////////////////////////////////////////////// +// PortalChangeRequest.cpp +// Implementation of the Class PortalChangeRequest +// Created on: 06-Aug-2008 7:48:23 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "PortalChangeRequest.h" + + +PortalChangeRequest::PortalChangeRequest(){ + +} + + + +PortalChangeRequest::~PortalChangeRequest(){ + +} + + + + + +PortalChangeRequest::PortalChangeRequest(SocketChannel socket, int type, int ops){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////// +// PortalChangeRequest.h +// Implementation of the Class PortalChangeRequest +// Created on: 06-Aug-2008 7:48:23 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_F8B2C875_9C85_4054_9592_6BE88F734869__INCLUDED_) +#define EA_F8B2C875_9C85_4054_9592_6BE88F734869__INCLUDED_ + +class PortalChangeRequest +{ + +public: + PortalChangeRequest(); + virtual ~PortalChangeRequest(); + static const int CHANGEOPS = 2; + int ops; + static const int REGISTER = 1; + SocketChannel socket; + int type; + + PortalChangeRequest(SocketChannel socket, int type, int ops); + +}; +#endif // !defined(EA_F8B2C875_9C85_4054_9592_6BE88F734869__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/PortalChangeRequest.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,27 @@ +/////////////////////////////////////////////////////////// +// PortalDataEvent.cpp +// Implementation of the Class PortalDataEvent +// Created on: 06-Aug-2008 7:48:52 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "PortalDataEvent.h" + + +PortalDataEvent::PortalDataEvent(){ + +} + + + +PortalDataEvent::~PortalDataEvent(){ + +} + + + + + +PortalDataEvent::PortalDataEvent(PortalManager server, SocketChannel socket, byte[] data){ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,26 @@ +/////////////////////////////////////////////////////////// +// PortalDataEvent.h +// Implementation of the Class PortalDataEvent +// Created on: 06-Aug-2008 7:48:52 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_B8244182_650C_4c2d_A4FE_9B9B9953901D__INCLUDED_) +#define EA_B8244182_650C_4c2d_A4FE_9B9B9953901D__INCLUDED_ + +#include "PortalManager.h" + +class PortalDataEvent +{ + +public: + PortalDataEvent(); + virtual ~PortalDataEvent(); + byte data[]; + PortalManager server; + SocketChannel socket; + + PortalDataEvent(PortalManager server, SocketChannel socket, byte[] data); + +}; +#endif // !defined(EA_B8244182_650C_4c2d_A4FE_9B9B9953901D__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/PortalDataEvent.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,150 @@ +/////////////////////////////////////////////////////////// +// PortalManager.cpp +// Implementation of the Class PortalManager +// Created on: 06-Aug-2008 7:38:20 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "PortalManager.h" + + +PortalManager::PortalManager(){ + +} + + + +PortalManager::~PortalManager(){ + +} + + + + + +PortalManager::PortalManager(String Name, InetAddress hostAddress, int port) throw IOException{ + +} + + +PortalManager::PortalManager(String Name, InetAddress hostAddress, int port, MessagingSystem ms) throw IOException{ + +} + + +void PortalManager::accept(SelectionKey key) throw IOException{ + +} + + +SocketChannel PortalManager::ConnectTo(InetAddress host, int port){ + + return NULL; +} + + +Portal PortalManager::CreateNewPortal(SocketChannel sockChan){ + + return NULL; +} + + +boolean PortalManager::disconnect(SelectionKey key) throw IOException{ + + return NULL; +} + + +boolean PortalManager::disconnect(SocketChannel sockChan) throw IOException{ + + return NULL; +} + + +boolean PortalManager::disconnectFrom(String host) throw IOException{ + + return NULL; +} + + +boolean PortalManager::disconnectFrom(Portal p) throw IOException{ + + return NULL; +} + + +boolean PortalManager::disconnectFrom(InetAddress ip, int Port) throw IOException{ + + return NULL; +} + + +void PortalManager::finishConnection(SelectionKey key) throw IOException{ + +} + + +int PortalManager::getNewPortalNumber(){ + + return 0; +} + + +boolean PortalManager::getRunCmd(){ + + return NULL; +} + + +boolean PortalManager::getRunStatus(){ + + return NULL; +} + + +Thread PortalManager::getThread(){ + + return NULL; +} + + +SocketChannel PortalManager::initiateConnection(InetAddress host, int port) throw IOException{ + + return NULL; +} + + +Selector PortalManager::initSelector() throw IOException{ + + return NULL; +} + + +void PortalManager::read(SelectionKey key) throw IOException{ + +} + + +void PortalManager::run(){ + +} + + +void PortalManager::send(SocketChannel sockChan, byte[] data){ + +} + + +void PortalManager::start(){ + +} + + +void PortalManager::stop(){ + +} + + +void PortalManager::write(SelectionKey key) throw IOException{ + +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,83 @@ +/////////////////////////////////////////////////////////// +// PortalManager.h +// Implementation of the Class PortalManager +// Created on: 06-Aug-2008 7:38:20 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_FBFDF021_F395_4845_8DA4_440EE305E483__INCLUDED_) +#define EA_FBFDF021_F395_4845_8DA4_440EE305E483__INCLUDED_ + +#include "Portal.java" +#include "MessagingSystem.java" +#include "SNRoot.java" + +class PortalManager : public SNRoot +{ + +public: + PortalManager(); + virtual ~PortalManager(); + + PortalManager(String Name, InetAddress hostAddress, int port) throw IOException; + PortalManager(String Name, InetAddress hostAddress, int port, MessagingSystem ms) throw IOException; + SocketChannel ConnectTo(InetAddress host, int port); + boolean disconnectFrom(String host) throw IOException; + boolean disconnectFrom(Portal p) throw IOException; + boolean disconnectFrom(InetAddress ip, int Port) throw IOException; + boolean getRunCmd(); + boolean getRunStatus(); + Thread getThread(); + void run(); + void send(SocketChannel sockChan, byte[] data); + void start(); + void stop(); + +private: + /** + * The host:port combination to listen on + */ + InetAddress hostAddress; + Thread myThread; + /** + * A list of PendingChange instances + */ + List<PortalChangeRequest> pendingChanges; + /** + * Maps a SocketChannel to a list of ByteBuffer instances + */ + Map<SocketChannel, List<ByteBuffer>> pendingData; + int port; + int portalCnt; + /** + * Maps a SocketChannel to a Portal + */ + Map<SocketChannel, Portal> portals; + /** + * The buffer into which we'll read data when it's available + */ + ByteBuffer readBuffer; + boolean runCmd; + boolean runStatus; + /** + * The selector we'll be monitoring + */ + Selector selector; + /** + * The channel on which we'll accept connections + */ + ServerSocketChannel serverChannel; + + void accept(SelectionKey key) throw IOException; + Portal CreateNewPortal(SocketChannel sockChan); + boolean disconnect(SelectionKey key) throw IOException; + boolean disconnect(SocketChannel sockChan) throw IOException; + void finishConnection(SelectionKey key) throw IOException; + int getNewPortalNumber(); + SocketChannel initiateConnection(InetAddress host, int port) throw IOException; + Selector initSelector() throw IOException; + void read(SelectionKey key) throw IOException; + void write(SelectionKey key) throw IOException; + +}; +#endif // !defined(EA_FBFDF021_F395_4845_8DA4_440EE305E483__INCLUDED_) Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/PortalManager.h ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.cpp =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.cpp (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.cpp 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,80 @@ +/////////////////////////////////////////////////////////// +// SNCipher.cpp +// Implementation of the Class SNCipher +// Created on: 06-Aug-2008 7:49:25 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#include "SNCipher.h" + + +SNCipher::SNCipher(){ + +} + + + +SNCipher::~SNCipher(){ + +} + + + + + +SNCipher::SNCipher(String Name, String sp, String sg){ + +} + + +SNCipher::SNCipher(String Name, BigInteger sp, BigInteger sg){ + +} + + +byte SNCipher::Decrypt(byte[] data) throw NoSecretKeyException{ + + return NULL; +} + + +byte SNCipher::Encrypt(byte[] data) throw NoSecretKeyException{ + + return NULL; +} + + +boolean SNCipher::GenerateLocalKeys(){ + + return NULL; +} + + +boolean SNCipher::GenerateSecretKey(byte[] otherGuysPublicKey){ + + return NULL; +} + + +PublicKey SNCipher::getPublicKey(){ + + return NULL; +} + + +boolean SNCipher::hasPrivateKey(){ + + return NULL; +} + + +boolean SNCipher::hasPublicKey(){ + + return NULL; +} + + +boolean SNCipher::hasSecretKey(){ + + return NULL; +} \ No newline at end of file Property changes on: rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.cpp ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.h =================================================================== --- rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.h (rev 0) +++ rt^3/trunk/src/geometryService/cpp/stractNet/SNCipher.h 2008-08-06 12:15:14 UTC (rev 32281) @@ -0,0 +1,41 @@ +/////////////////////////////////////////////////////////// +// SNCipher.h +// Implementation of the Class SNCipher +// Created on: 06-Aug-2008 7:49:25 AM +// Original author: david.h.loman +/////////////////////////////////////////////////////////// + +#if !defined(EA_430D9FBE_246B_4804_882D_CD6B526E2FBA__INCLUDED_) +#define EA_430D9FBE_246B_4804_882D_CD6B526E2FBA__INCLUDED_ + +#include "SNRoot.java" + +class SNCipher : public SNRoot +{ + +public: + SNCipher(); + virtual ~SNCipher(); + + SNCipher(String Name, String sp, String sg); + SNCipher(String Name, BigInteger sp, BigInteger sg); + byte Decrypt(byte[] data) throw NoSecretKeyException; + byte Encrypt(byte[] data) throw NoSecretKeyException; + boolean GenerateLocalKeys(); + boolean GenerateSecretKey(byte[] otherGuysPublicKey); + PublicKey getPublicKey(); + boolean hasPrivateKey(); + boolean hasPublicKey(); + boolean hasSecret... [truncated message content] |