lichao
2021-05-08 36e6a35a886252516f168b90f7a9a7c1c5177312
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
 * =====================================================================================
 *
 *       Filename:  defs.cpp
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  2021年04月06日 19时23分14秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Li Chao (), 
 *   Organization:  
 *
 * =====================================================================================
 */
#include "defs.h"
#include "msg.h"
#include "shm_msg_queue.h"
 
namespace
{
 
struct LastError {
    int ec_ = 0;
    std::string msg_;
};
 
LastError &LastErrorStore()
{
    thread_local LastError le;
    return le;
}
 
} // namespace
 
std::string BHomeShmName()
{
    return "bhome_default_shm_v0";
}
bhome_shm::SharedMemory &BHomeShm()
{
    static bhome_shm::SharedMemory shm(BHomeShmName(), 1024 * 1024 * 512);
    return shm;
}
 
bool GlobalInit(bhome_shm::SharedMemory &shm)
{
    MsgI::BindShm(shm);
    typedef std::atomic<MQId> IdSrc;
    IdSrc *psrc = shm.FindOrCreate<IdSrc>("shmqIdSrc0", 100000);
    return psrc && ShmMsgQueue::SetData(*psrc);
}
 
void SetLastError(const int ec, const std::string &msg)
{
    LastErrorStore().ec_ = ec;
    LastErrorStore().msg_ = msg;
}
 
void GetLastError(int &ec, std::string &msg)
{
    ec = LastErrorStore().ec_;
    msg = LastErrorStore().msg_;
}