📄 toputil.cpp
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -