Xpace
sharedimpl.h File Reference

Copyright (C) 2012 Xpace, LLC. More...

#include "base/sharedvoid.h"

Go to the source code of this file.

Classes

class  Xpace::_impl_ref
 placeholder class More...
 
class  Xpace::SharedImpl
 The base class for all shared implementations. More...
 
class  Xpace::SharedImplPointer< T, cached >
 A pointer to a shared class object Copying the pointer calls T::clone() T must inherit SharedImpl. More...
 
class  Xpace::WrapImplPointer< T >
 A wrapper around a shared class object Used to store objects in containers (e.g. More...
 

Namespaces

 Xpace
 Xpace project main namespace
 

Macros

#define DECLARE_IMPL_COMMON(className, cached)
 
#define DECLARE_IMPL(className)   DECLARE_IMPL_COMMON(className, false)
 
#define DECLARE_IMPL_BASE(className, base)
 
#define DECLARE_CACHED_IMPL(className)
 
#define DECLARE_CACHED_IMPL_BASE(className, base)
 
#define DECLARE_CONFIG   virtual const Configuration& getConfig() const override;
 
#define DEFINE_CONFIG(className)
 

Detailed Description

Copyright (C) 2012 Xpace, LLC.

All rights reserved

www.xpace.net

Definition in file sharedimpl.h.

Macro Definition Documentation

#define DECLARE_IMPL_COMMON (   className,
  cached 
)
Value:
public : \
class Impl; \
className() {}; \
friend class Impl; \
SharedImplPointer<Impl, cached> si; \
className(Impl* i) : si(i) {}; \
Impl* impl() \
{ return static_cast<Impl*>(si.data()); }; \
const Impl* impl() const \
{ return static_cast<const Impl*>(si.data()); }; \
const Impl* constImpl() const \
{ return static_cast<const Impl*>(si.constData()); };

Definition at line 291 of file sharedimpl.h.

#define DECLARE_IMPL (   className)    DECLARE_IMPL_COMMON(className, false)

Definition at line 305 of file sharedimpl.h.

Referenced by Xpace::Index::forEachRef(), and Xpace::RefListCursor::Sink::~Sink().

#define DECLARE_IMPL_BASE (   className,
  base 
)
Value:
DECLARE_IMPL_COMMON(className, false) \
className(const className& rhs) : \
base(), si(rhs.si) {}
#define DECLARE_IMPL_COMMON(className, cached)
Definition: sharedimpl.h:291

Definition at line 308 of file sharedimpl.h.

#define DECLARE_CACHED_IMPL (   className)
Value:
DECLARE_IMPL_COMMON(className, true) \
className(const className& rhs) : \
si(rhs.si) {}
#define DECLARE_IMPL_COMMON(className, cached)
Definition: sharedimpl.h:291

Definition at line 313 of file sharedimpl.h.

#define DECLARE_CACHED_IMPL_BASE (   className,
  base 
)
Value:
DECLARE_IMPL_COMMON(className, true) \
className(const className& rhs) : \
base(), si(rhs.si) {}
#define DECLARE_IMPL_COMMON(className, cached)
Definition: sharedimpl.h:291

Definition at line 318 of file sharedimpl.h.

#define DECLARE_CONFIG   virtual const Configuration& getConfig() const override;

Definition at line 323 of file sharedimpl.h.

Referenced by Xpace::IndexList::CantOpenIndex::CantOpenIndex().

#define DEFINE_CONFIG (   className)
Value:
String className::getConfig() const \
{ return constImpl()->getConfig().toString(); }

Definition at line 326 of file sharedimpl.h.


current as of Wed Jun 10 2026 12:00:06