diff options
| author | Alan Conway <aconway@apache.org> | 2008-05-27 21:30:29 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-05-27 21:30:29 +0000 |
| commit | 16d338dd2b0c820ec2d553d138b32aa9172948ae (patch) | |
| tree | f05c175c98f3ddd1869391e9cd4b921a5b5c0c5f /cpp/src/qpid/framing/SessionState.h | |
| parent | 484dd3d384035e5d39a4e5c17fc0a955b82b9d91 (diff) | |
| download | qpid-python-16d338dd2b0c820ec2d553d138b32aa9172948ae.tar.gz | |
Removed obsolete src/qpid/client/SessionImpl.h .cpp
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@660715 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/framing/SessionState.h')
| -rw-r--r-- | cpp/src/qpid/framing/SessionState.h | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/cpp/src/qpid/framing/SessionState.h b/cpp/src/qpid/framing/SessionState.h deleted file mode 100644 index 1df62b3138..0000000000 --- a/cpp/src/qpid/framing/SessionState.h +++ /dev/null @@ -1,138 +0,0 @@ -#ifndef QPID_FRAMING_SESSIONSTATE_H -#define QPID_FRAMING_SESSIONSTATE_H - -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * - */ - -#include "qpid/framing/SequenceNumber.h" -#include "qpid/framing/Uuid.h" -#include "qpid/framing/AMQFrame.h" -#include "qpid/sys/Mutex.h" - -#include <boost/optional.hpp> - -#include <deque> - -namespace qpid { -namespace framing { - -/** - * Session state common to client and broker. - * Stores replay frames, implements session ack/resume protocols. - * - * A SessionState is always associated with an _open_ session (attached or - * suspended) it is destroyed when the session is closed. - * - */ -class SessionState -{ - public: - typedef std::vector<AMQFrame> Replay; - - /** States of a session. */ - enum State { - SUSPENDED, ///< Suspended, detached from any channel. - RESUMING, ///< Resuming, waiting for an initial ack from a peer. - ATTACHED ///< Attached to channel and operating normally. - }; - - /** - *Create a newly opened active session. - *@param ackInterval send/solicit an ack whenever N unacknowledged frames - * have been received/sent. - * - * N=0 disables voluntary send/solicit ack. - */ - SessionState(uint32_t ackInterval, bool enableReplay = true, const framing::Uuid& id=framing::Uuid(true)); - - /** - * Create a non-resumable session. Does not store session frames, - * never volunteers ack or solicit-ack. - */ - SessionState(const framing::Uuid& id=framing::Uuid(true)); - - const framing::Uuid& getId() const { return id; } - State getState() { return state; } - - /** Received incoming L3 frame. - * @return SequenceNumber if an ack should be sent, empty otherwise. - * SessionState assumes that acks are sent whenever it returns - * a sequence number. - */ - boost::optional<SequenceNumber> received(const AMQFrame&); - - /** Sent outgoing L3 frame. - *@return true if solicit-ack should be sent. Note the SessionState - *assumes that a solicit-ack is sent every time it returns true. - */ - bool sent(const AMQFrame&); - - /** Received normal incoming ack. */ - void receivedAck(SequenceNumber); - - /** Frames to replay - *@pre getState()==ATTACHED - */ - Replay replay(); - - /** Suspend the session. */ - void suspend(); - - /** Start resume protocol for the session. - *@returns sequence number to ack immediately. */ - SequenceNumber resuming(); - - /** About to send an unscheduled ack, for example, responding to a solicit-ack. - * - * Note: when received() returns a sequence number, this function - * should not be called. SessionState assumes that the ack is sent - * every time received() returns a sequence number. - */ - SequenceNumber sendingAck(); - - SequenceNumber getLastSent() const { return lastSent; } - SequenceNumber getLastReceived() const { return lastReceived; } - - private: - typedef std::deque<AMQFrame> Unacked; - - bool sendingSolicit(); - - State state; - framing::Uuid id; - - Unacked unackedOut; - SequenceNumber lastReceived; - SequenceNumber lastSent; - uint32_t ackInterval; - SequenceNumber sendAckAt; - SequenceNumber solicitAckAt; - bool ackSolicited; - bool suspending; - bool resumable; - sys::Mutex unackedLock; -}; - - -}} // namespace qpid::common - - -#endif /*!QPID_FRAMING_SESSIONSTATE_H*/ |
