diff options
| author | 7illusions <z@7illusions.com> | 2014-05-12 16:55:07 +0200 |
|---|---|---|
| committer | 7illusions <z@7illusions.com> | 2014-05-12 16:55:07 +0200 |
| commit | baf5cf2544fcaad2246923f60caaf3fed4a94aaf (patch) | |
| tree | a808b700095f876e437b95c432c0220e241f9fda /OpenSubtitlesHandler/Interfaces | |
| parent | 8f3a6279e173dcbaaa05a56556afb410ee12dd4d (diff) | |
| parent | b9b568de13d81f9db1a8502d50940475c1d79c72 (diff) | |
Merge pull request #3 from MediaBrowser/master
Sync with Master
Diffstat (limited to 'OpenSubtitlesHandler/Interfaces')
| -rw-r--r-- | OpenSubtitlesHandler/Interfaces/IMethodResponse.cs | 62 | ||||
| -rw-r--r-- | OpenSubtitlesHandler/Interfaces/MethodResponseAttr.cs | 40 |
2 files changed, 102 insertions, 0 deletions
diff --git a/OpenSubtitlesHandler/Interfaces/IMethodResponse.cs b/OpenSubtitlesHandler/Interfaces/IMethodResponse.cs new file mode 100644 index 000000000..b8e24f12b --- /dev/null +++ b/OpenSubtitlesHandler/Interfaces/IMethodResponse.cs @@ -0,0 +1,62 @@ +/* This file is part of OpenSubtitles Handler + A library that handle OpenSubtitles.org XML-RPC methods. + + Copyright © Ala Ibrahim Hadid 2013 + + 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 3 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, see <http://www.gnu.org/licenses/>. + */ +using System; +using System.ComponentModel; + +namespace OpenSubtitlesHandler +{ + /// <summary> + /// When you call a method to communicate with OpenSubtitles server, that method should return this response with the reuired information. + /// </summary> + public abstract class IMethodResponse + { + public IMethodResponse() { LoadAttributes(); } + public IMethodResponse(string name, string message) + { + this.name = name; + this.message = message; + } + protected string name; + protected string message; + protected double seconds; + protected string status; + + protected virtual void LoadAttributes() + { + foreach (Attribute attr in Attribute.GetCustomAttributes(this.GetType())) + { + if (attr.GetType() == typeof(MethodResponseDescription)) + { + this.name = ((MethodResponseDescription)attr).Name; + this.message = ((MethodResponseDescription)attr).Message; + break; + } + } + } + + [Description("The name of this response"), Category("MethodResponse")] + public virtual string Name { get { return name; } set { name = value; } } + [Description("The message about this response"), Category("MethodResponse")] + public virtual string Message { get { return message; } set { message = value; } } + [Description("Time taken to execute this command on server"), Category("MethodResponse")] + public double Seconds { get { return seconds; } set { seconds = value; } } + [Description("The status"), Category("MethodResponse")] + public string Status { get { return status; } set { status = value; } } + } +} diff --git a/OpenSubtitlesHandler/Interfaces/MethodResponseAttr.cs b/OpenSubtitlesHandler/Interfaces/MethodResponseAttr.cs new file mode 100644 index 000000000..57f01d4d9 --- /dev/null +++ b/OpenSubtitlesHandler/Interfaces/MethodResponseAttr.cs @@ -0,0 +1,40 @@ +/* This file is part of OpenSubtitles Handler + A library that handle OpenSubtitles.org XML-RPC methods. + + Copyright © Ala Ibrahim Hadid 2013 + + 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 3 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, see <http://www.gnu.org/licenses/>. + */ +using System; + +namespace OpenSubtitlesHandler +{ + /// <summary> + /// Attributes to describe a method response object. + /// </summary> + public class MethodResponseDescription : Attribute + { + public MethodResponseDescription(string name, string message) + { + this.name = name; + this.message = message; + } + + private string name; + private string message; + + public string Name { get { return name; } set { name = value; } } + public string Message { get { return message; } set { message = value; } } + } +} |
