Annotation of mstools/mfc/samples/tutorial/database.h, revision 1.1.1.1

1.1       root        1: // database.h : Declares the interfaces for the CDataBase class.
                      2: //
                      3: // This is a part of the Microsoft Foundation Classes C++ library.
                      4: // Copyright (C) 1992 Microsoft Corporation
                      5: // All rights reserved.
                      6: //
                      7: // This source code is only intended as a supplement to the
                      8: // Microsoft Foundation Classes Reference and Microsoft
                      9: // QuickHelp documentation provided with the library.
                     10: // See these sources for detailed information regarding the
                     11: // Microsoft Foundation Classes product.
                     12: 
                     13: #ifndef __DATABASE_H__
                     14: #define __DATABASE_H__
                     15: 
                     16: #include "person.h"
                     17: 
                     18: /////////////////////////////////////////////////////////////////////////////
                     19: 
                     20: // string const for untitiled database
                     21: extern const char szUntitled[];
                     22: //////////////////////////////////////////////////
                     23: //  CDataBase
                     24: //  The database object is intended to encapsulate everything
                     25: //  needed to work the the CPersonList into one interface.
                     26: //  Exception handling, data manipulations, and searching
                     27: //  are handled on this level freeing the view program, whether it
                     28: //  is character or windows, to deal with displaying the data.
                     29: //
                     30: class CDataBase: public CObject
                     31: {
                     32: public:
                     33:        // constructor
                     34:        CDataBase()
                     35:                {
                     36:                        m_pDataList = NULL;
                     37:                        m_pFindList = NULL;
                     38:                        m_szFileName = "";
                     39:                        m_szFileTitle = "";
                     40:                }
                     41: 
                     42:        // Create/Destory CPersonLists
                     43:        BOOL New();
                     44:        void Terminate();
                     45: 
                     46:        // File handling
                     47:        BOOL DoOpen( const char* pszFileName );
                     48:        BOOL DoSave( const char* pszFileName = NULL );
                     49:        BOOL DoFind( const char* pszLastName = NULL );
                     50: 
                     51:        // Person Handling
                     52:        void AddPerson( CPerson* pNewPerson );
                     53:        void ReplacePerson( CPerson* pOldPerson, const CPerson& rNewPerson );
                     54:        void DeletePerson( int nIndex );
                     55:        CPerson* GetPerson( int nIndex );
                     56: 
                     57:        // Database Attributes
                     58:        int GetCount()
                     59:                {
                     60:                        ASSERT_VALID( this );
                     61:                        if ( m_pFindList != NULL )
                     62:                                return m_pFindList->GetCount();
                     63:                        if ( m_pDataList != NULL )
                     64:                                return m_pDataList->GetCount();
                     65:                        return 0;
                     66:                }
                     67:                        
                     68:        BOOL IsDirty()
                     69:                {   ASSERT_VALID( this );
                     70:                        return ( m_pDataList != NULL ) ? m_pDataList->GetDirty() : FALSE; }
                     71:                        
                     72:        BOOL IsNamed()
                     73:                {   ASSERT_VALID( this );
                     74:                        return m_szFileName != szUntitled; }
                     75: 
                     76:        const char* GetName()
                     77:                {   ASSERT_VALID( this );
                     78:                        return m_szFileName; }
                     79:                
                     80:        CString GetTitle()
                     81:                {   ASSERT_VALID( this );
                     82:                        return  "Phone Book - " + m_szFileTitle; }
                     83:        void SetTitle( const char* pszTitle )
                     84:                {   ASSERT_VALID( this );
                     85:                        m_szFileTitle = pszTitle; }
                     86: 
                     87:        BOOL IsPresent()
                     88:                {   ASSERT_VALID( this );
                     89:                        return m_pDataList != NULL; }
                     90:                
                     91: protected:
                     92:        CPersonList* m_pDataList;
                     93:        CPersonList* m_pFindList;
                     94:        CString m_szFileName;
                     95:        CString m_szFileTitle;
                     96: 
                     97: private:
                     98:        CPersonList* ReadDataBase( CFile* pFile );
                     99:        BOOL WriteDataBase( CFile* pFile );
                    100:        
                    101: #ifdef _DEBUG
                    102: public:
                    103:        void AssertValid() const;
                    104: #endif
                    105: };
                    106: 
                    107: /////////////////////////////////////////////////////////////////////////////
                    108: 
                    109: #endif // __DATABASE_H__

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.