Added server components.
This commit is contained in:
211
ServerComponents/FileConverterUtils2/TaskQueue.cs
Normal file
211
ServerComponents/FileConverterUtils2/TaskQueue.cs
Normal file
@@ -0,0 +1,211 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2015
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using System.Configuration;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Threading;
|
||||
using System.Data;
|
||||
using log4net;
|
||||
|
||||
namespace FileConverterUtils2
|
||||
{
|
||||
[Serializable()]
|
||||
public class TaskQueueData
|
||||
{
|
||||
public string m_sKey;
|
||||
public int m_nToFormat;
|
||||
public string m_sToFile;
|
||||
|
||||
public string m_sFromFormat = "";
|
||||
public string m_sFromUrl;
|
||||
public string m_sFromKey;
|
||||
|
||||
public object m_oDataKey;
|
||||
|
||||
public string m_sToUrl;
|
||||
public int? m_nCsvTxtEncoding;
|
||||
public int? m_nCsvDelimiter;
|
||||
public bool? m_bFromOrigin;
|
||||
public bool? m_bFromSettings;
|
||||
public bool? m_bFromChanges;
|
||||
public bool? m_bPaid;
|
||||
public bool? m_bEmbeddedFonts;
|
||||
public string m_sResultCallbackUrl;
|
||||
public string m_sResultCallbackData;
|
||||
|
||||
[XmlIgnore]
|
||||
public TimeSpan VisibilityTimeout { get; set; }
|
||||
|
||||
public long VisibilityTimeoutTick
|
||||
{
|
||||
get { return VisibilityTimeout.Ticks; }
|
||||
set { VisibilityTimeout = new TimeSpan(value); }
|
||||
}
|
||||
|
||||
public TaskQueueData()
|
||||
{
|
||||
}
|
||||
public TaskQueueData(string sKey, int nToFormat, string sToFile)
|
||||
{
|
||||
m_sKey = sKey;
|
||||
m_nToFormat = nToFormat;
|
||||
m_sToFile = sToFile;
|
||||
}
|
||||
public static string SerializeToXml(TaskQueueData oData)
|
||||
{
|
||||
return Utils.SerializeToXml(typeof(TaskQueueData), oData);
|
||||
}
|
||||
public static TaskQueueData DeserializeFromXml(string sXml)
|
||||
{
|
||||
return Utils.DeserializeFromXml(typeof(TaskQueueData), sXml) as TaskQueueData;
|
||||
}
|
||||
}
|
||||
[Serializable()]
|
||||
public class TaskQueueDataConvert
|
||||
{
|
||||
public string m_sKey;
|
||||
public string m_sFileFrom;
|
||||
public string m_sFileTo;
|
||||
public int m_nFormatFrom;
|
||||
public int m_nFormatTo;
|
||||
|
||||
public int? m_nCsvTxtEncoding;
|
||||
public int? m_nCsvDelimiter;
|
||||
public bool? m_bPaid;
|
||||
public bool? m_bEmbeddedFonts;
|
||||
public bool? m_bFromChanges;
|
||||
public string m_sFontDir;
|
||||
public string m_sThemeDir;
|
||||
|
||||
public DateTime m_oTimestamp;
|
||||
|
||||
public TaskQueueDataConvert()
|
||||
{
|
||||
m_oTimestamp = DateTime.UtcNow;
|
||||
m_sFontDir = null;
|
||||
m_sThemeDir = null;
|
||||
}
|
||||
public TaskQueueDataConvert(string sKey, string sFileFrom, int nFormatFrom, string sFileTo, int nFormatTo)
|
||||
{
|
||||
m_oTimestamp = DateTime.UtcNow;
|
||||
m_sKey = sKey;
|
||||
m_sFileFrom = sFileFrom;
|
||||
m_nFormatFrom = nFormatFrom;
|
||||
m_sFileTo = sFileTo;
|
||||
m_nFormatTo = nFormatTo;
|
||||
m_sFontDir = null;
|
||||
m_sThemeDir = null;
|
||||
}
|
||||
public static string SerializeToXml(TaskQueueDataConvert oData)
|
||||
{
|
||||
return Utils.SerializeToXml(typeof(TaskQueueDataConvert), oData);
|
||||
}
|
||||
public static TaskQueueDataConvert DeserializeFromXml(string sXml)
|
||||
{
|
||||
return Utils.DeserializeFromXml(typeof(TaskQueueDataConvert), sXml) as TaskQueueDataConvert;
|
||||
}
|
||||
}
|
||||
public interface ITaskQueue
|
||||
{
|
||||
ErrorTypes AddTask(TaskQueueData oTask, Priority oPriority);
|
||||
void AddTaskBegin(TaskQueueData oTask, Priority oPriority, AsyncCallback fCallback, object oParam);
|
||||
ErrorTypes AddTaskEnd(IAsyncResult ar);
|
||||
|
||||
TaskQueueData GetTask();
|
||||
void GetTaskBegin(AsyncCallback fCallback, object oParam);
|
||||
TaskQueueData GetTaskEnd(IAsyncResult ar);
|
||||
|
||||
ErrorTypes RemoveTask(object key);
|
||||
void RemoveTaskBegin(object key, AsyncCallback fCallback, object oParam);
|
||||
ErrorTypes RemoveTaskEnd(IAsyncResult ar);
|
||||
}
|
||||
public class CTaskQueue : ITaskQueue
|
||||
{
|
||||
private ITaskQueue m_oTaskQueue;
|
||||
public CTaskQueue()
|
||||
{
|
||||
switch (ConfigurationManager.AppSettings["utils.taskqueue.impl"])
|
||||
{
|
||||
case "sqs":
|
||||
m_oTaskQueue = new CTaskQueueAmazonSQS();
|
||||
break;
|
||||
|
||||
case "db":
|
||||
default:
|
||||
m_oTaskQueue = new CTaskQueueDataBase();
|
||||
break;
|
||||
}
|
||||
}
|
||||
public ErrorTypes AddTask(TaskQueueData oTask, Priority oPriority)
|
||||
{
|
||||
return m_oTaskQueue.AddTask(oTask, oPriority);
|
||||
}
|
||||
public void AddTaskBegin(TaskQueueData oTask, Priority oPriority, AsyncCallback fCallback, object oParam)
|
||||
{
|
||||
m_oTaskQueue.AddTaskBegin(oTask, oPriority, fCallback, oParam);
|
||||
}
|
||||
public ErrorTypes AddTaskEnd(IAsyncResult ar)
|
||||
{
|
||||
return m_oTaskQueue.AddTaskEnd(ar);
|
||||
}
|
||||
|
||||
public TaskQueueData GetTask()
|
||||
{
|
||||
return m_oTaskQueue.GetTask();
|
||||
}
|
||||
public void GetTaskBegin(AsyncCallback fCallback, object oParam)
|
||||
{
|
||||
m_oTaskQueue.GetTaskBegin(fCallback, oParam);
|
||||
}
|
||||
public TaskQueueData GetTaskEnd(IAsyncResult ar)
|
||||
{
|
||||
return m_oTaskQueue.GetTaskEnd(ar);
|
||||
}
|
||||
|
||||
public ErrorTypes RemoveTask(object key)
|
||||
{
|
||||
return m_oTaskQueue.RemoveTask(key);
|
||||
}
|
||||
public void RemoveTaskBegin(object key, AsyncCallback fCallback, object oParam)
|
||||
{
|
||||
m_oTaskQueue.RemoveTaskBegin(key, fCallback, oParam);
|
||||
}
|
||||
public ErrorTypes RemoveTaskEnd(IAsyncResult ar)
|
||||
{
|
||||
return m_oTaskQueue.RemoveTaskEnd(ar);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user