178 lines
4.2 KiB
C++
178 lines
4.2 KiB
C++
/**********************************************************************/
|
|
/** Microsoft Windows/NT **/
|
|
/** Copyright(c) Microsoft Corporation, 1997 - 1998 **/
|
|
/**********************************************************************/
|
|
|
|
/*
|
|
DMVumstrm.h
|
|
DMVum node configuration object.
|
|
|
|
Use this to get/set configuration data. This class will take
|
|
care of versioning of config formats as well as serializing
|
|
of the data.
|
|
|
|
FILE HISTORY:
|
|
|
|
*/
|
|
|
|
#ifndef _DMVSTRM_H
|
|
#define _DMVSTRM_H
|
|
|
|
#ifndef _XSTREAM_H
|
|
#include "xstream.h"
|
|
#endif
|
|
|
|
#ifndef _COLUMN_H
|
|
#include "column.h"
|
|
#endif
|
|
|
|
#ifndef AFX_DLGSVR_H__19556672_96AB_11D1_8575_00C04FC31FD3__INCLUDED_
|
|
#include "rrasqry.h"
|
|
#endif
|
|
|
|
#ifndef _VECTOR_
|
|
#include <vector>
|
|
using namespace std;
|
|
#endif
|
|
|
|
//forwards
|
|
class DMVRootHandler;
|
|
|
|
enum
|
|
{
|
|
DMVSTRM_STATS_DMVNBR = 0,
|
|
DMVSTRM_IFSTATS_DMVNBR,
|
|
DMVSTRM_STATS_COUNT,
|
|
};
|
|
|
|
enum DMVSTRM_TAG
|
|
{
|
|
DMVSTRM_TAG_VERSION = XFER_TAG(1, XFER_DWORD),
|
|
DMVSTRM_TAG_VERSIONADMIN = XFER_TAG(2, XFER_DWORD),
|
|
|
|
DMVSTRM_TAG_SIZEQRY = XFER_TAG(3, XFER_DWORD),
|
|
DMVSTRM_TAG_NUMQRY = XFER_TAG(4, XFER_DWORD),
|
|
DMVSTRM_TAG_NUMSRV = XFER_TAG(5, XFER_DWORD),
|
|
DMVSTRM_TAG_CATFLAG = XFER_TAG(6, XFER_DWORD),
|
|
DMVSTRM_TAG_SCOPE = XFER_TAG(7, XFER_STRING),
|
|
DMVSTRM_TAG_FILTER = XFER_TAG(8, XFER_STRING),
|
|
DMVSTRM_TAG_SERVERNAME = XFER_TAG(9, XFER_STRING),
|
|
|
|
DMVSTRM_TAG_IFAUTOREFRESHISON = XFER_TAG(10, XFER_DWORD),
|
|
DMVSTRM_TAG_AUTOREFRESHINTERVAL = XFER_TAG(11, XFER_DWORD),
|
|
|
|
};
|
|
|
|
|
|
//
|
|
// This class is the container of persisted domain queries
|
|
//
|
|
class RRASQryPersist
|
|
{
|
|
friend class DomainStatusHandler;
|
|
public:
|
|
RRASQryPersist()
|
|
{
|
|
m_dwSizeQry=0;
|
|
m_dwNumQry=0;
|
|
m_dwNumSrv=0;
|
|
}
|
|
|
|
~RRASQryPersist()
|
|
{
|
|
removeAllSrv();
|
|
removeAllQry();
|
|
}
|
|
|
|
//create dwNum empty queries
|
|
HRESULT createQry(DWORD dwNum);
|
|
|
|
//create dwNum empty servers
|
|
HRESULT createSrv(DWORD dwNum);
|
|
|
|
//push query data into container
|
|
HRESULT add_Qry(const RRASQryData& qd);
|
|
|
|
//push server into container
|
|
HRESULT add_Srv(const CString& szServer);
|
|
|
|
//remove all servernames
|
|
HRESULT removeAllSrv();
|
|
|
|
//remove all queries
|
|
HRESULT removeAllQry();
|
|
|
|
private:
|
|
DWORD m_dwSizeQry;
|
|
DWORD m_dwNumQry;
|
|
DWORD m_dwNumSrv;
|
|
|
|
//position [0] is the general (many machine) singleton query.
|
|
//positions[1] .. n are the specific machine queries.
|
|
vector<RRASQryData*> m_v_pQData;
|
|
|
|
//persisted server names
|
|
vector<CString*> m_v_pSData;
|
|
|
|
friend class DMVRootHandler;
|
|
friend class DMVConfigStream;
|
|
};
|
|
|
|
|
|
/*---------------------------------------------------------------------------
|
|
Class: DMVConfigStream
|
|
|
|
This holds the configuration information for the IP administration
|
|
nodes. This does NOT hold the configuration information for the columns.
|
|
That is stored in the Component Configuration streams.
|
|
---------------------------------------------------------------------------*/
|
|
class DMVConfigStream : public ConfigStream
|
|
{
|
|
public:
|
|
DMVConfigStream();
|
|
|
|
virtual HRESULT InitNew(); // set defaults
|
|
virtual HRESULT SaveTo(IStream *pstm);
|
|
virtual HRESULT SaveAs(UINT nVersion, IStream *pstm);
|
|
|
|
virtual HRESULT LoadFrom(IStream *pstm);
|
|
|
|
virtual HRESULT GetSize(ULONG *pcbSize);
|
|
|
|
// --------------------------------------------------------
|
|
// Accessors
|
|
// --------------------------------------------------------
|
|
|
|
virtual HRESULT GetVersionInfo(DWORD *pnVersion, DWORD *pnAdminVersion);
|
|
|
|
DWORD m_bAutoRefresh;
|
|
DWORD m_dwRefreshInterval;
|
|
|
|
//persist the domain view query
|
|
RRASQryPersist m_RQPersist;
|
|
|
|
void Init(DMVRootHandler* dmvroot, ITFSNode *pNode )
|
|
{
|
|
m_pDMVRootHandler=dmvroot;
|
|
m_pDMVRootNode=pNode;
|
|
}
|
|
|
|
private:
|
|
HRESULT PrepareAutoRefreshDataForSave();
|
|
HRESULT XferVersion0(IStream *pstm, XferStream::Mode mode, ULONG *pcbSize);
|
|
DMVRootHandler* m_pDMVRootHandler;
|
|
ITFSNode* m_pDMVRootNode;
|
|
};
|
|
|
|
|
|
|
|
class DVComponentConfigStream : public ConfigStream
|
|
{
|
|
public:
|
|
virtual HRESULT XferVersion0(IStream *pstm, XferStream::Mode mode, ULONG *pcbSize);
|
|
protected:
|
|
};
|
|
|
|
|
|
#endif _DMVSTRM_H
|