Diffusion .NET Classic API - Core and Common  5.9.4
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events
PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck Class Reference

A load message requiring acknowledgement. This is for incoming use only and the convertToTopicMessage() method will convert to a real message for processing. More...

Inheritance diagram for PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck:
PushTechnology.DiffusionCore.Messaging.Topic.TopicMessageImpl PushTechnology.DiffusionCore.Messaging.DataMessageImpl PushTechnology.DiffusionCore.Messaging.MessageImpl PushTechnology.DiffusionCore.Messaging.MessageBase PushTechnology.DiffusionCore.Messaging.IMessageComparable

Public Member Functions

 TopicLoadMessageAck (ByteBuffer buffer)
 Constructor. More...
 
 TopicLoadMessageAck (IExternalMessage message)
 Constructor. More...
 
 TopicLoadMessageAck (string ackId)
 Constructor. More...
 
override bool IsAckRequired ()
 
override TopicMessageImpl CreateDuplicateMessage (TopicAliasMap topicAliasMap)
 Create an exact duplicate of this message. More...
 
- Public Member Functions inherited from PushTechnology.DiffusionCore.Messaging.Topic.TopicMessageImpl
override bool IsTopicMessage ()
 
override int CompareTo (IMessage message)
 Compares this message to another. More...
 
bool IsFor (string topicPattern)
 Indicates whether the message is for a named topic or topic pattern. More...
 
bool IsForTopic (string topicName)
 Indicates whether the message is for a named topic. More...
 
ITopicMessage Duplicate ()
 Creates an exact duplicate of this message. More...
 
string SetAckRequired ()
 This message requires acknowledgement. More...
 
- Public Member Functions inherited from PushTechnology.DiffusionCore.Messaging.DataMessageImpl
 DataMessageImpl (byte type, long initialSize)
 Constructor. More...
 
 DataMessageImpl (IExternalMessage message)
 Constructor. More...
 
 DataMessageImpl (byte type)
 Constructor for new messages. Subclasses with headers must call SetFixedHeaders in their constructor. More...
 
 DataMessageImpl (byte type, ByteBuffer buffer, IMessageHeaderTransformer headerTransformer)
 Constructor for message created from inbound byte buffers. The supplied buffer will be copied and its position or limit will be unaffected. More...
 
override int Size ()
 Return the size of this message. More...
 
override int Capacity ()
 Return the capacity of this message. More...
 
override void AddFixedHeader (string header)
 Adds a fixed header to this message. More...
 
override string ToString ()
 
override int GetMessageLength ()
 Returns the total message length including headers. Note that for an encoded data message this will return the encoded message length. More...
 
override ByteBuffer GetBufferForWriting (ConnectionCapabilities capabilities)
 Returns the message in buffer format for writing. If the message is encoded or needs encoding then this will return the encoded version. However, if the supplied capabilities indicate that the caller can not handled the encoded version then the unencoded version would be returned. More...
 
ByteBuffer GetBufferForReading ()
 Get a buffer for reading. More...
 
override bool IsDataMessage ()
 
override void SetHeaders (List< string > headers)
 Sets the headers. More...
 
override void SetHeaders (params string[] headers)
 Sets the headers. More...
 
void SetEncoding (byte encoding)
 Sets the byte encoding for the message and encodes it. More...
 
void Rewind ()
 Rewinds the message pointer to the start of the data portion, leaving the message limit as before. This prepares the buffer for reading after being written. More...
 
void Put (ByteBuffer buffer)
 Relative put of data from a ByteBuffer. More...
 
int BufferPosition ()
 Used for getting the current position of the readable buffer. More...
 
void BufferPosition (int position)
 Used for setting the position of the readable buffer. More...
 
void Put (byte data)
 Relative put of a single byte of data. More...
 
void Put (byte[] data)
 Relative put of a byte array of data. More...
 
void Put (params string[] data)
 Relative put of string data. Converts supplied string(s) to bytes using the messages character set encoding and puts the bytes into the message starting from the current position. Multiple strings are concatenated. More...
 
void Put (IDataMessage message)
 Puts the entire contents of another message into this message. More...
 
void PutRecord (params string[] fields)
 Relative put of a set of string fields as a record. The specified fields are written to the message delimited by field delimiters. If there is already data in the buffer that is not terminated by a record delimiter, then a record delimiter will first be written to the message. More...
 
void PutRecord (params byte[] fields)
 Relative put of a set of byte array fields as a record. The specified fields are written to the message delimited by field delimiters. If there is already data in the buffer that is not terminated by a record delimiter, then a record delimiter will first be written to the message. More...
 
void PutRecords (params Record[] records)
 Relative put of one or more records. The fields of each record are written to the message delimited by field delimiters and the records themselves are delimited by record delimiters, strings are converted to bytes using the character set of the message. The message pointer is then updated. If there is already data in the buffer that is not terminated by a record delimiter, then a record delimiter will first be written to the message. Record delimiters will then be written at the start of each subsequent record. Null entries are interpreted as empty records. More...
 
void PutRecords (List< Record > records)
 Relative put of one or more records from a collection. More...
 
void PutFields (string[] fields)
 Relative put of one or more string fields. If there is already data in the buffer which is not terminated by a record or field delimiter, then a field delimiter will be written followed by the specified fields separated by field delimiters. More...
 
void PutFields (params byte[] fields)
 Relative put of one or more byte array fields. Puts the bytes into the message starting from the current position. Multiple fields are separated by field delimiters. The message position is then updated. If there is already data in the buffer which is not terminated by a record or field delimiter, then a field delimiter will be written followed by the specified fields separated by field delimiters. If any field value is null it will be written as an empty field. More...
 
string AsString ()
 Returns the whole message body as a string. The message's character set will be used to convert the message bytes to a string. More...
 
byte[] AsBytes ()
 Returns the whole message as a byte array. More...
 
ByteBuffer AsByteBuffer ()
 Returns the whole message data content as a newly allocated ByteBuffer. This operation does not affect the message pointer. More...
 
List< string > AsFields ()
 Returns the whole message body as fields. Fields are delimited by field delimiters. If there are no such delimiters then a single field would be returned. The message's character set will be used to convert the message bytes to a string. This operation does not affect the message pointer. More...
 
List< RecordAsRecords ()
 Returns the whole message body as records. Records are delimited by record delimiters. If there are no such delimiters then a single record would be returned. This operation does not affect the message pointer. More...
 
List< RecordAsRecords (IMRecord metadata)
 Returns the whole message body as records. This is similar to AsRecords() except that the structure of the supplied metadata is assumed for each record and the records returned can be accessed using metadata specific methods. More...
 
string MessageDetails ()
 Returns the details of the message in 'L=...,T=...,E=...' format. More...
 
int Available ()
 Indicates the free space available for writing to in bytes. If the message is in a read only state then this will return 0. If the message is writable then this will return the number of bytes of bytes of data that may be written before the message becomes full. It is important to note that this returns the number of free bytes and not necessarily the number of characters that may be written as depending upon the character set in use the number of bytes required to write a character may vary. More...
 
byte NextByte ()
 Returns the next byte of data from the message. More...
 
byte NextByte (ByteBuffer buffer)
 Next byte in buffer. More...
 
void NextBytes (byte[] destination)
 Returns data from the message as bytes from the current position. More...
 
void NextBytes (ByteBuffer buffer, byte[] destination)
 Next bytes in buffer. More...
 
Record NextRecord ()
 Relative get of a record of string data. More...
 
Record NextRecord (IMRecord metadata)
 Returns a record of string data from the current message position using a metadata definition. This is similar to NextRecord() except the the structure of the supplied metadata is assumed for the record and the record returned can be accessed using metadata-specific methods. More...
 
Record NextRecord (ByteBuffer buffer, IMRecord metadata)
 Returns the next record in the buffer. More...
 
string NextField (ByteBuffer buffer)
 Return the next field from a byte buffer. More...
 
string NextField ()
 Relative get of a field of string data. More...
 
void PutObject (object obj)
 Writes an object to the message using object serialization. More...
 
void WriteToHttpBuffer (ByteBuffer buffer)
 Writes the message to an HTTP output buffer in the correct format. The buffer must be correctly positioned with sufficient limit. More...
 
