Skeleton of application, at least compiles
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
#ifndef FELIX_THE_CAT_DIFFERENT_LIBRARY_INCLUDED_AKJGNKJABVKALJGLKAJGLAKJG
|
||||
#define FELIX_THE_CAT_DIFFERENT_LIBRARY_INCLUDED_AKJGNKJABVKALJGLKAJGLAKJG
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
template <class T>
|
||||
string ToString(const T& a)
|
||||
{
|
||||
ostringstream oss;
|
||||
oss.setf(ios::fixed | ios::showpoint);
|
||||
oss.precision(10);
|
||||
oss << a;
|
||||
return oss.str();
|
||||
}
|
||||
|
||||
ostream& operator<<(ostream &out, const pthread_mutex_t m);
|
||||
|
||||
void LockMutex(pthread_mutex_t &m);
|
||||
void ReleaseMutex(pthread_mutex_t &m);
|
||||
|
||||
|
||||
int Round(double v);
|
||||
|
||||
// конвертирует из CP866 (в котором часто девайсы шлют всякую фигню)
|
||||
// в UTF-8 (в котором весь наш код), чтобы можно было сравнивать строки
|
||||
// и не иметь в исходниках две кодировки
|
||||
// src предполагается нуль-терминированным
|
||||
void CP866ToUTF8(unsigned char *src, unsigned char *dest, int destlen);
|
||||
// То же самое для CP1251
|
||||
void CP1251ToUTF8(const unsigned char *src, unsigned char *dest, int destlen);
|
||||
|
||||
string CP1251ToUTF8(const string &src);
|
||||
|
||||
// распаковывает BCD-число. Сделано в виде функции, а не макроса, чтобы
|
||||
// можно было подставлять в нее функции, изменяющие состояние параметров
|
||||
int UnpackBCD(int a);
|
||||
// аналогично, упаковывает BCD-число
|
||||
int PackBCD(int a);
|
||||
// проверяет, является ли a валидным BCD-байтом
|
||||
bool CheckBCD(int a);
|
||||
|
||||
|
||||
// получает количество миллисекунд с начала эпохи (иногда нужно для)
|
||||
// всяких точных таймаутов при приеме/отправке
|
||||
unsigned long long GetMilliseconds();
|
||||
|
||||
// заменяет в text все вхождения pattern на replacement
|
||||
// аккуратно со случаем, когда replacement содержит pattern - может повиснуть (!)
|
||||
string ReplaceAll(string text, string pattern, string replacement);
|
||||
|
||||
// конвертирует число в строку в заданной base
|
||||
string IntToString(int a, int base = 10);
|
||||
|
||||
// поднимает до упора лимит на количество открытых дескрипторов
|
||||
int RaiseFDLimit();
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user