
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using SmartCard.Runtime.Remoting.Channels.APDU;
using System.IO;
using System.Xml;
using System.Collections;
using MyCompany.Server.EncryptionSink;

namespace MyCompany.Server
{
    /// <summary>
    /// Třída SinkServerApp registruje vzdálené služby a nastavuje vrstvu pro šifrování 
    /// </summary>
    public class SinkServerApp
    {
        // Specifikuje vystavovanou adresu URI
        private const string REMOTE_OBJECT_URI = "EncryptionSinkService.uri";

        //Probíhá registrace  služby a nastavení vrstev
        public static int Main()
        {
            // Registrování komunikačního kanálu, na kterém bude služba naslouchat 
            ChannelServices.RegisterChannel(new APDUServerChannel());

            // Registruje danou aplikaci jako server            
            RemotingConfiguration.RegisterWellKnownServiceType(
                typeof(Service),
                REMOTE_OBJECT_URI,
                WellKnownObjectMode.Singleton);

            return 0;
        }
    }
}

