| /*MGEN:commentPrefix=//*/ |
| #ifndef _MANAGEMENT_/*MGEN:Class.NameUpper*/_ |
| #define _MANAGEMENT_/*MGEN:Class.NameUpper*/_ |
| |
| // |
| // 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. |
| // |
| |
| /*MGEN:Root.Disclaimer*/ |
| |
| #include "qpid/management/ManagementObject.h" |
| #include "qpid/broker/BrokerImportExport.h" |
| |
| namespace qpid { |
| namespace management { |
| class ManagementAgent; |
| } |
| } |
| |
| namespace qmf { |
| /*MGEN:Class.OpenNamespaces*/ |
| |
| class QPID_BROKER_CLASS_EXTERN /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject |
| { |
| private: |
| |
| static std::string packageName; |
| static std::string className; |
| static uint8_t md5Sum[MD5_LEN]; |
| /*MGEN:IF(Class.ExistOptionals)*/ |
| uint8_t presenceMask[/*MGEN:Class.PresenceMaskBytes*/]; |
| /*MGEN:Class.PresenceMaskConstants*/ |
| /*MGEN:ENDIF*/ |
| |
| // Properties |
| /*MGEN:Class.ConfigDeclarations*/ |
| // Statistics |
| /*MGEN:Class.InstDeclarations*/ |
| /*MGEN:IF(Class.ExistPerThreadStats)*/ |
| // Per-Thread Statistics |
| struct PerThreadStats { |
| /*MGEN:Class.PerThreadDeclarations*/ |
| }; |
| |
| struct PerThreadStats** perThreadStatsArray; |
| |
| inline struct PerThreadStats* getThreadStats() { |
| int idx = getThreadIndex(); |
| struct PerThreadStats* threadStats = perThreadStatsArray[idx]; |
| if (threadStats == 0) { |
| threadStats = new(PerThreadStats); |
| perThreadStatsArray[idx] = threadStats; |
| /*MGEN:Class.InitializePerThreadElements*/ |
| } |
| return threadStats; |
| } |
| |
| void aggregatePerThreadStats(struct PerThreadStats*) const; |
| /*MGEN:ENDIF*/ |
| public: |
| static void writeSchema(std::string& schema); |
| void mapEncodeValues(::qpid::types::Variant::Map& map, |
| bool includeProperties=true, |
| bool includeStatistics=true); |
| void mapDecodeValues(const ::qpid::types::Variant::Map& map); |
| void doMethod(std::string& methodName, |
| const ::qpid::types::Variant::Map& inMap, |
| ::qpid::types::Variant::Map& outMap, |
| const std::string& userId); |
| std::string getKey() const; |
| /*MGEN:IF(Root.GenQMFv1)*/ |
| uint32_t writePropertiesSize() const; |
| void readProperties(const std::string& buf); |
| void writeProperties(std::string& buf) const; |
| void writeStatistics(std::string& buf, bool skipHeaders = false); |
| void doMethod(std::string& methodName, |
| const std::string& inBuf, |
| std::string& outBuf, |
| const std::string& userId); |
| /*MGEN:ENDIF*/ |
| |
| writeSchemaCall_t getWriteSchemaCall() { return writeSchema; } |
| /*MGEN:IF(Class.NoStatistics)*/ |
| // Stub for getInstChanged. There are no statistics in this class. |
| bool getInstChanged() { return false; } |
| bool hasInst() { return false; } |
| /*MGEN:ENDIF*/ |
| |
| /*MGEN:Class.NameCap*/(::qpid::management::ManagementAgent* agent, |
| ::qpid::management::Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/); |
| ~/*MGEN:Class.NameCap*/(); |
| |
| /*MGEN:Class.SetGeneralReferenceDeclaration*/ |
| |
| static void registerSelf(::qpid::management::ManagementAgent* agent); |
| std::string& getPackageName() const { return packageName; } |
| std::string& getClassName() const { return className; } |
| uint8_t* getMd5Sum() const { return md5Sum; } |
| |
| // Method IDs |
| /*MGEN:Class.MethodIdDeclarations*/ |
| // Accessor Methods |
| /*MGEN:Class.AccessorMethods*/ |
| }; |
| |
| }/*MGEN:Class.CloseNamespaces*/ |
| |
| #endif /*!_MANAGEMENT_/*MGEN:Class.NameUpper*/_*/ |