00001 #pragma once 00002 00003 #include <vector> 00004 00005 #include "HLabConst.h" 00006 00007 #ifdef WIN32 00008 #if defined _USRDLL 00009 #define DllExport _declspec(dllexport) 00010 #else 00011 #define DllExport _declspec(dllimport) 00012 #endif 00013 #else 00014 #define DllExport 00015 #endif 00016 00017 00019 00034 class DllExport CHLabBPTableNode 00035 { 00036 00037 public: 00038 int m_iWordID; 00039 int m_iFrameIndex; 00040 double m_dPathScore; 00041 int m_iPredNodeID; 00042 00043 00044 CHLabBPTableNode(void); 00045 ~CHLabBPTableNode(void); 00046 }; 00047 00048 00049 class DllExport CHLabBPTable 00050 { 00051 public: 00052 std::vector<CHLabBPTableNode> m_vecBPNode; 00053 std::vector<int> m_vecBacktrackResult; 00054 public: 00055 CHLabBPTable(void); 00056 ~CHLabBPTable(void); 00057 00058 inline int GetNumBPNode() 00059 { 00060 return m_vecBPNode.size(); 00061 } 00062 00063 inline int push_back(CHLabBPTableNode tableNode) 00064 { 00065 m_vecBPNode.push_back(tableNode); 00066 00067 return (0); 00068 } 00069 00070 std::vector<int> BackTracking(int iIndex); 00071 int BackTrackingPhoneNumber(int iIndex); 00072 };