00001 /*============================================================================= 00002 * Product : OpenPL 00003 * File : plKernelMap.h (before plMemory.h) 00004 * Author : Olivier Aycard 00005 * Creation : May 30 18:08:40 2001 00006 * 00007 *============================================================================= 00008 * (c) Copyright 2000, Centre National de la Recherche Scientifique, 00009 * all rights reserved 00010 *============================================================================= 00011 * 00012 *------------------------- Description --------------------------------------- 00013 * 00014 * 00015 *----------------------------------------------------------------------------- 00016 */ 00017 00018 #ifndef _plKernelMap_h_ 00019 #define _plKernelMap_h_ 00020 00021 #include <plKernelDictionary.h> 00022 00023 00024 /***************************************************************************** 00025 * Classes Definitions 00026 *****************************************************************************/ 00027 00028 00036 class plKernelMap : public plKernelDictionary 00037 { 00038 00039 void check_variables(const plVariablesConjunction& left, 00040 const plVariablesConjunction& right)const; 00041 00042 void check_pushed_object_variables(const plComputableObject &compObj)const; 00043 00044 public: 00055 plKernelMap(); 00056 00058 plKernelMap (const plVariablesConjunction& left, 00059 const plVariablesConjunction& right); 00060 00062 virtual ~plKernelMap(){}; 00063 00077 void push(const plValues & values, 00078 const plComputableObject &compObj); 00079 00080 void push(const plComputableObject &compObj, 00081 const plValues & values); 00082 00085 void push(const plComputableObject &compObj, 00086 int value); 00087 00090 void push(const plComputableObject &compObj, 00091 plFloat value); 00092 00095 void push_default(const plComputableObject &compObj); 00096 00099 bool find(const plValues & values) const; 00100 00101 00102 }; 00103 00104 #endif 00105 00106 00107 00108