---
name: "SoTranSender"
section: "3iv"
platform: "linux"
package: "inventor-doc"
version: "2.1.6+ds-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SoTranSender/3iv"
---

# SoTranSender(3iv)

sends database changes for transcription

## NAME

SoTranSender — sends database changes for transcription

## INHERITS FROM

SoTranSender

## SYNOPSIS

**#include \<Inventor/misc/SoTranscribe.h\>**

Methods from class SoTranSender:

	**SoTranSender(SoOutput \*output)**\
 	**~SoTranSender()**\
 **SoOutput \***	**getOutput() const**\
 **void**	**insert(SoNode \*node)**\
 **void**	**insert(SoNode \*node, SoNode \*parent, int n)**\
 **void**	**remove(SoNode \*parent, int n)**\
 **void**	**replace(SoNode \*parent, int n, SoNode \*newNode)**\
 **void**	**modify(SoNode \*node)**\
 **void**	**prepareToSend()**

## DESCRIPTION

**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.**

**The SoTranSender** 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 **SoOutput** instance. It supports a limited set of changes to a database; each change is stored as a command in the transcription area. The **SoTranReceiver** class can be used at the other end to interpret the transcribed commands.

## METHODS

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

	**~SoTranSender()**\
 Destructor.

**SoOutput \***	**getOutput() const**\
 Returns pointer to current **SoOutput** instance.

**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.

**void**	**insert(SoNode \*node, SoNode \*parent, int n)**\
 Adds an INSERT command to the transcription area. The given node will be added as the **n**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.

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

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

**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.

**void**	**prepareToSend()**\
 Prepares a **SoTranSender** 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.

## SEE ALSO

**SoOutput, SoTranReceiver**
