protected ApplicationBase(IDeserializerStrategy deserializer, ISerializerStrategy serializer, ILog logger, IManagedClientSessionFactory sessionManagedFactory) { if (deserializer == null) { throw new ArgumentNullException(nameof(deserializer)); } if (serializer == null) { throw new ArgumentNullException(nameof(serializer)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } Logger = logger; //Init internal services/components //Create these first; thread needs them peerServiceCollection = new AUIDServiceCollection <ClientSessionServiceContext>(50); netPeerAUIDService = new AUIDNetPeerServiceDecorator(peerServiceCollection); managedNetworkThread = new ManagedLidgrenNetworkThread(serializer, new LidgrenServerMessageContextFactory(deserializer), new PeerSendServiceSelectionStrategy(peerServiceCollection), e => Logger.Fatal($"{e.Message} StackTrace: {e.StackTrace}")); InternalClientSessionFactory sessionFactory = new InternalClientSessionFactory(peerServiceCollection, serializer, Logger, netPeerAUIDService, sessionManagedFactory); sessionlessHandler = new SessionlessMessageHandler(sessionFactory, Logger); }
public InternalClientSessionFactory(AUIDServiceCollection <ClientSessionServiceContext> peerServiceCollection, ISerializerStrategy serializer, ILog peerLogger, IAUIDService <INetPeer> netPeerAuidService, IManagedClientSessionFactory managedSessionFactory) { if (peerServiceCollection == null) { throw new ArgumentNullException(nameof(peerServiceCollection)); } if (serializer == null) { throw new ArgumentNullException(nameof(serializer)); } if (peerLogger == null) { throw new ArgumentNullException(nameof(peerLogger)); } if (netPeerAuidService == null) { throw new ArgumentNullException(nameof(netPeerAuidService)); } if (managedSessionFactory == null) { throw new ArgumentNullException(nameof(managedSessionFactory)); } PeerServiceCollection = peerServiceCollection; Serializer = serializer; PeerLogger = peerLogger; NetPeerAUIDService = netPeerAuidService; ManagedSessionFactory = managedSessionFactory; }
//prevents inherting from this class: http://stackoverflow.com/questions/1244953/internal-abstract-class-how-to-hide-usage-outside-assembly internal GladNetAppBase() : base() { //sets up logging AppLogger = SetupLogging(); //needed for the services below //These new services are required for the GladNet2 2.x routeback feature auidMapService = new AUIDServiceCollection <INetPeer>(100); routebackService = new DefaultNetworkMessageRouteBackService(auidMapService, AppLogger); }
//prevents inherting from this class: http://stackoverflow.com/questions/1244953/internal-abstract-class-how-to-hide-usage-outside-assembly internal GladNetAppBase() : base() { //sets up logging AppLogger = SetupLogging(); //needed for the services below //These new services are required for the GladNet2 2.x routeback feature auidMapService = new AUIDServiceCollection<INetPeer>(100); routebackService = new DefaultNetworkMessageRouteBackService(auidMapService, AppLogger); }