Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members  

awsparm.h

00001 #ifndef __AWS_FLEXIBLE_PARAMETER_LIST_INTERFACE__
00002 #define __AWS_FLEXIBLE_PARAMETER_LIST_INTERFACE__
00003 /**************************************************************************
00004     Copyright (C) 2001 by Christopher Nelson
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public
00017     License along with this library; if not, write to the Free
00018     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00019 *****************************************************************************/
00020 
00021 #include "csgeom/csrect.h"
00022 #include "csgeom/cspoint.h"
00023 #include "csutil/scfstr.h"
00024 #include "csutil/csvector.h"
00025 #include "csutil/csstrvec.h"
00026 
00027 SCF_VERSION (iAwsParmList, 0, 0, 1);
00028 
00029 /***********************************************************************************
00030  * Provides support for safely passing named parameters through to different functions
00031  * in a portable manner.  Note that awsParmList does not utilize copy semantics.  In
00032  * the interests of space and speed, it simply takes a reference to the pointers passed
00033  * in.  This means that you should NOT use an awsParmList if any parm it references
00034  * has gone out of scope!
00035  ***********************************************************************************/
00036 struct iAwsParmList : public iBase
00037 {
00039   virtual void AddInt(char *name, int value)=0;
00041   virtual void AddFloat(char *name, float value)=0;
00043   virtual void AddBool(char *name, bool value)=0;
00045   virtual void AddString(char *name, iString* value)=0;
00047   virtual void AddBasicVector(char *name, csBasicVector* value)=0;
00049   virtual void AddStringVector(char *name, csStrVector* value)=0;
00051   virtual void AddRect(char *name, csRect *value)=0;
00053   virtual void AddPoint(char *name, csPoint *value)=0;
00054 
00056   virtual bool GetInt(char *name, int *value)=0;
00058   virtual bool GetFloat(char *name, float *value)=0;
00060   virtual bool GetBool(char *name, bool *value)=0;
00062   virtual bool GetString(char *name, iString **value)=0;
00064   virtual bool GetBasicVector(char *name, csBasicVector **value)=0;
00066   virtual bool GetStringVector(char *name, csStrVector **value)=0;
00068   virtual bool GetRect(char *name, csRect **value)=0;
00070   virtual bool GetPoint(char *name, csPoint **value)=0;
00071 
00073   virtual void Clear()=0;
00074 };
00075 
00076 #endif

Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000