123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485 |
- /*
- * 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.
- */
- namespace Apache.NMS
- {
- /// <summary>
- ///
- /// A BytesMessage object is used to send a message containing a stream of uninterpreted
- /// bytes. It inherits from the Message interface and adds a bytes message body. The
- /// receiver of the message supplies the interpretation of the bytes.
- ///
- /// This message type is for client encoding of existing message formats. If possible,
- /// one of the other self-defining message types should be used instead.
- ///
- /// Although the NMS API allows the use of message properties with byte messages, they
- /// are typically not used, since the inclusion of properties may affect the format.
- ///
- /// When the message is first created, and when ClearBody is called, the body of the
- /// message is in write-only mode. After the first call to Reset has been made, the
- /// message body is in read-only mode. After a message has been sent, the client that
- /// sent it can retain and modify it without affecting the message that has been sent.
- /// The same message object can be sent multiple times. When a message has been received,
- /// the provider has called Reset so that the message body is in read-only mode for the
- /// client.
- ///
- /// If ClearBody is called on a message in read-only mode, the message body is cleared and
- /// the message is in write-only mode.
- ///
- /// If a client attempts to read a message in write-only mode, a MessageNotReadableException
- /// is thrown.
- ///
- /// If a client attempts to write a message in read-only mode, a MessageNotWriteableException
- /// is thrown.
- /// </summary>
- public interface IBytesMessage : IMessage
- {
- byte[] Content { get; set; }
- /// <value>
- /// Gets the number of bytes of the message body when the message is in read-only mode.
- /// The value returned can be used to allocate a byte array. The value returned is the
- /// entire length of the message body, regardless of where the pointer for reading the
- /// message is currently located.
- /// </value>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- long BodyLength { get; }
- /// <summary>
- /// Reads a byte from the Message Stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.Byte"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- byte ReadByte();
- /// <summary>
- /// Writes a byte to the Message stream.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Byte"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteByte(byte value);
- /// <summary>
- /// Reads a boolean from the Message Stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.Boolean"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- bool ReadBoolean();
- /// <summary>
- /// Write a one byte value to the message stream representing the boolean
- /// value passed.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Boolean"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteBoolean(bool value);
- /// <summary>
- /// Reads a char from the Message Stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.Char"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- char ReadChar();
- /// <summary>
- /// Write a two byte value to the message stream representing the character
- /// value passed. High byte first.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Char"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteChar(char value);
- /// <summary>
- /// Reads a Short from the Message Stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.Int16"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- short ReadInt16();
- /// <summary>
- /// Write a two byte value to the message stream representing the short
- /// value passed. High byte first.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Int16"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteInt16(short value);
- /// <summary>
- /// Reads an int from the Message Stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.Int32"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- int ReadInt32();
- /// <summary>
- /// Write a four byte value to the message stream representing the integer
- /// value passed. High byte first.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Int32"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteInt32(int value);
- /// <summary>
- /// Reads a long from the Message Stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.Int64"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- long ReadInt64();
- /// <summary>
- /// Write a eight byte value to the message stream representing the long
- /// value passed. High byte first.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Int64"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteInt64(long value);
- /// <summary>
- /// Reads a float from the Message Stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.Single"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- float ReadSingle();
- /// <summary>
- /// Write a four byte value to the message stream representing the float
- /// value passed. High byte first.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Single"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteSingle(float value);
- /// <summary>
- /// Reads an double from the Message Stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.Double"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- double ReadDouble();
- /// <summary>
- /// Write a eight byte value to the message stream representing the double
- /// value passed. High byte first.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Double"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteDouble(double value);
- /// <summary>
- /// Reads a byte array from the bytes message stream.
- ///
- /// If the length of array value is less than the number of bytes remaining to
- /// be read from the stream, the array should be filled. A subsequent call reads
- /// the next increment, and so on.
- ///
- /// If the number of bytes remaining in the stream is less than the length of array
- /// value, the bytes should be read into the array. The return value of the total number
- /// of bytes read will be less than the length of the array, indicating that there are
- /// no more bytes left to be read from the stream. The next read of the stream returns -1.
- /// </summary>
- /// <param name="value">
- /// The byte array that will be used as a buffer to read into.
- /// </param>
- /// <returns>
- /// A <see cref="System.Int32"/>
- /// The number of bytes read into the passed byte array, or -1 if there are no more
- /// bytes left to be read from the stream.
- /// </returns>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- int ReadBytes(byte[] value);
- /// <summary>
- /// Reads a portion of the bytes message stream.
- ///
- /// If the length of array value is less than the number of bytes remaining to be
- /// read from the stream, the array should be filled. A subsequent call reads the
- /// next increment, and so on.
- ///
- /// If the number of bytes remaining in the stream is less than the length of array
- /// value, the bytes should be read into the array. The return value of the total
- /// number of bytes read will be less than the length of the array, indicating that
- /// there are no more bytes left to be read from the stream. The next read of the
- /// stream returns -1.
- ///
- /// If length is negative, or length is greater than the length of the array value,
- /// then an Exception is thrown. No bytes will be read from the stream for this
- /// exception case.
- /// </summary>
- /// <param name="value">
- /// The byte array that will be used as a buffer to read into.
- /// </param>
- /// <param name="length">
- /// The amount of bytes to read into the buffer.
- /// </param>
- /// <returns>
- /// A <see cref="System.Int32"/>
- /// The number of bytes read into the passed byte array, or -1 if there are no more
- /// bytes left to be read from the stream.
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- int ReadBytes(byte[] value, int length);
- /// <summary>
- /// Writes a byte array to the bytes message stream.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Byte"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteBytes(byte[] value);
- /// <summary>
- /// Writes a portion of a byte array to the bytes message stream.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Byte"/>
- /// </param>
- /// <param name="offset">
- /// A <see cref="System.Int32"/>
- /// </param>
- /// <param name="length">
- /// A <see cref="System.Int32"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteBytes(byte[] value, int offset, int length);
- /// <summary>
- /// Reads a string that has been encoded using a modified UTF-8 format from the bytes
- /// message stream.
- /// </summary>
- /// <returns>
- /// A <see cref="System.String"/>
- /// </returns>
- /// <exception cref="Apache.NMS.MessageNotReadableException">
- /// Thrown when the Message is in write-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageEOFException">
- /// Thrown when an unexpected end of bytes has been reached.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- string ReadString();
- /// <summary>
- /// Writes a string to the bytes message stream using UTF-8 encoding in a
- /// machine-independent manner.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.String"/>
- /// </param>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteString(string value);
- /// <summary>
- /// Writes an object to the bytes message stream.
- ///
- /// This method works only for the objectified primitive object types
- /// (Int32, Double, Boolean ...), String objects, and byte arrays.
- /// </summary>
- /// <param name="value">
- /// A <see cref="System.Object"/>
- /// the object in the .NET programming language to be written; it must not be null
- /// </param>
- /// <exception cref="Apache.NMS.MessageFormatException">
- /// Thrown when the Message has an invalid format.
- /// </exception>
- /// <exception cref="Apache.NMS.MessageNotWriteableException">
- /// Thrown when the Message is in read-only mode.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void WriteObject(System.Object value);
- /// <summary>
- /// Puts the message body in read-only mode and repositions the stream of bytes to the beginning.
- /// </summary>
- /// <exception cref="Apache.NMS.MessageFormatException">
- /// Thrown when the Message has an invalid format.
- /// </exception>
- /// <exception cref="Apache.NMS.NMSException">
- /// Thrown when there is an unhandled exception thrown from the provider.
- /// </exception>
- void Reset();
- }
- }
|