//===========================================================================// // File: watcher.hpp // // Project: MUNGA Brick: Watcher // // Contents: // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- -----------------------------------------------------------// // 3/02/97 JMA Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1997, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #pragma once #include "Adept.hpp" #include "Channel.hpp" namespace Adept { class Entity; class Entity__ClassData; class StateEngine; //########################################################################## //############################ StateWatcher ############################## //########################################################################## class StateWatcher: public ChannelOf { public: static void InitializeClass(); static void TerminateClass(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Constructor/Destructor // public: ~StateWatcher(); static StateWatcher* Make( MemoryStream *stream, ComponentWeb *owning_web, Entity *entity ); protected: StateWatcher( ClassData *class_data, MemoryStream *stream, ComponentWeb *owning_web, Entity *entity ); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Virtual data // public: static ClassData *DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Data flow // public: void Execute(); protected: StateEngine *stateEngine; int oldStateMatch, newStateMatch; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Tool Support // public: static ClassData* CreateFactoryRequest( FactoryRequestParameters *parameters, Entity__ClassData *class_data ); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Test Support // public: void TestInstance(); }; }