Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET | Apache Qpid Documentation |
00001 #ifndef QMF_AGENT_H 00002 #define QMF_AGENT_H 00003 /* 00004 * 00005 * Licensed to the Apache Software Foundation (ASF) under one 00006 * or more contributor license agreements. See the NOTICE file 00007 * distributed with this work for additional information 00008 * regarding copyright ownership. The ASF licenses this file 00009 * to you under the Apache License, Version 2.0 (the 00010 * "License"); you may not use this file except in compliance 00011 * with the License. You may obtain a copy of the License at 00012 * 00013 * http://www.apache.org/licenses/LICENSE-2.0 00014 * 00015 * Unless required by applicable law or agreed to in writing, 00016 * software distributed under the License is distributed on an 00017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 00018 * KIND, either express or implied. See the License for the 00019 * specific language governing permissions and limitations 00020 * under the License. 00021 * 00022 */ 00023 00024 #if !defined(QMF_USE_DEPRECATED_API) && !defined(qmf2_EXPORTS) && !defined(SWIG) 00025 # error "The API defined in this file has been DEPRECATED and will be removed in the future." 00026 # error "Define 'QMF_USE_DEPRECATED_API' to enable continued use of the API." 00027 #endif 00028 00029 #include <qmf/ImportExport.h> 00030 #include "qmf/Handle.h" 00031 //#include "qmf/Subscription.h" 00032 #include "qmf/exceptions.h" 00033 #include "qpid/messaging/Duration.h" 00034 #include "qpid/types/Variant.h" 00035 #include <string> 00036 00037 namespace qmf { 00038 00039 #ifndef SWIG 00040 template <class> class PrivateImplRef; 00041 #endif 00042 00043 class AgentImpl; 00044 class ConsoleEvent; 00045 class Query; 00046 class DataAddr; 00047 class SchemaId; 00048 class Schema; 00049 00050 class QMF_CLASS_EXTERN Agent : public qmf::Handle<AgentImpl> { 00051 public: 00052 QMF_EXTERN Agent(AgentImpl* impl = 0); 00053 QMF_EXTERN Agent(const Agent&); 00054 QMF_EXTERN Agent& operator=(const Agent&); 00055 QMF_EXTERN ~Agent(); 00056 00057 QMF_EXTERN std::string getName() const; 00058 QMF_EXTERN uint32_t getEpoch() const; 00059 QMF_EXTERN std::string getVendor() const; 00060 QMF_EXTERN std::string getProduct() const; 00061 QMF_EXTERN std::string getInstance() const; 00062 QMF_EXTERN const qpid::types::Variant& getAttribute(const std::string&) const; 00063 QMF_EXTERN const qpid::types::Variant::Map& getAttributes() const; 00064 00065 QMF_EXTERN ConsoleEvent query(const Query&, qpid::messaging::Duration timeout=qpid::messaging::Duration::MINUTE); 00066 QMF_EXTERN ConsoleEvent query(const std::string&, qpid::messaging::Duration timeout=qpid::messaging::Duration::MINUTE); 00067 QMF_EXTERN uint32_t queryAsync(const Query&); 00068 QMF_EXTERN uint32_t queryAsync(const std::string&); 00069 00073 //QMF_EXTERN Subscription subscribe(const Query&, const std::string& options = ""); 00074 //QMF_EXTERN Subscription subscribe(const std::string&, const std::string& options = ""); 00075 00076 QMF_EXTERN ConsoleEvent callMethod(const std::string&, const qpid::types::Variant::Map&, const DataAddr&, 00077 qpid::messaging::Duration timeout=qpid::messaging::Duration::MINUTE); 00078 QMF_EXTERN uint32_t callMethodAsync(const std::string&, const qpid::types::Variant::Map&, const DataAddr&); 00079 00090 QMF_EXTERN ConsoleEvent querySchema(qpid::messaging::Duration timeout=qpid::messaging::Duration::MINUTE); 00091 QMF_EXTERN uint32_t querySchemaAsync(); 00092 00103 QMF_EXTERN uint32_t getPackageCount() const; 00104 QMF_EXTERN const std::string& getPackage(uint32_t) const; 00105 00116 QMF_EXTERN uint32_t getSchemaIdCount(const std::string&) const; 00117 QMF_EXTERN SchemaId getSchemaId(const std::string&, uint32_t) const; 00118 00126 QMF_EXTERN Schema getSchema(const SchemaId&, qpid::messaging::Duration timeout=qpid::messaging::Duration::MINUTE); 00127 00128 00129 #ifndef SWIG 00130 private: 00131 friend class qmf::PrivateImplRef<Agent>; 00132 friend struct AgentImplAccess; 00133 #endif 00134 }; 00135 00136 } 00137 00138 #endif