📄 sendreceivemechanism.cpp
字号:
#include <iostream>
#include<fstream>
#include <algorithm>
#include "sendreceivemechanism.h"
void user0send(boxuser &boxuser0,box &mybox)
{
if (mybox.full==true)//信箱满了,则将boxuser0的等待标志置一
{
boxuser0.waitsend=1;//有消息等待发送
cout<<"信箱满了!等会儿在发"<<endl;
}
else
{
letter temp;
temp.distination=1;//目标地址user1
temp.cont=boxuser0.send.cont;
temp.size=boxuser0.send.size;
mybox.letters1.push_back(temp);// 放在发给user1的队列中
mybox.length+=1;
boxuser0.waitsend=0;
if(mybox.empty==1)
mybox.empty=0;//信箱不空
if (mybox.length==BOXCAP)
{
mybox.full=true;//信箱满
}
}
}
void user0recieve(boxuser &boxuser0,box &mybox)
{
if (mybox.letters0.empty())
{
boxuser0.waitrecieve=true;//等待接收
cout<<"没有要发送给user0的信" <<endl;
}
else
{
letter temp;
temp=mybox.letters0.front();//取出
mybox.letters0.pop_front();//移除
boxuser0.recieve.cont=temp.cont;
boxuser0.recieve.size=temp.size;
boxuser0.recieve.distination=temp.distination;
mybox.length=mybox.length-1;
cout<<"the user0 "<<boxuser0.recieve.cont<<endl;
boxuser0.waitrecieve=false;
}
if(mybox.full==true)
mybox.full=false;//新型不满
if (mybox.length==false)
{
mybox.empty=true;
}
}
void user1send(boxuser &boxuser1,box &mybox)
{
if (mybox.full==true)//信箱满了,则将boxuser1的等待标志置一
{
boxuser1.waitsend=true;//有消息等待发送
cout<<"信箱满了!等会儿在发"<<endl;
}
else
{
letter temp;
temp.distination=0;//目标地址user0
temp.cont=boxuser1.send.cont;
temp.size=boxuser1.send.size;
mybox.letters0.push_back(temp);// 放在发给user0的队列中
mybox.length+=1;
boxuser1.waitrecieve=false;
if(mybox.empty==1)
mybox.empty=0;//信箱不空
if (mybox.length==BOXCAP)
{
mybox.full=true;
}
}
}
void user1recieve(boxuser &boxuser1,box &mybox)
{
if (mybox.letters1.empty())
{
boxuser1.waitrecieve=true;//等待接收
cout<<"没有要发送给user1的信" <<endl;
}
else
{
letter temp;
temp=mybox.letters1.front();//取出
mybox.letters1.pop_front();//移除
boxuser1.recieve.cont=temp.cont;
boxuser1.recieve.size=temp.size;
boxuser1.recieve.distination=temp.distination;
mybox.length=mybox.length-1;
cout<<"the user1 is"<<boxuser1.recieve.cont<<endl;
boxuser1.waitrecieve=false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -