summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/management/Manageable.h
diff options
context:
space:
mode:
authorCarl C. Trieloff <cctrieloff@apache.org>2007-11-13 00:34:09 +0000
committerCarl C. Trieloff <cctrieloff@apache.org>2007-11-13 00:34:09 +0000
commitb4a562164bfbf627c9bf9e802ea2baa33d12521a (patch)
treee3e1d0ed46174cf61e15569659c97a3c93ac6b97 /cpp/src/qpid/management/Manageable.h
parent6128b62ed47c825dba3f7a36ccdb60b55044ea2e (diff)
downloadqpid-python-b4a562164bfbf627c9bf9e802ea2baa33d12521a.tar.gz
Patch QPID-680 from tross
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@594364 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/management/Manageable.h')
-rw-r--r--cpp/src/qpid/management/Manageable.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/cpp/src/qpid/management/Manageable.h b/cpp/src/qpid/management/Manageable.h
new file mode 100644
index 0000000000..7c9b49be9a
--- /dev/null
+++ b/cpp/src/qpid/management/Manageable.h
@@ -0,0 +1,67 @@
+#ifndef _Manageable_
+#define _Manageable_
+
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+#include "ManagementObject.h"
+#include "Args.h"
+#include "qpid/sys/Time.h"
+#include <qpid/framing/Buffer.h>
+#include <boost/shared_ptr.hpp>
+#include <map>
+
+namespace qpid {
+namespace management {
+
+class Manageable
+{
+ public:
+
+ virtual ~Manageable (void) = 0;
+
+ // status_t is a type used to pass completion status from the method handler.
+ //
+ typedef uint32_t status_t;
+
+ static const status_t STATUS_OK = 0;
+ static const status_t STATUS_UNKNOWN_OBJECT = 1;
+ static const status_t STATUS_UNKNOWN_METHOD = 2;
+
+ // Every "Manageable" object must hold a reference to exactly one
+ // management object. This object is always of a class derived from
+ // the pure-virtual "ManagementObject".
+ //
+ // This accessor function returns a shared_ptr to the management object.
+ //
+ virtual ManagementObject::shared_ptr 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) = 0;
+};
+
+inline Manageable::~Manageable (void) {}
+
+}}
+
+#endif /*!_Manageable_*/