|
|
1.1 ! root 1: // person.h : Defines the class interfaces for CPerson, CPersonList. ! 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 __PERSON_H__ ! 14: #define __PERSON_H__ ! 15: #ifdef _DOS ! 16: #include <afx.h> ! 17: #else ! 18: #ifdef _NTWIN ! 19: #include <afx.h> ! 20: #else ! 21: #include <afxwin.h> ! 22: #endif ! 23: #endif ! 24: #include <afxcoll.h> ! 25: ! 26: ! 27: ///////////////////////////////////////////////////////////////////////////// ! 28: // class CPerson: ! 29: // Represents one person in the phone database. This class is derived from ! 30: // CObject (mostly to get access to the serialization protocol). ! 31: ! 32: class CPerson : public CObject ! 33: { ! 34: DECLARE_SERIAL( CPerson ); ! 35: ! 36: public: ! 37: //Construction ! 38: // For serializable classes, declare a constructor with no arguments. ! 39: CPerson() ! 40: { m_modTime = CTime::GetCurrentTime(); } ! 41: ! 42: CPerson( const CPerson& a ); ! 43: ! 44: // For our convenience, also declare a constructor with arguments. ! 45: CPerson( const char* pszLastName, ! 46: const char* pszFirstName, ! 47: const char* pszPhoneNum ); ! 48: ! 49: //Attributes ! 50: // Member functions to modify the protected member variables. ! 51: void SetLastName( const char* pszName ) ! 52: { ASSERT_VALID( this ); ! 53: ASSERT( pszName != NULL); ! 54: m_LastName = pszName; ! 55: m_modTime = CTime::GetCurrentTime(); } ! 56: ! 57: const CString& GetLastName() const ! 58: { ASSERT_VALID( this ); ! 59: return m_LastName; } ! 60: ! 61: void SetFirstName( const char* pszName ) ! 62: { ASSERT_VALID( this ); ! 63: ASSERT( pszName != NULL ); ! 64: m_FirstName = pszName; ! 65: m_modTime = CTime::GetCurrentTime(); } ! 66: ! 67: const CString& GetFirstName() const ! 68: { ASSERT_VALID( this ); ! 69: return m_FirstName; } ! 70: ! 71: void SetPhoneNumber( const char* pszNumber ) ! 72: { ASSERT_VALID( this ); ! 73: ASSERT( pszNumber != NULL ); ! 74: m_PhoneNumber = pszNumber; ! 75: m_modTime = CTime::GetCurrentTime(); } ! 76: ! 77: const CString& GetPhoneNumber() const ! 78: { ASSERT_VALID( this ); ! 79: return m_PhoneNumber; } ! 80: ! 81: const CTime GetModTime() const ! 82: { ASSERT_VALID( this ); ! 83: return m_modTime; } ! 84: ! 85: //Operations ! 86: CPerson& operator=( const CPerson& b ); ! 87: ! 88: //Implementation ! 89: protected: ! 90: // Member variables that hold data for person ! 91: CString m_LastName; ! 92: CString m_FirstName; ! 93: CString m_PhoneNumber; ! 94: CTime m_modTime; ! 95: ! 96: public: ! 97: // Override the Serialize function ! 98: virtual void Serialize( CArchive& archive ); ! 99: ! 100: #ifdef _DEBUG ! 101: // Override Dump for debugging support ! 102: virtual void Dump( CDumpContext& dc ) const; ! 103: virtual void AssertValid() const; ! 104: #endif ! 105: }; ! 106: ! 107: ///////////////////////////////////////////////////////////////////////////// ! 108: // class CPersonList: ! 109: // This represents a list of all persons in a phone database. This class is ! 110: // derived from CObList, a list of pointers to CObject-type objects. ! 111: ! 112: class CPersonList : public CObList ! 113: { ! 114: DECLARE_SERIAL( CPersonList ) ! 115: ! 116: public: ! 117: //Construction ! 118: ! 119: CPersonList() ! 120: { m_bIsDirty = FALSE; } ! 121: ! 122: // Add new functions ! 123: CPersonList* FindPerson( const char * szTarget ); ! 124: ! 125: // SetDirty/GetDirty ! 126: // Mark the person list as "dirty" (meaning "modified"). This flag can be ! 127: // checked later to see if the database needs to be saved. ! 128: // ! 129: void SetDirty( BOOL bDirty ) ! 130: { ASSERT_VALID( this ); ! 131: m_bIsDirty = bDirty; } ! 132: ! 133: BOOL GetDirty() ! 134: { ASSERT_VALID( this ); ! 135: return m_bIsDirty; } ! 136: ! 137: // Delete All will delete the Person objects as well as the pointers. ! 138: void DeleteAll(); ! 139: ! 140: protected: ! 141: BOOL m_bIsDirty; ! 142: }; ! 143: ! 144: ///////////////////////////////////////////////////////////////////////////// ! 145: ! 146: #endif // __PERSON_H__ ! 147:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.