kodi
ActionDescription.h
1 /*****************************************************************
2 |
3 | Platinum - Managed ActionDescription
4 |
5 | Copyright (c) 2004-2010, Plutinosoft, LLC.
6 | All rights reserved.
7 | http://www.plutinosoft.com
8 |
9 | This program is free software; you can redistribute it and/or
10 | modify it under the terms of the GNU General Public License
11 | as published by the Free Software Foundation; either version 2
12 | of the License, or (at your option) any later version.
13 |
14 | OEMs, ISVs, VARs and other distributors that combine and
15 | distribute commercially licensed software with Platinum software
16 | and do not wish to distribute the source code for the commercially
17 | licensed software under version 2, or (at your option) any later
18 | version, of the GNU General Public License (the "GPL") must enter
19 | into a commercial license agreement with Plutinosoft, LLC.
20 |
21 | This program is distributed in the hope that it will be useful,
22 | but WITHOUT ANY WARRANTY; without even the implied warranty of
23 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 | GNU General Public License for more details.
25 |
26 | You should have received a copy of the GNU General Public License
27 | along with this program; see the file LICENSE.txt. If not, write to
28 | the Free Software Foundation, Inc.,
29 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
30 | http://www.gnu.org/licenses/gpl-2.0.html
31 |
32 ****************************************************************/
33 #pragma once
34 
35 namespace Platinum
36 {
37 
38 ref class ActionArgumentDescription;
39 ref class Service;
40 
41 /*----------------------------------------------------------------------
42 | ActionDescription
43 +---------------------------------------------------------------------*/
44 public ref class ActionDescription
45 {
46 private:
47 
48  PLT_ActionDesc* m_pHandle;
49 
50 internal:
51 
52  property PLT_ActionDesc& Handle
53  {
54  PLT_ActionDesc& get()
55  {
56  return *m_pHandle;
57  }
58  }
59 
60 public:
61 
62  property String^ Name
63  {
64  String^ get()
65  {
66  return gcnew String(m_pHandle->GetName());
67  }
68  }
69 
70  property IEnumerable<ActionArgumentDescription^>^ Arguments
71  {
72  IEnumerable<ActionArgumentDescription^>^ get();
73  }
74 
75  property Service^ ParentService
76  {
77  Service^ get();
78  }
79 
80 public:
81 
82  ActionArgumentDescription^ GetArgument(String^ name);
83 
84 public:
85 
86  virtual Boolean Equals(Object^ obj) override
87  {
88  if (obj == nullptr)
89  return false;
90 
91  if (!this->GetType()->IsInstanceOfType(obj))
92  return false;
93 
94  return (m_pHandle == ((ActionDescription^)obj)->m_pHandle);
95  }
96 
97 internal:
98 
100  {
101  m_pHandle = &devData;
102  }
103 
104 public:
105 
107  {
108  // clean-up managed
109 
110  // clean-up unmanaged
111  this->!ActionDescription();
112  }
113 
115  {
116  }
117 
118 };
119 
120 }
121 
122 // marshal wrapper
123 PLATINUM_MANAGED_MARSHAL_AS(Platinum::ActionDescription, PLT_ActionDesc);
const NPT_String & GetName() const
Return the action name.
Definition: PltAction.h:84
Definition: Service.h:45
Definition: ActionDescription.h:44
The PLT_ActionDesc class provides information about a UPnP Service given action.
Definition: PltAction.h:61
Definition: ActionArgumentDescription.h:53