diff options
Diffstat (limited to 'qpid/cpp/managementgen/qmfgen/templates/Class.h')
-rw-r--r-- | qpid/cpp/managementgen/qmfgen/templates/Class.h | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/qpid/cpp/managementgen/qmfgen/templates/Class.h b/qpid/cpp/managementgen/qmfgen/templates/Class.h new file mode 100644 index 0000000000..4bcd423a26 --- /dev/null +++ b/qpid/cpp/managementgen/qmfgen/templates/Class.h @@ -0,0 +1,122 @@ +/*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" + +namespace qpid { + namespace management { + class ManagementAgent; + } +} + +namespace qmf { +/*MGEN:Class.OpenNamespaces*/ + +class /*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*/_*/ |