View Javadoc
1   /*
2    * Copyright (C) 2013 4th Line GmbH, Switzerland
3    *
4    * The contents of this file are subject to the terms of either the GNU
5    * Lesser General Public License Version 2 or later ("LGPL") or the
6    * Common Development and Distribution License Version 1 or later
7    * ("CDDL") (collectively, the "License"). You may not use this file
8    * except in compliance with the License. See LICENSE.txt for more
9    * information.
10   *
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14   */
15  
16  package org.fourthline.cling.model.message.discovery;
17  
18  import org.fourthline.cling.model.Constants;
19  import org.fourthline.cling.model.Location;
20  import org.fourthline.cling.model.message.header.InterfaceMacHeader;
21  import org.fourthline.cling.model.message.header.RootDeviceHeader;
22  import org.fourthline.cling.model.message.header.USNRootDeviceHeader;
23  import org.fourthline.cling.model.message.header.UpnpHeader;
24  import org.fourthline.cling.model.meta.LocalDevice;
25  import org.fourthline.cling.model.types.NotificationSubtype;
26  
27  /**
28   * @author Christian Bauer
29   */
30  public class OutgoingNotificationRequestRootDevice extends OutgoingNotificationRequest {
31  
32      public OutgoingNotificationRequestRootDevice(Location location, LocalDevice device, NotificationSubtype type) {
33          super(location, device, type);
34  
35          getHeaders().add(UpnpHeader.Type.NT, new RootDeviceHeader());
36          getHeaders().add(UpnpHeader.Type.USN, new USNRootDeviceHeader(device.getIdentity().getUdn()));
37  
38          if ("true".equals(System.getProperty(Constants.SYSTEM_PROPERTY_ANNOUNCE_MAC_ADDRESS))
39              && location.getNetworkAddress().getHardwareAddress() != null) {
40              getHeaders().add(
41                  UpnpHeader.Type.EXT_IFACE_MAC,
42                  new InterfaceMacHeader(location.getNetworkAddress().getHardwareAddress())
43              );
44          }
45      }
46  
47  }