# object.h File Reference

## Namespaces

namespace | log4cxx
namespace | log4cxx::helpers

## Classes

class | Object
| base class for java-like objects. More...
class | Object::ClazzObject

## Defines

#define | DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)
#define | DECLARE_LOG4CXX_OBJECT(object)
#define | DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(object, class)
#define | IMPLEMENT_LOG4CXX_OBJECT(object)
#define | IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS(object, class)
#define | BEGIN_LOG4CXX_CAST_MAP()
#define | END_LOG4CXX_CAST_MAP()
#define | LOG4CXX_CAST_ENTRY(Interface) if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;
#define | LOG4CXX_CAST_ENTRY2(Interface, interface2) if (&clazz == &Interface::getStaticClass()) return (Interface *)(interface2 *)this;
#define | LOG4CXX_CAST_ENTRY_CHAIN(Interface)

## Functions

| log4cxx::helpers::LOG4CXX_PTR_DEF (Object)

## Define Documentation

#define BEGIN_LOG4CXX_CAST_MAP | (

)

Value:

    const void * cast(const helpers::Class& clazz) const\
    {\
            const void * object = 0;\
            if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;

#define DECLARE_ABSTRACT_LOG4CXX_OBJECT | ( | object |  | ) |

Value:

    public:\
    class Clazz##object : public helpers::Class\
    {\
    public:\
            Clazz##object() : helpers::Class() {}\
            virtual ~Clazz##object() {}\
            virtual log4cxx::LogString getName() const { return LOG4CXX_STR(#object); } \
    };\
    virtual const helpers::Class& getClass() const;\
    static const helpers::Class& getStaticClass(); \
    static const log4cxx::helpers::ClassRegistration& registerClass();

#define DECLARE_LOG4CXX_OBJECT | ( | object |  | ) |

Value:

    public:\
    class Clazz##object : public helpers::Class\
    {\
    public:\
            Clazz##object() : helpers::Class() {}\
            virtual ~Clazz##object() {}\
            virtual log4cxx::LogString getName() const { return LOG4CXX_STR(#object); } \
            virtual helpers::ObjectPtr newInstance() const\
            {\
                    return new object();\
            }\
    };\
    virtual const helpers::Class& getClass() const;\
    static const helpers::Class& getStaticClass(); \
    static const log4cxx::helpers::ClassRegistration& registerClass();

#define DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS | ( | object,
|  | class |  | ) |

Value:

    public:\
    virtual const helpers::Class& getClass() const;\
    static const helpers::Class& getStaticClass();\
    static const log4cxx::helpers::ClassRegistration&  registerClass();

#define END_LOG4CXX_CAST_MAP | (

)

Value:

    return object;\
    }\
    bool instanceof(const helpers::Class& clazz) const\
    { return cast(clazz) != 0; }

#define IMPLEMENT_LOG4CXX_OBJECT | ( | object |  | ) |

Value:

    const log4cxx::helpers::Class& object::getClass() const { return getStaticClass(); }\
    const log4cxx::helpers::Class& object::getStaticClass() { \
       static Clazz##object theClass;                         \
       return theClass;                                       \
    }                                                                      \
    const log4cxx::helpers::ClassRegistration& object::registerClass() {   \
        static log4cxx::helpers::ClassRegistration classReg(object::getStaticClass); \
        return classReg; \
    }\
    namespace log4cxx { namespace classes { \
    const log4cxx::helpers::ClassRegistration& object##Registration = object::registerClass(); \
    } }

#define IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS | ( | object,
|  | class |  | ) |

Value:

    const log4cxx::helpers::Class& object::getClass() const { return getStaticClass(); }\
    const log4cxx::helpers::Class& object::getStaticClass() { \
       static class theClass;                                 \
       return theClass;                                       \
    }                                                         \
    const log4cxx::helpers::ClassRegistration& object::registerClass() {   \
        static log4cxx::helpers::ClassRegistration classReg(object::getStaticClass); \
        return classReg; \
    }\
    namespace log4cxx { namespace classes { \
    const log4cxx::helpers::ClassRegistration& object##Registration = object::registerClass(); \
    } }

#define LOG4CXX_CAST_ENTRY | ( | Interface |  | ) | if (&clazz == &Interface::getStaticClass()) return (const Interface *)this;

#define LOG4CXX_CAST_ENTRY2 | ( | Interface,
|  | interface2 |  | ) | if (&clazz == &Interface::getStaticClass()) return (Interface *)(interface2 *)this;

#define LOG4CXX_CAST_ENTRY_CHAIN | ( | Interface |  | ) |

Value:

    object = Interface::cast(clazz);\
    if (object != 0) return object;