Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET | Apache Qpid Documentation |
00001 /* 00002 * 00003 * Licensed to the Apache Software Foundation (ASF) under one 00004 * or more contributor license agreements. See the NOTICE file 00005 * distributed with this work for additional information 00006 * regarding copyright ownership. The ASF licenses this file 00007 * to you under the Apache License, Version 2.0 (the 00008 * "License"); you may not use this file except in compliance 00009 * with the License. You may obtain a copy of the License at 00010 * 00011 * http://www.apache.org/licenses/LICENSE-2.0 00012 * 00013 * Unless required by applicable law or agreed to in writing, 00014 * software distributed under the License is distributed on an 00015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 00016 * KIND, either express or implied. See the License for the 00017 * specific language governing permissions and limitations 00018 * under the License. 00019 * 00020 */ 00021 #include "qpid/framing/FieldTable.h" 00022 00023 #ifndef _QueueOptions_ 00024 #define _QueueOptions_ 00025 00026 namespace qpid { 00027 namespace client { 00028 00029 enum QueueSizePolicy {NONE, REJECT, FLOW_TO_DISK, RING, RING_STRICT}; 00030 enum QueueOrderingPolicy {FIFO, LVQ, LVQ_NO_BROWSE}; 00031 00036 class QueueOptions: public framing::FieldTable 00037 { 00038 public: 00039 QueueOptions(); 00040 virtual ~QueueOptions(); 00041 00054 void setSizePolicy(QueueSizePolicy sp, uint64_t maxSize, uint32_t maxCount ); 00055 00060 void setPersistLastNode(); 00061 00065 void setOrdering(QueueOrderingPolicy op); 00066 00070 void clearSizePolicy(); 00071 00075 void clearPersistLastNode(); 00076 00080 void getLVQKey(std::string& key); 00081 00085 void clearOrdering(); 00086 00092 void enableQueueEvents(bool enqueueOnly); 00093 00094 static const std::string strMaxCountKey; 00095 static const std::string strMaxSizeKey; 00096 static const std::string strTypeKey; 00097 static const std::string strREJECT; 00098 static const std::string strFLOW_TO_DISK; 00099 static const std::string strRING; 00100 static const std::string strRING_STRICT; 00101 static const std::string strLastValueQueue; 00102 static const std::string strPersistLastNode; 00103 static const std::string strLVQMatchProperty; 00104 static const std::string strLastValueQueueNoBrowse; 00105 static const std::string strQueueEventMode; 00106 }; 00107 00108 } 00109 } 00110 00111 00112 #endif