Skip to content

Commit

Permalink
[JSONRPC] Allow the IDictionary interface to auto generate the JSONRP…
Browse files Browse the repository at this point in the history
…C interface. (#267)
  • Loading branch information
pwielders authored Jul 31, 2023
1 parent bb725fc commit 1b1c5f8
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
10 changes: 10 additions & 0 deletions definitions/Definitions.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,16 @@
<ClCompile Include="Definitions.cpp" />
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\interfaces\IDictionary.h">
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)../interfaces/json/JDictionary.h</Outputs>
<OutputItemType Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">None</OutputItemType>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)../interfaces/json/JDictionary.h</Outputs>
<OutputItemType Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">None</OutputItemType>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)../interfaces/json/JDictionary.h</Outputs>
<OutputItemType Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">None</OutputItemType>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)../interfaces/json/JDictionary.h</Outputs>
<OutputItemType Condition="'$(Configuration)|$(Platform)'=='Release|x64'">None</OutputItemType>
</CustomBuild>
<ClInclude Include="ValuePoint.h" />
<CustomBuild Include="..\interfaces\IMath.h">
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)../interfaces/json/JMath.h</Outputs>
Expand Down
3 changes: 3 additions & 0 deletions definitions/Definitions.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -189,5 +189,8 @@
<CustomBuild Include="..\interfaces\IScriptEngine.h">
<Filter>Interfaces</Filter>
</CustomBuild>
<CustomBuild Include="..\interfaces\IDictionary.h">
<Filter>Interfaces</Filter>
</CustomBuild>
</ItemGroup>
</Project>
10 changes: 7 additions & 3 deletions interfaces/IDictionary.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@ namespace Exchange {

// This interface gives direct access to a Browser to change
// Browser specific properties like displayed URL.
/* @json 1.0.0 */
struct EXTERNAL IDictionary : virtual public Core::IUnknown {
enum { ID = ID_DICTIONARY };

// @event
struct EXTERNAL INotification : virtual public Core::IUnknown {
enum { ID = ID_DICTIONARY_NOTIFICATION };

Expand Down Expand Up @@ -58,9 +60,11 @@ namespace Exchange {
virtual void Unregister(const string& nameSpace, struct IDictionary::INotification* sink) = 0;

// Getters and Setters for the dictionary.
virtual bool Get(const string& nameSpace, const string& key, string& value /* @out */) const = 0;
virtual bool Set(const string& nameSpace, const string& key, const string& value) = 0;
virtual IIterator* Get(const string& nameSpace) const = 0;
virtual Core::hresult Get(const string& nameSpace, const string& key, string& value /* @out */) const = 0;
virtual Core::hresult Set(const string& nameSpace, const string& key, const string& value) = 0;

// @json:omit
virtual IIterator* Get(const string& nameSpace) const = 0;
};
}
}
Expand Down

0 comments on commit 1b1c5f8

Please sign in to comment.