std::vector<unsigned long long> getDigits(unsigned long long n) { std::string s = Long2Str(n); std::vector<unsigned long long> v(10); for(unsigned long long i = 0; i<s.length(); i++) { v.at(Char2Int(s.at(i)))++; } return v; }
bool CLocalSocket::Initialize(const std::string strSocketName) { DWORD dwConnectionID = 0; bool bRes = false; if (strSocketName.empty()) return false; m_strLocalSocketName = strSocketName; bRes = InitializeCommon(false); if (!bRes) return false; if (!m_commonDataMutex.lock()) return false; m_nConnectionAmount = m_cCommonDataBuffer->nCommonDataBuffer; m_commonDataMutex.unlock(); if (!m_nConnectionAmount) return false; dwConnectionID = m_nConnectionAmount; m_strLocalSocketName = strSocketName + Long2Str(dwConnectionID); m_strLocalSocketName_In = strSocketName + LOCAL_SOCKET_NAME_IN_POSTFIX + Long2Str(dwConnectionID); m_strLocalSocketName_Out = strSocketName + LOCAL_SOCKET_NAME_OUT_POSTFIX + Long2Str(dwConnectionID); m_strInDataEventName = strSocketName + IN_DATA_EVENT_NAME_POSTFIX + Long2Str(dwConnectionID); m_strOutDataEventName = strSocketName + OUT_DATA_EVENT_NAME_POSTFIX + Long2Str(dwConnectionID); m_strConnectionEventName = strSocketName + CONNECTION_EVENT_POSTFIX; m_strInDataReadEventName = strSocketName + IN_DATA_READ_EVENT_NAME_POSTFIX + Long2Str(dwConnectionID); m_strOutDataReadEventName = strSocketName + OUT_DATA_READ_EVENT_NAME_POSTFIX + Long2Str(dwConnectionID); m_strInDataMutexName = strSocketName + IN_DATA_MUTEX_NAME + Long2Str(dwConnectionID); m_strOutDataMutexName = strSocketName + OUT_DATA_MUTEX_NAME + Long2Str(dwConnectionID); m_strDisconnectedMutexName = strSocketName + DISCONNECTED_MUTEX_NAME + Long2Str(dwConnectionID); m_strDisconnectedBufferName = strSocketName + DISCONNECTED_BUFFER_NAME + Long2Str(dwConnectionID); return true; }
unsigned long long calcDigitFactorial(unsigned long long n) { return calcDigitFactorial(Long2Str(n)); }