Commit c5dd0f7f authored by Pavel Vainerman's avatar Pavel Vainerman

(LogDB): добавил настройку размера буфера для чтения сообщений от логсервера.

parent c25abb47
...@@ -89,6 +89,8 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin ...@@ -89,6 +89,8 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin
double checkConnection_sec = atof( uniset::getArg2Param("--" + prefix + "check-connection-sec", argc, argv, it.getProp("checkConnectionSec"), "5").c_str()); double checkConnection_sec = atof( uniset::getArg2Param("--" + prefix + "check-connection-sec", argc, argv, it.getProp("checkConnectionSec"), "5").c_str());
int bufSize = uniset::getArgPInt("--" + prefix + "read-buffer-size", argc, argv, it.getProp("readBufferSize"), 10001);
std::string s_overflow = uniset::getArg2Param("--" + prefix + "overflow-factor", argc, argv, it.getProp("overflowFactor"), "1.3"); std::string s_overflow = uniset::getArg2Param("--" + prefix + "overflow-factor", argc, argv, it.getProp("overflowFactor"), "1.3");
float ovf = atof(s_overflow.c_str()); float ovf = atof(s_overflow.c_str());
...@@ -127,6 +129,8 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin ...@@ -127,6 +129,8 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin
l->cmd = sit.getProp("cmd"); l->cmd = sit.getProp("cmd");
l->description = sit.getProp("description"); l->description = sit.getProp("description");
l->setReadBufSize(bufSize);
l->setCheckConnectionTime(checkConnection_sec); l->setCheckConnectionTime(checkConnection_sec);
if( l->name.empty() ) if( l->name.empty() )
...@@ -368,7 +372,8 @@ void LogDB::help_print() ...@@ -368,7 +372,8 @@ void LogDB::help_print()
cout << "--prefix-max-records sz - Максимальное количество записей в БД. При превышении, старые удаляются. 0 - не удалять" << endl; cout << "--prefix-max-records sz - Максимальное количество записей в БД. При превышении, старые удаляются. 0 - не удалять" << endl;
cout << "--prefix-overflow-factor float - Коэффициент переполнения, после которого запускается удаление старых записей. По умолчанию: 1.3" << endl; cout << "--prefix-overflow-factor float - Коэффициент переполнения, после которого запускается удаление старых записей. По умолчанию: 1.3" << endl;
cout << "--prefix-max-websockets num - Максимальное количество websocket-ов" << endl; cout << "--prefix-max-websockets num - Максимальное количество websocket-ов" << endl;
cout << "--prefix-check-connection-sec sec - Период проверки соединения с logserver-ом" << endl; cout << "--prefix-check-connection-sec sec - Период проверки соединения с логсервером" << endl;
cout << "--prefix-read-buffer-size num - Размер буфера для чтения сообщений от логсервера. Deault: 10001" << endl;
cout << "--prefix-db-disable - Отключить запись в БД" << endl; cout << "--prefix-db-disable - Отключить запись в БД" << endl;
...@@ -558,6 +563,11 @@ void LogDB::Log::setCheckConnectionTime( double sec ) ...@@ -558,6 +563,11 @@ void LogDB::Log::setCheckConnectionTime( double sec )
checkConnection_sec = sec; checkConnection_sec = sec;
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
void LogDB::Log::setReadBufSize( size_t sz )
{
buf.resize(sz);
}
// -----------------------------------------------------------------------------
void LogDB::Log::read( ev::io& watcher ) void LogDB::Log::read( ev::io& watcher )
{ {
if( !tcp ) if( !tcp )
...@@ -565,11 +575,11 @@ void LogDB::Log::read( ev::io& watcher ) ...@@ -565,11 +575,11 @@ void LogDB::Log::read( ev::io& watcher )
int n = tcp->available(); int n = tcp->available();
n = std::min(n, bufsize); n = std::min(n, (int)buf.size());
if( n > 0 ) if( n > 0 )
{ {
tcp->receiveBytes(buf, n); tcp->receiveBytes(buf.data(), n);
// нарезаем на строки // нарезаем на строки
for( int i = 0; i < n; i++ ) for( int i = 0; i < n; i++ )
......
...@@ -277,6 +277,7 @@ namespace uniset ...@@ -277,6 +277,7 @@ namespace uniset
void setCheckConnectionTime( double sec ); void setCheckConnectionTime( double sec );
void setReadBufSize( size_t sz );
protected: protected:
void ioprepare(); void ioprepare();
...@@ -290,8 +291,7 @@ namespace uniset ...@@ -290,8 +291,7 @@ namespace uniset
double checkConnection_sec = { 5.0 }; double checkConnection_sec = { 5.0 };
std::shared_ptr<UTCPStream> tcp; std::shared_ptr<UTCPStream> tcp;
static const int bufsize = { 10001 }; std::vector<char> buf; // буфер для чтения сообщений
char buf[bufsize]; // буфер для чтения сообщений
static const size_t reservsize = { 1000 }; static const size_t reservsize = { 1000 };
std::string text; std::string text;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment