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

nci/suif/suif2b/basesuif/iokernel/field_description.h

Go to the documentation of this file.
00001 #ifndef IOKERNEL__FIELD_DESCRIPTION_H
00002 #define IOKERNEL__FIELD_DESCRIPTION_H
00003 
00004 #include "iokernel_forwarders.h"
00005 
00006 typedef suif_vector<FieldDescription*> FieldDescriptionList;
00007 
00008 class FieldDescription {
00009   friend class ObjectFactory;
00010   size_t offset;
00011   const MetaClass* metaClass;
00012   LString memberName;
00013   ObjectWrapper build_object(Address base_address) const;
00014 
00015 public:
00016   //  FieldDescription() : offset(0), metaClass(0), memberName() {}
00017   FieldDescription(size_t off, const MetaClass *mc, LString memberName);
00018   const LString &get_member_name() const;
00019   const MetaClass *get_meta_class() const;
00020   size_t get_offset() const;
00021 
00022   // Mutators. This should RARELY be needed.
00023   void set_offset(size_t off);
00024 
00025 
00026   // utility functionality
00027   ObjectWrapper build_object(const AggregateWrapper &base_obj) const;
00028   ObjectWrapper build_object(Object *base_obj) const;
00029 
00030   // get_address should go away too.  build the object and get the address.
00031   Address get_address(Address base_address) const;
00032   void print_debug() const;
00033   String get_debug_text() const;
00034 
00035   // the following two declarations do not have a definition
00036   FieldDescription(const FieldDescription &other);
00037   FieldDescription &operator=(const FieldDescription &other);
00038 };
00039 
00040 #endif

Generated at Mon Jul 31 13:41:27 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000