m_HeldObjects.clear();
}
-SharedPtrHolder Object::GetSelf(void)
+Object::SharedPtrHolder Object::GetSelf(void)
{
- return SharedPtrHolder(shared_from_this());
+ return Object::SharedPtrHolder(shared_from_this());
}
void Hold(void);
- SharedPtrHolder GetSelf(void);
-
-private:
- Object(const Object& other);
- Object operator=(const Object& rhs);
-
- 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
+ /**
+ * 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);
+ shared_ptr<T> other = dynamic_pointer_cast<T>(m_Object);
+ assert(other);
#else /* _DEBUG */
- shared_ptr<T> other = static_pointer_cast<T>(m_Object);
+ shared_ptr<T> other = static_pointer_cast<T>(m_Object);
#endif /* _DEBUG */
- return other;
- }
+ return other;
+ }
- template<typename T>
- operator weak_ptr<T>(void) const
- {
- return static_cast<shared_ptr<T> >(*this);
- }
+ 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:
- shared_ptr<Object> m_Object;
+ Object(const Object& other);
+ Object operator=(const Object& rhs);
+
+ static vector<Object::Ptr> m_HeldObjects;
};
/**
fp = popen(command.c_str(), "r");
#endif /* _MSC_VER */
- stringstream output;
+ stringstream outputbuf;
while (!feof(fp)) {
char buffer[128];
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);