⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 param.cpp

📁 用socket++,zthread,occi开发的连数据库处理业务的网络中间件服务器程序
💻 CPP
字号:
//---------------------------------------------------------------------------
#pragma hdrstop
#include "param.h"
ParamList::ParamList()
{
    memset(this,0,sizeof(this));
    Next = NULL;
    Left = NULL;
}
ParamList::ParamList(char *name,char *value,char *type)
{
    SetParamList(name,value,type);
    Next = NULL;
    Left = NULL;
}

ParamList* ParamList::AddNext(ParamList *list)
{
    ParamList *tmp = this;
    for(;tmp->Next != NULL;tmp = tmp->Next)
        ;
    tmp->Next = list;
    return list;
}
ParamList* ParamList::AddLeft(ParamList *list)
{
    ParamList *tmp = this;
    for(;tmp->Left != NULL;tmp = tmp->Left)
        ;
    tmp->Left = list;
    return list;
}
ParamList::~ParamList()
{
    if(Next != NULL)
    {
        delete Next;
        Next = NULL;
    }
    if(Left != NULL)
    {
        delete Left;
        Left = NULL;
    }
}
ParamList* ParamList::CopyParamList(ParamList *src)
{
    if(src == NULL) return NULL;
    ParamList *rtn = new ParamList();
    if(rtn == NULL) return NULL;
    memcpy(rtn,src,sizeof(ParamList));
    rtn->Next = CopyParamList(src->Next);
    rtn->Left = CopyParamList(src->Left);
    return rtn;
}
ParamList* ParamList::SetParamList(char *name,char *value,char *type)
{
    strcpy(ParamName,name);
    strcpy(ParamValue,value);
    strcpy(ParamType,type);
    return this;
}

ParamString::ParamString()
{
    memset(ParamValue,0,MAX_PARAMBYTES);
    ParamLength = 0;
    Next = NULL;
}
ParamString::ParamString(char *value)
{
    strcpy(ParamValue,value);
    ParamLength = strlen(value);
    Next = NULL;
}
ParamString::ParamString(char *value,int len)
{
    memset(ParamValue,0,MAX_PARAMBYTES);
    Next = NULL;
    ParamLength = len;
    if(len > MAX_PARAMBYTES) return;
    memset(ParamValue,32,len);
    strncpy(ParamValue,value,len);
}
ParamString* ParamString::AddNext(ParamString *next)
{
    ParamString *tmp = this;
    for(;tmp->Next != NULL;tmp = tmp->Next)
        ;
    tmp->Next = next;
    return next;
}

ParamString::~ParamString()
{
    if(Next != NULL)
    {
        delete Next;
        Next = NULL;
    }
    ParamLength = 0;
}

ProcParams::ProcParams()
{
    memset(this,0,sizeof(this));
    SendParamCount = 0;
    RecvParamCount = 0;
    RecvParam = NULL;
    SendParam = NULL;
    RecvRows = 0;
    SendRows = 0;
    RecvRowsParam = NULL;
    SendRowsParam = NULL;
    IsRecvRows = 0;
    IsSendRows = 0;
    CursorFields = NULL;
    CursorFieldsCount = 0;
    RecvParamString = NULL;
}
ProcParams::~ProcParams()
{
    if(SendParam != NULL)
    {
        delete SendParam;
        SendParam = NULL;
    }
    if(RecvParam != NULL)
    {
        delete RecvParam;
        RecvParam = NULL;
    }
    if(SendRowsParam != NULL)
    {
        delete SendRowsParam;
        SendRowsParam = NULL;
    }
    if(RecvRowsParam != NULL)
    {
        delete RecvRowsParam;
        RecvRowsParam = NULL;
    }
    if(CursorFields != NULL)
    {
    	delete CursorFields;
    	CursorFields = NULL;
    }
    if(RecvParamString != NULL)
    {
        delete RecvParamString;
        RecvParamString = NULL;
    }
}


