Apache log4cxx  Version 0.12.1
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

 log4cxx
 
 log4cxx::helpers
 

Macros

#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. More...
 

Macro Definition Documentation

◆ BEGIN_LOG4CXX_CAST_MAP

#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;
std::shared_ptr< Ret > cast(const std::shared_ptr< Type > &incoming)
Attempt to cast one Object to another kind of Object.
Definition: object.h:122

◆ DECLARE_ABSTRACT_LOG4CXX_OBJECT

#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();
Definition: classregistration.h:28
std::basic_string< logchar > LogString
Definition: logstring.h:66

◆ 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();\
}\
};\
virtual const helpers::Class& getClass() const;\
static const helpers::Class& getStaticClass(); \
static const log4cxx::helpers::ClassRegistration& registerClass();
Definition: classregistration.h:28
std::basic_string< logchar > LogString
Definition: logstring.h:66

◆ DECLARE_LOG4CXX_OBJECT_WITH_CUSTOM_CLASS

#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();
Definition: classregistration.h:28

◆ END_LOG4CXX_CAST_MAP

#define END_LOG4CXX_CAST_MAP ( )
Value:
return object;\
}\
bool instanceof(const helpers::Class& clazz) const\
{ return cast(clazz) != 0; }
std::shared_ptr< Ret > cast(const std::shared_ptr< Type > &incoming)
Attempt to cast one Object to another kind of Object.
Definition: object.h:122

◆ 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: classregistration.h:28
Definition: appender.h:32

◆ 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: classregistration.h:28
Definition: class.h:37
Definition: appender.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;
std::shared_ptr< Ret > cast(const std::shared_ptr< Type > &incoming)
Attempt to cast one Object to another kind of Object.
Definition: object.h:122