variant.h

00001 
00004 
00005 //
00006 // Copyright (c) 2004-2007 University of Southern California
00007 // Rob Peters <rjpeters at usc dot edu>
00008 //
00009 // created: Tue Dec 21 10:49:48 2004
00010 // commit: $Id: variant.h 10065 2007-04-12 05:54:56Z rjpeters $
00011 // $HeadURL: file:///lab/rjpeters/svnrepo/code/trunk/groovx/src/mtx/variant.h $
00012 //
00014 
00015 #ifndef GROOVX_PKGS_MTX_VARIANT_H_UTC20050626084022_DEFINED
00016 #define GROOVX_PKGS_MTX_VARIANT_H_UTC20050626084022_DEFINED
00017 
00018 namespace dash
00019 {
00020   class variant;
00021 }
00022 
00023 namespace rutz
00024 {
00025   class fstring;
00026 }
00027 
00028 class mtx;
00029 
00030 class dash::variant
00031 {
00032 public:
00033   virtual ~variant();
00034 
00035   virtual mtx           as_mtx() const = 0;
00036   virtual rutz::fstring as_string() const = 0;
00037   virtual double        as_double() const = 0;
00038   virtual int           as_int() const = 0;
00039 
00040   virtual mtx           get_mtx_field(const char* field_name) const = 0;
00041   virtual rutz::fstring get_string_field(const char* field_name) const = 0;
00042   virtual double        get_double_field(const char* field_name) const = 0;
00043   virtual int           get_int_field(const char* field_name) const = 0;
00044   virtual bool          get_bool_field(const char* field_name) const = 0;
00045 
00046   virtual bool          has_field(const char* field_name) const = 0;
00047 
00048   virtual void          set_mtx_field(const char* field_name, const mtx& field) = 0;
00049   virtual void          set_string_field(const char* field_name, const char* field) = 0;
00050   virtual void          set_double_field(const char* field_name, double field) = 0;
00051   virtual void          set_int_field(const char* field_name, int field) = 0;
00052   virtual void          set_bool_field(const char* field_name, bool field) = 0;
00053 };
00054 
00055 static const char __attribute__((used)) vcid_groovx_pkgs_mtx_variant_h_utc20050626084022[] = "$Id: variant.h 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00056 #endif // !GROOVX_PKGS_MTX_VARIANT_H_UTC20050626084022_DEFINED

The software described here is Copyright (c) 1998-2005, Rob Peters.
This page was generated Wed Dec 3 06:49:39 2008 by Doxygen version 1.5.5.