Blockchain coding

本文介绍了如何在C++中使用`pension_http_server.h`和相关库创建一个Pension应用的后端服务,包括ServiceBackend和ServerBackend的初始化,以及HTTP服务器的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// Created by user on 23-8-8.
//

#include "pension_http_server.h"
#include "common/property.h"
#include "httplib.h"

int main(int argc, char *argv[]) {
    if (!util::Properties::LoadProperties("peer.yaml")) {
        LOG(ERROR) << "Load config failed!";
        return -1;
    }
    auto service = demo::pension::ServiceBackend::NewServiceBackend(util::Properties::GetSharedProperties());

    if (service == nullptr) {
        return -1;
    }
    auto httpServer = std::make_shared<httplib::Server>();
    auto server = demo::pension::ServerBackend::NewServerBackend(std::move(service), httpServer);
    if (server == nullptr) {
        return -1;
    }
    if (!httpServer->listen("0.0.0.0", 8081)) {
        return -1;
    }
    return 0;
}
在这里main function
// Created by user on 23-8-8.
//

#pragma once

#include "common/crypto.h"
#include "client/core/status.h"

namespace client::sdk {
    class ClientSDK;
}

namespace proto {
    class Envelop;
}

namespace httplib {
    class Server;
}

namespace client::sdk {
    class ReceiveInterface;
}

namespace util {
    class Properties;
}

namespace demo::pension {
    class ServiceBackend {
    public:
        static std::unique_ptr<ServiceBackend> NewServiceBackend(std::shared_ptr<util::Properties> prop);

        ~ServiceBackend();

    public:
        client::core::Status put(const std::string& key, const std::string& value);

        client::core::Status putDigest(const std::string& key, const util::OpenSSLSHA256::digestType& digest);

        client::core::Status getDigest(const std::string& key);

        client::sdk::ReceiveInterface* getReceiver();

        const util::Properties& getProperties() { return *_prop; }

    protected:
        ServiceBackend() = default;

    private:
        std::unique_ptr<client::sdk::ClientSDK> _sdk;
        std::shared_ptr<util::Properties> _prop;
    };

    class ServerController;

    class ServerBackend {
    public:
        ~ServerBackend();

        static std::unique_ptr<ServerBackend> NewServerBackend(std::unique_ptr<ServiceBackend> service,
                                                               std::shared_ptr<httplib::Server> httpServer);

    protected:
        ServerBackend() = default;

    private:
        std::shared_ptr<httplib::Server> _server;

        std::unique_ptr<ServerController> _controller;
    };
}
在这里server.h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值