ndatclas.h

Go to the documentation of this file.
00001 #ifndef nrn_dataclass_h
00002 #define nrn_dataclass_h
00003 
00004 #include <InterViews/resource.h>
00005 
00006 class NrnPropertyImpl;
00007 class SectionListImpl;
00008 class NrnNodeImpl;
00009 
00010 class NrnProperty {
00011 public:
00012    NrnProperty(Prop*);
00013    NrnProperty(const char*);
00014    virtual ~NrnProperty();
00015    const char* name() const;
00016    int type() const;
00017    boolean is_point() const;
00018    boolean deleteable();
00019 
00020    Symbol* first_var();
00021    boolean more_var();
00022    Symbol* next_var();
00023    Symbol* find(const char* rangevar);
00024    Symbol* var(int);
00025    int prop_index(const Symbol*)const;
00026    double* prop_pval(const Symbol*, int arrayindex=0)const;
00027 
00028    Prop* prop() const;
00029    int var_type(Symbol*) const;
00030    //vartype=0, 1, 2, 3 means all, PARAMETER, ASSIGNED, STATE
00031    static boolean assign(Prop* src, Prop* dest, int vartype=0);
00032 private:
00033    NrnPropertyImpl* npi_;
00034 };
00035 
00036 class SectionList : public Resource {
00037 public:
00038    SectionList(Object*);
00039    virtual ~SectionList();
00040    Section* begin();
00041    Section* next();
00042 private:
00043    SectionListImpl* sli_;
00044 };
00045 
00046 #if 0
00047 class NrnSection {
00048 public:
00049    NrnSection(Section* sec);
00050    virtual ~NrnSection();
00051    void section(Section*);
00052    Section* section();
00053    Node* node(int index);
00054    boolean is_mechanism(int type);
00055    double* var_pointer(Symbol*, int index=0, int inode=0);
00056    double* var_pointer(const char*); // eg. ca_cadifus[2](.7)
00057 private:
00058    NrnNodeImpl* nni_;
00059 };
00060 #endif
00061 
00062 #endif
Generated on Mon Jun 13 08:10:25 2011 for NEURON by  doxygen 1.6.3