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

gen/qpid/framing/AMQP_ClientOperations.h

Go to the documentation of this file.
00001 #ifndef QPID_FRAMING_AMQP_CLIENTOPERATIONS_H
00002 #define QPID_FRAMING_AMQP_CLIENTOPERATIONS_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_ClientOperations {
00040   public:
00041     class Invoker;              // Declared in ClientInvoker
00042 
00043     virtual ~AMQP_ClientOperations() {}
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 ClientInvoker
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 secure(const string& challenge) = 0;
00063     
00064     virtual void tune(uint16_t channelMax,
00065     uint16_t maxFrameSize,
00066     uint16_t heartbeatMin,
00067     uint16_t heartbeatMax) = 0;
00068     
00069     virtual void openOk(const Array& knownHosts) = 0;
00070     
00071     virtual void redirect(const string& host,
00072     const Array& knownHosts) = 0;
00073     
00074     virtual void heartbeat(    ) = 0;
00075     
00076     virtual void close(uint16_t replyCode,
00077     const string& replyText) = 0;
00078     
00079     virtual void closeOk(    ) = 0;
00080     }; // class ConnectionHandler
00081     
00082     
00083     // ==================== class SessionHandler ====================
00084     class SessionHandler {
00085         // Constructors and destructors
00086       public:
00087         class Invoker;              // Declared in ClientInvoker
00088           
00089         SessionHandler(){};
00090         virtual ~SessionHandler() {}
00091         // Protocol methods
00092     
00093     virtual void attach(const string& name,
00094     bool force) = 0;
00095     
00096     virtual void attached(const string& name) = 0;
00097     
00098     virtual void detach(const string& name) = 0;
00099     
00100     virtual void detached(const string& name,
00101     uint8_t code) = 0;
00102     
00103     virtual void requestTimeout(uint32_t timeout) = 0;
00104     
00105     virtual void timeout(uint32_t timeout) = 0;
00106     
00107     virtual void commandPoint(const SequenceNumber& commandId,
00108     uint64_t commandOffset) = 0;
00109     
00110     virtual void expected(const SequenceSet& commands,
00111     const Array& fragments) = 0;
00112     
00113     virtual void confirmed(const SequenceSet& commands,
00114     const Array& fragments) = 0;
00115     
00116     virtual void completed(const SequenceSet& commands,
00117     bool timelyReply) = 0;
00118     
00119     virtual void knownCompleted(const SequenceSet& commands) = 0;
00120     
00121     virtual void flush(bool expected,
00122     bool confirmed,
00123     bool completed) = 0;
00124     
00125     virtual void gap(const SequenceSet& commands) = 0;
00126     }; // class SessionHandler
00127     
00128     
00129     // ==================== class ExecutionHandler ====================
00130     class ExecutionHandler {
00131         // Constructors and destructors
00132       public:
00133         class Invoker;              // Declared in ClientInvoker
00134           
00135         ExecutionHandler(){};
00136         virtual ~ExecutionHandler() {}
00137         // Protocol methods
00138     
00139     virtual void sync(    ) = 0;
00140     
00141     virtual void result(const SequenceNumber& commandId,
00142     const string& value) = 0;
00143     
00144     virtual void exception(uint16_t errorCode,
00145     const SequenceNumber& commandId,
00146     uint8_t classCode,
00147     uint8_t commandCode,
00148     uint8_t fieldIndex,
00149     const string& description,
00150     const FieldTable& errorInfo) = 0;
00151     }; // class ExecutionHandler
00152     
00153     
00154     // ==================== class MessageHandler ====================
00155     class MessageHandler {
00156         // Constructors and destructors
00157       public:
00158         class Invoker;              // Declared in ClientInvoker
00159           
00160         MessageHandler(){};
00161         virtual ~MessageHandler() {}
00162         // Protocol methods
00163     
00164     virtual void accept(const SequenceSet& transfers) = 0;
00165     
00166     virtual void reject(const SequenceSet& transfers,
00167     uint16_t code,
00168     const string& text) = 0;
00169     
00170     virtual void release(const SequenceSet& transfers,
00171     bool setRedelivered) = 0;
00172     
00173     virtual MessageResumeResult resume(const string& destination,
00174     const string& resumeId) = 0;
00175     
00176     virtual void setFlowMode(const string& destination,
00177     uint8_t flowMode) = 0;
00178     
00179     virtual void flow(const string& destination,
00180     uint8_t unit,
00181     uint32_t value) = 0;
00182     
00183     virtual void stop(const string& destination) = 0;
00184     }; // class MessageHandler
00185     
00186     
00187     // ==================== class FileHandler ====================
00188     class FileHandler {
00189         // Constructors and destructors
00190       public:
00191         class Invoker;              // Declared in ClientInvoker
00192           
00193         FileHandler(){};
00194         virtual ~FileHandler() {}
00195         // Protocol methods
00196     
00197     virtual void qosOk(    ) = 0;
00198     
00199     virtual void consumeOk(const string& consumerTag) = 0;
00200     
00201     virtual void open(const string& identifier,
00202     uint64_t contentSize) = 0;
00203     
00204     virtual void openOk(uint64_t stagedSize) = 0;
00205     
00206     virtual void deliver(const string& consumerTag,
00207     uint64_t deliveryTag,
00208     bool redelivered,
00209     const string& exchange,
00210     const string& routingKey,
00211     const string& identifier) = 0;
00212     }; // class FileHandler
00213     
00214     
00215     // ==================== class StreamHandler ====================
00216     class StreamHandler {
00217         // Constructors and destructors
00218       public:
00219         class Invoker;              // Declared in ClientInvoker
00220           
00221         StreamHandler(){};
00222         virtual ~StreamHandler() {}
00223         // Protocol methods
00224     
00225     virtual void qosOk(    ) = 0;
00226     
00227     virtual void consumeOk(const string& consumerTag) = 0;
00228     }; // class StreamHandler
00229     
00230     
00231 
00232     // Method handler get methods
00233 
00234     virtual ConnectionHandler* getConnectionHandler() = 0;
00235     virtual SessionHandler* getSessionHandler() = 0;
00236     virtual ExecutionHandler* getExecutionHandler() = 0;
00237     virtual MessageHandler* getMessageHandler() = 0;
00238     virtual FileHandler* getFileHandler() = 0;
00239     virtual StreamHandler* getStreamHandler() = 0;
00240 }; /* class AMQP_ClientOperations */
00241 }}
00242 #endif  

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