#ifndef __CODB_NET_H__ #define __CODB_NET_H__ #include "db_api/odb_net_m.h" #include "db_api/odb_define.h" #ifndef _WINDOWS64 #include #include #include #include #endif #include "servicemanage.h" #ifdef _WINDOWS64 #ifdef ODB_API_LIB_EXPORTS #define ODB_API_LIB_API __declspec(dllexport) #else #define ODB_API_LIB_API __declspec(dllimport) #endif #else #define ODB_API_LIB_API #endif namespace RTDB_SERVER { template bool serializeProto(const T & message, char * &pret, int & retlen) { std::string output; if (!message.SerializeToString(&output)) { return false; } retlen = output.size(); pret = new char[retlen]; memcpy(pret, output.c_str(), retlen); return true; } template bool parseProto(T & ret_message, const char * buf, int len) { if (!ret_message.ParseFromArray(buf, len)) { return false; } return true; } class ODB_API_LIB_API CODB_NET { public: CODB_NET(); ~CODB_NET(); public: int TableCreate(RTDB_PROTO::REQ_STDB_CREATE& req_create);//1 int TableDelete(RTDB_PROTO::REQ_STDB_DELETE& req_delete);//2 int TableGet(RTDB_PROTO::REQ_READ& read_req, RTDB_PROTO::RSP_READ& read_rsp);//3 int TableGet(RTDB_PROTO::REQ_READ_OLD& read_req, RTDB_PROTO::RSP_READ& read_rsp);//3 for remote int TableGet(RTDB_PROTO::REQ_READ& read_req, RTDB_PROTO::RSP_READ& read_rsp, DB_BYTE_T& remote_byte);//3 int TableGet(RTDB_PROTO::REQ_READ_OLD& read_req, RTDB_PROTO::RSP_READ& read_rsp, DB_BYTE_T& remote_byte);//3 for remote int TableGetASync(RTDB_PROTO::REQ_READ& read_req); int TableGet_OPT(RTDB_PROTO::REQ_READ& read_req, char** buf_ptr, int& data_size);//40 int TableGet_OPT(RTDB_PROTO::REQ_READ_OLD& read_req, char** buf_ptr, int& data_size);//40 for remote int TableGet_OPT(RTDB_PROTO::REQ_READ& read_req, char** buf_ptr, int& data_size, DB_BYTE_T& remote_byte);//40 int TableGet_OPT(RTDB_PROTO::REQ_READ_OLD& read_req, char** buf_ptr, int& data_size, DB_BYTE_T& remote_byte);//40 for remote int TableGet_OPTASync(RTDB_PROTO::REQ_READ& read_req);//40 int TableGetByName(RTDB_PROTO::REQ_READ& read_req, RTDB_PROTO::RSP_READ& read_rsp);//4 int TableGetByName(RTDB_PROTO::REQ_READ_OLD& read_req, RTDB_PROTO::RSP_READ& read_rsp);//4 for remote int TableGetByNameASync(RTDB_PROTO::REQ_READ& read_req);//4 int TableGetByName_OPT(RTDB_PROTO::REQ_READ& read_req, char** buf_ptr, int& data_size, DB_BYTE_T& remote_byte);//41 int TableGetByName_OPT(RTDB_PROTO::REQ_READ_OLD& read_req, char** buf_ptr, int& data_size, DB_BYTE_T& remote_byte);//41 int TableGetByName_OPTASync(RTDB_PROTO::REQ_READ& read_req);//41 int TableGetByFieldValue(RTDB_PROTO::REQ_CON& read_req, RTDB_PROTO::RSP_CON& read_rsp);//5 int TableGetByFieldValueASync(RTDB_PROTO::REQ_CON& read_req);//5 int TableWrite(RTDB_PROTO::REQ_KEY_WRITE& write_req);//6 int TableWriteASync(RTDB_PROTO::REQ_KEY_WRITE& write_req);//6 int TableModify(RTDB_PROTO::REQ_MODIFY& modify_req);//7 int TableModifyASync(RTDB_PROTO::REQ_MODIFY& modify_req);//7 int TableUpdate(RTDB_PROTO::REQ_UPDATE& update_req);//8 int TableUpdateASync(RTDB_PROTO::REQ_UPDATE& update_req);//8 int DeleteRecord(RTDB_PROTO::REQ_KEY_ERASE& delete_req);//9 int DeleteRecordASync(RTDB_PROTO::REQ_KEY_ERASE& delete_req);//9 int TableClear(RTDB_PROTO::REQ_TABLE_CLEAR& clear_req);//10 int TableClearASync(RTDB_PROTO::REQ_TABLE_CLEAR& clear_req);//10 int GetTablePara(RTDB_PROTO::REQ_PARAMETER& para_req, RTDB_PROTO::RSP_PARAMETER& para_rsp);//11 int GetTableParaASync(RTDB_PROTO::REQ_PARAMETER& para_req);//11 #ifdef _APP_SYS_SUBSTATION int GetTableParaAll(RTDB_PROTO::REQ_PARAMETER& para_req, RTDB_PROTO::RSP_PARAMETER& para_rsp);//35 int TableGetAll(RTDB_PROTO::REQ_READ& read_req, RTDB_PROTO::RSP_READ& read_rsp);//36 int GetTableParaVir(RTDB_PROTO::REQ_VIR_FIELD& para_req, RTDB_PROTO::RSP_VIR_FIELD& para_rsp);//37 #endif int GetTableParameter(RTDB_PROTO::REQ_PARAMETER& para_req, RTDB_PROTO::RSP_READ& para_rsp);//12 int GetAppTableParameter(RTDB_PROTO::REQ_APP_PARAMETER& para_req, RTDB_PROTO::RSP_APP_PARAMETER& para_rsp);//13 int GetFieldPara(RTDB_PROTO::REQ_FIELD_BASE_INFO& para_req , RTDB_PROTO::RSP_FIELD_BASE_INFO& para_rsp);//14 int GetKeyInfo(RTDB_PROTO::RSP_KEYINFO& key_rsp);//15 int GetKeyInfoSlice(RTDB_PROTO::RSP_KEYINFO_SLICE& key_rsp);//15 int TableGetBySql(RTDB_PROTO::REQ_SQL& select_req, RTDB_PROTO::RSP_READ& select_rsp);//16 int TableGetBySqlASync(RTDB_PROTO::REQ_SQL& select_req);//16 int MenuRead(RTDB_PROTO::REQ_MENU& menu_req, RTDB_PROTO::RSP_MENU& menu_rsp);//17 int TableReleMenuRead(RTDB_PROTO::REQ_RELE_MENU& rele_req, RTDB_PROTO::RSP_RELE_MENU& rele_rsp);//18 int GetNameStringByKeyID(RTDB_PROTO::REQ_NAME_STRING& name_req, RTDB_PROTO::RSP_NAME_STRING& name_rsp);//19 int GetNameStringByKeyIDASync(RTDB_PROTO::REQ_NAME_STRING& name_req);//19 int GetRefMenuString(RTDB_PROTO::REQ_REF_MENU& ref_req, RTDB_PROTO::RSP_REF_MENU& ref_rsp);//20 int GetRefMenuStringAsync(RTDB_PROTO::REQ_REF_MENU& ref_req);//20 int GetNameStringByMultiKeyID(RTDB_PROTO::REQ_MULTI_NAME_STRING& name_req, RTDB_PROTO::RSP_MULTI_NAME_STRING& name_rsp);//21 int GetNameStringByMultiKeyIDASync(RTDB_PROTO::REQ_MULTI_NAME_STRING& name_req);//21 int GraphGetData(RTDB_PROTO::GRAPH_REAL_ODB_REQ& real_req, RTDB_PROTO::GRAPH_REAL_RSP& real_rsp);//22 int GraphGetData(RTDB_PROTO::GRAPH_REAL_ODB_REQ_OLD& real_req, RTDB_PROTO::GRAPH_REAL_RSP& real_rsp);//22 int GraphGetDataASync(RTDB_PROTO::GRAPH_REAL_ODB_REQ& real_req); int GraphGetAppInfo(RTDB_PROTO::GRAPH_ORDER_KEY_REQ& app_req, RTDB_PROTO::GRAPH_ORDER_KEY_RSP& app_rsp);//23 int GraphGetAppInfoASync(RTDB_PROTO::GRAPH_ORDER_KEY_REQ& app_req);//23 int ExchangeNameNo(RTDB_PROTO::REQ_ENTITY& object_req, RTDB_PROTO::RSP_ENTITY& object_rsp);//24 int GetFacNameByKeyNo(RTDB_PROTO::REQ_FAC& fac_req, RTDB_PROTO::RSP_FAC& fac_rsp);//25 int GetFacNameByFacID(RTDB_PROTO::REQ_FAC& fac_req, RTDB_PROTO::RSP_FAC& fac_rsp);//26 int GetFacNameByFacNo(RTDB_PROTO::REQ_FAC& fac_req, RTDB_PROTO::RSP_FAC& fac_rsp);//27 int GetFacIDByFacName(RTDB_PROTO::REQ_FAC& fac_req, RTDB_PROTO::RSP_FAC& fac_rsp);//28 int GetFacNoByFacName(RTDB_PROTO::REQ_FAC& fac_req, RTDB_PROTO::RSP_FAC& fac_rsp);//29 int GetFacIDByFacNo(RTDB_PROTO::REQ_FAC& fac_req, RTDB_PROTO::RSP_FAC& fac_rsp);//30 int GetFacNoByFacID(RTDB_PROTO::REQ_FAC& fac_req, RTDB_PROTO::RSP_FAC& fac_rsp);//31 int GetValueAndStatus(RTDB_PROTO::REQ_VAL_STA& req_key_id, RTDB_PROTO::RSP_INT_VAL_STA* rsp_int_val, RTDB_PROTO::RSP_FLOAT_VAL_STA* rsp_float_val, RTDB_PROTO::RSP_CHAR_VAL_STA* rsp_char_val, RTDB_PROTO::RSP_LONG_VAL_STA* rsp_long_val, RTDB_PROTO::RSP_UNION_VAL_STA* rsp_union_val);//32 int GetValueAndStatus(RTDB_PROTO::REQ_VAL_STA_OLD& req_key_id, RTDB_PROTO::RSP_INT_VAL_STA* rsp_int_val, RTDB_PROTO::RSP_FLOAT_VAL_STA* rsp_float_val, RTDB_PROTO::RSP_CHAR_VAL_STA* rsp_char_val, RTDB_PROTO::RSP_LONG_VAL_STA* rsp_long_val, RTDB_PROTO::RSP_UNION_VAL_STA* rsp_union_val);//32 int GetValueAndStatusASync(RTDB_PROTO::REQ_VAL_STA& req_key_id);//32 int GetValueAndStatus_YCOPT (RTDB_PROTO::REQ_VAL_STA& req_key_id, std::vector & vec_val, std::vector & vec_status);//42 int GetValueAndStatus_YXOPT (RTDB_PROTO::REQ_VAL_STA& req_key_id, std::vector & vec_val, std::vector & vec_status);//43 int PingRtdbServer(int req_data , int& rsp_data);//33 int GraphDataSend(RTDB_PROTO::GRAPH_REAL_ODB_REQ &real_req,Handle &hdl) ;//22 int GraphDataRecv(RTDB_PROTO::GRAPH_REAL_RSP &real_rsp,Handle &hdl,int &ret); int DeleteRecords(RTDB_PROTO::DEL_REQ& delete_req);//34 int DeleteRecordsASync(RTDB_PROTO::DEL_REQ& delete_req);//34 int ReadAsyncRsp(char** rsp_buffer, int* rsp_len, int& ret_code, DB_BYTE_T& remote_byte); int ReadAsyncRsp(char** rsp_buffer, int* rsp_len, int& ret_code); int ReadAsyncRsp(int& ret_code); int ReadAsyncRsp(RTDB_PROTO::RSP_INT_VAL_STA* rsp_int_val, RTDB_PROTO::RSP_FLOAT_VAL_STA* rsp_float_val, RTDB_PROTO::RSP_CHAR_VAL_STA* rsp_char_val, RTDB_PROTO::RSP_LONG_VAL_STA* rsp_long_val, RTDB_PROTO::RSP_UNION_VAL_STA* rsp_union_val);//32 int ReadAsyncRespGraphGetData(RTDB_PROTO::GRAPH_REAL_RSP& real_rsp, int& ret_code); void FreeAsyncHandle(); #ifdef _APP_SYS_SUBSTATION ////add for xdb wuqx ----- 2012-07-11 int XdbAccess(RTDB_PROTO::REQ_XDB& req, RTDB_PROTO::RSP_XDB& rsp); #endif public: int SetServiceInfo(ServiceInfo& service_info); int SetDomainInfo(const DomainInfo* p_domain_info); void SetHandle(const Handle handle); void ClearHandle(const Handle handle); static CODB_NET* _narrow(ServiceInfo& serv_info, DomainInfo* p_domain_info = NULL); private: ServiceInfo m_Serviceinfo; DomainInfo* m_pDomaininfo; char m_IpAddress[64]; int m_Port; public: Handle m_Handle; Handle m_Handle_Async; }; } #endif