void SetBodyFromMessage (DataMessageImpl message)
 Sets the body of this message from another message. This is only to be used during construction. The encoded state is also copied so the buffer state of the input message is copied to this message leaving this message in the same encoding state as the source message. More...
 
bool Encode ()
 Encodes the message (if it needs it). returns true if encoded (or already encoded) or false if encoding was not necessary. More...
 
void Decode (bool keepEncoded)
 Decodes the message. More...
 
void Dispose ()
 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. More...
 
- Public Member Functions inherited from PushTechnology.DiffusionCore.Messaging.MessageImpl
override List< string > GetHeaders ()
 Get the headers of this message. More...
 
override string GetHeader (int index)
 Returns a header value. More...
 
override void SetHeaders (params string[] headers)
 Sets headers. One or more separate headers may be set as required. Headers may be set once and only once after constructing a message and before any data is added to the message. More...
 
override void SetHeaders (List< string > headers)
 Set the headers of this message. More...
 
override int CompareTo (IMessage message, MessageComparator comparator)
 Compares this message to another message using a specified comparator. More...
 
override bool Equals (object obj)
 
override int GetHashCode ()
 
virtual bool IsControlMessage ()
 
void Write (ByteBuffer buffer, ConnectionCapabilities capabilities)
 Write the message to a byte buffer. More...
 
void Write (SslStream stream)
 Writes the message to a secure stream. More...
 
void Write (ClientSocket socket)
 Write the message to a socket channel. More...
 
void Write (SslStream stream, ConnectionCapabilities capabilities, bool async)
 Write the message to a secure stream. More...
 
void Write (ClientSocket socket, ConnectionCapabilities capabilities)
 Write the message to a socket channel. More...
 

Protected Member Functions

override void ApplyFixedHeaders (List< string > headers, IMessageHeaderTransformer headerTransformer)
 This is used for messages that have headers when a message is created from an existing byte buffer. This is called during construction so that the subclasses can capture and validate the header field values. More...
 
override int GetNumberOfFixedHeaders ()
 Returns the number of fixed headers that the message has (must have). More...
 
- Protected Member Functions inherited from PushTechnology.DiffusionCore.Messaging.Topic.TopicMessageImpl
 TopicMessageImpl (IExternalMessage message)
 Constructor. More...
 
 TopicMessageImpl (byte type, TopicMessageImpl message, List< string > additionalHeaders)
 Constructor. More...
 
 TopicMessageImpl (byte type, int capacity, TopicAliasMap topicAliasMap, params string[] headers)
 Constructor for creating a new empty message. More...
 
 TopicMessageImpl (byte type, string topic, int capacity, TopicAliasMap topicAliasMap)
 Constructor. More...
 
 TopicMessageImpl (byte type, string topic, TopicAliasMap topicAliasMap)
 Constructor. More...
 
 TopicMessageImpl (byte type, ByteBuffer buffer, IMessageHeaderTransformer topicAliasMap)
 Constructor. More...
 
 TopicMessageImpl (byte type, string topic, DataMessageImpl message)
 Constructor. More...
 
void SetTopicName (string topicName)
 Used for setting the topic name during construction - DO NOT use elsewhere! More...
 
override string GetAckId ()
 Returns the acknowledgement id. More...
 
virtual void SetTopicHeader (string topic, TopicAliasMap topicAliasMap)
 Sets the topic header. More...
 
- Protected Member Functions inherited from PushTechnology.DiffusionCore.Messaging.DataMessageImpl
 DataMessageImpl (byte type, int capacity)
 Constructor. More...
 
 DataMessageImpl (byte type, int capacity, MessageEncodingType?encoding)
 Constructor for new messages. Subclasses with headers must call SetHeaders in their constructor. More...
 
void SetFixedHeaders (TopicAliasMap topicAliasMap, params string[] headers)
 Sets headers allowing for transformation of the topic name. More...
 
override void SetFixedHeaders (params string[] headers)
 Sets the fixed header fields. This is only called during the construction of a new message. More...
 
