Apache Log4cxx Version 1.1.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
object.h File Reference

Go to the source code of this file.

Classes

class  log4cxx::helpers::Object
 base class for java-like objects. More...
 

Namespaces

namespace  log4cxx
 
namespace  log4cxx::helpers
 

Macros

#define DECLARE_LOG4CXX_CLAZZ_OBJECT(object)
 
#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)
 
template<typename Ret , typename Type , bool = std::is_base_of<Ret, helpers::Object>::value, bool = std::is_base_of<Type, helpers::Object>::value>
std::shared_ptr< Ret > log4cxx::cast (const std::shared_ptr< Type > &incoming)
 Attempt to cast one Object to another kind of Object.
 

Macro Definition Documentation

◆ BEGIN_LOG4CXX_CAST_MAP

#define BEGIN_LOG4CXX_CAST_MAP ( )
Value:
const void * cast(const helpers::Class& clazz) const override\
{\
const void * object = 0;\
if (&clazz == &helpers::Object::getStaticClass()) return (const helpers::Object *)this;
Examples
custom-appender.cpp.

◆ DECLARE_ABSTRACT_LOG4CXX_OBJECT

#define DECLARE_ABSTRACT_LOG4CXX_OBJECT (   object)
Value:
const helpers::Class& getClass() const override;
#define DECLARE_LOG4CXX_CLAZZ_OBJECT(object)
Definition: object.h:26

◆ DECLARE_LOG4CXX_CLAZZ_OBJECT

#define DECLARE_LOG4CXX_CLAZZ_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); } \
};\
static const helpers::Class& getStaticClass(); \
static const log4cxx::helpers::ClassRegistration& registerClass();
Definition: classregistration.h:29
std::basic_string< logchar > LogString
Definition: logstring.h:60

◆ DECLARE_LOG4CXX_OBJECT

#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 object* newInstance() const\
{\
return new object();\
}\
};\
const helpers::Class& getClass() const override;\
static const helpers::Class& getStaticClass(); \
static const log4cxx::helpers::ClassRegistration& registerClass();
Examples
custom-appender.cpp.

◆ DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS

#define DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS (   object,
  class 
)
Value:
public:\
const helpers::Class& getClass() const override;\
static const helpers::Class& getStaticClass();\
static const log4cxx::helpers::ClassRegistration& registerClass();

◆ END_LOG4CXX_CAST_MAP

#define END_LOG4CXX_CAST_MAP ( )
Value:
return object;\
}\
bool instanceof(const helpers::Class& clazz) const override\
{ return cast(clazz) != 0; }
Examples
custom-appender.cpp.

◆ IMPLEMENT_LOG4CXX_OBJECT

#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(); \
} }
Definition: configuration.h:25
Examples
custom-appender.cpp.

◆ IMPLEMENT_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS

#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(); \
} }
Definition: class.h:32

◆ LOG4CXX_CAST_ENTRY

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

◆ LOG4CXX_CAST_ENTRY2

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

◆ LOG4CXX_CAST_ENTRY_CHAIN

#define LOG4CXX_CAST_ENTRY_CHAIN (   Interface)
Value:
object = Interface::cast(clazz);\
if (object != 0) return object;
Examples
custom-appender.cpp.