This commit is contained in:
codeboss 2024-11-16 13:11:57 +08:00
parent 4689ed7374
commit be158c8e4e
5 changed files with 45 additions and 9 deletions

View File

@ -37,7 +37,7 @@
</ImportGroup> </ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="QtSettings"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="QtSettings">
<QtInstall>5.12.11_msvc2017_64</QtInstall> <QtInstall>5.12.11_msvc2017_64</QtInstall>
<QtModules>core</QtModules> <QtModules>core;network</QtModules>
<QtBuildConfig>debug</QtBuildConfig> <QtBuildConfig>debug</QtBuildConfig>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="QtSettings">
@ -94,12 +94,14 @@
<ItemGroup> <ItemGroup>
<ClCompile Include="dispatch.cpp" /> <ClCompile Include="dispatch.cpp" />
<ClCompile Include="main.cpp" /> <ClCompile Include="main.cpp" />
<ClCompile Include="msgs_types.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="cmds.h" /> <ClInclude Include="cmds.h" />
<ClInclude Include="cmds_basic.h" /> <ClInclude Include="cmds_basic.h" />
<ClInclude Include="data_types.h" /> <ClInclude Include="data_types.h" />
<ClInclude Include="dispatch.h" /> <ClInclude Include="dispatch.h" />
<ClInclude Include="msgs_types.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')"> <ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">

View File

@ -29,6 +29,9 @@
<ClCompile Include="dispatch.cpp"> <ClCompile Include="dispatch.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="msgs_types.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="cmds_basic.h"> <ClInclude Include="cmds_basic.h">
@ -43,5 +46,8 @@
<ClInclude Include="data_types.h"> <ClInclude Include="data_types.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="msgs_types.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -9,29 +9,35 @@ namespace datas {
public: public:
virtual ~IDataObject() = default; virtual ~IDataObject() = default;
virtual bool isValid() const = 0;
virtual bool isArray() const = 0; virtual bool isArray() const = 0;
virtual bool getBool(const QString& key) = 0;
virtual double getDouble(const QString& key) = 0;
virtual int32_t getInt32(const QString& key) = 0;
virtual int64_t getInt64(const QString& key) = 0;
virtual QString getString(const QString& key) = 0;
virtual IDataObject getObject(const QString& key) = 0;
virtual IDataArray toArray() = 0; virtual IDataArray toArray() = 0;
virtual bool getBool(const QString& key) const = 0;
virtual double getDouble(const QString& key) const = 0;
virtual int32_t getInt32(const QString& key) const = 0;
virtual int64_t getInt64(const QString& key) const = 0;
virtual QString getString(const QString& key) const = 0;
virtual IDataObject getObject(const QString& key) const = 0;
virtual void setBool(const QString& key, bool value) = 0; virtual void setBool(const QString& key, bool value) = 0;
virtual void setDouble(const QString& key, double value) = 0; virtual void setDouble(const QString& key, double value) = 0;
virtual void setInt32(const QString& key, int32_t value) = 0; virtual void setInt32(const QString& key, int32_t value) = 0;
virtual void setInt64(const QString& key, int64_t value) = 0; virtual void setInt64(const QString& key, int64_t value) = 0;
virtual void setString(const QString& key, const QString& value) = 0; virtual void setString(const QString& key, const QString& value) = 0;
virtual void setObject(const QString& key, IDataObject value) = 0; virtual void setObject(const QString& key, IDataObject value) = 0;
virtual QString toText() const = 0;
virtual void loadFrom(const QString &text) = 0;
}; };
class IDataArray : public IDataObject { class IDataArray : public IDataObject {
public: public:
virtual ~IDataArray() = default; virtual ~IDataArray() = default;
virtual bool isValid() const = 0;
virtual int32_t size() const = 0; virtual int32_t size() const = 0;
virtual IDataObject get(int index) = 0; virtual IDataObject get(int index) const = 0;
virtual void insert(int index, IDataObject value) = 0; virtual void insert(int index, IDataObject value) = 0;
virtual void append(IDataObject value) = 0; virtual void append(IDataObject value) = 0;
}; };

View File

@ -0,0 +1,12 @@
#include "msgs_types.h"
using namespace msgs;
QByteArray getMessage(const datas::IDataObject& obj) {
auto content = obj.toText().toUtf8();
auto header = QString(u8"Content-Length:%1\n").arg(content.length());
auto u8_content = header.toUtf8();
u8_content.append(content);
return u8_content;
}

View File

@ -0,0 +1,10 @@
#pragma once
#include <QString>
#include "data_types.h"
namespace msgs {
QByteArray getMessage(const datas::IDataObject &obj);
}