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

variable_string.hh

00001 /*
00002 *  Name:      variable_string.hh
00003 *  Author:    Rafael Jesus Alcantara Perez
00004 *  Summary:   Variable string class for CODEGEN
00005 *  Date:      $Date: 2003/04/14 00:18:32 $
00006 *  Revision:  $Revision: 1.1 $
00007 *
00008 *  Copyright (C) 1994-2002  Rafael Jesus Alcantara Perez <rafa@dedalo-ing.com>
00009 *
00010 *  This program is free software; you can redistribute it and/or modify
00011 *  it under the terms of the GNU General Public License as published by
00012 *  the Free Software Foundation; either version 2 of the License, or
00013 *  (at your option) any later version.
00014 *
00015 *  This program is distributed in the hope that it will be useful,
00016 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 *  GNU General Public License for more details.
00019 *
00020 *  You should have received a copy of the GNU General Public License
00021 *  along with this program; if not, write to the Free Software
00022 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00023 *  MA 02111-1307, USA.
00024 */
00025 
00026 #ifndef _MPCL_TEXT_CODEGEN_VARIABLE_STRING__
00027 #define _MPCL_TEXT_CODEGEN_VARIABLE_STRING__
00028 
00029 #include "../string.hh"
00030 
00031 
00033 namespace mpcl
00034 {
00035 
00037   namespace text
00038   {
00039 
00041     namespace codegen
00042     {
00043 
00048       class TVariableString : public TString
00049       {
00050 
00051         public:
00052 
00054           enum EType
00055           {
00056             eNormal   , 
00057             eOptional , 
00058             eFile       
00059           };
00060 
00061 
00062         protected:
00063 
00065           EType   eType;
00066 
00067 
00068         public:
00069 
00070           //
00071           //  C O N S T R U C T O R S
00072           //
00073 
00075           TVariableString (void) :
00076             TString ()           ,
00077             eType   (eNormal)    {}
00078 
00083           TVariableString (const char* pkcTEXT) :
00084             TString (pkcTEXT)                   ,
00085             eType   (eNormal)                   {}
00086 
00093           TVariableString (const char* pkcTEXT, size_t zMAX_LENGTH) :
00094             TString (pkcTEXT, zMAX_LENGTH)                          ,
00095             eType   (eNormal)                                       {}
00096 
00102           TVariableString (const TString& rkySOURCE, EType eSOURCE_TYPE = eNormal) :
00103             TString (rkySOURCE)                                                    ,
00104             eType   (eSOURCE_TYPE)                                                 {}
00105 
00110           TVariableString (const TVariableString& rkySOURCE_VARIABLE) :
00111             TString (rkySOURCE_VARIABLE)                              ,
00112             eType   (rkySOURCE_VARIABLE.eType)                        {}
00113 
00118           void setType (EType eSOURCE_TYPE);
00119 
00125           TVariableString& operator = (const TVariableString& rkySOURCE_VARIABLE);
00126 
00132           TVariableString& operator = (const TString& rkySOURCE);
00133 
00134 
00135         public:
00136 
00137           //
00138           //  S E L E C T O R S
00139           //
00140 
00145           EType type (void) const;
00146 
00147       };  // class TVariableString
00148 
00149     }  // namespace codegen
00150 
00151   }  // namespace text
00152 
00153 }  // namespace mpcl
00154 
00155 
00156 #endif  // not _MPCL_TEXT_CODEGEN_VARIABLE_STRING__

Generated on Mon Oct 13 02:35:24 2003 for MPCL by doxygen1.2.18