xrootd
|
#include <XrdClAnyObject.hh>
Classes | |
class | ConcreteHolder |
class | Holder |
Public Member Functions | |
AnyObject () | |
Constructor. | |
~AnyObject () | |
Destructor. | |
template<class Type > | |
void | Set (Type object, bool own=true) |
template<class Type > | |
void | Get (Type &object) |
Retrieve the object being held. | |
template<class Type > | |
bool | Has () |
bool | HasOwnership () const |
Check if we own the object being stored. | |
Private Attributes | |
Holder * | pHolder |
const std::type_info * | pTypeInfo |
bool | pOwn |
Simple implementation of a type safe holder for any object pointer It would have been a better idea to use boost::any here but we don't want to depend on boost
|
inline |
Constructor.
|
inline |
Destructor.
References XrdCl::AnyObject::Holder::Delete(), pHolder, and pOwn.
Retrieve the object being held.
References XrdCl::AnyObject::Holder::Get(), pHolder, and pTypeInfo.
Referenced by XrdCl::Utils::GetProtocolVersion(), XrdCl::GetResponse(), XrdCl::EcPgReadResponseHandler::HandleResponse(), XrdCl::UnpackXAttrStatus::HandleResponse(), XrdCl::UnpackXAttr::HandleResponse(), XrdCl::StatAction::Serialize(), XrdCl::ReadAction::Serialize(), XrdCl::PgReadAction::Serialize(), XrdCl::VectorReadAction::Serialize(), XrdCl::FcntlAction::Serialize(), XrdCl::To(), and XrdCl::MessageUtils::WaitForResponse().
|
inline |
Check if we own the object being stored.
References pOwn.
Grab an object By default the ownership of the object is taken as well, ie. the object will be deleted when the AnyObject holding it is deleted. To release an object grab a zero pointer, ie. (int *)0
object | object pointer |
own | take the ownership or not |
References pHolder, pOwn, and pTypeInfo.
Referenced by XrdCl::AsyncVectorReader::GetResponse(), XrdCl::EcPgReadResponseHandler::HandleResponse(), XrdCl::UnpackXAttr::HandleResponse(), XrdCl::ZipCache::PkgRsp(), XrdCl::ZipArchive::PkgRsp(), XrdCl::ZipStatImpl< HasHndl >::RunImpl(), XrdCl::ZipListImpl< HasHndl >::RunImpl(), XrdCl::EcHandler::StatRsp(), and XrdCl::MessageUtils::WaitForResponse().
|
private |
Referenced by Get(), Has(), Set(), and ~AnyObject().
|
private |
Referenced by HasOwnership(), Set(), and ~AnyObject().