Apache Qpid C++ API
Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET Apache Qpid Documentation

gen/qpid/framing/AMQP_AllOperations.h

Go to the documentation of this file.
00001 #ifndef QPID_FRAMING_AMQP_ALLOPERATIONS_H
00002 #define QPID_FRAMING_AMQP_ALLOPERATIONS_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 
00028 
00029 
00030 #include <sstream> 
00031 #include "qpid/framing/ProtocolVersion.h"
00032 #include "qpid/framing/amqp_structs.h"
00033 
00034 namespace qpid {
00035 namespace framing {
00036 
00037 class AMQMethodBody;
00038 
00039 class AMQP_AllOperations {
00040   public:
00041     class Invoker;              // Declared in AllInvoker
00042 
00043     virtual ~AMQP_AllOperations() {}
00044 
00045     virtual ProtocolVersion getVersion() const = 0;
00046 
00047     // Inner classes
00048     // ==================== class ConnectionHandler ====================
00049     class ConnectionHandler {
00050         // Constructors and destructors
00051       public:
00052         class Invoker;              // Declared in AllInvoker
00053           
00054         ConnectionHandler(){};
00055         virtual ~ConnectionHandler() {}
00056         // Protocol methods
00057     
00058     virtual void start(const FieldTable& serverProperties,
00059     const Array& mechanisms,
00060     const Array& locales) = 0;
00061     
00062     virtual void startOk(const FieldTable& clientProperties,
00063     const string& mechanism,
00064     const string& response,
00065     const string& locale) = 0;
00066     
00067     virtual void secure(const string& challenge) = 0;
00068     
00069     virtual void secureOk(const string& response) = 0;
00070     
00071     virtual void tune(uint16_t channelMax,
00072     uint16_t maxFrameSize,
00073     uint16_t heartbeatMin,
00074     uint16_t heartbeatMax) = 0;
00075     
00076     virtual void tuneOk(uint16_t channelMax,
00077     uint16_t maxFrameSize,
00078     uint16_t heartbeat) = 0;
00079     
00080     virtual void open(const string& virtualHost,
00081     const Array& capabilities,
00082     bool insist) = 0;
00083     
00084     virtual void openOk(const Array& knownHosts) = 0;
00085     
00086     virtual void redirect(const string& host,
00087     const Array& knownHosts) = 0;
00088     
00089     virtual void heartbeat(    ) = 0;
00090     
00091     virtual void close(uint16_t replyCode,
00092     const string& replyText) = 0;
00093     
00094     virtual void closeOk(    ) = 0;
00095     }; // class ConnectionHandler
00096     
00097     
00098     // ==================== class SessionHandler ====================
00099     class SessionHandler {
00100         // Constructors and destructors
00101       public:
00102         class Invoker;              // Declared in AllInvoker
00103           
00104         SessionHandler(){};
00105         virtual ~SessionHandler() {}
00106         // Protocol methods
00107     
00108     virtual void attach(const string& name,
00109     bool force) = 0;
00110     
00111     virtual void attached(const string& name) = 0;
00112     
00113     virtual void detach(const string& name) = 0;
00114     
00115     virtual void detached(const string& name,
00116     uint8_t code) = 0;
00117     
00118     virtual void requestTimeout(uint32_t timeout) = 0;
00119     
00120     virtual void timeout(uint32_t timeout) = 0;
00121     
00122     virtual void commandPoint(const SequenceNumber& commandId,
00123     uint64_t commandOffset) = 0;
00124     
00125     virtual void expected(const SequenceSet& commands,
00126     const Array& fragments) = 0;
00127     
00128     virtual void confirmed(const SequenceSet& commands,
00129     const Array& fragments) = 0;
00130     
00131     virtual void completed(const SequenceSet& commands,
00132     bool timelyReply) = 0;
00133     
00134     virtual void knownCompleted(const SequenceSet& commands) = 0;
00135     
00136     virtual void flush(bool expected,
00137     bool confirmed,
00138     bool completed) = 0;
00139     
00140     virtual void gap(const SequenceSet& commands) = 0;
00141     }; // class SessionHandler
00142     
00143     
00144     // ==================== class ExecutionHandler ====================
00145     class ExecutionHandler {
00146         // Constructors and destructors
00147       public:
00148         class Invoker;              // Declared in AllInvoker
00149           
00150         ExecutionHandler(){};
00151         virtual ~ExecutionHandler() {}
00152         // Protocol methods
00153     
00154     virtual void sync(    ) = 0;
00155     
00156     virtual void result(const SequenceNumber& commandId,
00157     const string& value) = 0;
00158     
00159     virtual void exception(uint16_t errorCode,
00160     const SequenceNumber& commandId,
00161     uint8_t classCode,
00162     uint8_t commandCode,
00163     uint8_t fieldIndex,
00164     const string& description,
00165     const FieldTable& errorInfo) = 0;
00166     }; // class ExecutionHandler
00167     
00168     
00169     // ==================== class MessageHandler ====================
00170     class MessageHandler {
00171         // Constructors and destructors
00172       public:
00173         class Invoker;              // Declared in AllInvoker
00174           
00175         MessageHandler(){};
00176         virtual ~MessageHandler() {}
00177         // Protocol methods
00178     
00179     virtual void accept(const SequenceSet& transfers) = 0;
00180     
00181     virtual void reject(const SequenceSet& transfers,
00182     uint16_t code,
00183     const string& text) = 0;
00184     
00185     virtual void release(const SequenceSet& transfers,
00186     bool setRedelivered) = 0;
00187     
00188     virtual MessageAcquireResult acquire(const SequenceSet& transfers) = 0;
00189     
00190     virtual MessageResumeResult resume(const string& destination,
00191     const string& resumeId) = 0;
00192     
00193     virtual void subscribe(const string& queue,
00194     const string& destination,
00195     uint8_t acceptMode,
00196     uint8_t acquireMode,
00197     bool exclusive,
00198     const string& resumeId,
00199     uint64_t resumeTtl,
00200     const FieldTable& arguments) = 0;
00201     
00202     virtual void cancel(const string& destination) = 0;
00203     
00204     virtual void setFlowMode(const string& destination,
00205     uint8_t flowMode) = 0;
00206     
00207     virtual void flow(const string& destination,
00208     uint8_t unit,
00209     uint32_t value) = 0;
00210     
00211     virtual void flush(const string& destination) = 0;
00212     
00213     virtual void stop(const string& destination) = 0;
00214     }; // class MessageHandler
00215     
00216     
00217     // ==================== class TxHandler ====================
00218     class TxHandler {
00219         // Constructors and destructors
00220       public:
00221         class Invoker;              // Declared in AllInvoker
00222           
00223         TxHandler(){};
00224         virtual ~TxHandler() {}
00225         // Protocol methods
00226     
00227     virtual void select(    ) = 0;
00228     
00229     virtual void commit(    ) = 0;
00230     
00231     virtual void rollback(    ) = 0;
00232     }; // class TxHandler
00233     
00234     
00235     // ==================== class DtxHandler ====================
00236     class DtxHandler {
00237         // Constructors and destructors
00238       public:
00239         class Invoker;              // Declared in AllInvoker
00240           
00241         DtxHandler(){};
00242         virtual ~DtxHandler() {}
00243         // Protocol methods
00244     
00245     virtual void select(    ) = 0;
00246     
00247     virtual XaResult start(const Xid& xid,
00248     bool join,
00249     bool resume) = 0;
00250     
00251     virtual XaResult end(const Xid& xid,
00252     bool fail,
00253     bool suspend) = 0;
00254     
00255     virtual XaResult commit(const Xid& xid,
00256     bool onePhase) = 0;
00257     
00258     virtual void forget(const Xid& xid) = 0;
00259     
00260     virtual DtxGetTimeoutResult getTimeout(const Xid& xid) = 0;
00261     
00262     virtual XaResult prepare(const Xid& xid) = 0;
00263     
00264     virtual DtxRecoverResult recover(    ) = 0;
00265     
00266     virtual XaResult rollback(const Xid& xid) = 0;
00267     
00268     virtual void setTimeout(const Xid& xid,
00269     uint32_t timeout) = 0;
00270     }; // class DtxHandler
00271     
00272     
00273     // ==================== class ExchangeHandler ====================
00274     class ExchangeHandler {
00275         // Constructors and destructors
00276       public:
00277         class Invoker;              // Declared in AllInvoker
00278           
00279         ExchangeHandler(){};
00280         virtual ~ExchangeHandler() {}
00281         // Protocol methods
00282     
00283     virtual void declare(const string& exchange,
00284     const string& type,
00285     const string& alternateExchange,
00286     bool passive,
00287     bool durable,
00288     bool autoDelete,
00289     const FieldTable& arguments) = 0;
00290     
00291     virtual void delete_(const string& exchange,
00292     bool ifUnused) = 0;
00293     
00294     virtual ExchangeQueryResult query(const string& name) = 0;
00295     
00296     virtual void bind(const string& queue,
00297     const string& exchange,
00298     const string& bindingKey,
00299     const FieldTable& arguments) = 0;
00300     
00301     virtual void unbind(const string& queue,
00302     const string& exchange,
00303     const string& bindingKey) = 0;
00304     
00305     virtual ExchangeBoundResult bound(const string& exchange,
00306     const string& queue,
00307     const string& bindingKey,
00308     const FieldTable& arguments) = 0;
00309     }; // class ExchangeHandler
00310     
00311     
00312     // ==================== class QueueHandler ====================
00313     class QueueHandler {
00314         // Constructors and destructors
00315       public:
00316         class Invoker;              // Declared in AllInvoker
00317           
00318         QueueHandler(){};
00319         virtual ~QueueHandler() {}
00320         // Protocol methods
00321     
00322     virtual void declare(const string& queue,
00323     const string& alternateExchange,
00324     bool passive,
00325     bool durable,
00326     bool exclusive,
00327     bool autoDelete,
00328     const FieldTable& arguments) = 0;
00329     
00330     virtual void delete_(const string& queue,
00331     bool ifUnused,
00332     bool ifEmpty) = 0;
00333     
00334     virtual void purge(const string& queue) = 0;
00335     
00336     virtual QueueQueryResult query(const string& queue) = 0;
00337     }; // class QueueHandler
00338     
00339     
00340     // ==================== class FileHandler ====================
00341     class FileHandler {
00342         // Constructors and destructors
00343       public:
00344         class Invoker;              // Declared in AllInvoker
00345           
00346         FileHandler(){};
00347         virtual ~FileHandler() {}
00348         // Protocol methods
00349     
00350     virtual void qos(uint32_t prefetchSize,
00351     uint16_t prefetchCount,
00352     bool global) = 0;
00353     
00354     virtual void qosOk(    ) = 0;
00355     
00356     virtual void consume(const string& queue,
00357     const string& consumerTag,
00358     bool noLocal,
00359     bool noAck,
00360     bool exclusive,
00361     bool nowait,
00362     const FieldTable& arguments) = 0;
00363     
00364     virtual void consumeOk(const string& consumerTag) = 0;
00365     
00366     virtual void cancel(const string& consumerTag) = 0;
00367     
00368     virtual void open(const string& identifier,
00369     uint64_t contentSize) = 0;
00370     
00371     virtual void openOk(uint64_t stagedSize) = 0;
00372     
00373     virtual void publish(const string& exchange,
00374     const string& routingKey,
00375     bool mandatory,
00376     bool immediate,
00377     const string& identifier) = 0;
00378     
00379     virtual void deliver(const string& consumerTag,
00380     uint64_t deliveryTag,
00381     bool redelivered,
00382     const string& exchange,
00383     const string& routingKey,
00384     const string& identifier) = 0;
00385     
00386     virtual void ack(uint64_t deliveryTag,
00387     bool multiple) = 0;
00388     
00389     virtual void reject(uint64_t deliveryTag,
00390     bool requeue) = 0;
00391     }; // class FileHandler
00392     
00393     
00394     // ==================== class StreamHandler ====================
00395     class StreamHandler {
00396         // Constructors and destructors
00397       public:
00398         class Invoker;              // Declared in AllInvoker
00399           
00400         StreamHandler(){};
00401         virtual ~StreamHandler() {}
00402         // Protocol methods
00403     
00404     virtual void qos(uint32_t prefetchSize,
00405     uint16_t prefetchCount,
00406     uint32_t consumeRate,
00407     bool global) = 0;
00408     
00409     virtual void qosOk(    ) = 0;
00410     
00411     virtual void consume(const string& queue,
00412     const string& consumerTag,
00413     bool noLocal,
00414     bool exclusive,
00415     bool nowait,
00416     const FieldTable& arguments) = 0;
00417     
00418     virtual void consumeOk(const string& consumerTag) = 0;
00419     
00420     virtual void cancel(const string& consumerTag) = 0;
00421     }; // class StreamHandler
00422     
00423     
00424     // ==================== class ClusterHandler ====================
00425     class ClusterHandler {
00426         // Constructors and destructors
00427       public:
00428         class Invoker;              // Declared in AllInvoker
00429           
00430         ClusterHandler(){};
00431         virtual ~ClusterHandler() {}
00432         // Protocol methods
00433     
00434     virtual void updateRequest(const string& url) = 0;
00435     
00436     virtual void updateOffer(uint64_t updatee,
00437     const Uuid& clusterId,
00438     uint32_t version) = 0;
00439     
00440     virtual void retractOffer(uint64_t updatee) = 0;
00441     
00442     virtual void ready(const string& url) = 0;
00443     
00444     virtual void configChange(const string& current) = 0;
00445     
00446     virtual void messageExpired(uint64_t id) = 0;
00447     
00448     virtual void errorCheck(uint8_t type,
00449     const SequenceNumber& frameSeq) = 0;
00450     
00451     virtual void shutdown(    ) = 0;
00452     }; // class ClusterHandler
00453     
00454     
00455     // ==================== class ClusterConnectionHandler ====================
00456     class ClusterConnectionHandler {
00457         // Constructors and destructors
00458       public:
00459         class Invoker;              // Declared in AllInvoker
00460           
00461         ClusterConnectionHandler(){};
00462         virtual ~ClusterConnectionHandler() {}
00463         // Protocol methods
00464     
00465     virtual void announce(    ) = 0;
00466     
00467     virtual void deliverClose(    ) = 0;
00468     
00469     virtual void deliverDoOutput(uint32_t limit) = 0;
00470     
00471     virtual void abort(    ) = 0;
00472     
00473     virtual void consumerState(const string& name,
00474     bool blocked,
00475     bool notifyEnabled) = 0;
00476     
00477     virtual void deliveryRecord(const string& queue,
00478     const SequenceNumber& position,
00479     const string& tag,
00480     const SequenceNumber& id,
00481     bool acquired,
00482     bool accepted,
00483     bool cancelled,
00484     bool completed,
00485     bool ended,
00486     bool windowing,
00487     bool enqueued,
00488     uint32_t credit) = 0;
00489     
00490     virtual void txStart(    ) = 0;
00491     
00492     virtual void txAccept(const SequenceSet& commands) = 0;
00493     
00494     virtual void txDequeue(const string& queue) = 0;
00495     
00496     virtual void txEnqueue(const string& queue) = 0;
00497     
00498     virtual void txPublish(const Array& queues,
00499     bool delivered) = 0;
00500     
00501     virtual void txEnd(    ) = 0;
00502     
00503     virtual void accumulatedAck(const SequenceSet& commands) = 0;
00504     
00505     virtual void sessionState(const SequenceNumber& replayStart,
00506     const SequenceNumber& commandPoint,
00507     const SequenceSet& sentIncomplete,
00508     const SequenceNumber& expected,
00509     const SequenceNumber& received,
00510     const SequenceSet& unknownCompleted,
00511     const SequenceSet& receivedIncomplete) = 0;
00512     
00513     virtual void shadowReady(uint64_t memberId,
00514     uint64_t connectionId,
00515     const string& userName,
00516     const string& fragment,
00517     uint32_t sendMax) = 0;
00518     
00519     virtual void membership(const FieldTable& joiners,
00520     const FieldTable& members,
00521     const SequenceNumber& frameSeq) = 0;
00522     
00523     virtual void retractOffer(    ) = 0;
00524     
00525     virtual void queuePosition(const string& queue,
00526     const SequenceNumber& position) = 0;
00527     
00528     virtual void exchange(const string& encoded) = 0;
00529     
00530     virtual void queue(const string& encoded) = 0;
00531     
00532     virtual void expiryId(uint64_t expiryId) = 0;
00533     
00534     virtual void addQueueListener(const string& queue,
00535     uint32_t consumer) = 0;
00536     }; // class ClusterConnectionHandler
00537     
00538     
00539 
00540     // Method handler get methods
00541 
00542     virtual ConnectionHandler* getConnectionHandler() = 0;
00543     virtual SessionHandler* getSessionHandler() = 0;
00544     virtual ExecutionHandler* getExecutionHandler() = 0;
00545     virtual MessageHandler* getMessageHandler() = 0;
00546     virtual TxHandler* getTxHandler() = 0;
00547     virtual DtxHandler* getDtxHandler() = 0;
00548     virtual ExchangeHandler* getExchangeHandler() = 0;
00549     virtual QueueHandler* getQueueHandler() = 0;
00550     virtual FileHandler* getFileHandler() = 0;
00551     virtual StreamHandler* getStreamHandler() = 0;
00552     virtual ClusterHandler* getClusterHandler() = 0;
00553     virtual ClusterConnectionHandler* getClusterConnectionHandler() = 0;
00554 }; /* class AMQP_AllOperations */
00555 }}
00556 #endif  

Qpid C++ API Reference
Generated on Tue Dec 8 15:39:35 2009 for Qpid C++ Client API by doxygen 1.4.7