|
/*
DotNetMQ - A Complete Message Broker For .NET
Copyright (C) 2011 Halil ibrahim KALKAN
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
using System;
namespace MDS.Serialization
{
/// <summary>
/// This interface is used to serialize primitives and objects.
/// Only needed Write methods designed for MDS.
/// </summary>
public interface IMDSSerializer
{
/// <summary>
/// Serializes a byte.
/// </summary>
/// <param name="b">byte to serialize</param>
void WriteByte(byte b);
/// <summary>
/// Writes a byte array to serialization stream.
/// Byte array may be null or empty.
/// </summary>
/// <param name="bytes">byte array to write</param>
void WriteByteArray(byte[] bytes);
/// <summary>
/// Serializes an integer.
/// </summary>
/// <param name="number">integer to serialize</param>
void WriteInt32(int number);
/// <summary>
/// Serializes an unsigned integer.
/// </summary>
/// <param name="number">unsigned integer to serialize</param>
void WriteUInt32(uint number);
/// <summary>
/// Serializes a long.
/// </summary>
/// <param name="number">long to serialize</param>
void WriteInt64(long number);
/// <summary>
/// Serializes a boolean.
/// </summary>
/// <param name="b">boolean to serialize</param>
void WriteBoolean(bool b);
/// <summary>
/// Serializes a DateTime object.
/// </summary>
/// <param name="dateTime">DateTime to serialize</param>
void WriteDateTime(DateTime dateTime);
/// <summary>
/// Serializes a char according to UTF8.
/// Char may be null or empty.
/// </summary>
/// <param name="c">char to serialize</param>
void WriteCharUTF8(char c);
/// <summary>
/// Serializes a string according to UTF8.
/// String may be null or empty.
/// </summary>
/// <param name="text">string to serialize</param>
void WriteStringUTF8(string text);
/// <summary>
/// Serializes an object that implements IMDSSerializable interface.
/// Object may be null.
/// </summary>
/// <param name="serializableObject">object to serialize</param>
void WriteObject(IMDSSerializable serializableObject);
/// <summary>
/// Serializes an array that all items implements IMDSSerializable interface.
/// Object array may be null or empty.
/// </summary>
/// <param name="serializableObjects">objects to serialize</param>
void WriteObjectArray(IMDSSerializable[] serializableObjects);
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I have started programming at 14 years old using Pascal as hobby. Then I interested in web development (HTML, JavaScript, ASP...) before university.
I graduated from Sakarya University Computer Engineering. At university, I learned C++, Visual Basic.NET, C#, ASP.NET and Java. I partly implemented ARP, IP and TCP protocols in Java as my final term project.
Now, I am working on Windows and web based software development mostly using Microsoft technologies in my own company.
My open source projects:
* ABP Framework:
https://abp.io
* jTable:
http://jtable.org
* Others:
https://github.com/hikalkan
My personal web site:
https://halilibrahimkalkan.com