/*
Media File XStream, Network file stream server supporting XBMSP
Copyright (C) 2004 j3g
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
This project can be found on SourceForge.
http://sourceforge.net/projects/mfxstream
*/
using System;
using System.Data;
using MediaStream;
namespace MFXStreamSvr{
public class MFXStreamSrv : System.ServiceProcess.ServiceBase
{
#region Private attributes
private CXBMSPStream m_xsStreamHandler = null;
#endregion
public MFXStreamSrv()
{
// This call is required by the Windows.Forms Component Designer.
InitializeComponent();
}
// The main entry point for the process
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;
// More than one user Service may run within the same process. To add
// another service to this process, change the following line to
// create a second service object. For example,
//
// ServicesToRun = new System.ServiceProcess.ServiceBase[] {new MFXStreamSrv(), new MySecondUserService()};
//
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new MFXStreamSrv() };
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
//
// MFXStreamSrv
//
this.ServiceName = "Media File XStream Service";
}
private void StartListening()
{
if (null == m_xsStreamHandler)
{
m_xsStreamHandler = new CXBMSPStream();
m_xsStreamHandler.Start();
}
}
protected override void OnStart(string[] args)
{
try
{
StartListening();
}
catch (Exception ex)
{
this.EventLog.WriteEntry(ex.Message, System.Diagnostics.EventLogEntryType.Error, 1, 1);
throw (ex);
}
}
/// <summary>
/// Stop this service.
/// </summary>
protected override void OnStop()
{
try
{
if (m_xsStreamHandler.IsStarted)
{
m_xsStreamHandler.Stop();
m_xsStreamHandler = null;
}
}
catch (Exception ex)
{
this.EventLog.WriteEntry(ex.Message, System.Diagnostics.EventLogEntryType.Error, 1, 1);
throw (ex);
}
}
protected override void OnCustomCommand(int command)
{
try
{
if (command.Equals(128))
m_xsStreamHandler.CreateFileAndFolderCount();
else if (command.Equals(129))
StartListening();
else if (command.Equals(130))
{
OnStop();
StartListening();
}
else
base.OnCustomCommand (command);
}
catch (Exception ex)
{
this.EventLog.WriteEntry(ex.Message, System.Diagnostics.EventLogEntryType.Error, 1, 1);
throw (ex);
}
}
}
}
|