📄 dsmpc.cpp
字号:
#include <string.h>
#include <smpc/dsmpccli.h>
#include <smpc/dsmpcsrv.h>
DSmpcServer* DSmpc :: GetSrv(dword sid)
{
for(DSmpcServer* i = (DSmpcServer*)first(); i && i->Sid() != sid; i = (DSmpcServer*)i->next());
return i;
}
void DSmpc :: PostCall(dword sid, dword proc, int error)
{
DSmpcServer* s = GetSrv(sid);
if(s) s->PostCall(proc,error);
}
char* DSmpcClient :: About(char* str, unsigned len)
{
DSmpcParam rp = {str,len};
if(Call(Smpc_Proc_About,0,0,&rp,1) == Smpc_Err_Type)
{ SmpcSet(&rp,str,len); Call(Smpc_Proc_About,0,0,&rp,1); }
if(Error() != Smpc_Success) return 0;
if(!rp.size && len) str[0] = 0;
return str;
}
dword DSmpcServer :: Sid(dword _sid)
{
DSmpc* smpc = Smpc();
unlink();
sid = _sid;
if(smpc) smpc->add(this);
return sid;
}
int DSmpcServer :: Cb_About(void*, dword, void* rd, dword& rcv)
{
if(!rcv) return Smpc_Err_OutSize;
if(!About()) { rcv = 0; return Smpc_Success; }
dword len = strlen(About()) + 1;
if(len > rcv) len = rcv;
memcpy(rd,About(),len - 1); ((char*)rd)[len - 1] = 0;
rcv = len;
return Smpc_Success;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -