00001 /* 00002 // PROPRIETARY INFORMATION. This software is proprietary to 00003 // Side Effects Software Inc., and is not to be reproduced, 00004 // transmitted, or disclosed in any way without written permission. 00005 // 00006 // Produced by: 00007 // Mark Elendt 00008 // Side Effects Software Inc. 00009 // 20 Maud St. 00010 // Toronto, Ontario, M5V 2M5 00011 // Canada 00012 // 416-366-4607 00013 // 00014 // NAME: Channel Library (C++) 00015 // 00016 // COMMENTS: Value class for local variable values. 00017 // 00018 */ 00019 00020 #ifndef __CH_LocalValue_h__ 00021 #define __CH_LocalValue_h__ 00022 00023 #include "CH_API.h" 00024 00025 class CH_API CH_LocalValue 00026 { 00027 public: 00028 CH_LocalValue(float val = 0) { value.val = val; } 00029 CH_LocalValue(void *ptr) { value.ptr = ptr; } 00030 CH_LocalValue(char *str) { value.str = str; } 00031 00032 float getFloat() const { return value.val; } 00033 void *getData() const { return value.ptr; } 00034 char *getString() const { return value.str; } 00035 00036 CH_LocalValue &operator=(const CH_LocalValue &d) 00037 { 00038 value.ptr = d.value.ptr; 00039 return *this; 00040 } 00041 float operator=(float f) { value.val = f; return f; } 00042 char *operator=(char *s) { value.str = s; return s; } 00043 void *operator=(void *v) { value.ptr = v; return v; } 00044 unsigned operator==(const CH_LocalValue &d) 00045 { 00046 return (value.ptr == d.value.ptr); 00047 } 00048 00049 // Public data 00050 union { 00051 void *ptr; 00052 char *str; 00053 float val; 00054 } value; 00055 }; 00056 00057 #endif 00058
1.5.9