Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

MNRefProxy.h

Go to the documentation of this file.
00001 /* 00002 * Copyright (c) 1997 00003 * Silicon Graphics Computer Systems, Inc. 00004 * 00005 * Permission to use, copy, modify, distribute and sell this software 00006 * and its documentation for any purpose is hereby granted without fee, 00007 * provided that the above copyright notice appear in all copies and 00008 * that both that copyright notice and this permission notice appear 00009 * in supporting documentation. Silicon Graphics makes no 00010 * representations about the suitability of this software for any 00011 * purpose. It is provided "as is" without express or implied warranty. 00012 * 00013 * Heavily modified by KOM/Darmstadt University of Technology, 2000 00014 */ 00015 #ifndef _R_REF_PROXY_H 00016 #define _R_REF_PROXY_H 00017 00018 #include <sys/types.h> 00019 00024 class MNRefProxy; 00025 class MNRope; 00026 00033 class MNRefProxy 00034 { 00035 friend class MNRope; 00036 friend class _Rope_iterator; 00037 friend class MNPtrProxy; 00038 00039 size_t _M_pos; 00040 uchar_t _M_current; 00041 bool _M_current_valid; 00042 MNRope* _M_root; // The whole rope. 00043 00044 public: 00045 MNRefProxy(MNRope* __r, size_t __p); 00046 MNRefProxy(const MNRefProxy& __x); 00047 00053 MNRefProxy(MNRope* __r, size_t __p, uchar_t __c); 00054 00055 operator uchar_t () const; 00056 00057 MNRefProxy& operator= (uchar_t __c); 00058 00059 MNRefProxy& operator= (const MNRefProxy& __c); 00060 00061 private: 00067 MNPtrProxy operator& () const; 00068 }; 00069 00071 inline void swap(MNRefProxy __a, 00072 MNRefProxy __b) 00073 { 00074 uchar_t __tmp = __a; 00075 __a = __b; 00076 __b = __tmp; 00077 } 00078 00080 00081 #endif /* _R_REF_PROXY_H */ 00082

Generated on Sun Mar 6 13:35:49 2005 for Komssys by doxygen 1.3.8