Added DvbNipTestForCarrier, DvbNipInsertCarrier along with an implementation in the PostgreSQL driver.
This commit is contained in:
parent
ec80b97e1d
commit
82a0576903
@ -9,6 +9,8 @@ using Minio.DataModel.Args;
|
||||
using Minio.Exceptions;
|
||||
using skyscraper5.Dvb.DataBroadcasting.SkyscraperVfs;
|
||||
using skyscraper5.Skyscraper.Scraper.Storage.Split;
|
||||
using skyscraper8.DvbNip;
|
||||
using skyscraper8.Ietf.FLUTE;
|
||||
|
||||
namespace skyscraper5.Data
|
||||
{
|
||||
@ -239,5 +241,18 @@ namespace skyscraper5.Data
|
||||
GetVersioningArgs args = new GetVersioningArgs().WithBucket(_minioBucket);
|
||||
VersioningConfiguration vc = _minioClient.GetVersioningAsync(args).Result;
|
||||
}
|
||||
|
||||
public bool DvbNipTestForFile(string announcedFileContentLocation)
|
||||
{
|
||||
string path = "/nip/" + announcedFileContentLocation;
|
||||
return FileExists(path);
|
||||
}
|
||||
|
||||
public void DvbNipFileArrival(NipActualCarrierInformation carrier, FluteListener listener)
|
||||
{
|
||||
string path = "/nip/" + DvbNipUtilities.MakeFilename(listener.FileAssociation.ContentLocation);
|
||||
Stream stream = listener.ToStream();
|
||||
WriteObject(path, stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
120
DataTableStorages/skyscraper5.Data.PostgreSql/DvbNip.cs
Normal file
120
DataTableStorages/skyscraper5.Data.PostgreSql/DvbNip.cs
Normal file
@ -0,0 +1,120 @@
|
||||
using skyscraper8.DvbNip;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Npgsql;
|
||||
using NpgsqlTypes;
|
||||
|
||||
namespace skyscraper5.Data.PostgreSql
|
||||
{
|
||||
public partial class PostgresqlDataStore
|
||||
{
|
||||
private Dictionary<NipActualCarrierInformation, int> _knownNipCarriers;
|
||||
|
||||
public bool DvbNipTestForCarrier(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
if (_knownNipCarriers != null)
|
||||
{
|
||||
if (_knownNipCarriers.ContainsKey(currentCarrierInformation))
|
||||
return true;
|
||||
}
|
||||
|
||||
bool result = false;
|
||||
using (NpgsqlConnection connection = new NpgsqlConnection(connectionStringBuilder.ToString()))
|
||||
{
|
||||
connection.Open();
|
||||
NpgsqlCommand command = connection.CreateCommand();
|
||||
command.CommandText = "SELECT serial FROM dvbnip_carrier_information WHERE nid = @nid AND cid = @cid AND lid = @lid AND sid = @sid";
|
||||
command.Parameters.AddWithValue("@nid", NpgsqlDbType.Integer, (int)currentCarrierInformation.NipNetworkId);
|
||||
command.Parameters.AddWithValue("@cid", NpgsqlDbType.Integer, (int)currentCarrierInformation.NipCarrierId);
|
||||
command.Parameters.AddWithValue("@lid", NpgsqlDbType.Integer, (int)currentCarrierInformation.NipLinkId);
|
||||
command.Parameters.AddWithValue("@sid", NpgsqlDbType.Integer, (int)currentCarrierInformation.NipServiceId);
|
||||
NpgsqlDataReader dataReader = command.ExecuteReader();
|
||||
if (dataReader.Read())
|
||||
{
|
||||
if (_knownNipCarriers == null)
|
||||
_knownNipCarriers = new Dictionary<NipActualCarrierInformation, int>();
|
||||
|
||||
int value = dataReader.GetInt32(0);
|
||||
_knownNipCarriers.Add(currentCarrierInformation, value);
|
||||
result = true;
|
||||
}
|
||||
dataReader.Close();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void DvbNipInsertCarrier(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
EnqueueTask(x => DvbNipInsertCarrierEx(x, currentCarrierInformation));
|
||||
EnqueueTask(CommitTransaction);
|
||||
}
|
||||
|
||||
private void DvbNipInsertCarrierEx(NpgsqlConnection connection, NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
NpgsqlCommand command = connection.CreateCommand();
|
||||
command.CommandText = "INSERT INTO dvbnip_carrier_information VALUES (DEFAULT,DEFAULT,@nid,@cid,@lid,@sid,@spn)";
|
||||
command.Parameters.AddWithValue("@nid", NpgsqlDbType.Integer, (int)currentCarrierInformation.NipNetworkId);
|
||||
command.Parameters.AddWithValue("@cid", NpgsqlDbType.Integer, (int)currentCarrierInformation.NipCarrierId);
|
||||
command.Parameters.AddWithValue("@lid", NpgsqlDbType.Integer, (int)currentCarrierInformation.NipLinkId);
|
||||
command.Parameters.AddWithValue("@sid", NpgsqlDbType.Integer, (int)currentCarrierInformation.NipServiceId);
|
||||
command.Parameters.AddWithValue("@spn", NpgsqlDbType.Text, currentCarrierInformation.NipStreamProviderName);
|
||||
int a = command.ExecuteNonQuery();
|
||||
if (a != 1)
|
||||
throw new DataException(String.Format("Wanted to insert 1 row, got {0}", a));
|
||||
command.Dispose();
|
||||
}
|
||||
|
||||
public bool DvbNipPrivateDataSpecifier(NipActualCarrierInformation currentCarrierInformation, DateTime versionUpdate,
|
||||
uint privateDataSpecifier, List<string> privateDataSessions)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool DvbNipTestForNetwork(BroadcastNetworkType network)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void DvbNipInsertNetwork(BroadcastNetworkType network)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool DvbNipTestForService(BroadcastMediaStreamType broadcastMediaStreamType)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void DvbNipInsertService(BroadcastMediaStreamType broadcastMediaStreamType)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool DvbNipTestForMulticastSession(MulticastSessionType multicastSession)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void DvbNipInsertMulticastSession(MulticastSessionType multicastSession)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool DvbNipTestForMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier,
|
||||
MulticastEndpointAddressType multicastEndpointAddressType)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void DvbNipInsertMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier,
|
||||
MulticastGatewayConfigurationTransportSessionType multicastGatewayConfigurationTransportSession)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -8,6 +8,7 @@ using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using skyscraper8.DvbNip;
|
||||
|
||||
namespace skyscraper5.Data.PostgreSql
|
||||
{
|
||||
@ -305,6 +306,7 @@ namespace skyscraper5.Data.PostgreSql
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private Dictionary<string, DateTime> _knownDvbiServiceListUpdateDates;
|
||||
public DateTime GetDvbiServiceListLastUpdateDate(string id)
|
||||
{
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using Npgsql;
|
||||
using NpgsqlTypes;
|
||||
using skyscraper5.Dvb.Psi.Model;
|
||||
using skyscraper5.Dvb.TvAnytime;
|
||||
using skyscraper5.Rds.Messages;
|
||||
using skyscraper5.Skyscraper.Headless;
|
||||
using skyscraper5.Skyscraper.Scraper.Storage.Split;
|
||||
using skyscraper8.DvbI;
|
||||
using skyscraper8.Ses;
|
||||
using skyscraper8.DvbNip;
|
||||
|
||||
namespace skyscraper5.Data.PostgreSql
|
||||
{
|
||||
@ -164,7 +163,7 @@ namespace skyscraper5.Data.PostgreSql
|
||||
return new object[] { connectionStringBuilder };
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@ using skyscraper8.Ietf.FLUTE;
|
||||
|
||||
namespace skyscraper8.DvbNip
|
||||
{
|
||||
internal class DvbNipUtilities
|
||||
public class DvbNipUtilities
|
||||
{
|
||||
private DvbNipUtilities() { }
|
||||
|
||||
|
||||
@ -145,7 +145,7 @@ namespace skyscraper8.Ietf.FLUTE
|
||||
}
|
||||
}
|
||||
|
||||
internal Stream ToStream()
|
||||
public Stream ToStream()
|
||||
{
|
||||
if (!IsComplete())
|
||||
throw new InvalidOperationException();
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
"profiles": {
|
||||
"skyscraper8": {
|
||||
"commandName": "Project",
|
||||
"commandLineArgs": "\"C:\\Temp\\Hotbird130_12380_V_NIP.ts\"\r\n",
|
||||
"remoteDebugEnabled": false
|
||||
},
|
||||
"Container (Dockerfile)": {
|
||||
|
||||
@ -2500,6 +2500,10 @@ namespace skyscraper5.Skyscraper.Scraper
|
||||
public void OnNipCarrierDetected(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
LogEvent(SkyscraperContextEvent.NipCarrierDetected, String.Format("{0}", currentCarrierInformation.NipStreamProviderName));
|
||||
if (!ScraperStorage.DvbNipTestForCarrier(currentCarrierInformation))
|
||||
{
|
||||
ScraperStorage.DvbNipInsertCarrier(currentCarrierInformation);
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsFileNeeded(string announcedFileContentLocation)
|
||||
|
||||
@ -1501,6 +1501,16 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.Filesystem
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool DvbNipTestForCarrier(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void DvbNipInsertCarrier(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public DateTime GetLastDvbiServiceListEntryPointUpdateDate(long sourceHash)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
|
||||
@ -194,5 +194,7 @@ namespace skyscraper5.Skyscraper.Scraper.Storage
|
||||
void DvbNipInsertMulticastSession(MulticastSessionType multicastSession);
|
||||
bool DvbNipTestForMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier, MulticastEndpointAddressType multicastEndpointAddressType);
|
||||
void DvbNipInsertMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier, MulticastGatewayConfigurationTransportSessionType multicastGatewayConfigurationTransportSession);
|
||||
bool DvbNipTestForCarrier(NipActualCarrierInformation currentCarrierInformation);
|
||||
void DvbNipInsertCarrier(NipActualCarrierInformation currentCarrierInformation);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1565,6 +1565,16 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.InMemory
|
||||
_nipMulticastGatewayConfigurationTransportSessions.Add(key, multicastGatewayConfigurationTransportSession);
|
||||
}
|
||||
|
||||
public bool DvbNipTestForCarrier(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void DvbNipInsertCarrier(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void InsertDvbiServiceListEntryPoint(long sourceHash)
|
||||
{
|
||||
if (_dvbiServiceListEntryPointsCoordinates == null)
|
||||
|
||||
@ -1,12 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using skyscraper5.Docsis.MacManagement;
|
||||
using skyscraper5.Docsis.MacManagement;
|
||||
using skyscraper5.DsmCc.Descriptors;
|
||||
using skyscraper5.Dvb.DataBroadcasting.IntModel;
|
||||
using skyscraper5.Dvb.Descriptors;
|
||||
@ -32,7 +24,16 @@ using skyscraper5.src.Skyscraper.FrequencyListGenerator;
|
||||
using skyscraper5.src.Skyscraper.Scraper.Dns;
|
||||
using skyscraper5.Teletext;
|
||||
using skyscraper8.DvbI;
|
||||
using skyscraper8.DvbNip;
|
||||
using skyscraper8.Ses;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Platform = skyscraper5.Dvb.SystemSoftwareUpdate.Model.Platform;
|
||||
|
||||
namespace skyscraper5.Skyscraper.Scraper.Storage.Split
|
||||
@ -181,5 +182,18 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.Split
|
||||
void UpdateDvbiServiceListEntryPointUpdateDate(long hash, DateTime currentTime);
|
||||
void InsertDvbiService(DvbIService service);
|
||||
bool TestForDvbiServiceList(string id);
|
||||
}
|
||||
|
||||
bool DvbNipPrivateDataSpecifier(NipActualCarrierInformation currentCarrierInformation, DateTime versionUpdate, uint privateDataSpecifier, List<string> privateDataSessions);
|
||||
bool DvbNipTestForNetwork(BroadcastNetworkType network);
|
||||
void DvbNipInsertNetwork(BroadcastNetworkType network);
|
||||
bool DvbNipTestForService(BroadcastMediaStreamType broadcastMediaStreamType);
|
||||
void DvbNipInsertService(BroadcastMediaStreamType broadcastMediaStreamType);
|
||||
bool DvbNipTestForMulticastSession(MulticastSessionType multicastSession);
|
||||
void DvbNipInsertMulticastSession(MulticastSessionType multicastSession);
|
||||
bool DvbNipTestForMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier, MulticastEndpointAddressType multicastEndpointAddressType);
|
||||
void DvbNipInsertMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier, MulticastGatewayConfigurationTransportSessionType multicastGatewayConfigurationTransportSession);
|
||||
|
||||
bool DvbNipTestForCarrier(NipActualCarrierInformation currentCarrierInformation);
|
||||
void DvbNipInsertCarrier(NipActualCarrierInformation currentCarrierInformation);
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,14 +25,5 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.Split
|
||||
void Ping();
|
||||
bool DvbNipTestForFile(string announcedFileContentLocation);
|
||||
void DvbNipFileArrival(NipActualCarrierInformation carrier, FluteListener listener);
|
||||
bool DvbNipPrivateDataSpecifier(NipActualCarrierInformation currentCarrierInformation, DateTime versionUpdate, uint privateDataSpecifier, List<string> privateDataSessions);
|
||||
bool DvbNipTestForNetwork(BroadcastNetworkType network);
|
||||
void DvbNipInsertNetwork(BroadcastNetworkType network);
|
||||
bool DvbNipTestForService(BroadcastMediaStreamType broadcastMediaStreamType);
|
||||
void DvbNipInsertService(BroadcastMediaStreamType broadcastMediaStreamType);
|
||||
bool DvbNipTestForMulticastSession(MulticastSessionType multicastSession);
|
||||
void DvbNipInsertMulticastSession(MulticastSessionType multicastSession);
|
||||
bool DvbNipTestForMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier, MulticastEndpointAddressType multicastEndpointAddressType);
|
||||
void DvbNipInsertMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier, MulticastGatewayConfigurationTransportSessionType multicastGatewayConfigurationTransportSession);
|
||||
}
|
||||
}
|
||||
|
||||
@ -906,56 +906,68 @@ namespace skyscraper5.Skyscraper.Scraper.Storage.Split
|
||||
[DebuggerStepThrough]
|
||||
public bool DvbNipPrivateDataSpecifier(NipActualCarrierInformation currentCarrierInformation, DateTime versionUpdate, uint privateDataSpecifier, List<string> privateDataSessions)
|
||||
{
|
||||
return objectStorage.DvbNipPrivateDataSpecifier(currentCarrierInformation, versionUpdate, privateDataSpecifier, privateDataSessions);
|
||||
return dataStorage.DvbNipPrivateDataSpecifier(currentCarrierInformation, versionUpdate, privateDataSpecifier, privateDataSessions);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public bool DvbNipTestForNetwork(BroadcastNetworkType network)
|
||||
{
|
||||
return objectStorage.DvbNipTestForNetwork(network);
|
||||
return dataStorage.DvbNipTestForNetwork(network);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public void DvbNipInsertNetwork(BroadcastNetworkType network)
|
||||
{
|
||||
objectStorage.DvbNipInsertNetwork(network);
|
||||
dataStorage.DvbNipInsertNetwork(network);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public bool DvbNipTestForService(BroadcastMediaStreamType broadcastMediaStreamType)
|
||||
{
|
||||
return objectStorage.DvbNipTestForService(broadcastMediaStreamType);
|
||||
return dataStorage.DvbNipTestForService(broadcastMediaStreamType);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public void DvbNipInsertService(BroadcastMediaStreamType broadcastMediaStreamType)
|
||||
{
|
||||
objectStorage.DvbNipInsertService(broadcastMediaStreamType);
|
||||
dataStorage.DvbNipInsertService(broadcastMediaStreamType);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public bool DvbNipTestForMulticastSession(MulticastSessionType multicastSession)
|
||||
{
|
||||
return objectStorage.DvbNipTestForMulticastSession(multicastSession);
|
||||
return dataStorage.DvbNipTestForMulticastSession(multicastSession);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public void DvbNipInsertMulticastSession(MulticastSessionType multicastSession)
|
||||
{
|
||||
objectStorage.DvbNipInsertMulticastSession(multicastSession);
|
||||
dataStorage.DvbNipInsertMulticastSession(multicastSession);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public bool DvbNipTestForMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier,
|
||||
MulticastEndpointAddressType multicastEndpointAddressType)
|
||||
{
|
||||
return objectStorage.DvbNipTestForMulticastGatewayConfigurationTransportSession(carrier, multicastEndpointAddressType);
|
||||
return dataStorage.DvbNipTestForMulticastGatewayConfigurationTransportSession(carrier, multicastEndpointAddressType);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public void DvbNipInsertMulticastGatewayConfigurationTransportSession(NipActualCarrierInformation carrier, MulticastGatewayConfigurationTransportSessionType multicastGatewayConfigurationTransportSession)
|
||||
{
|
||||
objectStorage.DvbNipInsertMulticastGatewayConfigurationTransportSession(carrier, multicastGatewayConfigurationTransportSession);
|
||||
dataStorage.DvbNipInsertMulticastGatewayConfigurationTransportSession(carrier, multicastGatewayConfigurationTransportSession);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public bool DvbNipTestForCarrier(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
return dataStorage.DvbNipTestForCarrier(currentCarrierInformation);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
public void DvbNipInsertCarrier(NipActualCarrierInformation currentCarrierInformation)
|
||||
{
|
||||
dataStorage.DvbNipInsertCarrier(currentCarrierInformation);
|
||||
}
|
||||
|
||||
[DebuggerStepThrough]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user