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(); 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); 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); SharedPtrHolder GetSelf(void);
private: private:
@ -54,39 +87,6 @@ private:
static vector<Object::Ptr> m_HeldObjects; 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. * 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"); fp = popen(command.c_str(), "r");
#endif /* _MSC_VER */ #endif /* _MSC_VER */
stringstream output; stringstream outputbuf;
while (!feof(fp)) { while (!feof(fp)) {
char buffer[128]; char buffer[128];
@ -34,10 +34,11 @@ CheckResult NagiosCheckTask::Execute(void) const
if (read == 0) if (read == 0)
break; 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); Application::Log(LogDebug, "icinga", "Nagios plugin output: " + cr.Output);