Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members

StateDescriptor.h

Go to the documentation of this file.
00001 /*********************************************************************************
00002  *
00003  * Razor! Engine - A modular C++ presentation engine
00004  *
00005  * $Id: StateDescriptor.h,v 1.1 2003/01/26 10:42:52 teacy Exp $
00006  *
00007  * Copyright (c) 2000-2003 Tilo Christ. All Rights Reserved.
00008  * 
00009  * Permission is hereby granted, free of charge, to any person obtaining a 
00010  * copy of this software and associated documentation files (the  "Software"), 
00011  * to deal in the Software without restriction, including without limitation 
00012  * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
00013  * and/or sell copies of the Software, and to permit persons to whom the Software 
00014  * is furnished to do so, subject to the following conditions:
00015  *
00016  * The above copyright notice and this permission notice shall be included in all 
00017  * copies or substantial portions of the Software.
00018  *
00019  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
00020  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
00021  * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 
00022  * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
00023  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00024  *
00025  **********************************************************************************/
00026 
00027 
00028 #ifndef STATEDESCRIPTOR_H
00029 #define STATEDESCRIPTOR_H
00030 
00031 #include <PalmOS.h>
00032 
00033 
00034 #define createState(stateClass) \
00035     StateDescriptor *stateDescriptor = new StateDescriptor(sizeof(stateClass)); \
00036     stateClass *state = (stateClass *)(stateDescriptor->state)
00037 
00038 
00039 
00040 class StateDescriptor
00041 {
00042     public:
00043     StateDescriptor(UInt16 size)
00044     {
00045         this->state = MemPtrNew(size);
00046         this->size = size;
00047     }
00048 
00049     ~StateDescriptor()
00050     {
00051         MemPtrFree(state);
00052     }
00053 
00054 
00055     void *state;
00056     UInt16 size;
00057 };
00058 
00059 
00060 typedef StateDescriptor* StateDescriptorPtr;
00061 
00062 #endif

Razor! Engine Developer's Guide. Copyright © by Tilo Christ. All Rights Reserved. Last updated: 31 May 2003