Annotation of mstools/mfc/samples/tutorial/database.h, revision 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.