toputil.cpp
来自「VC++串口通信设。本书详细说明讲解了在VC++环境下编写串口通信得过程。值得一」· C++ 代码 · 共 86 行
CPP
86 行
// Get needed include files
#include "TopUtil.h"
// Helper class, binding a Topping enum to its string name
struct CStringToEnumAssoc
{
// We have to have this constructor
CStringToEnumAssoc(const CString& strTopping,
Topping eTopping)
: m_strTopping(strTopping),
m_eTopping(eTopping)
{}
CString m_strTopping;
Topping m_eTopping;
};
// Array to map string topping name to enum value supported by
// COM PizzaOrderTaker
CStringToEnumAssoc g_aToppingAssocs[] =
{
CStringToEnumAssoc("Not a topping", (Topping) 0 ),
CStringToEnumAssoc("Pepperoni", Pepperoni ),
CStringToEnumAssoc("Sausage", Sausage ),
CStringToEnumAssoc("Ground Beef", GroundBeef ),
CStringToEnumAssoc("Green Olives", GreenOlives ),
CStringToEnumAssoc("Prosciuttini Ham", ProsciuttiniHam ),
CStringToEnumAssoc("Pastrami", Pastrami ),
CStringToEnumAssoc("Green Peppers", GreenPeppers ),
CStringToEnumAssoc("Mushrooms", Mushrooms ),
CStringToEnumAssoc("Onions", Onions ),
CStringToEnumAssoc("Tomatoes", Tomatoes ),
CStringToEnumAssoc("Pesto", Pesto ),
CStringToEnumAssoc("Jalapeno Peppers", JalapenoPeppers ),
CStringToEnumAssoc("Cheddar Cheese", CheddarCheese ),
CStringToEnumAssoc("Fontina Cheese", FontinaCheese ),
CStringToEnumAssoc("Ricotta Cheese", RicottaCheese ),
CStringToEnumAssoc("Feta Cheese", FetaCheese ),
CStringToEnumAssoc("Pineapple", Pineapple ),
CStringToEnumAssoc("Extra Cheese", ExtraCheese ),
CStringToEnumAssoc("Bacon", Bacon ),
CStringToEnumAssoc("Broccoli", Broccoli ),
CStringToEnumAssoc("Genoa Salami", GenoaSalami ),
CStringToEnumAssoc("Zucchini", Zucchini ),
CStringToEnumAssoc("Black Olives", BlackOlives ),
CStringToEnumAssoc("Anchovies", Anchovies ),
CStringToEnumAssoc("Chicken Breast", ChickenBreast ),
CStringToEnumAssoc("Shrimp", Shrimp ),
CStringToEnumAssoc("Artichoke Hearts", ArtichokeHearts )
};
// Constant that tracks the number of toppings
const ULONG g_ulNumToppings =
sizeof(g_aToppingAssocs) / sizeof(CStringToEnumAssoc);
CString ToppingUtil::ToppingEnumToStr(Topping eSearchTopping)
{
// Map an enum to a string
for (USHORT usLoop = 1; usLoop < g_ulNumToppings; usLoop++)
if (g_aToppingAssocs[usLoop].m_eTopping == eSearchTopping)
return g_aToppingAssocs[usLoop].m_strTopping;
// We should never get to here
ASSERT(FALSE);
return "";
}
Topping ToppingUtil::ToppingStrToEnum(const CString& strSearchTopping)
{
// Map a string to an enum
CString strRealSearchTopping = strSearchTopping.SpanExcluding("(");
strRealSearchTopping.TrimRight();
for (USHORT usLoop = 1; usLoop < g_ulNumToppings; usLoop++)
if (g_aToppingAssocs[usLoop].m_strTopping == strRealSearchTopping)
return g_aToppingAssocs[usLoop].m_eTopping;
// We should never get to here
ASSERT(FALSE);
return (Topping) 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?