Skip to content

7a1c4e73 a7fb dcf0 f565 0f57c782ca0c

Arthur Frederico Neves edited this page Jul 19, 2016 · 6 revisions

IOBasePackHandler Class

Better manage the incoming and outgoing BasePack using a Protocol(TPack) to redistribute the packs. It has an internal dictionary of Protocol(TPack) that can be exchanged for the currently used.

Inheritance Hierarchy

System.Object
  NETLIB.Consumer(BasePack)
    NETLIB.IOPackHandler(BasePack)
      NETLIB.IOBasePackHandler
Namespace: NETLIB
Assembly: NETLIB (in NETLIB.dll) Version: 1.0.0.0 (1.0.0.0)

Syntax

C#

public class IOBasePackHandler : IOPackHandler<BasePack>

VB

Public Class IOBasePackHandler
	Inherits IOPackHandler(Of BasePack)

C++

public ref class IOBasePackHandler : public IOPackHandler<BasePack^>

F#

type IOBasePackHandler =  
    class
        inherit IOPackHandler<BasePack>
    end

The IOBasePackHandler type exposes the following members.

Constructors

 

Name Description
Public method IOBasePackHandler Initializes the handler with a publisher who will publish the packages and a protocol that will be used initially by this connection.
  Back to Top

Properties

 

Name Description
Public property CurrentProtocolName Name of the current protocol. (Inherited from IOPackHandler(TPack).)
Public property IsEnabled Boolean indicating when the consumption of packages is active. (Inherited from Consumer(TPack).)
Public property IsPublishEnabled Boolean indicating whether the publisher is currently active, publishing packages. (Inherited from Consumer(TPack).)
Public property Publisher Returns the publisher being consumed. (Inherited from Consumer(TPack).)
  Back to Top

Methods

 

Name Description
Public method AddProtocol Add a new protocol in the protocols dictionary. (Inherited from IOPackHandler(TPack).)
Public method CloseConnection Closes the publisher connection. (Inherited from Consumer(TPack).)
Public method Dispose Ends the consumption of paks without changing the status of the publisher. (Inherited from Consumer(TPack).)
Public method EndConsume Stops the pack consumption thread. (Inherited from Consumer(TPack).)
Public method EndPublishConsume Stops the publisher and the pack consumption thread. (Inherited from Consumer(TPack).)
Public method Equals Determines whether the specified object is equal to the current object. (Inherited from Object.)
Public method ExchangeProtocol Change the current protocol for one stored in the dictionary. (Inherited from IOPackHandler(TPack).)
Protected method Finalize Ends the consumption of paks without changing the status of the publisher, in the death of the object, if the Dispose method was not used properly. (Inherited from Consumer(TPack).)
Public method GetHashCode Serves as the default hash function. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Protected method OnReceivedPackCall

(Inherited from IOPackHandler(TPack).)

Public method PackFactory() Used by the Consume() to obtain an instance of the BasePack through BasePack() constructor. (Overrides Consumer(TPack).PackFactory().)
Public method PackFactory(Byte[]) Used by the Consume() to obtain an instance of the BasePack through BasePack(Byte[]) constructor. (Overrides Consumer(TPack).PackFactory(Byte[]).)
Public method PackFactory(BasePack) Used by the Consume() to obtain an instance of the BasePack through BasePack(BasePack) constructor. (Overrides Consumer(TPack).PackFactory(BasePack).)
Public method SendPack(Byte[], IPEndPoint) Sends the packet through the publisher (Inherited from Consumer(TPack).)
Public method SendPack(TPack, IPEndPoint) Sends the packet through the publisher (Inherited from Consumer(TPack).)
Public method Start Starts the publisher and the thread of consumption of packs. (Inherited from Consumer(TPack).)
Public method StartConsume Starts the thread of consumption of packs. (Inherited from Consumer(TPack).)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
  Back to Top

Events

 

Name Description
Public event ConnectionClosed Event used to signal when the connection (input stream) was closed for any reason. (Inherited from Consumer(TPack).)
Public event ReceivedPack Event called for treatment and consumption of a incoming pack. (Inherited from Consumer(TPack).)
  Back to Top

Examples

The following example shows how to implement a chat client using IOBasePackHandler to connect to the server and manage packages.

using NETLIB;
using NETLIB.TCP;
using System;

namespace ChatExempleClient
{
    class Program
    {
        static IOBasePackHandler client;
        static Protocol<BasePack> chatProtocol;
        static string name;

        static void Main(string[] args)
        {
            chatProtocol = new Protocol<BasePack>("chatProtocol");
            chatProtocol[0] += MessagePackHandle;

            client = new IOBasePackHandler(new TCPPublisher("127.0.0.1", 1975), chatProtocol);
            client.Start();

            Console.WriteLine("Your name please:");
            name = Console.ReadLine();

            string aux = Console.ReadLine();
            while (aux != "exit")
            {
                var pack = new BasePack();
                pack.ID = 0;
                pack.PutString(name + ": " + aux);
                client.SendPack(pack);
                aux = Console.ReadLine();
            }

            client.CloseConnection();          
        }

        private static void MessagePackHandle(Consumer<BasePack> consumer, BasePack receivedPack)
        {
            Console.WriteLine(receivedPack.GetString());
        }
    }
}

See Also

Reference

NETLIB Namespace
NETLIB.IOPackHandler(TPack)
NETLIB.Consumer(TPack)
NETLIB.BasePack
NETLIB.Protocol(TPack)

Clone this wiki locally