Generate static Save and Load methods for RPCs
Reviewers: mtomic, mferencevic Reviewed By: mferencevic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1995
This commit is contained in:
parent
5dc362d9f5
commit
95f4d1c3fa
@ -4,6 +4,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "communication/rpc/messages.hpp"
|
||||
#include "communication/rpc/serialization.hpp"
|
||||
#include "database/distributed/counters_rpc_messages.capnp.h"
|
||||
cpp<#
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "communication/rpc/messages.hpp"
|
||||
#include "communication/rpc/serialization.hpp"
|
||||
#include "distributed/dynamic_worker_rpc_messages.capnp.h"
|
||||
cpp<#
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "communication/rpc/messages.hpp"
|
||||
#include "communication/rpc/serialization.hpp"
|
||||
#include "distributed/storage_gc_rpc_messages.capnp.h"
|
||||
#include "io/network/endpoint.hpp"
|
||||
#include "transactions/transaction.hpp"
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "communication/rpc/messages.hpp"
|
||||
#include "communication/rpc/serialization.hpp"
|
||||
#include "distributed/token_sharing_rpc_messages.capnp.h"
|
||||
cpp<#
|
||||
|
||||
|
@ -1371,12 +1371,64 @@ enums which aren't defined in LCP."
|
||||
,(decl-type-info req-name)
|
||||
,(def-constructor req-name (second request)))
|
||||
(:serialize (:slk) (:capnp)))
|
||||
(let ((req-class (find-cpp-class ',req-sym)))
|
||||
(unless (lcp.slk::save-extra-args req-class)
|
||||
(push ,(progn
|
||||
#>cpp
|
||||
static void Save(const ${req-name} &self, slk::Builder *builder);
|
||||
cpp<#)
|
||||
(cpp-class-public req-class))
|
||||
(in-impl
|
||||
,(progn
|
||||
#>cpp
|
||||
void ${req-name}::Save(const ${req-name} &self, slk::Builder *builder) {
|
||||
slk::Save(self, builder);
|
||||
}
|
||||
cpp<#)))
|
||||
(unless (lcp.slk::load-extra-args req-class)
|
||||
(push ,(progn #>cpp
|
||||
static void Load(${req-name} *self, slk::Reader *reader);
|
||||
cpp<#)
|
||||
(cpp-class-public req-class))
|
||||
(in-impl
|
||||
,(progn
|
||||
#>cpp
|
||||
void ${req-name}::Load(${req-name} *self, slk::Reader *reader) {
|
||||
slk::Load(self, reader);
|
||||
}
|
||||
cpp<#))))
|
||||
(define-struct ,res-sym ()
|
||||
,@(cdr response)
|
||||
(:public
|
||||
,(decl-type-info res-name)
|
||||
,(def-constructor res-name (second response)))
|
||||
(:serialize (:slk) (:capnp)))
|
||||
(let ((res-class (find-cpp-class ',res-sym)))
|
||||
(unless (lcp.slk::save-extra-args res-class)
|
||||
(push ,(progn
|
||||
#>cpp
|
||||
static void Save(const ${res-name} &self, slk::Builder *builder);
|
||||
cpp<#)
|
||||
(cpp-class-public res-class))
|
||||
(in-impl
|
||||
,(progn
|
||||
#>cpp
|
||||
void ${res-name}::Save(const ${res-name} &self, slk::Builder *builder) {
|
||||
slk::Save(self, builder);
|
||||
}
|
||||
cpp<#)))
|
||||
(unless (lcp.slk::load-extra-args res-class)
|
||||
(push ,(progn #>cpp
|
||||
static void Load(${res-name} *self, slk::Reader *reader);
|
||||
cpp<#)
|
||||
(cpp-class-public res-class))
|
||||
(in-impl
|
||||
,(progn
|
||||
#>cpp
|
||||
void ${res-name}::Load(${res-name} *self, slk::Reader *reader) {
|
||||
slk::Load(self, reader);
|
||||
}
|
||||
cpp<#))))
|
||||
,rpc-decl))))
|
||||
|
||||
(defun read-lcp (filepath)
|
||||
|
@ -132,7 +132,7 @@
|
||||
(members :initarg :members :initform nil :reader cpp-class-members)
|
||||
;; Custom C++ code in 3 scopes. May be a list of C++ meta information or a
|
||||
;; single element.
|
||||
(public :initarg :public :initform nil :reader cpp-class-public)
|
||||
(public :initarg :public :initform nil :accessor cpp-class-public)
|
||||
(protected :initarg :protected :initform nil :reader cpp-class-protected)
|
||||
(private :initarg :private :initform nil :accessor cpp-class-private)
|
||||
(capnp-opts :type (or null capnp-opts) :initarg :capnp-opts :initform nil
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "communication/rpc/messages.hpp"
|
||||
#include "communication/rpc/serialization.hpp"
|
||||
#include "raft/storage_info_rpc_messages.capnp.h"
|
||||
#include "rpc/serialization.hpp"
|
||||
cpp<#
|
||||
|
@ -2,6 +2,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "communication/rpc/messages.hpp"
|
||||
#include "communication/rpc/serialization.hpp"
|
||||
#include "stats/stats_rpc_messages.capnp.h"
|
||||
#include "rpc/serialization.hpp"
|
||||
#include "utils/timestamp.hpp"
|
||||
|
@ -2,6 +2,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "communication/rpc/messages.hpp"
|
||||
#include "communication/rpc/serialization.hpp"
|
||||
#include "transactions/commit_log.hpp"
|
||||
#include "transactions/distributed/engine_rpc_messages.capnp.h"
|
||||
#include "transactions/snapshot.hpp"
|
||||
|
Loading…
Reference in New Issue
Block a user