diff options
| author | Ted Ross <tross@apache.org> | 2008-09-10 19:14:01 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2008-09-10 19:14:01 +0000 |
| commit | 51ea054146d0af71640bd44e8e75494847216a31 (patch) | |
| tree | f262995946ace31dbb3d3660db9df58e4f412ac3 /cpp/src/qpid/management | |
| parent | 0b778c328001d25b3118450c0bfabb3e0b918971 (diff) | |
| download | qpid-python-51ea054146d0af71640bd44e8e75494847216a31.tar.gz | |
QPID-1279 Implementations of management methods can now return error strings along with its own error codes
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@693933 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/management')
| -rw-r--r-- | cpp/src/qpid/management/Manageable.cpp | 8 | ||||
| -rw-r--r-- | cpp/src/qpid/management/Manageable.h | 11 |
2 files changed, 12 insertions, 7 deletions
diff --git a/cpp/src/qpid/management/Manageable.cpp b/cpp/src/qpid/management/Manageable.cpp index 19fba87fde..08bb541fc7 100644 --- a/cpp/src/qpid/management/Manageable.cpp +++ b/cpp/src/qpid/management/Manageable.cpp @@ -20,9 +20,13 @@ #include "Manageable.h" using namespace qpid::management; +using std::string; -std::string Manageable::StatusText (status_t status) +string Manageable::StatusText (status_t status, string text) { + if ((status & STATUS_USER) == STATUS_USER) + return text; + switch (status) { case STATUS_OK : return "OK"; @@ -37,7 +41,7 @@ std::string Manageable::StatusText (status_t status) return "??"; } -Manageable::status_t Manageable::ManagementMethod (uint32_t, Args&) +Manageable::status_t Manageable::ManagementMethod (uint32_t, Args&, std::string&) { return STATUS_UNKNOWN_METHOD; } diff --git a/cpp/src/qpid/management/Manageable.h b/cpp/src/qpid/management/Manageable.h index 4e2f33b625..afa5c968f7 100644 --- a/cpp/src/qpid/management/Manageable.h +++ b/cpp/src/qpid/management/Manageable.h @@ -31,12 +31,12 @@ class Manageable { public: - virtual ~Manageable (void) = 0; + virtual ~Manageable(void) = 0; // status_t is a type used to pass completion status from the method handler. // typedef uint32_t status_t; - static std::string StatusText (status_t status); + static std::string StatusText(status_t status, std::string text = std::string()); static const status_t STATUS_OK = 0; static const status_t STATUS_UNKNOWN_OBJECT = 1; @@ -45,6 +45,7 @@ class Manageable static const status_t STATUS_INVALID_PARAMETER = 4; static const status_t STATUS_FEATURE_NOT_IMPLEMENTED = 5; static const status_t STATUS_FORBIDDEN = 6; + static const status_t STATUS_USER = 0x00010000; // Every "Manageable" object must hold a reference to exactly one // management object. This object is always of a class derived from @@ -52,17 +53,17 @@ class Manageable // // This accessor function returns a pointer to the management object. // - virtual ManagementObject* GetManagementObject (void) const = 0; + virtual ManagementObject* GetManagementObject(void) const = 0; // Every "Manageable" object must implement ManagementMethod. This // function is called when a remote management client invokes a method // on this object. The input and output arguments are specific to the // method being called and must be down-cast to the appropriate sub class // before use. - virtual status_t ManagementMethod (uint32_t methodId, Args& args); + virtual status_t ManagementMethod(uint32_t methodId, Args& args, std::string& text); }; -inline Manageable::~Manageable (void) {} +inline Manageable::~Manageable(void) {} }} |
