2 // This file is part of the LWES .NET Binding (LWES.net)
4 // COPYRIGHT (C) 2009, Phillip Clark (cerebralkungfu[at*g mail[dot*com)
5 // original .NET implementation
7 // LWES.net is free software: you can redistribute it and/or modify
8 // it under the terms of the Lesser GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
12 // LWES.net is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the Lesser GNU General Public License
18 // along with LWES.net. If not, see <http://www.gnu.org/licenses/>.
20 namespace Org
.Lwes
.Listener
23 using System
.Collections
.Generic
;
26 using System
.Net
.Sockets
;
30 using Org
.Lwes
.Properties
;
33 /// Implementation of the IEventListener for listening to multicast events.
35 public sealed class UnicastEventListener
: EventListenerBase
40 /// Initializes the event listener.
42 /// <param name="db"></param>
43 /// <param name="address"></param>
44 /// <param name="port"></param>
45 /// <param name="parallel"></param>
46 /// <param name="garbageHandling"></param>
47 public void Initialize(IEventTemplateDB db
51 , ListenerGarbageHandling garbageHandling
)
53 if (IsInitialized
) throw new InvalidOperationException(Resources
.Error_AlreadyInitialized
);
55 base.Initialize(db
, new IPEndPoint(address
, port
), parallel
, garbageHandling
,
58 s
.SetSocketOption(SocketOptionLevel
.Udp
, SocketOptionName
.NoDelay
, 1);
59 s
.SetSocketOption(SocketOptionLevel
.Socket
, SocketOptionName
.ReuseAddress
, 1);