# cpolymorphic.h

    00001 //==========================================================================
    00002 //  CPOLYMORPHIC.H - part of
    00003 //                     OMNeT++/OMNEST
    00004 //            Discrete System Simulation in C++
    00005 //
    00006 //  Declaration of the following classes:
    00007 //    cPolymorphic : general base class
    00008 //
    00009 //==========================================================================
    00010
    00011 /*--------------------------------------------------------------*
    00012   Copyright (C) 1992-2005 Andras Varga
    00013
    00014   This file is distributed WITHOUT ANY WARRANTY. See the file
    00015   `license' for details on this and other legal matters.
    00016 *--------------------------------------------------------------*/
    00017
    00018 #ifndef __CPOLYMORPHIC_H
    00019 #define __CPOLYMORPHIC_H
    00020
    00021 #include <string>
    00022 #include "defs.h"
    00023 #include "util.h"
    00024
    00025 class cStructDescriptor;
    00026
    00051 class SIM_API cPolymorphic
    00052 {
    00053   public:
    00054     // internal: creates and returns a descriptor object for this object passed
    00055     // as argument. This version return an instance of the class className()+
    00056     // "Descriptor".
    00057     virtual cStructDescriptor *createDescriptor();
    00058
    00059   public:
    00064     cPolymorphic() {}
    00065
    00071     virtual ~cPolymorphic() {}
    00072
    00078     virtual const char *className() const;
    00079
    00082
    00087     virtual const char *fullName() const;
    00088
    00095     virtual std::string fullPath() const;
    00096
    00106     virtual std::string info() const;
    00107
    00112     virtual void info(char *buf);
    00113
    00120     virtual std::string detailedInfo() const;
    00121
    00127     virtual cPolymorphic *dup() const;
    00129 };
    00130
    00131 #endif
    00132