Finished AC and ACT service serialization

This commit is contained in:
Hamish Milne 2019-12-24 23:17:24 +00:00 committed by zhupengfei
parent 3fd5c431f1
commit 89e4e49a63
11 changed files with 33 additions and 5 deletions

2
TODO
View file

@ -62,7 +62,7 @@
✔ Wait object @done(19-08-13 16:46) ✔ Wait object @done(19-08-13 16:46)
☐ Service @started(19-12-23 12:49) ☐ Service @started(19-12-23 12:49)
✔ AC @started(19-12-23 12:48) @done(19-12-24 22:38) @lasted(1d9h50m3s) ✔ AC @started(19-12-23 12:48) @done(19-12-24 22:38) @lasted(1d9h50m3s)
☐ ACT ✔ ACT @done(19-12-24 23:17)
☐ AM ☐ AM
☐ APT ☐ APT
☐ BOSS ☐ BOSS

View file

@ -6,8 +6,6 @@
#include <array> #include <array>
#include <memory> #include <memory>
#include <boost/serialization/base_object.hpp>
#include <boost/serialization/shared_ptr.hpp>
#include "core/hle/service/service.h" #include "core/hle/service/service.h"
namespace Core { namespace Core {

View file

@ -5,7 +5,6 @@
#pragma once #pragma once
#include <memory> #include <memory>
#include <boost/serialization/base_object.hpp>
#include "core/hle/service/ac/ac.h" #include "core/hle/service/ac/ac.h"
namespace Service::AC { namespace Service::AC {

View file

@ -3,6 +3,7 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "core/hle/service/ac/ac_u.h" #include "core/hle/service/ac/ac_u.h"
#include "common/archives.h"
namespace Service::AC { namespace Service::AC {
@ -33,3 +34,5 @@ AC_U::AC_U(std::shared_ptr<Module> ac) : Module::Interface(std::move(ac), "ac:u"
} }
} // namespace Service::AC } // namespace Service::AC
SERIALIZE_EXPORT_IMPL(Service::AC::AC_U)

View file

@ -12,6 +12,12 @@ namespace Service::AC {
class AC_U final : public Module::Interface { class AC_U final : public Module::Interface {
public: public:
explicit AC_U(std::shared_ptr<Module> ac); explicit AC_U(std::shared_ptr<Module> ac);
private:
SERVICE_SERIALIZATION(AC_U, ac)
}; };
} // namespace Service::AC } // namespace Service::AC
BOOST_CLASS_EXPORT_KEY(Service::AC::AC_U)
BOOST_SERIALIZATION_CONSTRUCT(Service::AC::AC_U)

View file

@ -20,9 +20,13 @@ public:
Interface(std::shared_ptr<Module> act, const char* name); Interface(std::shared_ptr<Module> act, const char* name);
~Interface(); ~Interface();
private: protected:
std::shared_ptr<Module> act; std::shared_ptr<Module> act;
}; };
private:
template <class Archive>
inline void serialize(Archive& ar, const unsigned int file_version) { }
friend class boost::serialization::access;
}; };
void InstallInterfaces(Core::System& system); void InstallInterfaces(Core::System& system);

View file

@ -3,6 +3,7 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "core/hle/service/act/act_a.h" #include "core/hle/service/act/act_a.h"
#include "common/archives.h"
namespace Service::ACT { namespace Service::ACT {
@ -24,3 +25,5 @@ ACT_A::ACT_A(std::shared_ptr<Module> act) : Module::Interface(std::move(act), "a
} }
} // namespace Service::ACT } // namespace Service::ACT
SERIALIZE_EXPORT_IMPL(Service::ACT::ACT_A)

View file

@ -11,6 +11,11 @@ namespace Service::ACT {
class ACT_A final : public Module::Interface { class ACT_A final : public Module::Interface {
public: public:
explicit ACT_A(std::shared_ptr<Module> act); explicit ACT_A(std::shared_ptr<Module> act);
private:
SERVICE_SERIALIZATION(ACT_A, act)
}; };
} // namespace Service::ACT } // namespace Service::ACT
BOOST_CLASS_EXPORT_KEY(Service::ACT::ACT_A)
BOOST_SERIALIZATION_CONSTRUCT(Service::ACT::ACT_A)

View file

@ -3,6 +3,7 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "core/hle/service/act/act_u.h" #include "core/hle/service/act/act_u.h"
#include "common/archives.h"
namespace Service::ACT { namespace Service::ACT {
@ -20,3 +21,5 @@ ACT_U::ACT_U(std::shared_ptr<Module> act) : Module::Interface(std::move(act), "a
} }
} // namespace Service::ACT } // namespace Service::ACT
SERIALIZE_EXPORT_IMPL(Service::ACT::ACT_U)

View file

@ -11,6 +11,11 @@ namespace Service::ACT {
class ACT_U final : public Module::Interface { class ACT_U final : public Module::Interface {
public: public:
explicit ACT_U(std::shared_ptr<Module> act); explicit ACT_U(std::shared_ptr<Module> act);
private:
SERVICE_SERIALIZATION(ACT_U, act)
}; };
} // namespace Service::ACT } // namespace Service::ACT
BOOST_CLASS_EXPORT_KEY(Service::ACT::ACT_U)
BOOST_SERIALIZATION_CONSTRUCT(Service::ACT::ACT_U)

View file

@ -11,6 +11,8 @@
#include <string> #include <string>
#include <boost/container/flat_map.hpp> #include <boost/container/flat_map.hpp>
#include <boost/serialization/assume_abstract.hpp> #include <boost/serialization/assume_abstract.hpp>
#include <boost/serialization/shared_ptr.hpp>
#include <boost/serialization/base_object.hpp>
#include "common/common_types.h" #include "common/common_types.h"
#include "common/construct.h" #include "common/construct.h"
#include "core/hle/kernel/hle_ipc.h" #include "core/hle/kernel/hle_ipc.h"