NAME SoTranSender "" "" { sends database changes for transcription }

INCLUDE misc/SoTranscribe.h

DESC {
This class is used for transcribing Inventor data.  Transcription is
the process of packaging changes to a database and sending them over a
"wire" to another database.
\p
The \cSoTranSender\. class is used on the sending side of
transcription.  It packages up changes to a Inventor database into a
file or memory area defined by an \cSoOutput\. instance. It supports a
limited set of changes to a database; each change is stored as a
command in the transcription area.  The \cSoTranReceiver\. class can
be used at the other end to interpret the transcribed commands.
}

METHOD "" SoTranSender(SoOutput *output) {
The constructor takes a pointer to an \cSoOutput\. instance that
determines what the transcription area is (file or memory).
}

METHOD "" ~SoTranSender() { Destructor. }

METHOD "" SoOutput * getOutput() const {
Returns pointer to current \cSoOutput\. instance.
}

METHOD "" void insert(SoNode *node) {
Adds an INSERT command to the transcription area. The given node will
be added as the last child of the root node on the receiving end.
}

METHOD InsertUnder void insert(SoNode *node, SoNode *parent, int n) {
Adds an INSERT command to the transcription area. The given node will
be added as the \an\.th child of the given parent node on the
receiving end. A NULL parent node causes the node to be added to the
receiving end's root node.
}

METHOD "" void remove(SoNode *parent, int n) {
Adds a REMOVE command to the transcription area. The \an\.th child of
the given (non-NULL) parent node on the receiving end will be removed.
}

METHOD "" void replace(SoNode *parent, int n, SoNode *newNode) {
Adds a REPLACE command to the transcription area. The \an\.th child of
the given (non-NULL) parent node on the receiving end will be replaced
with \anewNode\..
}

METHOD "" void modify(SoNode *node) {
Adds a MODIFY command to the transcription area. Updates the field
data for the given node to the new contents. Note that this changes
only field data; children of groups are not affected, nor is any
non-field instance data.
}

METHOD "" void prepareToSend() {
Prepares a \cSoTranSender\. instance for transcription, making sure
the transcription area is complete and all packaged to go. This must
be called before the transcription can be performed.
}

ALSO { SoOutput, SoTranReceiver }

