Olivia_v2017/Olivia/olv_sock.cpp

88 lines
1.8 KiB
C++

#include "stdafx.h"
#ifdef OLIVIA_COMPILA
#include "olv.h"
#include "olv_sock.h"
Colv_sock::Colv_sock(COlivia *olv)
{
this->olv = olv;
sprintf_s(ip,32,"0.0.0.0");
puerto=19933;
}
Colv_sock::~Colv_sock(void)
{
}
//*************************************************************************************
BOOL Colv_sock::on_datos_recibidos( char *txt )
{
int pr;
char *ch = NULL;
const int SZMSG = OLV_MAX_TAREA+OLV_MAX_MSG_PROCE+10;
char msgtar[SZMSG];
char *secto=NULL;
BOOL ret=TRUE;
if((strstr(txt,OliviaDef::GeneralDef::SockConf)) || (strstr(txt,OliviaDef::GeneralDef::SockConfPlan)) ||
(strstr(txt,OliviaDef::GeneralDef::SockConfTodo)) && !olv->ya_config)
{
if(olv->pon_config(txt))
{
ch = strdup(OliviaDef::GeneralDef::SockConfOk);
}
else
{
ch = strdup(OliviaDef::GeneralDef::SockConfNOk);
}
if(!envia(ch))
{
ret= FALSE;
}
}
else if(strcmp(txt,OliviaDef::GeneralDef::SockProgr)==0)
{
pr=olv->dame_progre();
if(!envia("%ld", pr))
{
ret= FALSE;
}
}
else if(strcmp(txt,OliviaDef::GeneralDef::SockTarea)==0)
{
pr=olv->dame_tarea();
strcpy_s(msgtar, SZMSG,olv->tareas_str[pr]);
if(strlen(olv->msg_proce)>0)
strcat_s(msgtar,olv->msg_proce);
///////////////////
if(!envia("%s", msgtar ))
{
ret= FALSE;
}
}
else if(strcmp(txt,OliviaDef::GeneralDef::SockCanc)==0)
{
//Cancela...
ch = strdup(OliviaDef::GeneralDef::SockCancOk);
if(!envia(ch))
ret= FALSE;
olv->cancela();
}
txt[0]=0;
if(ch)
free(ch);
if(secto)
free(secto);
return ret;
}
//*************************************************************************************
Cstr_socket_srv* Colv_sock::crea_cliente()
{
Colv_sock *s;
s= new Colv_sock(olv);
return s;
}
//*************************************************************************************
#endif