ParamList* ProcParams::AddRowRecvParam(ParamList *list,int row)
{
    if(RecvRowsParam == NULL)
    {
        if(row > 0) return NULL;
        RecvRowsParam = list;
        return list;
    }
    if(row == 0)
    {
        RecvRowsParam->AddNext(list);
        return list;
    }
    ParamList *tmp = RecvRowsParam;
    for(int i = 0 ;i < row - 1;i ++)
    {
        if(tmp == NULL) return NULL;
        tmp = tmp->Left;
    }
    if(tmp->Left == NULL)
    {
        tmp->AddLeft(list);
    }
    else
    {
        tmp->Left->AddNext(list);
    }
    return list;
}
//---------------------------------------------------------------------------
ParamList* ProcParams::AddRowSendParam(ParamList *list,int row)
{
    if(SendRowsParam == NULL)
    {
        if(row > 0) return NULL;
        SendRowsParam = list;
        return list;
    }
    if(row == 0)
    {
        SendRowsParam->AddNext(list);
        return list;
    }
    ParamList *tmp = SendRowsParam;
    for(int i = 0 ;i < row - 1;i ++)
    {
        if(tmp == NULL) return NULL;
        tmp = tmp->Left;
    }
    if(tmp->Left == NULL)
    {
        tmp->AddLeft(list);
    }
    else
    {
        tmp->Left->AddNext(list);
    }
    return list;
}
ParamList* ProcParams::AddRecvParam(ParamList *list)
{
    if(RecvParam == NULL)
    {
        RecvParam = list;
    }
    else
    {
        RecvParam->AddNext(list);
    }
    RecvParamCount ++;
    return list;
}
ParamList* ProcParams::AddSendParam(ParamList *list)
{
    if(SendParam == NULL)
    {
        SendParam = list;
    }
    else
    {
        SendParam->AddNext(list);
    }
    SendParamCount ++;
    return list;
}
ParamList* ProcParams::NewSendParam()
{
    ParamList *rtn = new ParamList;
    if(rtn == NULL) return NULL;
    if(SendParam == NULL)
    {
        SendParam = rtn;
    }
    else
    {
        SendParam->AddNext(rtn);
    }
    return rtn;
}
ParamList* ProcParams::NewRecvParam()
{
    ParamList *rtn = new ParamList;
    if(rtn == NULL) return NULL;
    if(RecvParam == NULL)
    {
        RecvParam = rtn;
    }
    else
    {
        RecvParam->AddNext(rtn);
    }
    return rtn;
}
ParamList* ProcParams::NewCursorFields()
{
    ParamList *rtn = new ParamList;
    if(rtn == NULL) return NULL;
    if(CursorFields == NULL)
    {
        CursorFields = rtn;
    }
    else
    {
        CursorFields->AddNext(rtn);
    }
    return rtn;
}
ParamList* ProcParams::NewRowSendParam(int row)
{
    ParamList *rtn = new ParamList;
    if(rtn == NULL) return NULL;
    if(SendRowsParam == NULL)
    {
        if(row > 0) return NULL;
        SendRowsParam = rtn;
        return rtn;
    }
    if(row == 0)
    {
        SendRowsParam->AddNext(rtn);
        return rtn;
    }
    ParamList *tmp = SendRowsParam;
    for(int i = 0 ;i < row - 1;i ++)
    {
        if(tmp == NULL) return NULL;
        tmp = tmp->Left;
    }
    if(tmp->Left == NULL)
    {
        tmp->AddLeft(rtn);
    }
    else
    {
        tmp->Left->AddNext(rtn);
    }
    return rtn;
}
ParamList* ProcParams::NewRowRecvParam(int row)
{
    ParamList *rtn = new ParamList;
    if(rtn == NULL) return NULL;
    if(SendRowsParam == NULL)
    {
        if(row > 0) return NULL;
        RecvRowsParam = rtn;
        return rtn;
    }
    if(row == 0)
    {
        RecvRowsParam->AddNext(rtn);
        return rtn;
    }
    ParamList *tmp = RecvRowsParam;
    for(int i = 0 ;i < row - 1;i ++)
    {
        if(tmp == NULL) return NULL;
        tmp = tmp->Left;
    }
    if(tmp->Left == NULL)
    {
        tmp->AddLeft(rtn);
    }
    else
    {
        tmp->Left->AddNext(rtn);
    }
    return rtn;
}
ParamList* ProcParams::AddCursorFields(ParamList *list)
{
    if(CursorFields == NULL)
    {
        CursorFields = list;
    }
    else
    {
        CursorFields->AddNext(list);
    }
    CursorFieldsCount ++;
    return list;
}
ParamString* ProcParams::AddRecvParamString(ParamString *list)
{
    if(RecvParamString == NULL)
    {
        RecvParamString = list;
    }
    else
    {
        RecvParamString->AddNext(list);
    }
    return list;
}
ProcParams* ProcParams::CopyProcParams(ProcParams *src)
{
    if(SendParam != NULL)
    {
        delete SendParam;
        SendParam = NULL;
    }
    if(RecvParam != NULL)
    {
        delete RecvParam;
        RecvParam = NULL;
    }
    if(SendRowsParam != NULL)
    {
        delete SendRowsParam;
        SendRowsParam = NULL;
    }
    if(RecvRowsParam != NULL)
    {
        delete RecvRowsParam;
        RecvRowsParam = NULL;
    }
    if(CursorFields != NULL)
    {
    	delete CursorFields;
    	CursorFields = NULL;
    }
    if(RecvParamString != NULL)
    {
        delete RecvParamString;
        RecvParamString = NULL;
    }

    strcpy(ProcName,src->ProcName);
    SendParamCount = src->SendParamCount;
    RecvParamCount = src->RecvParamCount;
    CursorFieldsCount = src->CursorFieldsCount;
    SendParam = ParamList::CopyParamList(src->SendParam);
    RecvParam = ParamList::CopyParamList(src->RecvParam);
    CursorFields = ParamList::CopyParamList(src->CursorFields);
    RecvRows = src->RecvRows;
    SendRows = src->SendRows;
    SendRowsParam = ParamList::CopyParamList(src->SendRowsParam);
    RecvRowsParam = ParamList::CopyParamList(src->RecvRowsParam);
    IsSendRows = src->IsSendRows;
    IsRecvRows = src->IsRecvRows;
}


#pragma package(smart_init)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -