summaryrefslogtreecommitdiff
path: root/sigalatvision/doc/html/classTStreamable.html
blob: 11b6c77f6036621d7b1dbbd28296b68ee7c10306 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>TStreamable class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.8.1 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; </center>
<hr><h1>TStreamable  Class Reference</h1>Gives the streamable property to a class. 
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="tobjstrm_8h-source.html">tobjstrm.h</a>&gt;</code>
<p>
<p>Inheritance diagram for TStreamable::
<p><center><img src="classTStreamable.gif" usemap="#TStreamable_map" border="0"></center>
<map name="TStreamable_map">
<area href="classTCollection.html" alt="TCollection" shape="rect" coords="0,56,127,80">
<area href="classTHelpIndex.html" alt="THelpIndex" shape="rect" coords="137,56,264,80">
<area href="classTHelpTopic.html" alt="THelpTopic" shape="rect" coords="274,56,401,80">
<area href="classTStringList.html" alt="TStringList" shape="rect" coords="411,56,538,80">
<area href="classTStrListMaker.html" alt="TStrListMaker" shape="rect" coords="548,56,675,80">
<area href="classTValidator.html" alt="TValidator" shape="rect" coords="685,56,812,80">
<area href="classTView.html" alt="TView" shape="rect" coords="959,56,1086,80">
<area href="classTDirCollection.html" alt="TDirCollection" shape="rect" coords="137,112,264,136">
<area href="classTSortedCollection.html" alt="TSortedCollection" shape="rect" coords="137,168,264,192">
<area href="classTFilterValidator.html" alt="TFilterValidator" shape="rect" coords="822,112,949,136">
<area href="classTLookupValidator.html" alt="TLookupValidator" shape="rect" coords="822,168,949,192">
<area href="classTPXPictureValidator.html" alt="TPXPictureValidator" shape="rect" coords="822,224,949,248">
<area href="classTBackground.html" alt="TBackground" shape="rect" coords="1096,112,1223,136">
<area href="classTButton.html" alt="TButton" shape="rect" coords="1096,168,1223,192">
<area href="classTCluster.html" alt="TCluster" shape="rect" coords="1096,224,1223,248">
<area href="classTColorDisplay.html" alt="TColorDisplay" shape="rect" coords="1096,280,1223,304">
<area href="classTColorSelector.html" alt="TColorSelector" shape="rect" coords="1096,336,1223,360">
<area href="classTEditor.html" alt="TEditor" shape="rect" coords="1096,392,1223,416">
<area href="classTFileInfoPane.html" alt="TFileInfoPane" shape="rect" coords="1096,448,1223,472">
<area href="classTFrame.html" alt="TFrame" shape="rect" coords="1096,504,1223,528">
<area href="classTGroup.html" alt="TGroup" shape="rect" coords="1096,560,1223,584">
<area href="classTHistory.html" alt="THistory" shape="rect" coords="1096,616,1223,640">
<area href="classTIndicator.html" alt="TIndicator" shape="rect" coords="1096,672,1223,696">
<area href="classTInputLine.html" alt="TInputLine" shape="rect" coords="1096,728,1223,752">
<area href="classTListViewer.html" alt="TListViewer" shape="rect" coords="1096,784,1223,808">
<area href="classTMenuView.html" alt="TMenuView" shape="rect" coords="1096,840,1223,864">
<area href="classTScrollBar.html" alt="TScrollBar" shape="rect" coords="1096,896,1223,920">
<area href="classTScroller.html" alt="TScroller" shape="rect" coords="1096,952,1223,976">
<area href="classTStaticText.html" alt="TStaticText" shape="rect" coords="1096,1008,1223,1032">
<area href="classTStatusLine.html" alt="TStatusLine" shape="rect" coords="1096,1064,1223,1088">
</map>
<a href="classTStreamable-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Protected Methods</h2></td></tr>
<tr><td nowrap align=right valign=top>virtual void*&nbsp;</td><td valign=bottom><a class="el" href="classTStreamable.html#b0">read</a> (<a class="el" href="classipstream.html">ipstream</a> &amp;is)=0</td></tr>
<tr><td nowrap align=right valign=top>virtual void&nbsp;</td><td valign=bottom><a class="el" href="classTStreamable.html#b1">write</a> (<a class="el" href="classopstream.html">opstream</a> &amp;os)=0</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Gives the streamable property to a class.
<p>
<a class="el" href="classTView.html">TView</a> has two base classes, <a class="el" href="classTObject.html">TObject</a> and the abstract class TStreamable. All the viewable classes, derived ultimately from <a class="el" href="classTView.html">TView</a>, therefore also inherit from TStreamable.
<p>
Several non-view classes, such as <a class="el" href="classTCollection.html">TCollection</a>, <a class="el" href="classTStrListMaker.html">TStrListMaker</a> and <a class="el" href="classTStringList.html">TStringList</a>, also have TStreamable as a base class. Such classes are known as streamable, meaning that their objects can be written to and read from streams using the TVision stream manager.
<p>
If you want to develop your own streamable classes, make sure that TStreamable is somewhere in their ancestry. Using an existing streamable class as a base class, of course, is an obvious way of achieving this.
<p>
Since TStreamable is an abstract class, no objects of this class can be instantiated. Before a streamable class can be used with streams, the class must override the three pure virtual functions streamableName(), <a class="el" href="classTStreamable.html#b0">read</a>(), and <a class="el" href="classTStreamable.html#b1">write</a>(). 
<p>

