/// <summary> /// Der Einsprungpunkt für einen <i>Card Server</i>. Die Befehlszeilenparameter beschreiben /// die Kommunikationskanäle zum steuernden Client. /// </summary> /// <param name="args">Befehlsparameter für die Kommunikation.</param> public static void Main(string[] args) { // Be safe try { // Always use the configured language UserProfile.ApplyLanguage(); // Set priority Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High; // Open the communication channels and attach to the pipe server using (AnonymousPipeClientStream reader = new AnonymousPipeClientStream(PipeDirection.In, args[0])) using (AnonymousPipeClientStream writer = new AnonymousPipeClientStream(PipeDirection.Out, args[1])) using (ServerImplementation server = ServerImplementation.CreateInMemory()) for (Request request; null != (request = Request.ReceiveRequest(reader));) { // Process it Response response = request.Execute(server); // Send the response response.SendResponse(writer); } } catch (Exception e) { // Report error Logging.Log(EventLogEntryType.Error, e.ToString()); } }
/// <summary> /// Erzeugt eine neue Steuerung. /// </summary> /// <param name="server">Die zu steuernde Einheit.</param> /// <exception cref="ArgumentNullException">Es wurde keine Steuerinstanz angegeben.</exception> public _AsyncControl(ServerImplementation server) { // Validate if (server == null) { throw new ArgumentNullException("server"); } // Remember m_Server = server; }
/// <summary> /// Erzeugt eine neue Steuerinstanz. /// </summary> /// <typeparam name="T">Die Art des Rückgabewertes.</typeparam> /// <param name="server">Die aktuelle Implementierung.</param> /// <returns>Die gewünschte Steuerinstanz.</returns> public static IAsyncResult Create <T>(ServerImplementation server) { // Check mode if (typeof(T) == typeof(object)) { return(new _AsyncControl(server)); } else { return(new _AsyncControl <T>(server)); } }
/// <summary> /// Initialisiert eine neue Instanz. /// </summary> /// <param name="cardServer">Der zugehörige <i>Card Server</i>.</param> /// <exception cref="ArgumentNullException">Es wurde keine Instanz angegeben.</exception> protected CustomAction(ServerImplementation cardServer) { // Validate if (cardServer == null) { throw new ArgumentNullException("cardServer"); } // Remember m_CardServer = cardServer; // Register for operation m_CardServer.LoadExtension(GetType()); }
/// <summary> /// Wählt eine bestimmte Quellgruppe (Transponder) an. /// </summary> /// <param name="server">Die Implementierung einer Geräteansteuerung.</param> /// <param name="selection">Die Beschreibung einer Quelle, deren Gruppe aktiviert werden soll.</param> /// <returns>Steuereinheit für diesen Aufruf.</returns> /// <exception cref="NullReferenceException">Es wurde keine Implementierung angegeben.</exception> /// <exception cref="ArgumentNullException">Es wurde keine Quellgruppe angegeben.</exception> /// <exception cref="CardServerException">Es wird bereits eine Anfrage ausgeführt.</exception> public static IAsyncResult BeginSelect(this ServerImplementation server, SourceSelection selection) { // Validate if (server == null) { throw new NullReferenceException("server"); } if (selection == null) { throw new ArgumentNullException("selection"); } // Forward return(server.BeginSelect(selection.SelectionKey)); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginEndScan(UpdateProfile)); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginSetStreamTarget(Source, UniqueIdentifier, Target)); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> /// <returns>Die Antwort zur Anfrage.</returns> public abstract Response Execute(ServerImplementation server);
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response <TOutput> response, ServerImplementation server) { // Execute response.ResponseData = server.BeginCustomAction <TInput, TOutput>(ActionType, Parameters).Result; }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginLoadExtensions(AssemblyData, DebugData)); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response <ServerInformation> response, ServerImplementation server) { // Execute response.ResponseData = server.BeginSetZappingSource(SelectionKey, Target).Result; }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginRemoveSource(Source, UniqueIdentifier)); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response <ProgramGuideItem[]> response, ServerImplementation server) { // Execute response.ResponseData = server.BeginEndEPGCollection().Result; }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginStartScan()); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginStartEPGCollection(Sources, Extensions)); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginSetProfile(ProfileName, ResetWakeUpDevice, DisablePCRFromH264Reconstruction, DisablePCRFromMPEG2Reconstruction)); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginRemoveAllSources()); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response <StreamInformation[]> response, ServerImplementation server) { // Execute response.ResponseData = server.BeginAddSources(Sources).Result; }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response response, ServerImplementation server) { // Execute ServerImplementation.EndRequest(server.BeginSelect(SelectionKey)); }
/// <summary> /// Führt eine Anfrage aus. /// </summary> /// <param name="response">Die zu befüllende Antwort für den Aufrufer.</param> /// <param name="server">Die aktuelle Implementierung des <i>Card Servers</i>.</param> protected override void OnExecute(Response <ServerInformation> response, ServerImplementation server) { // Execute response.ResponseData = server.BeginGetState().Result; }