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

gen/qpid/framing/AMQP_ServerOperations.h

Go to the documentation of this file.
00001 #ifndef QPID_FRAMING_AMQP_SERVEROPERATIONS_H
00002 #define QPID_FRAMING_AMQP_SERVEROPERATIONS_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_ServerOperations {
00040   public:
00041     class Invoker;              // Declared in ServerInvoker
00042 
00043     virtual ~AMQP_ServerOperations() {}
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 ServerInvoker
00053           
00054         ConnectionHandler(){};
00055         virtual ~ConnectionHandler() {}
00056         // Protocol methods
00057     
00058     virtual void startOk(const FieldTable& clientProperties,
00059     const string& mechanism,
00060     const string& response,
00061     const string& locale) = 0;
00062     
00063     virtual void secureOk(const string& response) = 0;
00064     
00065     virtual void tuneOk(uint16_t channelMax,
00066     uint16_t maxFrameSize,
00067     uint16_t heartbeat) = 0;
00068     
00069     virtual void open(const string& virtualHost,
00070     const Array& capabilities,
00071     bool insist) = 0;
00072     
00073     virtual void heartbeat(    ) = 0;
00074     
00075     virtual void close(uint16_t replyCode,
00076     const string& replyText) = 0;
00077     
00078     virtual void closeOk(    ) = 0;
00079     }; // class ConnectionHandler
00080     
00081     
00082     // ==================== class SessionHandler ====================
00083     class SessionHandler {
00084         // Constructors and destructors
00085       public:
00086         class Invoker;              // Declared in ServerInvoker
00087           
00088         SessionHandler(){};
00089         virtual ~SessionHandler() {}
00090         // Protocol methods
00091     
00092     virtual void attach(const string& name,
00093     bool force) = 0;
00094     
00095     virtual void attached(const string& name) = 0;
00096     
00097     virtual void detach(const string& name) = 0;
00098     
00099     virtual void detached(const string& name,
00100     uint8_t code) = 0;
00101     
00102     virtual void requestTimeout(uint32_t timeout) = 0;
00103     
00104     virtual void timeout(uint32_t timeout) = 0;
00105     
00106     virtual void commandPoint(const SequenceNumber& commandId,
00107     uint64_t commandOffset) = 0;
00108     
00109     virtual void expected(const SequenceSet& commands,
00110     const Array& fragments) = 0;
00111     
00112     virtual void confirmed(const SequenceSet& commands,
00113     const Array& fragments) = 0;
00114     
00115     virtual void completed(const SequenceSet& commands,
00116     bool timelyReply) = 0;
00117     
00118     virtual void knownCompleted(const SequenceSet& commands) = 0;
00119     
00120     virtual void flush(bool expected,
00121     bool confirmed,
00122     bool completed) = 0;
00123     
00124     virtual void gap(const SequenceSet& commands) = 0;
00125     }; // class SessionHandler
00126     
00127     
00128     // ==================== class ExecutionHandler ====================
00129     class ExecutionHandler {
00130         // Constructors and destructors
00131       public:
00132         class Invoker;              // Declared in ServerInvoker
00133           
00134         ExecutionHandler(){};
00135         virtual ~ExecutionHandler() {}
00136         // Protocol methods
00137     
00138     virtual void sync(    ) = 0;
00139     
00140     virtual void result(const SequenceNumber& commandId,
00141     const string& value) = 0;
00142     
00143     virtual void exception(uint16_t errorCode,
00144     const SequenceNumber& commandId,
00145     uint8_t classCode,
00146     uint8_t commandCode,
00147     uint8_t fieldIndex,
00148     const string& description,
00149     const FieldTable& errorInfo) = 0;
00150     }; // class ExecutionHandler
00151     
00152     
00153     // ==================== class MessageHandler ====================
00154     class MessageHandler {
00155         // Constructors and destructors
00156       public:
00157         class Invoker;              // Declared in ServerInvoker
00158           
00159         MessageHandler(){};
00160         virtual ~MessageHandler() {}
00161         // Protocol methods
00162     
00163     virtual void accept(const SequenceSet& transfers) = 0;
00164     
00165     virtual void reject(const SequenceSet& transfers,
00166     uint16_t code,
00167     const string& text) = 0;
00168     
00169     virtual void release(const SequenceSet& transfers,
00170     bool setRedelivered) = 0;
00171     
00172     virtual MessageAcquireResult acquire(const SequenceSet& transfers) = 0;
00173     
00174     virtual MessageResumeResult resume(const string& destination,
00175     const string& resumeId) = 0;
00176     
00177     virtual void subscribe(const string& queue,
00178     const string& destination,
00179     uint8_t acceptMode,
00180     uint8_t acquireMode,
00181     bool exclusive,
00182     const string& resumeId,
00183     uint64_t resumeTtl,
00184     const FieldTable& arguments) = 0;
00185     
00186     virtual void cancel(const string& destination) = 0;
00187     
00188     virtual void setFlowMode(const string& destination,
00189     uint8_t flowMode) = 0;
00190     
00191     virtual void flow(const string& destination,
00192     uint8_t unit,
00193     uint32_t value) = 0;
00194     
00195     virtual void flush(const string& destination) = 0;
00196     
00197     virtual void stop(const string& destination) = 0;
00198     }; // class MessageHandler
00199     
00200     
00201     // ==================== class TxHandler ====================
00202     class TxHandler {
00203         // Constructors and destructors
00204       public:
00205         class Invoker;              // Declared in ServerInvoker
00206           
00207         TxHandler(){};
00208         virtual ~TxHandler() {}
00209         // Protocol methods
00210     
00211     virtual void select(    ) = 0;
00212     
00213     virtual void commit(    ) = 0;
00214     
00215     virtual void rollback(    ) = 0;
00216     }; // class TxHandler
00217     
00218     
00219     // ==================== class DtxHandler ====================
00220     class DtxHandler {
00221         // Constructors and destructors
00222       public:
00223         class Invoker;              // Declared in ServerInvoker
00224           
00225         DtxHandler(){};
00226         virtual ~DtxHandler() {}
00227         // Protocol methods
00228     
00229     virtual void select(    ) = 0;
00230     
00231     virtual XaResult start(const Xid& xid,
00232     bool join,
00233     bool resume) = 0;
00234     
00235     virtual XaResult end(const Xid& xid,
00236     bool fail,
00237     bool suspend) = 0;
00238     
00239     virtual XaResult commit(const Xid& xid,
00240     bool onePhase) = 0;
00241     
00242     virtual void forget(const Xid& xid) = 0;
00243     
00244     virtual DtxGetTimeoutResult getTimeout(const Xid& xid) = 0;
00245     
00246     virtual XaResult prepare(const Xid& xid) = 0;
00247     
00248     virtual DtxRecoverResult recover(    ) = 0;
00249     
00250     virtual XaResult rollback(const Xid& xid) = 0;
00251     
00252     virtual void setTimeout(const Xid& xid,
00253     uint32_t timeout) = 0;
00254     }; // class DtxHandler
00255     
00256     
00257     // ==================== class ExchangeHandler ====================
00258     class ExchangeHandler {
00259         // Constructors and destructors
00260       public:
00261         class Invoker;              // Declared in ServerInvoker
00262           
00263         ExchangeHandler(){};
00264         virtual ~ExchangeHandler() {}
00265         // Protocol methods
00266     
00267     virtual void declare(const string& exchange,
00268     const string& type,
00269     const string& alternateExchange,
00270     bool passive,
00271     bool durable,
00272     bool autoDelete,
00273     const FieldTable& arguments) = 0;
00274     
00275     virtual void delete_(const string& exchange,
00276     bool ifUnused) = 0;
00277     
00278     virtual ExchangeQueryResult query(const string& name) = 0;
00279     
00280     virtual void bind(const string& queue,
00281     const string& exchange,
00282     const string& bindingKey,
00283     const FieldTable& arguments) = 0;
00284     
00285     virtual void unbind(const string& queue,
00286     const string& exchange,
00287     const string& bindingKey) = 0;
00288     
00289     virtual ExchangeBoundResult bound(const string& exchange,
00290     const string& queue,
00291     const string& bindingKey,
00292     const FieldTable& arguments) = 0;
00293     }; // class ExchangeHandler
00294     
00295     
00296     // ==================== class QueueHandler ====================
00297     class QueueHandler {
00298         // Constructors and destructors
00299       public:
00300         class Invoker;              // Declared in ServerInvoker
00301           
00302         QueueHandler(){};
00303         virtual ~QueueHandler() {}
00304         // Protocol methods
00305     
00306     virtual void declare(const string& queue,
00307     const string& alternateExchange,
00308     bool passive,
00309     bool durable,
00310     bool exclusive,
00311     bool autoDelete,
00312     const FieldTable& arguments) = 0;
00313     
00314     virtual void delete_(const string& queue,
00315     bool ifUnused,
00316     bool ifEmpty) = 0;
00317     
00318     virtual void purge(const string& queue) = 0;
00319     
00320     virtual QueueQueryResult query(const string& queue) = 0;
00321     }; // class QueueHandler
00322     
00323     
00324     // ==================== class FileHandler ====================
00325     class FileHandler {
00326         // Constructors and destructors
00327       public:
00328         class Invoker;              // Declared in ServerInvoker
00329           
00330         FileHandler(){};
00331         virtual ~FileHandler() {}
00332         // Protocol methods
00333     
00334     virtual void qos(uint32_t prefetchSize,
00335     uint16_t prefetchCount,
00336     bool global) = 0;
00337     
00338     virtual void consume(const string& queue,
00339     const string& consumerTag,
00340     bool noLocal,
00341     bool noAck,
00342     bool exclusive,
00343     bool nowait,
00344     const FieldTable& arguments) = 0;
00345     
00346     virtual void cancel(const string& consumerTag) = 0;
00347     
00348     virtual void open(const string& identifier,
00349     uint64_t contentSize) = 0;
00350     
00351     virtual void openOk(uint64_t stagedSize) = 0;
00352     
00353     virtual void publish(const string& exchange,
00354     const string& routingKey,
00355     bool mandatory,
00356     bool immediate,
00357     const string& identifier) = 0;
00358     
00359     virtual void ack(uint64_t deliveryTag,
00360     bool multiple) = 0;
00361     
00362     virtual void reject(uint64_t deliveryTag,
00363     bool requeue) = 0;
00364     }; // class FileHandler
00365     
00366     
00367     // ==================== class StreamHandler ====================
00368     class StreamHandler {
00369         // Constructors and destructors
00370       public:
00371         class Invoker;              // Declared in ServerInvoker
00372           
00373         StreamHandler(){};
00374         virtual ~StreamHandler() {}
00375         // Protocol methods
00376     
00377     virtual void qos(uint32_t prefetchSize,
00378     uint16_t prefetchCount,
00379     uint32_t consumeRate,
00380     bool global) = 0;
00381     
00382     virtual void consume(const string& queue,
00383     const string& consumerTag,
00384     bool noLocal,
00385     bool exclusive,
00386     bool nowait,
00387     const FieldTable& arguments) = 0;
00388     
00389     virtual void cancel(const string& consumerTag) = 0;
00390     }; // class StreamHandler
00391     
00392     
00393 
00394     // Method handler get methods
00395 
00396     virtual ConnectionHandler* getConnectionHandler() = 0;
00397     virtual SessionHandler* getSessionHandler() = 0;
00398     virtual ExecutionHandler* getExecutionHandler() = 0;
00399     virtual MessageHandler* getMessageHandler() = 0;
00400     virtual TxHandler* getTxHandler() = 0;
00401     virtual DtxHandler* getDtxHandler() = 0;
00402     virtual ExchangeHandler* getExchangeHandler() = 0;
00403     virtual QueueHandler* getQueueHandler() = 0;
00404     virtual FileHandler* getFileHandler() = 0;
00405     virtual StreamHandler* getStreamHandler() = 0;
00406 }; /* class AMQP_ServerOperations */
00407 }}
00408 #endif  

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