<p>
Definition at line <a class="el" href="tobjstrm_8h-source.html#l00080">80</a> of file <a class="el" href="tobjstrm_8h-source.html">tobjstrm.h</a>.<hr><h2>Member Function Documentation</h2>
<a name="b0" doxytag="TStreamable::read"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void * TStreamable::read (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="classipstream.html">ipstream</a> &amp; <em>is</em>&nbsp;)<code> [protected, pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This pure virtual function must be overridden (or redeclared as pure virtual) in every derived class. The overriding <a class="el" href="classTStreamable.html#b0">read</a>() function for each streamable class must read the necessary data members from the <a class="el" href="classipstream.html">ipstream</a> object `is'. <a class="el" href="classTStreamable.html#b0">read</a>() is usually implemented by calling the base class's <a class="el" href="classTStreamable.html#b0">read</a>() (if any), then extracting any additional data members for the derived class. 
<p>
Reimplemented in <a class="el" href="classTBackground.html#b2">TBackground</a>, <a class="el" href="classTColorSelector.html#b2">TColorSelector</a>, <a class="el" href="classTColorDisplay.html#b2">TColorDisplay</a>, <a class="el" href="classTColorGroupList.html#b2">TColorGroupList</a>, <a class="el" href="classTColorDialog.html#b2">TColorDialog</a>, <a class="el" href="classTInputLine.html#b2">TInputLine</a>, <a class="el" href="classTButton.html#b2">TButton</a>, <a class="el" href="classTCluster.html#b2">TCluster</a>, <a class="el" href="classTMultiCheckBoxes.html#b2">TMultiCheckBoxes</a>, <a class="el" href="classTListBox.html#b2">TListBox</a>, <a class="el" href="classTStaticText.html#b2">TStaticText</a>, <a class="el" href="classTParamText.html#b2">TParamText</a>, <a class="el" href="classTLabel.html#b2">TLabel</a>, <a class="el" href="classTHistory.html#b2">THistory</a>, <a class="el" href="classTEditor.html#b2">TEditor</a>, <a class="el" href="classTMemo.html#b2">TMemo</a>, <a class="el" href="classTFileEditor.html#b2">TFileEditor</a>, <a class="el" href="classTEditWindow.html#b2">TEditWindow</a>, <a class="el" href="classTHelpTopic.html#b1">THelpTopic</a>, <a class="el" href="classTHelpIndex.html#b1">THelpIndex</a>, <a class="el" href="classTMenuView.html#b2">TMenuView</a>, <a class="el" href="classTStatusLine.html#b2">TStatusLine</a>, <a class="el" href="classTCollection.html#b1">TCollection</a>, <a class="el" href="classTSortedCollection.html#b1">TSortedCollection</a>, <a class="el" href="classTOutlineViewer.html#b1">TOutlineViewer</a>, <a class="el" href="classTOutline.html#b1">TOutline</a>, <a class="el" href="classTStringList.html#b2">TStringList</a>, <a class="el" href="classTStrListMaker.html#b2">TStrListMaker</a>, <a class="el" href="classTSortedListBox.html#a3">TSortedListBox</a>, <a class="el" href="classTFileDialog.html#b2">TFileDialog</a>, <a class="el" href="classTChDirDialog.html#b2">TChDirDialog</a>, <a class="el" href="classTValidator.html#b2">TValidator</a>, <a class="el" href="classTPXPictureValidator.html#b2">TPXPictureValidator</a>, <a class="el" href="classTFilterValidator.html#b2">TFilterValidator</a>, <a class="el" href="classTRangeValidator.html#b2">TRangeValidator</a>, <a class="el" href="classTStringLookupValidator.html#b2">TStringLookupValidator</a>, <a class="el" href="classTView.html#b2">TView</a>, <a class="el" href="classTScrollBar.html#b2">TScrollBar</a>, <a class="el" href="classTScroller.html#b2">TScroller</a>, <a class="el" href="classTListViewer.html#b2">TListViewer</a>, <a class="el" href="classTGroup.html#b2">TGroup</a>, and <a class="el" href="classTWindow.html#b2">TWindow</a>.    </td>
  </tr>
</table>
<a name="b1" doxytag="TStreamable::write"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td nowrap valign="top"><b> 
void TStreamable::write (
          </b></td>
          <td valign="bottom"><b>
<a class="el" href="classopstream.html">opstream</a> &amp; <em>os</em>&nbsp;)<code> [protected, pure virtual]</code>
          </b></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
This pure virtual function must be overridden (or redeclared as pure virtual) in every derived class. The overriding <a class="el" href="classTStreamable.html#b1">write</a>() function for each streamable class must write the necessary data members to the <a class="el" href="classopstream.html">opstream</a> object `os'. <a class="el" href="classTStreamable.html#b1">write</a>() is usually implemented by calling the base class's <a class="el" href="classTStreamable.html#b1">write</a>() (if any), then inserting any additional data members for the derived class. 
<p>
Reimplemented in <a class="el" href="classTBackground.html#b1">TBackground</a>, <a class="el" href="classTColorSelector.html#b1">TColorSelector</a>, <a class="el" href="classTColorDisplay.html#b1">TColorDisplay</a>, <a class="el" href="classTColorGroupList.html#b1">TColorGroupList</a>, <a class="el" href="classTColorDialog.html#b1">TColorDialog</a>, <a class="el" href="classTInputLine.html#b1">TInputLine</a>, <a class="el" href="classTButton.html#b1">TButton</a>, <a class="el" href="classTCluster.html#b1">TCluster</a>, <a class="el" href="classTMultiCheckBoxes.html#b1">TMultiCheckBoxes</a>, <a class="el" href="classTListBox.html#b1">TListBox</a>, <a class="el" href="classTStaticText.html#b1">TStaticText</a>, <a class="el" href="classTParamText.html#b1">TParamText</a>, <a class="el" href="classTLabel.html#b1">TLabel</a>, <a class="el" href="classTHistory.html#b1">THistory</a>, <a class="el" href="classTEditor.html#b1">TEditor</a>, <a class="el" href="classTMemo.html#b1">TMemo</a>, <a class="el" href="classTFileEditor.html#b1">TFileEditor</a>, <a class="el" href="classTEditWindow.html#b1">TEditWindow</a>, <a class="el" href="classTHelpTopic.html#b0">THelpTopic</a>, <a class="el" href="classTHelpIndex.html#b0">THelpIndex</a>, <a class="el" href="classTMenuView.html#b1">TMenuView</a>, <a class="el" href="classTStatusLine.html#b1">TStatusLine</a>, <a class="el" href="classTCollection.html#b2">TCollection</a>, <a class="el" href="classTSortedCollection.html#b2">TSortedCollection</a>, <a class="el" href="classTOutlineViewer.html#b0">TOutlineViewer</a>, <a class="el" href="classTOutline.html#b0">TOutline</a>, <a class="el" href="classTStringList.html#b1">TStringList</a>, <a class="el" href="classTStrListMaker.html#b1">TStrListMaker</a>, <a class="el" href="classTFileDialog.html#b1">TFileDialog</a>, <a class="el" href="classTChDirDialog.html#b1">TChDirDialog</a>, <a class="el" href="classTValidator.html#b1">TValidator</a>, <a class="el" href="classTPXPictureValidator.html#b1">TPXPictureValidator</a>, <a class="el" href="classTFilterValidator.html#b1">TFilterValidator</a>, <a class="el" href="classTRangeValidator.html#b1">TRangeValidator</a>, <a class="el" href="classTStringLookupValidator.html#b1">TStringLookupValidator</a>, <a class="el" href="classTView.html#b1">TView</a>, <a class="el" href="classTScrollBar.html#b1">TScrollBar</a>, <a class="el" href="classTScroller.html#b1">TScroller</a>, <a class="el" href="classTListViewer.html#b1">TListViewer</a>, <a class="el" href="classTGroup.html#b1">TGroup</a>, and <a class="el" href="classTWindow.html#b1">TWindow</a>.    </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="tobjstrm_8h-source.html">tobjstrm.h</a></ul>
<hr><address><small>Generated at Sat Sep 22 20:19:35 2001 for TVision by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.8.1 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>