Code cleanup.

This commit is contained in:
Gunnar Beutner 2012-06-16 16:54:55 +02:00
parent dbe48e501c
commit 7d630249cc
3 changed files with 39 additions and 38 deletions

View File

@ -55,7 +55,7 @@ void Object::ClearHeldObjects(void)
m_HeldObjects.clear();
}
SharedPtrHolder Object::GetSelf(void)
Object::SharedPtrHolder Object::GetSelf(void)
{
return SharedPtrHolder(shared_from_this());
return Object::SharedPtrHolder(shared_from_this());
}

View File

@ -45,6 +45,39 @@ protected:
void Hold(void);
/**
* Holds a shared pointer and provides support for implicit upcasts.
*/
class SharedPtrHolder
{
public:
explicit SharedPtrHolder(const Object::Ptr& object)
: m_Object(object)
{ }
template<typename T>
operator shared_ptr<T>(void) const
{
#ifdef _DEBUG
shared_ptr<T> other = dynamic_pointer_cast<T>(m_Object);
assert(other);
#else /* _DEBUG */
shared_ptr<T> other = static_pointer_cast<T>(m_Object);
#endif /* _DEBUG */
return other;
}
template<typename T>
operator weak_ptr<T>(void) const
{
return static_cast<shared_ptr<T> >(*this);
}
private:
Object::Ptr m_Object;
};
SharedPtrHolder GetSelf(void);
private:
@ -54,39 +87,6 @@ private:
static vector<Object::Ptr> m_HeldObjects;
};
/**
* Holds a shared pointer and provides support for implicit upcasts.
*/
class SharedPtrHolder
{
public:
explicit SharedPtrHolder(const shared_ptr<Object>& object)
: m_Object(object)
{ }
template<typename T>
operator shared_ptr<T>(void) const
{
#ifdef _DEBUG
shared_ptr<T> other = dynamic_pointer_cast<T>(m_Object);
assert(other);
#else /* _DEBUG */
shared_ptr<T> other = static_pointer_cast<T>(m_Object);
#endif /* _DEBUG */
return other;
}
template<typename T>
operator weak_ptr<T>(void) const
{
return static_cast<shared_ptr<T> >(*this);
}
private:
shared_ptr<Object> m_Object;
};
/**
* Compares a weak pointer with a raw pointer.
*/

View File

@ -25,7 +25,7 @@ CheckResult NagiosCheckTask::Execute(void) const
fp = popen(command.c_str(), "r");
#endif /* _MSC_VER */
stringstream output;
stringstream outputbuf;
while (!feof(fp)) {
char buffer[128];
@ -34,10 +34,11 @@ CheckResult NagiosCheckTask::Execute(void) const
if (read == 0)
break;
output << string(buffer, buffer + read);
outputbuf << string(buffer, buffer + read);
}
cr.Output = output.str();
cr.Output = outputbuf.str();
boost::algorithm::trim(cr.Output);
Application::Log(LogDebug, "icinga", "Nagios plugin output: " + cr.Output);