本文整理汇总了C++中Bank::getAccountByName方法的典型用法代码示例。如果您正苦于以下问题:C++ Bank::getAccountByName方法的具体用法?C++ Bank::getAccountByName怎么用?C++ Bank::getAccountByName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bank
的用法示例。
在下文中一共展示了Bank::getAccountByName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: client_thread
//.........这里部分代码省略.........
{
printf("Unexpected error\n");
fatalError = true;
break;
}
buildPacket(packet, "handshakeResponse," + bankSession->atmNonce + "," + bankSession->bankNonce);
if(!encryptPacket((char*)packet,bankSession->key))
{
printf("Unexpected error\n");
fatalError = true;
break;
}
if(!sendPacket(csock, packet))
{
printf("Unexpected error\n");
fatalError = true;
break;
}
bankSession->state = 2;
}
break;
//Expecting a login
case 2:
if(!bankSession->validateNonce(std::string(packet)))
{
printf("Unexpected error\n");
fatalError = true;
break;
}
if(tokens.size() == 5 && tokens[0] == "login" && tokens[1].size() == 128)
{
//Now we'll try to find the account
//bankSession->account = bank->tryLoginHash(tokens[1]);
bankSession->account = bank->getAccountByName(tokens[2]);
if(!bankSession->account || !bankSession->account->tryHash(tokens[1]))
{
//Failed login
//TODO Blacklist hash
bankSession->error = true;
//printf("[notice] Failed login!\n");
}
bankSession->account->inUse = true;
bankSession->state = 5;
if(!bankSession->sendP(csock,packet, "ack"))
{
printf("Unexpected error!\n");
fatalError = true;
break;
}
}
break;
case 5:
bool returnBalance = false;
bankSession->state = 4;
if(bankSession->error)
{
returnBalance = false;
}
else if(tokens.size() == 3 && tokens[0] == "balance")
{
returnBalance = true;
}
else if(tokens.size() == 4 && tokens[0] == "withdraw" && isDouble(tokens[1]))
{
double amount = atof(tokens[1].c_str());
if(!bankSession->account->Withdraw(amount))
示例2: console_thread
void* console_thread(void* arg)
{
BankSocketThread* bankSocketThread = (BankSocketThread*) arg;
Bank* bank = bankSocketThread->bank;
//Let's generate our keys
for(unsigned int i = 1; i <= 50; ++i)
{
byte* key = new byte[CryptoPP::AES::DEFAULT_KEYLENGTH];
generateRandomKey(to_string((int)i),key, CryptoPP::AES::DEFAULT_KEYLENGTH);
bank->keys.push_back(key);
bank->keysInUse.push_back(false);
}
//Create Accounts
Account* new_account = new Account();
//Alice
new_account->createAccount(std::string("alice"), 1, std::string("123456"), bank->appSalt);
new_account->Deposit(100);
bank->addAccount(new_account);
//Bob
new_account = new Account();
new_account->createAccount(std::string("bob"), 2, std::string("234567"), bank->appSalt);
new_account->Deposit(50);
bank->addAccount(new_account);
//Eve
new_account = new Account();
new_account->createAccount(std::string("eve"), 3, std::string("345678"), bank->appSalt);
new_account->Deposit(0);
bank->addAccount(new_account);
char buf[80];
while(1)
{
printf("bank> ");
fgets(buf, 79, stdin);
buf[strlen(buf)-1] = '\0'; //trim off trailing newline
std::vector<std::string> tokens;
split(buf,' ',tokens);
if(tokens.size() <= 0)
{
printf("Invalid input\n");
continue;
}
if(tokens[0] == "balance")
{
if(tokens.size() != 2)
{
printf("Invalid input\n");
continue;
}
Account* current_account = bank->getAccountByName(tokens[1]);
if(!current_account)
{
printf("Invalid account\n");
continue;
}
printf("Balance: %.2Lf\n", current_account->getBalance());
continue;
}
if(tokens[0] == "deposit")
{
if(tokens.size() != 3)
{
printf("Invalid input\n");
continue;
}
long double amount = atof(tokens[2].c_str());
if(amount <= 0)
{
printf("Invalid amount\n");
continue;
}
Account* current_account = bank->getAccountByName(tokens[1]);
if(!current_account)
{
printf("Invalid account\n");
continue;
}
if(current_account->Deposit(amount))
{
long double cur_balance = current_account->getBalance();
printf("Money deposited!\nNew balance: %.2Lf\n", cur_balance);
} else {
printf("Error depositing money!\n");
}
continue;
}
//.........这里部分代码省略.........