- Protected Member Functions inherited from PushTechnology.DiffusionCore.Messaging.MessageImpl
 MessageImpl (IExternalMessage message)
 Constructor. More...
 
 MessageImpl (byte type)
 Constructor for new messages. More...
 
 MessageImpl (byte type, ByteBuffer buffer, IMessageHeaderTransformer headerTransformer)
 Constructor for messages created from an incoming message buffer. For message types with headers this unpacks the header values and calls down to the ApplyHeaderValues method to capture and validate the headers. Any values required must be copied from the supplied buffer which should remain untouched. Also the message length must be determined from the length in the buffer rather than the buffer limit which could be longer. More...
 
void SetHeaderLength ()
 Sets the header length according to the sum of the current headers plus delimiters plus static header length. More...
 
List< string > GetAllHeaders ()
 Gets all headers (fixed and user). More...
 

Properties

override string AckId [get, set]
 Get/set the acknowledgement id. More...
 
override bool IsTopicLoad [get]
 true if this is a Topic Load message. More...
 
- Properties inherited from PushTechnology.DiffusionCore.Messaging.Topic.TopicMessageImpl
int TopicNumber [get, set]
 Get/set the topic number. More...
 
virtual new string AckId [get, set]
 Returns the acknowledgement id. More...
 
bool IsAckPending [get]
 Is an acknowledgement pending for this message? More...
 
long AckTimeout [get, set]
 Get/set the acknowledgement timeout. More...
 
virtual bool IsServiceLoad [get, set]
 Indicates whether this is a load message from a 'service' topic. More...
 
virtual bool IsPagedLoad [get, set]
 Indicates whether this is a load message from a 'paged' topic. More...
 
virtual bool IsTopicNotifyLoad [get, set]
 Indicates whether this is a load message from a 'notify' topic. More...
 
string PendingAckId [get, set]
 This is used when an inbound message that requires ack is not auto acked and so the message still needs acknowledging. This stores the ack id so that it can be manually acknowledged. Once manually acknowledged this is nullified. More...
 
string TopicName [get, set]
 Returns the message topic name. More...
 
virtual bool IsTopicLoad [get]
 true if this is a Topic Load message. More...
 
virtual bool IsFetchReply [get]
 Returns true if this is a fetch reply message. More...
 
virtual bool IsDelta [get]
 true if this is a Delta message. More...
 
bool AckRequired [get, set]
 Get/set whether acknowledgement is required on this message. More...
 
- Properties inherited from PushTechnology.DiffusionCore.Messaging.DataMessageImpl
override byte MessageType [get, set]
 Get/set the type of this message. More...
 
ByteBuffer InternalBuffer [get]
 Provides public access to the underlying byte buffer. Primarily for debugging purposes. More...
 
string Charset [get, set]
 Returns the character set to be used by the message for byte/character conversions. More...
 
bool HasRemaining [get]
 Indicates whether the message has any remaining data to read. More...
 
int Remaining [get]
 Indicates the number of unread data bytes remaining within the message. More...
 
int Length [get]
 Returns the length of the data within the message. More...
 
byte TheEncoding [get]
 Returns the message encoding. More...
 
IMessageReader Reader [get]
 This returns a reader which may be used to perform relative read operations on a message without affecting the pointers of the original message. More...
 
DataMessageInputStream InputStream [get]
 Returns a binary reader which may be used for reading bytes from the message. More...
 
DataMessageOutputStream OutputStream [get]
 Returns a binary writer which may be used for writing bytes to the message. More...
 
- Properties inherited from PushTechnology.DiffusionCore.Messaging.MessageImpl
int HeaderLength [get, set]
 Returns the length of the header. More...
 
bool SetMessageLengthOnWrite [get, set]
 Determines whether we set the message length explicitly prior to writing. More...
 
virtual byte MessageType [get, set]
 Get/set the type of this message. More...
 
bool HasHeaders [get]
 Does this message have headers? More...
 
byte Priority [get, set]
 Get/set the priority of this message. More...
 
bool IsExpedited [get, set]
 Get/set whether this message should be expedited. More...
 
List< string > FixedHeaders [get]
 Returns the collection of fixed headers. More...
 
string AckId [get, set]
 Get/set the acknowledgement id. More...
 
int DataPosition [get, set]
 Get/set the data position. Only useful when initialising from buffer. More...
 
