beautypg.com

Apple Newton Programmer’s Newton 2.0 (for Newton 2.0) User Manual

Page 803

background image

C H A P T E R 2 2

Transport Interface

Using the Transport Interface

22-15

e-mail address to the sender’s internet address. Here’s an example of code that sets
the appropriate e-mail address in the

fromRef

object:

owner:=ResolveEntryAlias(GetUserConfig('currentPersona));

if owner and GetRoot().cardfile then begin

addrs := GetRoot().cardfile:BcEmailAddress(owner,

['|string.email.internet|]);

if addrs then

fromRef := clone(addrs[0]);

end

You can find a description of

BcEmailAddress

and other similar functions that

extract information from Names soup entries in “Names Functions and Methods”
(page 16-5) in Newton Programmer’s Reference.

If, instead of extracting the address and sending it as a string, your transport sends
addressing information as a frame, like the beam transport, you must remove any
soup entry aliases from the name reference before it is transmitted. You can do
this by using the name reference data definition method

PrepareForRouting

,

as follows:

// strip the aliases from a name ref

fromRef := datadef:PrepareForRouting(fromRef);

In general, however, you should not send all the information in a user’s persona
with a message, since it can include personal or confidential information such as
credit card numbers.

For more information about name references and the methods of name reference
data definitions, see the section “Creating a Name Reference” beginning on
page 21-27, and “Name References” (page 5-1) in Newton Programmer’s
Reference
.

The following is an example of how to override the

NewItem

method during a

send operation to add a

fromRef

slot:

// a sample overridden NewItem method

mytransport.NewItem := func(context) begin

// first call inherited method to get default frame

local item := inherited:NewItem(context);

// get sender info and insert fromRef slot

local persona:= GetUserConfig('currentPersona);

local dataDef := GetDataDefs(addressingClass);