今天主要设计了一下辅助类的,因为对于双缓冲,在neuron神经元和main函数中都需要使用moduli缓冲,所以我思考了很久,决定写一个辅助函数Manager,并且使用单例模式实现它,这样无论是neuron修改moduli,还是main函数修改moduli都可以实现统一的读写机制
#ifndef MANAGER_H
#define MANAGER_H
#include<vector>
class Manager
{
private:
std::vector<int> moduli;
// 将其构造和析构成为私有的, 禁止外部构造和析构
Manager(){};
~Manager(){};
// 将其拷贝构造和赋值构造成为私有函数, 禁止外部拷贝和赋值
Manager(const Manager &other){};
const Manager &operator=(const Manager &other){};
// 唯一单例对象指针
static Manager *manager;
public:
// 获取单例对象
static Manager *kernel();
//初始化moduli
void init_moduli(int min_delay,int max_delay);
//该表每时间片旋转一次。所有节点更新后调用。(T+d)mod max_delay的值
void update_moduli(int min_delay,int max_delay);
int get_modulo(int offset);
};
//初始化静态成员变量
Manager *Manager::manager = NULL;
Manager* Manager::kernel()
{
if (manager = NULL)
{
manager = new Manager();
}
return manager;
}
void Manager::init_moduli(int min_delay,int max_delay)
{
}
void Manager::update_moduli(int min_delay,int max_delay)
{
}
int Manager::get_modulo(int offset)
{
return 0;
}
#endif
今天只是搭建了一个简单的框架,内容还没有进行填充,明天可能没有时间写代码,所以后台我会更新一下代码的逻辑。与这段代码进行调试