override long Timestamp [get, set]
 Get/set the timestamp of this message. More...
 
override bool IsLocked [get, set]
 Get/set whether this message is locked. More...
 
bool HasUserHeaders [get]
 Returns whether this message has user headers. More...
 
- Properties inherited from PushTechnology.DiffusionCore.Messaging.MessageBase
abstract long Timestamp [get, set]
 
abstract bool IsLocked [get, set]
 

Additional Inherited Members

- Static Public Attributes inherited from PushTechnology.DiffusionCore.Messaging.MessageBase
static byte MESSAGE_DELIMITER
 Message delimiter. More...
 
static char MESSAGE_DELIMITER_CHAR = (char) 0x00
 Message delimiter character. More...
 
static byte RECORD_DELIMITER = 0x01
 Record delimiter. More...
 
static char RECORD_DELIMITER_CHAR = (char) 0x01
 Record delimiter character. More...
 
static byte FIELD_DELIMITER = 0x02
 Field delimiter. More...
 
static char FIELD_DELIMITER_CHAR = (char) 0x02
 Field delimiter character. More...
 
static byte MESSAGE_SEPARATOR = 0x08
 Message separator. More...
 
static char MESSAGE_SEPARATOR_CHAR = (char) 0x08
 Message separator character. More...
 
static char EMPTY_FIELD_CHAR = (char) 0x03
 Empty field character. More...
 
static string EMPTY_FIELD_STRING = EMPTY_FIELD_CHAR.ToString(CultureInfo.InvariantCulture)
 Empty field string. More...
 
static byte LIST_DELIMITER = 0x06
 Byte value reserved for use as a list delimiter used for separating the elements of a list in character-based messages. More...
 
static char LIST_DELIMITER_CHAR = (char) LIST_DELIMITER
 Character representation of LIST_DELIMITER. More...
 
static string LIST_DELIMITER_STRING = LIST_DELIMITER_CHAR.ToString(CultureInfo.InvariantCulture)
 String representation of LIST_DELIMITER. Useful for string.Join operations. More...
 
- Static Protected Member Functions inherited from PushTechnology.DiffusionCore.Messaging.MessageImpl
static void CheckHeaders (int length, params string[] headers)
 Utility method to check that the correct number of headers have been supplied. More...
 
- Protected Attributes inherited from PushTechnology.DiffusionCore.Messaging.MessageImpl
List< string > theUserHeaders
 User headers. More...
 

Detailed Description

A load message requiring acknowledgement. This is for incoming use only and the convertToTopicMessage() method will convert to a real message for processing.

Constructor & Destructor Documentation

PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.TopicLoadMessageAck ( ByteBuffer  buffer)

Constructor.

Parameters
buffer
PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.TopicLoadMessageAck ( IExternalMessage  message)

Constructor.

Parameters
message
PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.TopicLoadMessageAck ( string  ackId)

Constructor.

Parameters
ackId

Member Function Documentation

override void PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.ApplyFixedHeaders ( List< string >  headers,
IMessageHeaderTransformer  headerTransformer 
)
protectedvirtual

This is used for messages that have headers when a message is created from an existing byte buffer. This is called during construction so that the subclasses can capture and validate the header field values.

Parameters
headersHeaders as read from input message.
headerTransformerAn optional header transformer object to be used as the subclass wishes.

Reimplemented from PushTechnology.DiffusionCore.Messaging.Topic.TopicMessageImpl.

override TopicMessageImpl PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.CreateDuplicateMessage ( TopicAliasMap  topicAliasMap)
virtual

Create an exact duplicate of this message.

Returns

Implements PushTechnology.DiffusionCore.Messaging.Topic.TopicMessageImpl.

override int PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.GetNumberOfFixedHeaders ( )
protectedvirtual

Returns the number of fixed headers that the message has (must have).

Returns

Reimplemented from PushTechnology.DiffusionCore.Messaging.Topic.TopicMessageImpl.

override bool PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.IsAckRequired ( )
virtual

Property Documentation

override string PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.AckId
getset

Get/set the acknowledgement id.

override bool PushTechnology.DiffusionCore.Messaging.TopicLoadMessageAck.IsTopicLoad
get

true if this is a Topic Load message.