📄 cachedoc.cpp
字号:
// CacheDoc.cpp : implementation of the CCacheDoc class
//
#include "stdafx.h"
#include "afxdlgs.h"
#include "Cache.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include "CacheDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCacheDoc
IMPLEMENT_DYNCREATE(CCacheDoc, CDocument)
BEGIN_MESSAGE_MAP(CCacheDoc, CDocument)
//{{AFX_MSG_MAP(CCacheDoc)
ON_COMMAND(ID_EDIT_DO, OnEditDo)
ON_COMMAND(ID_Block_size_4, OnBlocksize4)
ON_UPDATE_COMMAND_UI(ID_Block_size_4, OnUpdateBlocksize4)
ON_COMMAND(ID_Block_size_8, OnBlocksize8)
ON_UPDATE_COMMAND_UI(ID_Block_size_8, OnUpdateBlocksize8)
ON_COMMAND(ID_Block_size_16, OnBlocksize16)
ON_UPDATE_COMMAND_UI(ID_Block_size_16, OnUpdateBlocksize16)
ON_COMMAND(ID_Block_size_32, OnBlocksize32)
ON_UPDATE_COMMAND_UI(ID_Block_size_32, OnUpdateBlocksize32)
ON_COMMAND(ID_Block_size_64, OnBlocksize64)
ON_UPDATE_COMMAND_UI(ID_Block_size_64, OnUpdateBlocksize64)
ON_COMMAND(ID_Set_Size_16, OnSetSize16)
ON_UPDATE_COMMAND_UI(ID_Set_Size_16, OnUpdateSetSize16)
ON_COMMAND(ID_Set_Size_32, OnSetSize32)
ON_UPDATE_COMMAND_UI(ID_Set_Size_32, OnUpdateSetSize32)
ON_COMMAND(ID_Set_Size_4, OnSetSize4)
ON_UPDATE_COMMAND_UI(ID_Set_Size_4, OnUpdateSetSize4)
ON_COMMAND(ID_Set_Size_64, OnSetSize64)
ON_UPDATE_COMMAND_UI(ID_Set_Size_64, OnUpdateSetSize64)
ON_COMMAND(ID_Set_Size_8, OnSetSize8)
ON_UPDATE_COMMAND_UI(ID_Set_Size_8, OnUpdateSetSize8)
ON_COMMAND(ID_Way_Size_16, OnWaySize16)
ON_UPDATE_COMMAND_UI(ID_Way_Size_16, OnUpdateWaySize16)
ON_COMMAND(ID_Way_Size_32, OnWaySize32)
ON_UPDATE_COMMAND_UI(ID_Way_Size_32, OnUpdateWaySize32)
ON_COMMAND(ID_Way_Size_4, OnWaySize4)
ON_UPDATE_COMMAND_UI(ID_Way_Size_4, OnUpdateWaySize4)
ON_COMMAND(ID_Way_Size_64, OnWaySize64)
ON_UPDATE_COMMAND_UI(ID_Way_Size_64, OnUpdateWaySize64)
ON_COMMAND(ID_Way_Size_8, OnWaySize8)
ON_UPDATE_COMMAND_UI(ID_Way_Size_8, OnUpdateWaySize8)
//ON_COMMAND(ID_Contunue, OnContunue)
ON_UPDATE_COMMAND_UI(ID_EDIT_DO, OnUpdateEditDo)
ON_UPDATE_COMMAND_UI(ID_Continu, OnUpdateContinu)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCacheDoc construction/destruction
CCacheDoc::CCacheDoc()
{
// TODO: add one-time construction code here
m_draw=false;
m_select=0;
m_way_select=0;
m_set_select=0;
m_dark=true;
m_hit=0;
I_count=-1;
J_count=-1;
Set_Num=0;
Count=0;
m_timeout=10000;
Ins_pointer=-1;
Ins_Set_Num=0;
Ins_Count=0;
m_hitnum=1.0;
m_missnum=0.0;
m_missrate=0.0;
m_dark_begin=false;
//m_status=false;
}
CCacheDoc::~CCacheDoc()
{
}
CInfor::CInfor()
{
CBlock_Size=4;
CSet_Size=4;
CWay_Size=4;
CCache_Size=CBlock_Size*CWay_Size*CWay_Size;
CWorR='r';
WBorWT=true;
}
CBlock::CBlock()
{
dirty=0;
tag=0;
valid=0;
}
BOOL CCacheDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// AfxMessageBox("11111111111111111111");
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CCacheDoc serialization
void CCacheDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
//ar>>Charname>>CAddress;
//CString b;
//b.Format("%c",this->Charname);
//AfxMessageBox(b);
//b.Format("%ld",CAddress);
//AfxMessageBox(b);
}
}
/////////////////////////////////////////////////////////////////////////////
// CCacheDoc diagnostics
#ifdef _DEBUG
void CCacheDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CCacheDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CCacheDoc commands
void CCacheDoc::OnEditDo()
{
a1();
}
void CCacheDoc::DrawAll()
{
// CPaintDC dc(::AfxGetMainWnd()->m_hWnd);
// dc.Rectangle(100,100,200,200);
}
void CCacheDoc::OnBlocksize4()
{
// TODO: Add your command handler code here
m_select=0;
NewBlock.CBlock_Size=4;
// Invalidate();
}
void CCacheDoc::OnUpdateBlocksize4(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(m_select==0);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnBlocksize8()
{
// TODO: Add your command handler code here
m_select=1;
NewBlock.CBlock_Size=8;
// Invalidate();
}
void CCacheDoc::OnUpdateBlocksize8(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(m_select==1);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnBlocksize16()
{
// TODO: Add your command handler code here
m_select=2;
NewBlock.CBlock_Size=16;
}
void CCacheDoc::OnUpdateBlocksize16(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(m_select==2);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnBlocksize32()
{
// TODO: Add your command handler code here
m_select=3;
NewBlock.CBlock_Size=32;
}
void CCacheDoc::OnUpdateBlocksize32(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_select==3);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnBlocksize64()
{
// TODO: Add your command handler code here
m_select=4;
NewBlock.CBlock_Size=64;
}
void CCacheDoc::OnUpdateBlocksize64(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_select==4);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnSetSize16()
{
m_set_select=2;
NewBlock.CSet_Size=16;
}
void CCacheDoc::OnUpdateSetSize16(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_set_select==2);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnSetSize32()
{
m_set_select=3;
NewBlock.CSet_Size=32;
}
void CCacheDoc::OnUpdateSetSize32(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_set_select==3);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnSetSize4()
{
m_set_select=0;
NewBlock.CSet_Size=4;
}
void CCacheDoc::OnUpdateSetSize4(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_set_select==0);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnSetSize64()
{
m_set_select=4;
NewBlock.CSet_Size=64;
}
void CCacheDoc::OnUpdateSetSize64(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_set_select==4);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnSetSize8()
{
m_set_select=1;
NewBlock.CSet_Size=8;
}
void CCacheDoc::OnUpdateSetSize8(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_set_select==1);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnWaySize16()
{
m_way_select=2;
NewBlock.CWay_Size=16;
}
void CCacheDoc::OnUpdateWaySize16(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_way_select==2);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnWaySize32()
{
m_way_select=3;
NewBlock.CWay_Size=32;
}
void CCacheDoc::OnUpdateWaySize32(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_way_select==3);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnWaySize4()
{
m_way_select=0;
NewBlock.CWay_Size=4;
}
void CCacheDoc::OnUpdateWaySize4(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_way_select==0);
pCmdUI->Enable(m_dark);
}
void CCacheDoc::OnWaySize64()
{
m_way_select=4;
NewBlock.CWay_Size=64;
}
void CCacheDoc::OnUpdateWaySize64(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_way_select==4);
pCmdUI->Enable(m_dark);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -