VAX Notes Callable Routines Reference Manual Order Number: DRAFT February 1990 This is a draft and likely does not fully reflect the API. Revision/Update Information: This is a revised manual. Operating System and Version: VMS Version 5.3 or higher. Software Version: VAX Notes Version 2.1. digital equipment corporation maynard, massachusetts ___________________________________________________ First Printing, March 1986 Revised, February 1990 The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by Digital Equipment Corporation or its affiliated companies. Restricted Rights: Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013. © Digital Equipment Corporation 1986, 1990. All Rights Reserved. Printed in U.S.A. The postpaid Reader's Comments forms at the end of this docu- ment request your critical evaluation to assist in preparing future documentation. ZK____ Contents ________________________________________________________________ Preface .......................................................v. ________________________________________________________________ Part I VAX Notes Callable Routines and Network Protocol ________________________________________________________________ Chapter 1 Introduction 1.1 Callable High-Level User Interface.............. 1-1 1.2 Notefile Format...................................1-3 1.2.1 Use of Keys in Records.................... 1-3 1.2.2 Record Types................................1-5 1.3 The Seen/Unseen Map...............................1-8 1.4 Callable Routines.................................1-8 1.4.1 Calling Sequence........................... 1-9 1.4.2 Error Reporting by the Callable Routines ..................................1-10 1.4.3 Continuable Operations.................... 1-11 1.4.4 Passing Context Information.............. 1-11 iii ________________________________________________________________ Chapter 2 Notefile Routines 2.1 NOTES$NOTEFILE_BEGIN..............................2-3 2.2 NOTES$NOTEFILE_END................................2-5 2.3 NOTES$NOTEFILE_GET_INFO...........................2-5 2.4 NOTES$NOTEFILE_MODIFY.............................2-5 2.5 NOTES$NOTEFILE_LIST_BEGIN........................ 2-6 2.6 NOTES$NOTEFILE_LIST...............................2-7 ________________________________________________________________ Chapter 3 Class Routines 3.1 NOTES$CLASS_BEGIN.................................3-2 3.2 NOTES$CLASS_END...................................3-2 3.3 NOTES$CLASS_ADD...................................3-2 3.4 NOTES$CLASS_DELETE................................3-3 3.5 NOTES$CLASS_GET...................................3-3 3.6 NOTES$CLASS_GET_ENTRY.............................3-4 3.7 NOTES$CLASS_MODIFY................................3-4 iv ________________________________________________________________ Chapter 4 Entry Routines 4.1 NOTES$ENTRY_BEGIN.................................4-3 4.2 NOTES$ENTRY_END...................................4-3 4.3 NOTES$ENTRY_ADD...................................4-4 4.4 NOTES$ENTRY_DELETE................................4-5 4.5 NOTES$ENTRY_GET...................................4-5 4.6 NOTES$ENTRY_GET_CLASS.............................4-6 4.7 NOTES$ENTRY_GET_KEYWORD...........................4-7 4.8 NOTES$ENTRY_MODIFY................................4-7 4.9 NOTES$ENTRY_UPDATE................................4-8 ________________________________________________________________ Chapter 5 Keyword Routines 5.1 NOTES$KEYWORD_BEGIN...............................5-2 5.2 NOTES$KEYWORD_END.................................5-2 5.3 NOTES$KEYWORD_ADD.................................5-2 5.4 NOTES$KEYWORD_DELETE..............................5-3 5.5 NOTES$KEYWORD_GET.................................5-4 5.6 NOTES$KEYWORD_GET_NOTE............................5-4 5.7 NOTES$KEYWORD_MODIFY..............................5-5 v ________________________________________________________________ Chapter 6 Note Routines 6.1 NOTES$NOTE_BEGIN..................................6-3 6.2 NOTES$NOTE_END....................................6-4 6.3 NOTES$NOTE_ADD....................................6-4 6.4 NOTES$NOTE_ADD_TEXT...............................6-5 6.5 NOTES$NOTE_DELETE.................................6-5 6.6 NOTES$NOTE_GET....................................6-6 6.7 NOTES$NOTE_GET_KEYWORD............................6-8 6.8 NOTES$NOTE_GET_TEXT...............................6-8 6.9 NOTES$NOTE_MODIFY.................................6-9 ________________________________________________________________ Chapter 7 Profile Routines 7.1 NOTES$PROFILE_BEGIN...............................7-2 7.2 NOTES$PROFILE_END.................................7-2 7.3 NOTES$PROFILE_GET.................................7-3 7.4 NOTES$PROFILE_MODIFY..............................7-3 vi ________________________________________________________________ Chapter 8 User Routines 8.1 NOTES$USER_BEGIN..................................8-2 8.2 NOTES$USER_END....................................8-2 8.3 NOTES$USER_ADD....................................8-3 8.4 NOTES$USER_DELETE.................................8-4 8.5 NOTES$USER_GET....................................8-4 8.6 NOTES$USER_MODIFY.................................8-5 ________________________________________________________________ Chapter 9 VAX Notes Network Protocol 9.1 Type Field........................................9-2 9.2 Length Field......................................9-4 9.3 Value Field.......................................9-6 9.4 Structure of a Data Packet....................... 9-6 ________________________________________________________________ Part II VAX Notes Routines Dictionary NOTES$CLASS_ADD.................................... 3 NOTES$CLASS_BEGIN.................................. 6 NOTES$CLASS_DELETE................................. 9 NOTES$CLASS_END....................................12 NOTES$CLASS_GET....................................15 NOTES$CLASS_GET_ENTRY............................. 18 NOTES$CLASS_MODIFY.................................21 NOTES$ENTRY_ADD....................................24 vii NOTES$ENTRY_BEGIN..................................27 NOTES$ENTRY_DELETE.................................30 NOTES$ENTRY_END....................................33 NOTES$ENTRY_GET....................................36 NOTES$ENTRY_GET_CLASS............................. 39 NOTES$ENTRY_GET_KEYWORD........................... 42 NOTES$ENTRY_MODIFY.................................45 NOTES$ENTRY_UPDATE.................................48 NOTES$KEYWORD_ADD..................................51 NOTES$KEYWORD_BEGIN............................... 54 NOTES$KEYWORD_DELETE.............................. 57 NOTES$KEYWORD_END..................................60 NOTES$KEYWORD_GET..................................63 NOTES$KEYWORD_GET_NOTE............................ 66 NOTES$KEYWORD_MODIFY.............................. 69 NOTES$NOTEFILE_BEGIN.............................. 72 NOTES$NOTEFILE_END.................................76 NOTES$NOTEFILE_GET_INFO........................... 79 NOTES$NOTEFILE_LIST............................... 82 NOTES$NOTEFILE_LIST_BEGIN........................ 85 NOTES$NOTEFILE_MODIFY............................. 88 NOTES$NOTE_ADD.....................................91 NOTES$NOTE_ADD_TEXT............................... 94 NOTES$NOTE_BEGIN...................................97 NOTES$NOTE_DELETE.................................100 NOTES$NOTE_END....................................103 NOTES$NOTE_GET....................................106 NOTES$NOTE_GET_KEYWORD............................110 NOTES$NOTE_GET_TEXT...............................113 NOTES$NOTE_MODIFY.................................116 NOTES$PROFILE_BEGIN...............................119 NOTES$PROFILE_END.................................122 NOTES$PROFILE_GET.................................125 NOTES$PROFILE_MODIFY..............................128 NOTES$USER_ADD....................................131 NOTES$USER_BEGIN..................................134 NOTES$USER_DELETE.................................137 NOTES$USER_END....................................140 viii NOTES$USER_GET....................................143 NOTES$USER_MODIFY.................................146 ________________________________________________________________ Part III Appendixes ________________________________________________________________ Appendix A Item List Format and Contents A.1 Various Context Items.............................A-1 A.2 Item Codes........................................A-2 ________________________________________________________________ Appendix B Sample Program ________________________________________________________________ Appendix C Messages ________________________________________________________________ Index ________________________________________________________________ Examples 1 ...................................................75. B-1 Sample BASIC Program..............................B-3 ix ________________________________________________________________ Tables 1-1 Key Usage.........................................1-4 A-1 Item Codes........................................A-2 x Preface ________________________________________________________________ The routines described in this manual allow you to develop a new user interface for VAX Notes or to call VAX Notes from an application program. ____________________________________________________________ Intended Audience This manual is intended for programmers who will be writing a user interface for VAX Notes, or using VAX Notes routines in other programs. ____________________________________________________________ Document Structure This manual is divided into three parts. Part I consists of nine chapters, Part II is a dictionary of routines, and Part III consists of three appendixes. Chapter 1, Introduction, gives general information about the structure of the callable routines. v Chapters 2 through 8 provide reference information for the callable routines, as follows: o Chapter 2, Notefile Routines, describes the routines used to create and access notefiles. A notefile is either a conference or a Notebook. o Chapter 3, Class Routines, describes the routines used to access class definitions. A class is a named set of Notebook entries. An entry is a conference that has been entered in a user's Notebook. o Chapter 4, Entry Routines, describes the routines used to access entry definitions, which store information about conferences in users' Notebooks. o Chapter 5, Keyword Routines, describes the routines used to access keywords. Keywords are an aid to the quick retrieval of information from a conference. o Chapter 6, Note Routines, describes the routines used to access a note or set of notes once the notefile has been opened. A note is a single communication (either a topic or a reply) to a conference. o Chapter 7, Profile Routines, describes the routines used to access a user's individual information. The profile is part of a user's Notebook. o Chapter 8, User Routines, describes the routines used to access member information. Chapter 9, VAX Notes Network Protocol, describes the rules that govern the exchange of data between clients and servers. Part II, VAX Notes Routines Dictionary, provides reference information on the callable routines in alphabetic order. Appendix A, Item List Format and Contents, provides addi- tional reference information on VAX Notes item codes. vi Appendix B, Sample Program, shows and explains a sample program that uses the VAX Notes callable routines. The sample program is presented in the BASIC language. Appendix C, Messages, lists all error and other messages returned by VAX Notes. ____________________________________________________________ Associated Documents You should have the Guide to VAX Notes (Order number AI- GH98B-TE) available for reference. ____________________________________________________________ Conventions _____________________________________________________________ Convention_______Meaning_____________________________________ . .. A horizontal ellipsis in a figure or example indicates that not all of the statements are shown. file- A horizontal ellipsis following a parameter, spec, . .. option, or value in syntax descriptions in- dicates that additional parameters, options, or values can be entered. [expression] Square brackets indicate that the enclosed item is optional. (Square brackets are not, however, optional indicators in the syntax of a directory name in a file specifica- tion.) vii _____________________________________________________________ Convention_______Meaning_____________________________________ {option|option} Braces in VAX Notes syntax enclose lists of alternatives from which you must select one _________________item._______________________________________ viii Part I VAX Notes Callable Routines and Network Protocol ________________________________________________________________ Chapter 1 Introduction ________________________________________________________________ This chapter provides general information about the structure of VAX Notes callable routines. A sample BASIC program in Appendix B demonstrates the correct use of the callable routines. ____________________________________________________________ 1.1 Callable High-Level User Interface The NOTES$NOTES routine provides high-level callable ac- cess to VAX Notes. If you want the entire interactive VAX Notes utility, call the NOTES$NOTES routine. It invokes the appropriate user interface based on the input device, and processes commands from SYS$INPUT until it returns to the calling program. Before you can set up a call to NOTES$NOTES, you must de- termine whether the call should be a procedure call or a function call. Call NOTES$NOTES as a function if you want it to return a condition value. Otherwise, if you are not interested in the condition value, you can call NOTES$NOTES as a procedure. You should generally call NOTES$NOTES as a function because not checking the condition value can lead to many undiscovered errors. Introduction 1-1 The format for calling NOTES$NOTES as a function is condition_value = NOTES$NOTES ([arg1]) The format for calling NOTES$NOTES as a procedure is CALL NOTES$NOTES ([arg1]) where arg1 is the address of a VMS string descriptor of the VAX Notes DCL command line with which to start up VAX Notes. The argument you supply in the call to NOTES$NOTES must have these attributes: _____________________________________________________________ Attribute_Value_________Description__________________________ VMS char_string VMS data structure; string of from 0 Usage: to 65,535 8-bit characters Type: character VMS data type; symbolic code DSC$K_ string DTYPE_T Access: read only Data must be read as input by NOTES$NOTES and not modified Mechanism:by reference Address of data is passed to ________________________NOTES$NOTES__________________________ If you do not supply an argument, no special processing will be done and VAX Notes will start up in the default Notebook class, as if the command were $ NOTES. You declare the NOTES$NOTES routine in your program as you would declare any other external routine. The declaration statement will vary depending on whether you are calling NOTES$NOTES as a procedure or function. Refer to your lan- guage reference manual or handbook for details. Because of the variety of condition values that can be re- turned by NOTES$NOTES, you should check for success or fail- ure only. You can check for an odd number, since all success values are odd. If the condition value returned is not a suc- cess condition, then the routine did not complete normally and the information it was supposed to return may be missing, incomplete, or incorrect. 1-2 Introduction You must create a command procedure for linking as follows: $ LINK yourfile, SYS$INPUT:/OPTIONS SYS$LIBRARY:NOTES$SHARE/SHARE $ EXIT ____________________________________________________________ 1.2 Notefile Format The VAX Notes notefile format provides good performance and extensibility. The same format is used for conferences and Notebooks. Your access to the notefile is through the VAX Notes callable routines, which can provide any and all information in a notefile. Knowledge of the complete notefile format is there- fore unnecessary, and it is not documented. The data portion of the records is encoded using Type Length Values (TLVs). Thus, considerable latitude is allowed for future extensions. (See Chapter 9 for an explanation of TLV code.) ____________________________________________________________ 1.2.1 Use of Keys in Records Notefiles are implemented as VAX Record Management Services (VAX RMS) indexed files with three keys: o A binary key for unique identifiers (UIDs) o A binary key for topic.reply (t.r) o A string key (64 bytes) There are several kinds of records (described in Section 1.2.2), and each makes its own use of the key fields, as indicated in Table 1-1. All record types have the UID key (which is the primary key for the VAX RMS file), while only some record types use the topic.reply (t.r) key or the string key. For the UID key, the type of access (direct access only or direct and sequential access) is also indicated. Introduction 1-3 Table 1-1: Key Usage _____________________________________________________________ Record_Type_____UID_____________T.R___________String_Key_____ Conference Direct 0 0 headers Member Direct 0 User name Access Direct 0 Node name Note header Direct and T.R 0 sequential Note text Direct and T.R 0 sequential Keyword Direct 0 Keyword Entry Direct 0 Entry name Class of Direct 0 Class name conferences Profile_________Direct__________0_____________0______________ String keys are prefixed with a byte to indicate the record type. For instance, the user-name string key for members may be prefixed with a 1, keywords with a 2, and so forth. The prefix allows VAX Notes to use VAX RMS to easily read through all member records, in alphabetical order, without also reading keyword and other records. UID Key Layout UIDs in the notefile are allocated from two pools of avail- able UIDs. One pool provides sequentially increasing UIDs for note header records, while the other provides UIDs for all other record types. Having two pools of UIDs makes the map of seen/unseen notes more succinct, by collapsing ranges of con- secutive note UIDs, and improves performance by segregating the note headers from the other record types. 1-4 Introduction The 32-bit UIDs have the following format: 00yy yyyy yyyy yyyy yyyy yyyy yyyy yyyy Miscellaneous records 01zz zzzz wwww wwww wwww wwww wwww wwww Reserved (z not equal to 0) 0100 0000 xxxx xxxx xxxx xxxx xxxx xxxx Note header record 1xxx xxxx xxxx xxxx xxxx xxxx xsss ssss Note text record The high bit is on for note text records, which also have 24 bits of UID, and 7 low bits to indicate a note text record number (recall that each VAX RMS record is 2K bytes, and can hold several text records). If the note exceeds 128 note text records (that is, more than 256K bytes), another UID is allocated for the continuation. The high bit is off for all other records. ____________________________________________________________ 1.2.2 Record Types There are a number of record types, as follows: Conference Header Records Conference header records contain information that applies to the entire notefile. Each notefile has two conference header records. One conference header record stores the values of the highest used UID number and highest used note number, and is used to sequentially allocate new UIDs and note numbers. In addition, this conference header record stores various structural attributes, such as a notefile format number, whether this conference is open or closed, whether anyone can create keywords, and so on. The other conference header record holds more "visible" information, such as the notefile title, notice of the day, and moderator name. Member Records Member records authorize users to participate in a private conference. The moderator must give the user authorization to join the private conference. Each record has a unique member name (without a node name) as the string key, and contains a list of the member's node::user-names. These records also indicate privileges such as whether the member can create new keywords or moderate the conference, and thus are used for public conferences as well as private. Introduction 1-5 Access Records An access record has a node name as the string key and con- tains a list of the user names on that node that are members of the conference. Each user name entry points to the member- ship record for that member. Note Header Records A note header record provides all the structural information about the note. It contains everything except the note text; that is, the author name, title, creation date/time, number of replies, list of keywords, whether replies can be written, and whether the note is hidden. The UID of the first note text record for this note is calculated as a simple function of the UID for the note header record, as is explained in Section 1.2.1. Note Text Records Note text records contain the body of a note. The text is stored as a constructor TLV, containing an ordered collection of text TLVs for the lines of text in the note, with TLVs allowed to cross record boundaries. Each note text record also contains the t.r number. Keyword Records A keyword record contains the keyword and a list of the notes to which the keyword refers. For each note in the list, the topic.reply (t.r) number and the note UID are stored in the keyword record, and that note is marked as having this keyword. The keyword-record mechanism also supports markers. Markers are created by an individual for his or her use only, and are stored in the user's Notebook; a marker refers to a single note in any conference, not necessarily the current conference. If the keyword-record mechanism is used for a marker instead of a keyword, the reference includes the entry name for the conference as well as the t.r number and the note UID. 1-6 Introduction Entry Records Entry records store entries in a user's Notebook. The infor- mation stored includes the following: o The entry name o The file specification o The highest note UID number entered in the notefile o The last revision date o The seen/unseen map o The classes of conferences to which this entry belongs o The total number of notes o The moderator name o The Distributed Name Service (DNS) object name, if any Most entry records also contain a user-defined field. Class of Conferences Records A class record groups several entries into a single class; it contains the class name and a list of the entry names belonging to the class. Profile Records A profile record is stored in each user's personal Notebook. A profile record stores and maintains the following informa- tion: o The user's editor of choice and access o The default conference class o The user's personal name, if any o Any PRINT qualifiers o Whether a directory of notes or the first unseen note, or neither, is displayed when a conference is opened o Whether the profile settings are temporary Introduction 1-7 ____________________________________________________________ 1.3 The Seen/Unseen Map VAX Notes maintains a seen/unseen map to determine which topics and replies have been read by a particular user. This map describes ranges of notes that have been seen. Thus, to determine the next unseen note, you need only consult the seen/unseen map. The seen/unseen map consists of two sections. The first section is a list of ranges of unique note-IDs, describing the notes that have been seen by the user. These ranges are described by a pair of longwords, denoting the low and high unique note-IDs for the range. The second section of the map describes ranges of notes in t.r format. For instance, 2.3-2.8 describes the range of replies from reply 3 to reply 8 of topic 2. As the NOTES$NOTE_GET routine retrieves notes described in this section of the map, it can remove the note from this section and add the unique note-ID to the first section of the map. The purpose of the second section of the map is to optimize performance during the setting of notes as seen. ____________________________________________________________ 1.4 Callable Routines Several different levels of callable routines are provided. High-level routines call VAX Notes as a complete user inter- face. Low-level routines provide complete access to the VAX Notes database, allowing the construction of a variety of user interfaces. The callable routines are all synchronous. VAX Notes uses many of the same file access routines for both conferences and Notebooks, although, to a user, conferences and Notebooks appear as distinct kinds of files. This avoids having duplication of code, since many of the conference and Notebook features can be performed with the same functions. NOTE The routines transparently access remote conferences by DECnet without additional work on the user's part. 1-8 Introduction ____________________________________________________________ 1.4.1 Calling Sequence The VAX Notes routines all have the same calling sequence. The calling sequence has the following form: STATUS = NOTES$ROUTINE ( CONTEXT, INP-ITEM-LIST, OUT- ITEM-LIST ) In the previous statement: o STATUS is an unsigned longword status code returned by the routine. o NOTES$ROUTINE is the name of the VAX Notes routine. o CONTEXT is the address of an unsigned longword. The context longword stores needed information between calls to the VAX Notes routines. To initialize the con- text, the longword should be zeroed and passed to the NOTES$xxx_BEGIN routine; this routine stores some context information (a nonzero value) in the longword, and this context can then be passed to other VAX Notes routines. When the information is no longer needed, NOTES$xxx_END can be called to delete the context, release resources associated with the context information, and reset the context longword to zero. o INP-ITEM-LIST is the address of an item list. (See Part II for a description of the format of item lists.) The input item list and the context longword provide all the inputs needed by the called routine. o OUT-ITEM-LIST is the address of an item list into which the routine writes its results or the requested informa- tion. Item lists use an item code of 0 to terminate the item list, -1 (NOTES$K_CHAIN) to indicate chaining to another item list, and -2 (NOTES$K_NOOP) to indicate a no-operation (ignored) item code. Items that turn some attribute on or off (such as NOTES$K_ USER_MODERATE) with the values 0 or 1 can also take the value -1, to indicate that the attribute should remain unchanged. This value is passed in the longword to which the item code ITM$L_BUFADR field of the item list points. Introduction 1-9 See Appendix A for a complete description of the item list contents. ____________________________________________________________ 1.4.2 Error Reporting by the Callable Routines The callable VAX Notes routines signal errors by default; the NOTES$K_NOSIGNAL item code can be specified on the rou- tine calls to override the default signaling mechanism, and instead return an error status. The only status codes that are never signaled, but only returned, are NOTES$_NORMAL, NOTES$_MORE_INFO, and NOTES$_NO_ MORE_xxx. The VAX Notes routines signal a fatal (F-level) diagnostic for errors that normally terminate the image. For example, access violations, corrupted in-memory data structures, and some programming errors signal a fatal error. Note that F- level diagnostics are signaled regardless of whether the NOTES$K_NOSIGNAL item code was specified. The VAX Notes routines signal an error (E-level) diagnos- tic for most errors. E-level diagnostics indicate that the requested operation cannot be completed. VAX Notes reports E-level diagnostics by signaling (unless NOTES$K_NOSIGNAL was specified), and then returning that E-level status code to the caller. A warning (W-level) diagnostic indicates that the operation may not yield completely correct results, and should be reported to the user. Informational (I-level) messages contain parenthetical infor- mation. After signaling a W-level or I-level diagnostic, the VAX Notes routine continues processing. When it eventually re- turns to the caller, the return status is the same as the worst diagnostic signaled. Note that while VAX Notes has W-level status codes (NOTES$_ NO_MORE_xxx), these are not signaled by VAX Notes. 1-10 Introduction ____________________________________________________________ 1.4.3 Continuable Operations Many of the operations are continuable (in particular, the NOTES$xxx_GET, NOTES$xxx_GET_yyy, and the NOTES$NOTE_ADD_TEXT routines). A continuable operation returns a success status, and further information is available (or can be specified in the case of NOTES$NOTE_ADD_TEXT) by calling the same routine again (with the same context) and specifiying the NOTES$K_ CONTINUE item code in the input item list. The NOTES$K_CONTINUE item code causes the routine to ignore all other item codes (except NOTES$K_NOSIGNAL), and either returns more information, or just returns a warning status to indicate no more information (for example, NOTES$_NO_MORE_ TEXT). When a stream of information is available, it remains avail- able until, or unless, the end of the information is reached, or a different request is made with the same context. ____________________________________________________________ 1.4.4 Passing Context Information The following diagram shows the relationship between the routines and the context information passed between them. The diagram includes some of the note, keyword, and user routines. The relationships shown, however, apply in general to all routines. Each box in the diagram represents the following informa- tion:[1] ___________________ [1] The diagram shows only the context item in each case. A call would include additional input items and output items. Introduction 1-11 +----------+ | routine |[ context parameter ] | name |[ input item list ] | |[ output item list ] +----------+ The following abbreviations are used in the diagram: F Notefile context N Note context K Keyword context U User context 1-12 Introduction +----------+ 1 | NOTEFILE |[ F ] -------------------- | BEGIN |[ ] --------- | | |[ ] | | +----------+ | | | | | | | V V V +----------+ +----------+ +----------+ | NOTE |[ N ] | KEYWORD |[ K ] | USER |[ U ] 2 | BEGIN |[ F ] | BEGIN |[ F ] | BEGIN |[ F ] ... | |[ ] | |[ ] | |[ ] +----------+ +----------+ +----------+ | | | V V V +----------+ +----------+ +----------+ | NOTE |[ N ] | KEYWORD |[ K ] | USER |[ U ] 3 | GET |[ ] | GET |[ ] | GET |[ ] | |[ ] | |[ ] | |[ ] +----------+ +----------+ +----------+ | | | | V V V | +----------+ +----------+ +----------+ | | NOTE |[ N ] | NOTE |[ N ] | KEYWORD |[ K ] | 4| GET |[ ] | GET |[ ] | GET |[ ] | | TEXT |[ ] | KEYWORD |[ ] | NOTE |[ ] | +----------+ +----------+ +----------+ | | | | | | | | | V V V V +----------+ +----------+ +----------+ | NOTE |[ N ] | KEYWORD |[ K ] | USER |[ U ] 5 | END |[ ] | END |[ ] | END |[ ] | |[ ] | |[ ] | |[ ] +----------+ +----------+ +----------+ | | | | | | | V | | +----------+ | ---------> |NOTEFILE |[ F ] <-------------- |END |[ ] 6 | |[ ] +----------+ Introduction 1-13 1 The notefile context (F) is created by a call to NOTES$NOTEFILE_BEGIN. 2 This context must be passed (in the input item list) to NOTES$NOTE_BEGIN, which creates a note context (N), for note-level access to information in the notefile. 3 Then NOTES$NOTE_GET can be called to get a range (for example, a sequence or stream) of notes. An initial call is made to NOTES$NOTE_GET to specify the range of notes to get; this sets up the stream, and returns information about the first note in the stream (for example, the name of its author). 4 Calls to NOTES$NOTE_GET_TEXT can now be made. These calls return text records for this note (or return the status NOTES$_NO_MORE_TEXT). Then another call to NOTES$NOTE_GET (with NOTES$K_CONTINUE) returns information about the next note in the stream. This can continue until NOTES$NOTE_GET returns the status NOTES$_NO_MORE_NOTES, or until that same note context is used to request a new range of notes. Calls to NOTES$NOTE_GET_KEYWORD can be made in the same way; and they can be made simultaneously with calls to NOTES$NOTE_GET_TEXT. 5 NOTES$NOTE_END is called next, by NOTES$NOTE_GET_TEXT or NOTES$NOTE_GET_KEYWORD. 6 NOTES$NOTEFILE_END is the final call in this or any other sequence of calls. Similarly, NOTES$NOTEFILE_BEGIN passes the notefile context to NOTES$KEYWORD_BEGIN, which creates a keyword context; NOTES$KEYWORD_GET can return a stream of keyword information (in response, for example, to "Notes> DIR/KEYWORD=FAR*"), and NOTES$KEYWORD_GET_NOTE can return the sequence of notes having that keyword. The third path shown in the diagram proceeds from NOTES$NOTEFILE_ BEGIN through the user routines. The ellipses in the diagram represent the other categories of routines (class, entry, notefile, and profile), which work in a similar way. Note that any of the calling paths can be occurring simulta- neously, and any of them can be repeated simultaneously. 1-14 Introduction The sample BASIC program presented in Appendix B shows how to order calls correctly to VAX Notes routines in an application program. Introduction 1-15 Chapter 2 Notefile Routines ________________________________________________________________ This chapter describes the routines used to create and access notefiles. The item codes allowed in an output item list (OUT-ITEM-LIST) are described first, because this list is common to most of the routines in this chapter. Each notefile routine is described in a separate section with its own list of allowed input item codes (INP-ITEM-LIST). The following abbreviations are used in the list of input item codes: R Required This item code must be specified in the call. O Optional This item code may be specified in the call. S Selection This item code specifies which class, entry, keyword, or note is being referenced by the call. Output Item Codes The following item codes can be specified in an OUT-ITEM-LIST for the NOTES$NOTEFILE_xxx calls. _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_ENTRY_OBJECT_SPEC File specification string to which the DNS object name was translated Notefile Routines 2-1 _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_NOTEFILE_CREATE_ Quadword date/time of the note- TIME file creation NOTES$K_NOTEFILE_ENTRYTOTAL Total number of topics and replies NOTES$K_NOTEFILE_FORMAT Longword indicating the notefile format NOTES$K_NOTEFILE_HIGH_UID Longword of highest used note UID NOTES$K_NOTEFILE_LASTREV Quadword date/time of the last revision NOTES$K_NOTEFILE_MODERATOR Moderator name string NOTES$K_NOTEFILE_NOTICE Notice string NOTES$K_NOTEFILE_NUMNOTES Longword note number of the last topic NOTES$K_NOTEFILE_REPLY_ONLY Conference in which only autho- rized users may enter topics, indicated by 1 NOTES$K_NOTEFILE_RESTRICTED Private conference, in which only authorized users may par- ticipate, indicated by 1 NOTES$K_NOTEFILE_RESULT_ Resultant file specification SPEC string NOTES$K_NOTEFILE_TITLE Title string NOTES$K_NOTEFILE_USER_AREA String of user-programmable data NOTES$K_NOTEFILE_WRITELOCK Notefile writelocked against new notes, indicated by 1 2-2 Notefile Routines _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_SEEN_MAP String indicating which notes have been seen NOTES$K_SERVER_MAX_ITEM Longword value of the high- est item code that the server supports NOTES$K_USER_CREATE_KEYWORD Conference in which any user may create keywords, indicated by 1 NOTES$K_USER_MODERATE Conference in which any user may _____________________________moderate,_indicated_by_1________ ____________________________________________________________ 2.1 NOTES$NOTEFILE_BEGIN Initiates access to a notefile. This routine creates the notefile if so directed, and opens the file for access by other routines. It creates and initializes the notefile context for later calls to NOTES$NOTEFILE_xxx routines. Input Item Codes O NOTES$K_ENTRY_OBJECT_NAME DNS object name string for the entry O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTEFILE_CREATE Create the notefile O NOTES$K_NOTEFILE_DEFAULT_ Default file specification NAME string R NOTES$K_NOTEFILE_FILE_NAME File name string O NOTES$K_NOTEFILE_MODERATE Moderator privilege turned on = 1, turned off = 0 Notefile Routines 2-3 O NOTES$K_NOTEFILE_MODERATOR Moderator name string O NOTES$K_NOTEFILE_RELATED_ Related file specification NAME string O NOTES$K_NOTEFILE_REPLY_ONLY Conference in which only authorized users may enter topics, indicated by 1 O NOTES$K_SEEN_MAP String indicating which notes have been seen O NOTES$K_USER_CREATE_KEYWORD Any user can create key- words, indicated by 1 The following item codes are allowed as input items when NOTES$K_NOTEFILE_CREATE is passed to the NOTES$NOTEFILE_BEGIN routine. O NOTES$K_NOTEFILE_NOTICE Notice string O NOTES$K_NOTEFILE_RESTRICTED Private conference, in which only authorized users can participate, indicated by 1 O NOTES$K_NOTEFILE_TITLE Title string O NOTES$K_NOTEFILE_USER_AREA String of user programmable data O NOTES$K_NOTEFILE_WRITELOCK Notefile writelocked against new notes, indicated by 1 O NOTES$K_USER_MODERATE Used in creating a Notebook, indicated by 1 2-4 Notefile Routines ____________________________________________________________ 2.2 NOTES$NOTEFILE_END Deletes or deallocates notefile context. This routine is used to terminate access to a notefile. All dynamic memory allocated by the NOTES$ routines when accessing the notefile (including CLASS, ENTRY, KEYWORD, PROFILE, and USER access) is deallocated. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 2.3 NOTES$NOTEFILE_GET_INFO Obtains information about the notefile. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 2.4 NOTES$NOTEFILE_MODIFY Updates or changes notefile-level information, such as the title, notice of the day, and moderator. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTE_BEFORE_TIME Mark all notes before speci- fied date-time as seen O NOTES$K_NOTE_MARK_SEEN Mark all notes as seen O NOTES$K_NOTE_SINCE_TIME Mark all notes after speci- fied date-time as seen Notefile Routines 2-5 O NOTES$K_NOTEFILE_MODERATE Moderator privilege turned on = 1, turned off = 0 O NOTES$K_NOTEFILE_MODERATOR Moderator name string O NOTES$K_NOTEFILE_NOTICE Notice string O NOTES$K_NOTEFILE_REPLY_ONLY Conference in which only authorized users may enter topics, indicated by 1 O NOTES$K_NOTEFILE_RESTRICTED Only authorized users may participate, indicated by 1 O NOTES$K_NOTEFILE_TITLE Title string O NOTES$K_NOTEFILE_USER_AREA String of user-programmable data O NOTES$K_NOTEFILE_WRITELOCK Notefile writelocked against new notes, indicated by 1 O NOTES$K_SEEN_MAP String indicating which notes have been seen O NOTES$K_USER_CREATE_KEYWORD Any user may create key- words, indicated by 1 ____________________________________________________________ 2.5 NOTES$NOTEFILE_LIST_BEGIN Initiates the process of collecting notefile names, for a di- rectory listing of conferences. You call the NOTES$NOTEFILE_ LIST_BEGIN routine with the file specification, default file specification, and related file specification. It performs the initialization. After a successful call to NOTES$NOTEFILE_LIST_BEGIN you call NOTES$NOTEFILE_LIST until the status NOTES$_NMF is returned. 2-6 Notefile Routines For server performance considerations, in the output item list for the NOTES$NOTEFILE_LIST_BEGIN routine you must specify all the items that you specify in the call to NOTES$NOTEFILE_LIST. However, the items are not returned on the call to the NOTES$NOTEFILE_LIST_BEGIN routine. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTEFILE_ Default notefile name string DEFAULT_NAME R NOTES$K_NOTEFILE_ File name string FILE_NAME O NOTES$K_NOTEFILE_ Related notefile name string RELATED_NAME ____________________________________________________________ 2.6 NOTES$NOTEFILE_LIST Collects information on a selected group of notefiles. The NOTES$NOTEFILE_LIST_BEGIN routine must be called before the NOTES$NOTEFILE_LIST routine. You specify the filenames in the NOTES$NOTEFILE_LIST_BEGIN routine, and collect the information on successive calls to NOTES$NOTEFILE_LIST until the status NOTES$_NMF is returned. Any output item codes specified in the call to the NOTES$NOTEFILE_ LIST routine must also be specified in the call to the NOTES$NOTEFILE_LIST_BEGIN routine for correct operation on remote conference directories. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal Notefile Routines 2-7 Chapter 3 Class Routines ________________________________________________________________ This chapter describes the routines used to access class definitions. A class is a named set of Notebook entries (conferences entered in a user's Notebook). The item codes allowed in an output item list (OUT-ITEM-LIST) are described first, because this list is common to most of the routines in this chapter. Each notefile routine is described in a separate section with its own list of allowed input item codes (INP-ITEM-LIST). The following abbreviations are used in the list of input item codes: R Required This item code must be specified in the call. O Optional This item code may be specified in the call. S Selection This item code specifies which class, entry, keyword, or note is being referenced by the call. Output Item Codes The following item code can be specified in the OUT-ITEM-LIST for the NOTES$CLASS_xxx calls. _____________________________________________________________ Item_Code___________Description______________________________ NOTES$K_CLASS_NAME Class name string Class Routines 3-1 _____________________________________________________________ Item_Code___________Description______________________________ NOTES$K_CLASS_ String of user-programmable data USER_AREA____________________________________________________ The following item code can be specified in the OUT-ITEM-LIST for the NOTES$CLASS_GET_ENTRY calls. _____________________________________________________________ Item_Code___________Description______________________________ NOTES$K_ENTRY_NAME__Entry_name_string________________________ ____________________________________________________________ 3.1 NOTES$CLASS_BEGIN Creates and initializes class context for later calls to NOTES$CLASS_xxx routines. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal R NOTES$K_NOTEFILE_ Context longword for notefile CONTEXT ____________________________________________________________ 3.2 NOTES$CLASS_END Deletes or deallocates class context. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 3.3 NOTES$CLASS_ADD Creates a class record if the entry_name is missing. If the entry_name is specified, adds that entry to the class. 3-2 Class Routines Input Item Codes S,R NOTES$K_CLASS_NAME Class name string O NOTES$K_CLASS_USER_ String of user-programmable data AREA O NOTES$K_ENTRY_NAME Entry name string O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 3.4 NOTES$CLASS_DELETE Deletes the class record if the entry_name is missing. If the entry_name is specified, deletes that entry from the class. Input Item Codes S,R NOTES$K_CLASS_NAME Class name string O NOTES$K_DELIF0 Delete class if empty, indicated by 1 O NOTES$K_ENTRY_NAME Entry name string O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 3.5 NOTES$CLASS_GET Gets information about a class or, if NOTES$K_CONTINUE was specified, the next class. Input Item Codes O NOTES$K_CLASS_HINT_ For remote Notebooks, "hint" that GET_ENTRY entries for the class will be coming Class Routines 3-3 S,R NOTES$K_CLASS_NAME Class name string (allows wild- cards) O NOTES$K_CONTINUE Keep returning information O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 3.6 NOTES$CLASS_GET_ENTRY Gets information about entries belonging to a class (the class specified by the most recent NOTES$CLASS_GET call for this context). Input Item Codes O NOTES$K_CONTINUE Keep returning information O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 3.7 NOTES$CLASS_MODIFY Modifies information stored for a class. Input Item Codes S,R NOTES$K_CLASS_NAME Class name string O NOTES$K_CLASS_NEW_ New class name string (rename) NAME O NOTES$K_CLASS_USER_ String of user-programmable data AREA O NOTES$K_NOSIGNAL Return on errors; do not signal 3-4 Class Routines Chapter 4 Entry Routines ________________________________________________________________ This chapter describes the routines used to access entry definitions. Entries are used to store information about notefiles. The item codes allowed in an output item list (OUT-ITEM-LIST) are described first, because this list is common to most of the routines in this chapter. Each notefile routine is described in a separate section with its own list of allowed input item codes (INP-ITEM-LIST). The following abbreviations are used in the list of input item codes: R Required This item code must be specified in the call. O Optional This item code may be specified in the call. S Selection This item code specifies which class, entry, keyword, or note is being referenced by the call. Output Item Codes The following item codes may be specified in the OUT-ITEM- LIST for the NOTES$ENTRY_xxx calls. Entry Routines 4-1 _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_ENTRY_LAST_STATUS Longword value of the last update for the entry (update status longword) NOTES$K_ENTRY_NAME Entry name string NOTES$K_ENTRY_OBJECT_NAME DNS object name string for the entry NOTES$K_ENTRY_UNSEEN_EST Longword number of unseen notes NOTES$K_ENTRY_USER_AREA String of user-programmable data NOTES$K_NOTEFILE_DEFAULT_ Default notefile name string NAME NOTES$K_NOTEFILE_ENTRYTOTAL Longword number of notes in the entry NOTES$K_NOTEFILE_FILE_NAME File name string NOTES$K_NOTEFILE_HIGH_UID Longword of highest used note UID NOTES$K_NOTEFILE_LASTREV Quadword date/time that the notefile was last revised NOTES$K_NOTEFILE_MODERATOR Moderator name string NOTES$K_NOTEFILE_NOTICE Notice string NOTES$K_NOTEFILE_NUMNOTES Longword note number of the last topic NOTES$K_NOTEFILE_RELATED_ Related notefile name string NAME NOTES$K_NOTEFILE_TITLE Title string 4-2 Entry Routines _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_SEEN_MAP String indicating which notes _____________________________have_been_seen__________________ The following item code is specified in the OUT-ITEM-LIST for the NOTES$ENTRY_GET_CLASS call. _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_CLASS_NAME___________Class_name_string_______________ The following item code is specified in the OUT-ITEM-LIST for the NOTES$ENTRY_GET_KEYWORD call. _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_KEYWORD_NAME_________Keyword_name_string_____________ ____________________________________________________________ 4.1 NOTES$ENTRY_BEGIN Creates and initializes entry context for later calls to NOTES$ENTRY_xxx routines. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal R NOTES$K_NOTEFILE_ Context longword for notefile CONTEXT ____________________________________________________________ 4.2 NOTES$ENTRY_END Deletes or deallocates entry context. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal Entry Routines 4-3 ____________________________________________________________ 4.3 NOTES$ENTRY_ADD Adds an entry to the specified class. Input Item Codes O NOTES$K_CLASS_NAME Class name string O NOTES$K_ENTRY_LAST_STATUS Longword value of the last update for the entry (update status longword) S,R NOTES$K_ENTRY_NAME Entry name string O NOTES$K_ENTRY_OBJECT_NAME DNS object name string for the entry O NOTES$K_ENTRY_USER_AREA String of user-programmable data O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTE_BEFORE_TIME Mark notes before this time as seen O NOTES$K_NOTE_SINCE_TIME Mark notes after this time as seen O NOTES$K_NOTEFILE_DEFAULT_ Default notefile name NAME string O NOTES$K_NOTEFILE_ENTRYTOTAL Longword number of notes in the entry R NOTES$K_NOTEFILE_FILE_NAME File name string O NOTES$K_NOTEFILE_HIGH_UID Longword of highest used note UID 4-4 Entry Routines O NOTES$K_NOTEFILE_LASTREV Quadword date/time that the notefile was last revised O NOTES$K_NOTEFILE_MODERATOR Moderator name string O NOTES$K_NOTEFILE_NOTICE Notice string O NOTES$K_NOTEFILE_NUMNOTES Longword note number of the last topic O NOTES$K_NOTEFILE_RELATED_ Related notefile name NAME string O NOTES$K_NOTEFILE_TITLE Title string O NOTES$K_SEEN_MAP String indicating which notes have been seen ____________________________________________________________ 4.4 NOTES$ENTRY_DELETE Deletes the entry record. Input Item Codes O NOTES$K_CLASS_NAME Class name string O NOTES$K_DELIF0 Delete class if empty, indicated by 1 S,R NOTES$K_ENTRY_NAME Entry name string O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 4.5 NOTES$ENTRY_GET Gets the information from the entry record. Entry Routines 4-5 Input Item Codes O NOTES$K_CLASS_NAME Class name string O NOTES$K_CONTINUE Keep returning information O NOTES$K_ENTRY_HINT_ Value of 1 indicates that a GET_CLASS NOTES$ENTRY_GET_CLASS will be performed next (to improve server performance). This item code must be specified if a NOTES$ENTRY_ GET_CLASS will be done next; otherwise, the NOTES$ENTRY_GET_ CLASS will not work correctly for remote notefiles O NOTES$K_ENTRY_HINT_ Value of 1 indicates that a GET_KEYWORD NOTES$ENTRY_GET_CLASS will be performed next (to improve server performance). This item code must be specified if a NOTES$ENTRY_ GET_CLASS will be done next; otherwise, the NOTES$ENTRY_GET_ CLASS will not work correctly for remote notefiles S,R NOTES$K_ENTRY_NAME Entry name string O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 4.6 NOTES$ENTRY_GET_CLASS Gets information about the classes to which the entry belongs (the entry specified by the most recent NOTES$ENTRY_GET call for this context). 4-6 Entry Routines Input Item Codes O NOTES$K_CONTINUE Keep returning information O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 4.7 NOTES$ENTRY_GET_KEYWORD Gets information about keywords (or markers) for this entry. Input Item Codes O NOTES$K_CONTINUE Keep returning information O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 4.8 NOTES$ENTRY_MODIFY Modifies the information stored for this entry. Input Item Codes O NOTES$K_ENTRY_LAST_STATUS Longword value of the last update for the entry (update status longword) S,R NOTES$K_ENTRY_NAME Entry name string O NOTES$K_ENTRY_NEW_NAME New entry name string (rename) O NOTES$K_ENTRY_OBJECT_NAME DNS object name string for the entry O NOTES$K_ENTRY_USER_AREA String of user-programmable data O NOTES$K_NOSIGNAL Return on errors; do not signal Entry Routines 4-7 O NOTES$K_NOTEFILE_DEFAULT_ Default notefile name NAME string O NOTES$K_NOTEFILE_ENTRYTOTAL Longword number of notes in entry O NOTES$K_NOTEFILE_FILE_NAME File name string O NOTES$K_NOTEFILE_HIGH_UID Longword of highest used note UID O NOTES$K_NOTEFILE_LASTREV Quadword date/time the notefile was last revised O NOTES$K_NOTEFILE_MODERATOR Moderator name string O NOTES$K_NOTEFILE_NOTICE Notice string O NOTES$K_NOTEFILE_NUMNOTES Longword note number of the last topic O NOTES$K_NOTEFILE_RELATED_ Related notefile name NAME string O NOTES$K_NOTEFILE_TITLE Title string O NOTES$K_SEEN_MAP String indicating which notes have been seen ____________________________________________________________ 4.9 NOTES$ENTRY_UPDATE Updates statistics for an entry (or entries, if wildcards are used). Input Item Codes O NOTES$K_CLASS_NAME Class name string O NOTES$K_CONTINUE Keep getting information 4-8 Entry Routines S,R NOTES$K_ENTRY_NAME Entry name string O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTEFILE_DEFAULT_ Default notefile name NAME string O NOTES$K_NOTEFILE_FILE_NAME Notefile name string O NOTES$K_NOTEFILE_RELATED_ Related notefile name NAME string Entry Routines 4-9 Chapter 5 Keyword Routines ________________________________________________________________ This chapter describes the routines used to access keywords. The item codes allowed in an output item list (OUT-ITEM-LIST) are described first, because this list is common to most of the routines in this chapter. Each notefile routine is described in a separate section with its own list of allowed input item codes (INP-ITEM-LIST). The following abbreviations are used in the list of input item codes: R Required This item code must be specified in the call. O Optional This item code may be specified in the call. S Selection This item code specifies which class, entry, keyword, or note is being referenced by the call. Output Item Codes The following item code can be specified in the OUT-ITEM-LIST for the NOTES$KEYWORD_xxx calls. _____________________________________________________________ Item_Code_____________Description____________________________ NOTES$K_KEYWORD_NAME Keyword string NOTES$K_KEYWORD_ String of user-programmable data USER_AREA____________________________________________________ Keyword Routines 5-1 The following item codes may be specified in the OUT-ITEM- LIST for the NOTES$KEYWORD_GET_NOTE calls. _____________________________________________________________ Item_Code_____________Description____________________________ NOTES$K_ENTRY_NAME Entry name string NOTES$K_KEYWORD_NAME Keyword name string NOTES$K_NOTE_ID String of topic.reply NOTES$K_NOTE_UID______Longword_unique_note_identifier________ ____________________________________________________________ 5.1 NOTES$KEYWORD_BEGIN Creates and initializes keyword context for later calls to NOTES$KEYWORD_xxx routines. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal R NOTES$K_NOTEFILE_ Context longword for notefile CONTEXT ____________________________________________________________ 5.2 NOTES$KEYWORD_END Deletes or deallocates keyword context. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 5.3 NOTES$KEYWORD_ADD Creates a keyword record if both the entry_name and note_ ID are missing. Creates a keyword reference if either the entry_name or note_ID is specified. If the entry name is not specified, this routine also adds the reference to the note (if specified). 5-2 Keyword Routines Note that keyword routines are also used for markers. A marker is unique to one note in a notefile, although it can be used in more than one notefile. A keyword, by contrast, can refer to more than one note in a notefile. Input Item Codes O NOTES$K_ENTRY_NAME Entry name string (for markers) S,R NOTES$K_KEYWORD_NAME Keyword string O NOTES$K_KEYWORD_ String of user-programmable data USER_AREA O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTE_ID String of topic.reply O NOTES$K_NOTE_UID Longword unique note identifier O NOTES$K_UNIENTRY If there is an existing reference (by this marker) to another note in the specified conference, supersede it (this is not used for keywords) ____________________________________________________________ 5.4 NOTES$KEYWORD_DELETE Deletes a keyword record if both the entry_name and note_ID are missing. Deletes a keyword reference if either the entry_ name or the note_ID is specified. If the entry name is not specified, this routine also deletes the reference from the note (if specified). Input Item Codes S,O NOTES$K_ENTRY_NAME Entry name string (D = current notefile) S,R NOTES$K_KEYWORD_NAME Keyword string Keyword Routines 5-3 O NOTES$K_NOSIGNAL Return on errors; do not signal S,O NOTES$K_NOTE_ID String of topic.reply O NOTES$K_NOTE_UID Longword unique note identifier ____________________________________________________________ 5.5 NOTES$KEYWORD_GET Gets information about keywords. Input Item Codes O NOTES$K_CONTINUE Keep returning information O NOTES$K_ENTRY_NAME Entry name string O NOTES$K_KEYWORD_ Indicates that a NOTES$KEYWORD_ HINT_GET_NOTE GET_NOTE will be performed next. This item code must be specified if a NOTES$KEYWORD_GET_NOTE is going to be done after the NOTES$KEYWORD_GET. Otherwise, the NOTES$KEYWORD_GET will not work correctly for remote notefiles. S,R NOTES$K_KEYWORD_NAME Keyword string (allows wildcards) O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 5.6 NOTES$KEYWORD_GET_NOTE Gets information about notes referenced by a keyword (the keyword specified by the most recent NOTES$KEYWORD_GET call for this context). 5-4 Keyword Routines Input Item Codes O NOTES$K_CONTINUE Keep returning information O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 5.7 NOTES$KEYWORD_MODIFY Changes the keyword name (note that references are created and deleted by calls to NOTES$KEYWORD_ADD and NOTES$KEYWORD_ DELETE routines). If the keyword_new_name does not exist, this routine updates the keyword record. Otherwise, this routine effectively uses NOTES$KEYWORD_GET/ADD/DELETE to copy all references from the keyword_name to the keyword_new_name, and then deletes the keyword_name record. Input Item Codes S,R NOTES$K_KEYWORD_NAME Keyword string O NOTES$K_KEYWORD_NEW_ New keyword name string (rename) NAME O NOTES$K_KEYWORD_ String of user-programmable data USER_AREA O NOTES$K_NOSIGNAL Return on errors; do not signal Keyword Routines 5-5 Chapter 6 Note Routines ________________________________________________________________ This chapter describes the routines used to access a note or set of notes once the notefile has been opened. The item codes allowed in an output item list (OUT-ITEM-LIST) are described first, because this list is common to most of the routines in this chapter. Each notefile routine is described in a separate section with its own list of allowed input item codes (INP-ITEM-LIST). The following abbreviations are used in the list of input item codes: R Required This item code must be specified in the call. O Optional This item code may be specified in the call. S Selection This item code specifies which class, entry, keyword, or note is being referenced by the call. Output Item Codes The following item codes can be specified in the OUT-ITEM- LIST for the NOTES$NOTE_xxx calls. _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_NOTE_AUTHOR Author name string NOTES$K_NOTE_BLINK_ID Note identifier string of topic Note Routines 6-1 _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_NOTE_BLINK_TITLE Title of topic NOTES$K_NOTE_BLINK_UID Longword unique note identifier of topic NOTES$K_NOTE_CAN_REPLY Longword indicating with a value of 1 that a reply can be added NOTES$K_NOTE_CREATE_TIME Quadword date/time of note creation NOTES$K_NOTE_HIDDEN Longword indicating with a value of 1 that text has been hidden NOTES$K_NOTE_ID Note identifier string NOTES$K_NOTE_NUMRECORDS Longword number of text records in this note NOTES$K_NOTE_NUMRESPONSES Longword response number of the last reply NOTES$K_NOTE_PEN_NAME Personal name string NOTES$K_NOTE_TITLE Title string NOTES$K_NOTE_TYPE Longword indicating the type of text in the note NOTES$K_NOTE_UID Longword unique note identifier NOTES$K_NOTE_USER_AREA String of user-programmable data NOTES$K_NOTE_WRITELOCK Longword indicating with a value of 1 that the notefile is writelocked NOTES$K_NOTEFILE_ENTRYTOTAL Longword number of notes in the entry 6-2 Note Routines _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_NOTEFILE_FILE_NAME Notefile name string NOTES$K_NOTEFILE_HIGH_UID Longword of highest used note UID NOTES$K_NOTEFILE_LASTREV Quadword date/time that the notefile was last revised NOTES$K_NOTEFILE_NUMNOTES Longword note number of last topic NOTES$K_SEEN_MAP String indicating which notes _____________________________have_been_seen__________________ The following item code is specified in the OUT-ITEM-LIST for the NOTES$NOTE_GET_KEYWORD call. _____________________________________________________________ Item_Code_____________Description____________________________ NOTES$K_KEYWORD_NAME__Keyword_string_________________________ The following item codes may be specified in the OUT-ITEM- LIST for the NOTES$NOTE_ADD_TEXT and the NOTES$NOTE_GET_TEXT calls. _____________________________________________________________ Item_Code_____________Description____________________________ NOTES$K_TEXT_STRING Text record string NOTES$K_TEXT_TYPE_____Longword_type_of_text_record___________ ____________________________________________________________ 6.1 NOTES$NOTE_BEGIN Initiates notes-level access on a currently open note- file. This routine must be called before any of the other NOTES$NOTE_xxx routines and after the NOTES$NOTEFILE_BEGIN routine has been called to open the notefile. It is possible to have more than one NOTE_BEGIN/END routine active in the same NOTEFILE_BEGIN/END "block". This routine creates and Note Routines 6-3 initializes note context for later calls to NOTES$NOTE_xxx routines. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal R NOTES$K_NOTEFILE_ Context longword for notefile CONTEXT ____________________________________________________________ 6.2 NOTES$NOTE_END Deletes or deallocates note context. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 6.3 NOTES$NOTE_ADD Adds a new note or reply to a notefile. Calls to the NOTE$NOTE_ADD_TEXT routine can then be used to write the text of the note. The "BLINK" (back-link) item codes, if pre- sent, indicate the note for which the reply is being written. If not specified, a new topic is written. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTE_BLINK_ Note identifier string ID O NOTES$K_NOTE_BLINK_ Longword unique note identifier UID O NOTES$K_NOTE_HIDDEN Hide note = 1, unhide note = 0 (the default is not hidden) 6-4 Note Routines O NOTES$K_NOTE_MARK_ Mark note as seen, indicated by 1 SEEN O NOTES$K_NOTE_PEN_ User personal name string NAME O NOTES$K_NOTE_TITLE Title string O NOTES$K_NOTE_USER_ String of user-programmable data AREA O NOTES$K_NOTE_ Writelock note = 1, write-enable WRITELOCK note = 0 (default is enabled) O NOTES$K_NOTEFILE_ Notefile name string FILE_NAME ____________________________________________________________ 6.4 NOTES$NOTE_ADD_TEXT Adds another line of text to the note being written. After all the text has been added by calls to this routine, it should be called again, specifying the NOTES$K_TEXT_END routine. Input Item Codes O NOTES$K_CONTINUE Keep releasing information O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_TEXT_END Indicate end of the note text O NOTES$K_TEXT_STRING Text record string O NOTES$K_TEXT_TYPE Longword type of text record ____________________________________________________________ 6.5 NOTES$NOTE_DELETE Deletes the specified topic or reply. Note Routines 6-5 Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTE_ID String note identifier O NOTES$K_NOTE_UID Longword unique note identifier ____________________________________________________________ 6.6 NOTES$NOTE_GET Retrieves information about a note or sequence of notes. It must be called before any calls to the NOTES$NOTE_GET_KEYWORD or the NOTES$NOTE_GET_TEXT routines. The item codes NOTES$K_ NOTE_BACK_NOTE, NOTES$K_NOTE_NEXT_NOTE, NOTES$K_NOTE_BACK_ RESPONSE, and NOTES$K_NOTE_NEXT_RESPONSE conflict with each other and with all other item codes. Input Item Codes O NOTES$K_CONTINUE Keep returning information S,O NOTES$K_KEYWORD_NAME Select notes with the speci- fied keyword O NOTES$K_NOSIGNAL Return on errors; do not signal S,O NOTES$K_NOTE_ALL_ Indicates replies should also RESPONSES be returned S,O NOTES$K_NOTE_AUTHOR Select only notes by this author (string) S,O NOTES$K_NOTE_BACK_NOTE Select previous topic S,O NOTES$K_NOTE_BACK_ Select previous reply RESPONSE S,O NOTES$K_NOTE_BEFORE_TIME Select only notes before this date/time 6-6 Note Routines S,O NOTES$K_NOTE_HINT_GET_ Value of 1 indicates that a KEYWORD NOTES$NOTE_GET_KEYWORD will be performed next. This item code must be specified if a NOTES$NOTE_GET_KEYWORD will be done after the NOTES$NOTE_GET. Otherwise, the NOTES$NOTE_GET_KEYWORD will not work correctly for remote notefiles. S,O NOTES$K_NOTE_HINT_GET_ Value of 1 indicates that a TEXT NOTES$NOTE_GET_TEXT will be performed next. This item code must be speci- fied if a NOTES$NOTE_GET_ TEXT will be done after the NOTES$NOTE_GET. Otherwise, the NOTES$NOTE_GET_TEXT will not work correctly for remote notefiles. S,O NOTES$K_NOTE_ID String range of notes to get (conflicts with NOTES$K_NOTE_ UID) S,O NOTES$K_NOTE_MARK_SEEN Mark notes as seen, indicated by 1 S,O NOTES$K_NOTE_NEXT_NOTE Select following topic S,O NOTES$K_NOTE_NEXT_ Select following reply RESPONSE S,O NOTES$K_NOTE_NEXT_UNSEEN Select next unseen note, indicated by 1 S,O NOTES$K_NOTE_SEARCH_ Select only notes containing STRING this string Note Routines 6-7 S,O NOTES$K_NOTE_SINCE_TIME Select only notes after this date/time S,O NOTES$K_NOTE_TITLE Select only notes whose titles contain this string S,O NOTES$K_NOTE_UID Longword unique note identi- fier (conflicts with NOTES$K_ NOTE_ID) S,O NOTES$K_NOTE_UNSEEN Select unseen notes = 1, select seen notes = 0 O NOTES$K_NOTE_USER_AREA String of user-programmable data ____________________________________________________________ 6.7 NOTES$NOTE_GET_KEYWORD Gets the keywords associated with the current note (the note specified by the last call to the NOTES$NOTE_GET routine). Keywords are returned one per call. Input Item Codes O NOTES$K_CONTINUE Keep returning information O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 6.8 NOTES$NOTE_GET_TEXT Gets the text records associated with the current note (the note specified by the last call to the NOTES$NOTE_GET rou- tine). Text records are returned one per call. 6-8 Note Routines Input Item Codes O NOTES$K_CONTINUE Keep returning information O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 6.9 NOTES$NOTE_MODIFY Modifies attributes of a note. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_NOTE_HIDDEN Hide note = 1, unhide note = 0 S,O NOTES$K_NOTE_ID String range of notes to modify O NOTES$K_NOTE_NEW_ID String specifying the new note- ID to which the range of notes should be moved O NOTES$K_NOTE_PEN_ Personal name string NAME O NOTES$K_NOTE_TITLE Title string S,O NOTES$K_NOTE_UID Longword unique note identifier O NOTES$K_NOTE_UNSEEN Unseen note = 1, seen note = 0 O NOTES$K_NOTE_USER_ String of user-programmable data AREA O NOTES$K_NOTE_ Writelock note = 1, write-enable WRITELOCK note = 0 O NOTES$K_NOTEFILE_ Notefile name string FILE_NAME Note Routines 6-9 Chapter 7 Profile Routines ________________________________________________________________ This chapter describes the routines used to access the user's personal information. The item codes allowed in an output item list (OUT-ITEM-LIST) are described first, because this list is common to most of the routines in this chapter. Each notefile routine is described in a separate section with its own list of allowed input item codes (INP-ITEM-LIST). The following abbreviations are used in the list of input item codes: R Required This item code must be specified in the call. O Optional This item code may be specified in the call. S Selection This item code specifies which class, entry, keyword, or note is being referenced by the call. Output Item Codes The following item codes can be specified in the OUT-ITEM- LIST for the NOTES$PROFILE_xxx calls. _____________________________________________________________ Item_Code___________________Description______________________ NOTES$K_PROFILE_AUTO_DIR Automatic directory = 1, no auto- directory = 0 Profile Routines 7-1 _____________________________________________________________ Item_Code___________________Description______________________ NOTES$K_PROFILE_AUTO_ Automatic unseen = 1, no auto- UNSEEN matic unseen = 0 NOTES$K_PROFILE_CLASS_NAME String of default class name to use NOTES$K_PROFILE_EDITOR Editor name string NOTES$K_PROFILE_EDITOR_ Spawn editor = 1, callable editor SPAWN = 0 NOTES$K_PROFILE_PEN_NAME Personal name string NOTES$K_PROFILE_PRINT String of default print quali- ____________________________fiers_to_apply___________________ ____________________________________________________________ 7.1 NOTES$PROFILE_BEGIN Creates and initializes profile context for later calls to NOTES$PROFILE_xxx routines. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal R NOTES$K_NOTEFILE_ Context longword for notefile CONTEXT ____________________________________________________________ 7.2 NOTES$PROFILE_END Deletes or deallocates profile context. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal 7-2 Profile Routines ____________________________________________________________ 7.3 NOTES$PROFILE_GET Gets the current settings of the personal profile informa- tion. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal S,O NOTES$K_PROFILE_ Indicates that the temporary TEMPORARY profile information should be returned ____________________________________________________________ 7.4 NOTES$PROFILE_MODIFY Sets or changes personal profile information. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_PROFILE_AUTO_DIR Automatic directory = 1, no auto-directory = 0 O NOTES$K_PROFILE_AUTO_ Automatic unseen = 1, no auto- UNSEEN matic unseen = 0 O NOTES$K_PROFILE_CLASS_ String of default class name to NAME use O NOTES$K_PROFILE_EDITOR Editor name string O NOTES$K_PROFILE_EDITOR_ Spawn editor = 1, callable SPAWN editor = 0 O NOTES$K_PROFILE_PEN_NAME Personal name string O NOTES$K_PROFILE_PRINT String of default print quali- fiers to apply Profile Routines 7-3 O NOTES$K_PROFILE_ Indicates that settings are TEMPORARY temporary (not stored) 7-4 Profile Routines Chapter 8 User Routines ________________________________________________________________ This chapter describes the routines used to access member information. The item codes allowed in an output item list (OUT-ITEM-LIST) are described first, because this list is common to most of the routines in this chapter. Each notefile routine is described in a separate section with its own list of allowed input item codes (INP-ITEM-LIST). The following abbreviations are used in the list of input item codes: R Required This item code must be specified in the call. O Optional This item code may be specified in the call. S Selection This item code specifies which class, entry, keyword, or note is being referenced by the call. Output Item Codes The following item codes can be specified in the OUT-ITEM- LIST for the NOTES$USER_xxx calls. _____________________________________________________________ Item_Code_____________Description____________________________ NOTES$K_USER_ACCESS_ String of node::user-name pairs for LIST this user User Routines 8-1 _____________________________________________________________ Item_Code_____________Description____________________________ NOTES$K_USER_CREATE_ May create keywords = 1, may not create KEYWORD keywords = 0 (default) NOTES$K_USER_MAIL_ Mailing address string ADDR NOTES$K_USER_ May be moderator = 1, not moderator = 0 MODERATE (default) NOTES$K_USER_NAME User name string NOTES$K_USER_ String of node names (comma-separated) NODENAME NOTES$K_USER_WRITE_ May write to write-locked conference, BYPASS reply-only conference, and write-locked ______________________topic__________________________________ ____________________________________________________________ 8.1 NOTES$USER_BEGIN Creates and initializes user context for later calls to NOTES$USER_xxx routines. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal R NOTES$K_NOTEFILE_ Context longword for notefile CONTEXT ____________________________________________________________ 8.2 NOTES$USER_END Deletes or deallocates user context. 8-2 User Routines Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal ____________________________________________________________ 8.3 NOTES$USER_ADD Verifies that there is no existing user with the specified user name and node names. Creates a member record for that user. If the user name already exists, returns an error. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_USER_ACCESS_LIST String of node::user-name pairs for this user O NOTES$K_USER_CREATE_ May create keywords = 1, KEYWORD may not create keywords = 0 (default) O NOTES$K_USER_MAIL_ADDR Mailing address string O NOTES$K_USER_MODERATE May be moderator = 1, not moderator = 0 (default) S,R NOTES$K_USER_NAME User name string S,O NOTES$K_USER_NODENAME String of node names (comma- separated) O NOTES$K_USER_WRITE_ May write to write-locked BYPASS conference, reply-only con- ference, and write-locked topic ) User Routines 8-3 ____________________________________________________________ 8.4 NOTES$USER_DELETE Verifies that the specified user exists. Deletes the member record for that user. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_USER_ACCESS_ String of node::user-name pairs LIST for this user S,R NOTES$K_USER_NAME User name string S,O NOTES$K_USER_ String of node names (comma- NODENAME separated) ____________________________________________________________ 8.5 NOTES$USER_GET Gets information about users. Input Item Codes O NOTES$K_CONTINUE Keep returning information O NOTES$K_NOSIGNAL Return on errors; do not signal S,O NOTES$K_USER_ Only return users with moderator MODERATE privilege, indicated by 1; only return nonmoderators, indicated by 0 S,R NOTES$K_USER_NAME User name string (allows wild- cards); a null user name string will get the requester's user information 8-4 User Routines ____________________________________________________________ 8.6 NOTES$USER_MODIFY Verifies that the specified user exists. Modifies the member record for that user. Input Item Codes O NOTES$K_NOSIGNAL Return on errors; do not signal O NOTES$K_USER_ACCESS_ String of node::user-name pairs LIST for this user O NOTES$K_USER_CREATE_ May create keywords = 1, may not KEYWORD creates keywords = 0 (default) O NOTES$K_USER_MAIL_ Mailing address string ADDR O NOTES$K_USER_ May be moderator = 1, not modera- MODERATE tor = 0 (default) S,R NOTES$K_USER_NAME User name string O NOTES$K_USER_NEW_ New user name string (to rename) NAME O NOTES$K_USER_NEW_ String of new node names (comma- NODENAME separated) O NOTES$K_USER_ Node name string NODENAME O NOTES$K_USER_WRITE_ May write to write-locked confer- BYPASS ence, reply-only conference, and write-locked topic User Routines 8-5 Chapter 9 VAX Notes Network Protocol ________________________________________________________________ The VAX Notes network protocol uses a data syntax based on the DIGITAL Data Interchange Syntax (DDIS)[1] and ASN.1.[2] Data is encoded in TLVs. TLV stands for Type field Length field Value field This chapter describes the TLV encoding in VAX Notes of data packets exchanged between client and server nodes. TLVs can be nested; that is, the Value field of one TLV can contain one or more additional TLVs. VAX Notes uses unregistered Type codes in its network proto- col. The Type codes are the numeric values listed in the file NOTESCODES.TXT, provided with the software kit. The Type and Length fields of a TLV are bit-encoded for efficiency. The following sections explain the Type, Length, and Value fields. ___________________ [1] DEC STD 081, DIGITAL Data Interchange Syntax (DDIS), Part 1, as described in A-DS-EL00081-00-3, Rev AX03, 15-Jan-1989. [2] International Standard Organizations (ISO), Open System Interconnect (OSI), Abstract Syntax Notation (ASN.1), as defined in ISO 8824, ISO 8825. VAX Notes Network Protocol 9-1 ____________________________________________________________ 9.1 Type Field The Type field of a TLV is bit-encoded in 1, 2, or 3 octets (8-bit bytes). Bits 6 and 7 of the first or only byte of the Type field specify the class. There are four classes of data types: 0 = TLV$M_UNIVERSAL Generally useful, application- independent types defined by CCITT X.409 1 = TLV$M_APPLICATION_WIDE Specialized types, defined by an application 2 = TLV$M_CONTEXT_SPECIFIC Application types that are valid only within limited contexts of the application 3 = TLV$M_PRIVATE Reserved for the private use of Digital Depending on the context, VAX Notes specifies either TLV$M_ PRIVATE or (inappropriately) zero for the class. Thus, bits 6 and 7 of the first byte always contain either 00 (binary) or 11 (binary). Bit 5 of the first or only byte of the Type field specifies the form. There are two forms of data elements: 0 = TLV$M_PRIMITIVE An element whose value field is atomic (not itself another data element) 1 = TLV$M_CONSTRUCTOR An element whose value field is itself a data element or series of data elements VAX Notes does not specify TLV$M_CONSTRUCTOR, so bit 5 of the first byte is always 0. The Type field is either 1, 2, or 3 bytes in length, depend- ing on the numeric value of the Type code. The diagrams that follow map the 1-byte, 2-byte, and 3-byte Type fields. In the diagrams, C = Class 9-2 VAX Notes Network Protocol F = Form T = Type L = Length 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+ 1-byte: |C|C|F|T|T|T|T|T| where TTTTT is less than 11111 (31 decimal) +-+-+-+-+-+-+-+-+ The one-byte form is used for Types in the range 0 through 30. The number of the Type is in bits 0 through 4. Bit 0 is the least significant bit. The number identifies the routine or item code. (For example, 0001 is the number of NOTES$K_ INITIALIZE. This and all other Type codes are listed in the file NOTESCODES.TXT, supplied with your kit.) 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ 2-byte: |C|C|F|1|1|1|1|1| |0|T|T|T|T|T|T|T| +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ The two-byte form is used for Type codes in the range 31 through 127. Bits 0 through 4 of the first byte are set to 11111. Bit 7 of the second byte is set to 0. The Type code is in bits 0 through 6 of the second byte. Bit 0 is the least significant bit. (For example, 32 decimal is the number of NOTES$K_CLASS_BEGIN). VAX Notes Network Protocol 9-3 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ 3-byte: |C|C|F|1|1|1|1|1| |1|T|T|T|T|T|T|T| |0|T|T|T|T|T|T|T| +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ The three-byte form is used for Type codes in the range 128 through 16383. Bit 7 of the second byte is set to 1, and bit 7 of the third byte is set to 0. The Type code is in bits 0 through 6 of the second byte, and bits 0 through 6 of the third byte. Bit 0 of the second byte is the least significant bit, and bit 6 of the third byte is the most significant bit. Hence, to read the binary number, remove bit 7 of the second byte and bit 7 of the third byte; then put the third byte's remaining 7 bits before the second byte's 7 bits, without reordering the bits within each byte. (For example, NOTES$K_ INIT_NODENAME is 8194). ____________________________________________________________ 9.2 Length Field The Length field specifies the length (in 8-bit bytes, or octets) of the Value field of a TLV. The Length field con- sists of 1, 2, or 3 bytes, in one of the following forms: 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+ 1-byte: |0|L|L|L|L|L|L|L| +-+-+-+-+-+-+-+-+ This one-byte form (there is another one-byte form that indicates indefinite length, described below) is used for lengths in the range 0 through 127. Bit 7 is set to 0. The length is specified in bits 0 through 6. Bit 0 is the least significant bit. 9-4 VAX Notes Network Protocol 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ 2-byte: |1|0|0|0|0|0|0|1| |L|L|L|L|L|L|L|L| +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ The two-byte form is used for lengths in the range 128 through 255. The length is specified in bits 0 through 7 of the second byte. Bit 0 is the least significant bit. 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ 3-byte: |1|0|0|0|0|0|1|0| |L|L|L|L|L|L|L|L| |L|L|L|L|L|L|L|L| +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ The three-byte form is used for lengths in the range 256 through 65535. The length is specified in bits 0 through 7 of the second byte, and bits 0 through 7 of the third byte. Bit 0 of the second byte is the least significant bit, and bit 7 of the third byte is the most significant bit. (Hence, to read the binary number, put the third byte before the second byte.) 7 6 5 4 3 2 1 0 +-+-+-+-+-+-+-+-+ 1-byte: |1|0|0|0|0|0|0|0| +-+-+-+-+-+-+-+-+ This one-byte form is used to indicate an indefinite length. The Value field that follows is itself TLV-encoded; that is, it is a sequence of TLVs. A TLV of all zeroes within the Value field indicates the end of the Value (that is, both the Type and Length are zero, so this appears as two bytes of zero). VAX Notes uses this form only in error reporting (see NOTES$K_ERROR_TLV). VAX Notes Network Protocol 9-5 ____________________________________________________________ 9.3 Value Field For character string data, the Value portion of a TLV is a string of 8-bit octets. Integer data is passed as a 1- octet or 4-octet string with VAX ordering used for the octets within this string. A VMS date/time format is used to pass a date/time data item as an 8-octet string. ____________________________________________________________ 9.4 Structure of a Data Packet The first two bytes of every data packet sent between the VAX Notes client and server contain flags. Currently, only bit 0 of the first byte is used; the other bits are sent as zero and ignored. Bit 0 of the first byte is the end of message (EOM) bit. When set (1), it indicates that this packet represents the end of the message. When clear (0), it indicates that there are continuation packets that may be requested. Continuation is described in detail below (see NOTES$K_MORE). Except for continuation packets, the two flag bytes are followed by a sequence of TLVs. The description of these TLVs and their contents comprise the remainder of this chapter. The protocol design supports only one outstanding request per connection. In the sequence of TLVs from the server, there may be error- reporting TLVs (see NOTES$K_ERROR_TLV). These indicate an error or informational message that was produced while the server was processing a client request. These may occur anywhere amoung the top-level TLVs; they do not occur in nested TLVs. (A nested TLV is one that occurs as part of the Value field of another TLV.) NOTES$K_ERROR_TLV = 131 While processing a client request, the server may produce an error or informational message. To report this, it is put into a NOTES$K_ERROR_TLV, and is sent to the client as one of the top-level TLVs in the next message (it is not nested within another TLV). The Value of the NOTES$K_ERROR_TLV TLV is itself a sequence of TLVs, with the format depending on 9-6 VAX Notes Network Protocol whether both the client and server specified the NOTES$V_ INIT_VMSMSGS capability in their NOTES$K_INITIALIZE messages. With the NOTES$V_INIT_VMSMSGS capability, the NOTES$K_ERROR_ TLV TLV represents a signaled VMS condition vector. NOTES$K_ERROR_TLV NOTES$K_STATUS A longword condition value NOTES$K_ERROR_NARGS Number of following arguments NOTES$K_ERROR_ARG A string argument The NOTES$K_ERROR_ARG TLV may occur any number of times (including 0). Without the NOTES$V_INIT_VMSMSGS capability: NOTES$K_ERROR_TLV NOTES$K_ERROR_TEXT A string, the error text Note that the indefinite length encoding is used for the NOTES$K_ERROR_TLV's Length field. NOTES$K_INITIALIZE = 1 When the client first starts using VAX Notes for a remote connection (by calling NOTES$NOTEFILE_BEGIN), a connection to the server is made, and initialization messages are ex- changed. The initialization message sent by the client contains (in order) the two flag bytes (containing the EOM bit), followed by a TLV of Type NOTES$K_INITIALIZE. The Value of this TLV is itself a sequence of TLVs for the software version, client nodename, client username, and client capabilities. These TLVs are indicated below; note that indentation is used to indicate the nested TLVs. VAX Notes Network Protocol 9-7 INITIALIZE (from client to server) NOTES$K_INITIALIZE NOTES$K_INIT_VERSION Version, a longword integer NOTES$K_INIT_NODENAME Client nodename (a string) NOTES$K_INIT_USERNAME Username (a string) NOTES$K_INIT_CAPABILITIES Capabilities, a longword The server responds with another message. It begins with the flags word, and includes two TLVs, NOTES$K_INITIALIZE and NOTES$K_STATUS. The Value of the NOTES$K_INITIALIZE TLV is itself a sequence of TLVs for the software version, server nodename, server capabilities, and the maximum itemcode which is understood by the server. The Value of the NOTES$K_STATUS TLV is a VAX/VMS condition value (typically SS$_NORMAL). INITIALIZE (from server to client) NOTES$K_INITIALIZE NOTES$K_INIT_VERSION Version, a longword integer NOTES$K_INIT_NODENAME Server nodename (a string) NOTES$K_INIT_CAPABILITIES Capabilities, a longword NOTES$K_INIT_MAXITEMCODE A longword integer NOTES$K_STATUS A longword condition value Only bit 0 of the capabilities is defined; other bits should be clear. If set, bit 0 indicates that the sender (client or server) understands VAX/VMS error messages. This determines the format in which error messages will be sent (see NOTES$K_ ERROR_TLV, above). The symbolic name for this capability field within the capabilities longword is NOTES$V_INIT_ VMSMSGS. The software version described herein is 2/4, which is sent as hex 00020004, and which represents version 0002, update 0004. When changes that allow upward compatibility are made to the protocol, the update number is increased; and if significant changes are made, the version number is increased (and the update reset to 0). Protocol changes are mentioned in the following text. 9-8 VAX Notes Network Protocol Most of the 'routine' messages are fairly similar, and are closely related to the corresponding callable interface routines (see Part II). As an example, consider the messages used to modify a user/membership record. USER_MODIFY (from client to server) NOTES$K_USER_MODIFY NOTES$K_REQUEST_CONTEXT Context from notefile_begin NOTES$K_TLV_INPUT NOTES$K_USER_NAME Username NOTES$K_USER_MAIL_ADDR Mail address ... NOTES$K_TLV_OUTPUT NOTES$K_USER_NAME Username NOTES$K_USER_MODERATE Longword boolean ... The NOTES$K_REQUEST_CONTEXT TLV corresponds to the context parameter that is returned by NOTES$USER_BEGIN and passed to NOTES$USER_MODIFY. The TLVs within the NOTES$K_TLV_INPUT and NOTES$K_TLV_OUTPUT TLVs correspond directly to the items that can be speci- fied to (or requested from) the NOTES$USER_MODIFY routine. Since their values would be meaningless, the TLVs within the NOTES$K_TLV_OUTPUT TLV are specified with lengths of 0; their presence merely indicates which data items are desired. The server responds with the following message. VAX Notes Network Protocol 9-9 USER_MODIFY (from server to client) NOTES$K_REQUEST_CONTEXT Context from notefile_begin NOTES$K_TLV_OUTPUT NOTES$K_USER_NAME Username NOTES$K_USER_MODERATE Longword boolean ... NOTES$K_STATUS A longword condition value Note that the server's response is not nested within a NOTES$K_USER_MODIFY TLV; there is no NOTES$K_TLV_INPUT TLV; and the message includes a NOTES$K_STATUS TLV which gives the final status of the operation. The NOTES$K_TLV_OUTPUT TLV may be absent (this happens when the NOTES$K_STATUS TLV indicates failure). None of the BEGIN routines specify the NOTES$K_REQUEST_ CONTEXT TLV; this is an output provided by the server's response. While all the BEGIN responses include the NOTES$K_REQUEST_ CONTEXT TLV, most other server responses do not; it is unnec- essary because the context is the same as the context in the preceding request (it is assumed that for a given connection the requests are serial). Responses can also include error or informational messages (see NOTES$K_ERROR_TLV). Some responses may be split into several packets (see NOTES$K_MORE). The following messages/routines fit the above description, and are not further described. See Part II for a description of the inputs and outputs of these routines. NOTES$K_NOTEFILE_BEGIN = 3 NOTES$K_NOTEFILE_END = 4 NOTES$K_NOTEFILE_GET_INFO = 5 NOTES$K_NOTEFILE_MODIFY = 6 NOTES$K_NOTEFILE_LIST_BEGIN = 7 NOTES$K_NOTEFILE_LIST = 8 NOTES$K_KEYWORD_BEGIN = 9 NOTES$K_KEYWORD_END = 10 NOTES$K_KEYWORD_ADD = 11 NOTES$K_KEYWORD_DELETE = 12 9-10 VAX Notes Network Protocol NOTES$K_KEYWORD_GET_NOTE = 14 NOTES$K_KEYWORD_MODIFY = 15 NOTES$K_NOTE_BEGIN = 16 NOTES$K_NOTE_END = 17 NOTES$K_NOTE_ADD = 18 NOTES$K_NOTE_DELETE = 20 NOTES$K_NOTE_GET_KEYWORD = 22 NOTES$K_NOTE_GET_TEXT = 23 NOTES$K_NOTE_MODIFY = 24 NOTES$K_USER_BEGIN = 25 NOTES$K_USER_END = 26 NOTES$K_USER_ADD = 27 NOTES$K_USER_DELETE = 28 NOTES$K_USER_MODIFY = 30 NOTES$K_CLASS_ADD = 31 NOTES$K_CLASS_BEGIN = 32 NOTES$K_CLASS_DELETE = 33 NOTES$K_CLASS_END = 34 NOTES$K_CLASS_GET_ENTRY = 36 NOTES$K_CLASS_MODIFY = 37 NOTES$K_ENTRY_ADD = 38 NOTES$K_ENTRY_BEGIN = 39 NOTES$K_ENTRY_DELETE = 40 NOTES$K_ENTRY_END = 41 NOTES$K_ENTRY_GET_CLASS = 43 NOTES$K_ENTRY_GET_KEYWORD = 44 NOTES$K_ENTRY_MODIFY = 45 NOTES$K_PROFILE_BEGIN = 46 NOTES$K_PROFILE_END = 47 NOTES$K_PROFILE_GET = 48 NOTES$K_PROFILE_MODIFY = 49 To reduce the amount of network traffic, the following two techniques are used in the VAX Notes network protocol. When a user requests a list (for example, a list of key- words), the callable interface would generally require that multiple calls be made to a GET routine, with NOTES$K_ CONTINUE specified on the second and subsequent calls. To reduce the number of packets that are exchanged in handling a user's request, the server assumes that all GET requests are continued, and sends back the information for multiple VAX Notes Network Protocol 9-11 GET requests in one packet, without requiring the separate requests. If the information being returned by the server exceeds the size of a single packet, a NOTES$K_MORE request from the client prompts the server to send the next packet in the message. The NOTES$K_USER request illustrates the simplest example of this technique (see NOTES$K_USER_GET). To further reduce the network traffic, the client can specify "hints" to the server. For example, if the client specifies NOTES$K_NOTE_HINT_GET_TEXT in the NOTES$K_TLV_INPUT TLV of a NOTES$K_NOTE_GET request, then (as usual) the server will send back the items requested in the NOTES$K_TLV_OUTPUT TLV, but it will also send back the text of the note, without the client making individual NOTES$K_NOTE_GET_TEXT requests. NOTES$K_USER_GET = 29 This is requested as described above. The servers response may include multiple NOTES$K_TLV_OUTPUT TLVs, one for each user record found/requested. As usual, NOTES$K_ERROR_TLV TLVs may also appear, and the NOTES$K_TLV_OUTPUT TLV may be absent if the NOTES$K_STATUS TLV indicates failure. USER_GET (from server to client) NOTES$K_TLV_OUTPUT \ NOTES$K_USER_NAME \ NOTES$K_USER_MODERATE > This may be repeated ... / NOTES$K_STATUS / NOTES$K_KEYWORD_GET = 13 This is requested as described above. The server's response may include multiple NOTES$K_TLV_OUTPUT TLVs, one for each keyword found/requested. If the NOTES$K_KEYWORD_GET request (sent from the client to the server) includes a NOTES$K_KEYWORD_HINT_GET_NOTE TLV in its NOTES$K_TLV_INPUT TLV, then for each keyword, the server does a NOTES$K_KEYWORD_GET_NOTE and sends that information along in its response. The form of that information depends on whether the NOTES$K_KEYWORD_GET request had NOTES$K_ENTRY_ NAME in its NOTES$K_TLV_INPUT TLV. 9-12 VAX Notes Network Protocol If NOTES$K_ENTRY_NAME was specified, the server sends a form suited for markers: KEYWORD_GET (from server to client) NOTES$K_TLV_OUTPUT \ NOTES$K_KEYWORD_NAME \ ... \ NOTES$K_STATUS \ \ NOTES$K_TLV_OUTPUT \ one for > This may be repeated NOTES$K_NOTE_ID \ each / NOTES$K_ENTRY_NAME \ note / NOTES$K_KEYWORD_NAME / / NOTES$K_NOTE_UID / / NOTES$K_STATUS / / If NOTES$K_ENTRY_NAME was not specified: KEYWORD_GET (from server to client) NOTES$K_TLV_OUTPUT \ NOTES$K_KEYWORD_NAME \ ... \ NOTES$K_STATUS \ > This may be repeated NOTES$K_NOTE_UID \ one for / NOTES$K_NOTE_ID / each note / / NOTES$K_STATUS - end of all the / hooji-woojis / The first NOTES$K_STATUS shown above is for the NOTES$K_ KEYWORD_GET operation, and the second is for the final (un- successful) NOTES$K_KEYWORD_GET_NOTE done for each keyword. The NOTES$K_NOTE_UID may be absent, since early versions of VAX Notes (prior to protocol 2/3) did not include it. NOTES$K_CLASS_GET = 35 This is requested as described above. The servers response may include multiple NOTES$K_TLV_OUTPUT TLVs, one for each class record found/requested. VAX Notes Network Protocol 9-13 If the NOTES$K_CLASS_GET request includes a NOTES$K_CLASS_ HINT_GET_ENTRY TLV in its NOTES$K_TLV_INPUT TLV, then for each class, the server does a NOTES$K_CLASS_GET_ENTRY and sends the results in its response. CLASS_GET (from server to client) NOTES$K_TLV_OUTPUT \ NOTES$K_CLASS_NAME \ ... \ NOTES$K_STATUS \ This may be repeated / NOTES$K_ENTRY_NAME > repeated / / NOTES$K_STATUS / The first NOTES$K_STATUS shown above is for the NOTES$K_ CLASS_GET operation, and the second is for the final (unsuc- cessful) NOTES$K_CLASS_GET_ENTRY done for each class. NOTES$K_ENTRY_GET = 42 In a NOTES$K_ENTRY_GET request a client may specify one of two hints, NOTES$K_ENTRY_HINT_GET_CLASS or NOTES$K_ENTRY_ HINT_GET_KEYWORD, but not both. If NOTES$K_ENTRY_HINT_GET_CLASS is specified, then for each entry, the server does a NOTES$K_ENTRY_GET_CLASS and sends the results in its response. 9-14 VAX Notes Network Protocol ENTRY_GET (from server to client) NOTES$K_TLV_OUTPUT \ NOTES$K_ENTRY_NAME \ ... \ NOTES$K_STATUS \ This may be repeated / NOTES$K_CLASS_NAME > repeated / / NOTES$K_STATUS / If NOTES$K_ENTRY_HINT_GET_KEYWORD is specified, then for each entry, the server does a NOTES$K_ENTRY_GET_KEYWORD and sends the results in its response. ENTRY_GET (from server to client) NOTES$K_TLV_OUTPUT \ NOTES$K_ENTRY_NAME \ ... \ NOTES$K_STATUS \ This may be repeated / NOTES$K_KEYWORD_NAME > repeated / / NOTES$K_STATUS / NOTES$K_NOTE_GET = 21 This is requested as described above. The server's response may include multiple NOTES$K_TLV_OUTPUT TLVs, one for each note found/selected. If the NOTES$K_NOTE_GET request includes a NOTES$K_NOTE_HINT_ GET_KEYWORD TLV in its NOTES$K_TLV_INPUT TLV, then for each note, the server does NOTES$K_NOTE_GET_KEYWORD operations and sends the resulting keywords in its response. If the request includes a NOTES$K_NOTE_HINT_GET_TEXT TLV, then for each note, the server does NOTES$K_NOTE_GET_TEXT operations, and sends the results in its response. The two hints cannot be specified together. VAX Notes Network Protocol 9-15 If NOTES$K_NOTE_GET_KEYWORD is specified: NOTE_GET (from server to client) NOTES$K_TLV_OUTPUT \ NOTES$K_NOTE_UID \ ... \ NOTES$K_STATUS \ This may be repeated / NOTES$K_KEYWORD_NAME > repeated / / NOTES$K_STATUS / If NOTES$K_NOTE_GET_TEXT is specified: NOTE_GET (from server to client) NOTES$K_TLV_OUTPUT \ NOTES$K_NOTE_UID \ ... \ NOTES$K_STATUS \ > This may be repeated NOTES$K_TEXT_TYPE \ repeated / NOTES$K_TEXT_STRING / / / NOTES$K_STATUS / The NOTES$K_TEXT_TYPE may be absent, since early versions of VAX Notes (prior to protocol 2/3) did not include it. The first NOTES$K_STATUS shown above (in each diagram) is for the NOTES$K_NOTE_GET operation, and the second is for the final (unsuccessful) NOTES$K_NOTE_GET_KEYWORD or NOTES$K_ NOTE_GET_TEXT operation done for each note. If NOTES$K_NOTE_SEARCH_STRING is specified with NOTES$K_ NOTE_GET_TEXT, then the server empties/sends its buffer at the end of each note, rather than waiting until the buffer fills. This is consistent with the protocol, and gives better user-perceived performance, as the results of a long-lasting SEARCH command are sent to the client as soon as they are available, rather than being further delayed until the buffer is full or all the notes have been searched. 9-16 VAX Notes Network Protocol NOTES$K_NOTE_ADD_TEXT = 19 To reduce the number of packets sent when a user writes a note, the client can specify multiple lines of text within a single message. NOTE_ADD_TEXT (from client to server) NOTES$K_NOTE_ADD_TEXT NOTES$K_TEXT_STRING \ repeatable NOTES$K_TEXT_TYPE / in any order NOTES$K_TEXT_END NOTE_ADD_TEXT (from server to client) NOTES$K_NOTE_ADD_TEXT NOTES$K_STATUS NOTES$K_MORE = 2 If a message overflows the buffer size (currently 1024 bytes), then the buffer/packet is sent with the EOM bit clear. The other process can request more (with a NOTES$K_ MORE message), and the next packet continues (after the ini- tial two bytes) where the previous one left off. The MORE message itself is also sent with the EOM bit clear. VAX Notes Network Protocol 9-17 MORE (from client to server) NOTES$K_MORE NOTES$K_REQUEST_CONTEXT Longword context of the request NOTES$K_CANCEL_REQUEST = 135 NOTES$K_REQUEST_CANCELLED = 136 Some server operations may take a long time. To cancel an operation, the client sends a CANCEL_REQUEST message. In response, the server cancels the current operation, and sends back a REQUEST_CANCELLED message. The client should read until it sees the REQUEST_CANCELLED message, since it is possible that the server did not receive the CANCEL_REQUEST message until after it sent its previous response. CANCEL_REQUEST (from client to server) NOTES$K_CANCEL_REQUEST (with Length 0) CANCEL_REQUEST (from server to client) NOTES$K_REQUEST_CANCELLED (with Length 0) 9-18 VAX Notes Network Protocol Part II VAX Notes Routines Dictionary ________________________________________________________________ NOTES$CLASS_ADD ________________________________________________________________ NOTES$CLASS_ADD Creates a class record if the entry name is missing. If the entry name is specified, NOTES$CLASS_ADD adds that entry to the class. ____________________________________________________________ Format NOTES$CLASS_ADD (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the class context returned by NOTES$CLASS_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_CLASS_NAME is required. All the others are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_USER_AREA NOTES$K_ENTRY_NAME 3 NOTES$CLASS_ADD NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_USER_AREA ____________________________________________________________ Description The NOTES$CLASS_ADD routine creates a class record if the entry name is missing. If the entry name is specified, NOTES$CLASS_ADD adds that entry to the class. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 4 NOTES$CLASS_ADD _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 5 NOTES$CLASS_BEGIN ________________________________________________________________ NOTES$CLASS_BEGIN Creates and initializes the class context for later calls to NOTES$CLASS_xxx routines. ____________________________________________________________ Format NOTES$CLASS_BEGIN (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that will receive class context information. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_NOTEFILE_CONTEXT is required. The other is optional. NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_CONTEXT 6 NOTES$CLASS_BEGIN output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_USER_AREA ____________________________________________________________ Description The NOTES$CLASS_BEGIN routine creates and initializes the class context for later calls to NOTES$CLASS_xxx routines. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 7 NOTES$CLASS_BEGIN _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 8 NOTES$CLASS_DELETE ________________________________________________________________ NOTES$CLASS_DELETE Deletes the class record if the entry name is missing. If the entry name is specified, NOTES$CLASS_DELETE deletes that entry from the class. ____________________________________________________________ Format NOTES$CLASS_DELETE (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the class context returned by NOTES$CLASS_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_CLASS_NAME is required. All the others are optional. NOTES$K_CLASS_NAME NOTES$K_DELIFO NOTES$K_ENTRY_NAME 9 NOTES$CLASS_DELETE NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_USER_AREA ____________________________________________________________ Description The NOTES$CLASS_DELETE routine deletes the class record if the entry name is missing. If the entry name is specified, NOTES$CLASS_DELETE deletes that entry from the class. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 10 NOTES$CLASS_DELETE _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 11 NOTES$CLASS_END ________________________________________________________________ NOTES$CLASS_END Deletes or deallocates the class context. ____________________________________________________________ Format NOTES$CLASS_END (context[,input-item-list] [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the class context returned by NOTES$CLASS_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of the following single, optional item code: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 12 NOTES$CLASS_END An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_USER_AREA ____________________________________________________________ Description The NOTES$CLASS_END routine deletes or deallocates the class context. The context longword is zeroed. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 13 NOTES$CLASS_END _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_?_____________________________________________________ 14 NOTES$CLASS_GET ________________________________________________________________ NOTES$CLASS_GET Gets information about a class or, if NOTES$K_CONTINUE was specified, the next class. ____________________________________________________________ Format NOTES$CLASS_GET (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the class context returned by NOTES$CLASS_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_CLASS_NAME is required. All the others are optional. NOTES$K_CLASS_HINT_GET_ENTRY NOTES$K_CLASS_NAME NOTES$K_CONTINUE NOTES$K_NOSIGNAL 15 NOTES$CLASS_GET output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_USER_AREA ____________________________________________________________ Description The NOTES$CLASS_GET routine gets information about a class or, if NOTES$K_CONTINUE was specified, the next class. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 16 NOTES$CLASS_GET _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 17 NOTES$CLASS_GET_ENTRY ________________________________________________________________ NOTES$CLASS_GET_ENTRY Gets information about entries belonging to the class spec- ified by the most recent NOTES$CLASS_GET call for this con- text. ____________________________________________________________ Format NOTES$CLASS_GET_ENTRY (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the class context returned by NOTES$CLASS_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or both item codes from the following list. Both are optional. NOTES$K_CONTINUE NOTES$K_NOSIGNAL 18 NOTES$CLASS_GET_ENTRY output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_USER_AREA NOTES$K_ENTRY_NAME ____________________________________________________________ Description The NOTES$CLASS_GET_ENTRY routine gets information about entries belonging to the class specified by the most recent NOTES$CLASS_GET call for this context. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 19 NOTES$CLASS_GET_ENTRY _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 20 NOTES$CLASS_MODIFY ________________________________________________________________ NOTES$CLASS_MODIFY Modifies information stored for a class. ____________________________________________________________ Format NOTES$CLASS_MODIFY (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the class context returned by NOTES$CLASS_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_CLASS_NAME is required. All the others are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_NEW_NAME NOTES$K_CLASS_USER_AREA NOTES$K_NOSIGNAL 21 NOTES$CLASS_MODIFY output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_CLASS_NAME NOTES$K_CLASS_USER_AREA ____________________________________________________________ Description The NOTES$CLASS_MODIFY routine modifies the information stored for a class. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 22 NOTES$CLASS_MODIFY _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 23 NOTES$ENTRY_ADD ________________________________________________________________ NOTES$ENTRY_ADD Adds an entry to the specified class. ____________________________________________________________ Format NOTES$ENTRY_ADD (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the entry context returned by NOTES$ENTRY_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_ENTRY_NAME and NOTES$K_NOTEFILE_FILE_ NAME are required. All the others are optional. NOTES$K_CLASS_NAME NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_USER_AREA NOTES$K_NOSIGNAL 24 NOTES$ENTRY_ADD NOTES$K_NOTE_BEFORE_TIME NOTES$K_NOTE_SINCE_TIME NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP 25 NOTES$ENTRY_ADD ____________________________________________________________ Description The NOTES$ENTRY_ADD routine adds an entry to the specified class. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 26 NOTES$ENTRY_BEGIN ________________________________________________________________ NOTES$ENTRY_BEGIN Creates and initializes the entry context for later calls to NOTES$ENTRY_xxx routines. ____________________________________________________________ Format NOTES$ENTRY_BEGIN (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that will receive entry context information. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_NOTEFILE_CONTEXT is required. The other is optional. NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_CONTEXT 27 NOTES$ENTRY_BEGIN output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$ENTRY_BEGIN routine creates and initializes the entry context for later calls to NOTES$ENTRY_xxx routines. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? 28 NOTES$ENTRY_BEGIN _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 29 NOTES$ENTRY_DELETE ________________________________________________________________ NOTES$ENTRY_DELETE Deletes the entry record. ____________________________________________________________ Format NOTES$ENTRY_DELETE (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the entry context returned by NOTES$ENTRY_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_ENTRY_NAME is required. All the others are optional. NOTES$K_CLASS_NAME NOTES$K_DELIFO NOTES$K_ENTRY_NAME NOTES$K_NOSIGNAL 30 NOTES$ENTRY_DELETE output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$ENTRY_DELETE routine deletes the entry record. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? 31 NOTES$ENTRY_DELETE _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 32 NOTES$ENTRY_END ________________________________________________________________ NOTES$ENTRY_END Deletes or deallocates the entry context. ____________________________________________________________ Format NOTES$ENTRY_END (context[,input-item-list] [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the entry context returned by NOTES$ENTRY_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of the following, optional item code: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 33 NOTES$ENTRY_END An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$ENTRY_END routine deletes or deallocates the entry context. The context longword is zeroed. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? 34 NOTES$ENTRY_END _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 35 NOTES$ENTRY_GET ________________________________________________________________ NOTES$ENTRY_GET Gets information from the entry record. ____________________________________________________________ Format NOTES$ENTRY_GET (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the entry context returned by NOTES$ENTRY_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_ENTRY_NAME is required. All the others are optional. NOTES$K_CLASS_NAME NOTES$K_CONTINUE NOTES$K_ENTRY_HINT_GET_CLASS NOTES$K_ENTRY_HINT_GET_KEYWORD NOTES$K_ENTRY_NAME 36 NOTES$ENTRY_GET NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$ENTRY_GET routine gets information from the entry record. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? 37 NOTES$ENTRY_GET _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 38 NOTES$ENTRY_GET_CLASS ________________________________________________________________ NOTES$ENTRY_GET_CLASS Gets information about the classes to which an entry belongs (the entry specified by the most recent NOTES$ENTRY_GET call for the context). ____________________________________________________________ Format NOTES$ENTRY_GET_CLASS (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the entry context returned by NOTES$ENTRY_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. Both are optional. NOTES$K_CONTINUE NOTES$K_NOSIGNAL 39 NOTES$ENTRY_GET_CLASS output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_CLASS_NAME NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$ENTRY_GET_CLASS routine gets information about the classes to which an entry belongs (the entry specified by the most recent NOTES$ENTRY_GET call for the context). _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? 40 NOTES$ENTRY_GET_CLASS _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 41 NOTES$ENTRY_GET_KEYWORD ________________________________________________________________ NOTES$ENTRY_GET_KEYWORD Gets information about keywords or markers for an entry. ____________________________________________________________ Format NOTES$ENTRY_GET_KEYWORD (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the entry context returned by NOTES$ENTRY_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. Both are optional. NOTES$K_CONTINUE NOTES$K_NOSIGNAL 42 NOTES$ENTRY_GET_KEYWORD output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_KEYWORD_NAME NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$ENTRY_GET_KEYWORD routine gets information about keywords or markers for an entry. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? 43 NOTES$ENTRY_GET_KEYWORD _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 44 NOTES$ENTRY_MODIFY ________________________________________________________________ NOTES$ENTRY_MODIFY Modifies the information stored for an entry. ____________________________________________________________ Format NOTES$ENTRY_MODIFY (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the entry context returned by NOTES$ENTRY_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_ENTRY_NAME is required. All the others are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_NEW_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_USER_AREA NOTES$K_NOSIGNAL 45 NOTES$ENTRY_MODIFY NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN MAP output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP 46 NOTES$ENTRY_MODIFY ____________________________________________________________ Description The NOTES$ENTRY_MODIFY routine modifies the information stored for an entry. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 47 NOTES$ENTRY_UPDATE ________________________________________________________________ NOTES$ENTRY_UPDATE Updates statistics for an entry (or entries, if wildcards are used). ____________________________________________________________ Format NOTES$ENTRY_UPDATE (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the entry context returned by NOTES$ENTRY_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_ENTRY_NAME is required. All the others are optional. NOTES$K_CLASS_NAME NOTES$K_CONTINUE NOTES$K_ENTRY_NAME NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_DEFAULT_NAME 48 NOTES$ENTRY_UPDATE NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_RELATED_NAME output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_LAST_STATUS NOTES$K_ENTRY_NAME NOTES$K_ENTRY_OBJECT_NAME NOTES$K_ENTRY_UNSEEN_EST NOTES$K_ENTRY_USER_AREA NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_TITLE NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$ENTRY_UPDATE routine updates statistics for an entry (or entries, if wildcards are used). _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? 49 NOTES$ENTRY_UPDATE _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 50 NOTES$KEYWORD_ADD ________________________________________________________________ NOTES$KEYWORD_ADD Creates a keyword record if both the entry name and the note- ID are missing; creates a keyword reference if either the entry name or the note-ID is specified. ____________________________________________________________ Format NOTES$KEYWORD_ADD (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the keyword context returned by NOTES$KEYWORD_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_KEYWORD_NAME is required. All the others are optional. NOTES$K_ENTRY_NAME NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_USER_AREA NOTES$K_NOSIGNAL 51 NOTES$KEYWORD_ADD NOTES$K_NOTE_ID NOTES$K_NOTE_UID NOTES$K_UNIENTRY output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_USER_AREA ____________________________________________________________ Description The NOTES$KEYWORD_ADD routine creates a keyword record if both the entry name and the note-ID are missing; it creates a keyword reference if either the entry name or the note-ID is specified. If the entry name is not specified, it also adds the reference to the note (if specified). Note that this routine and all other keyword routines are used for markers as well as keywords. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? 52 NOTES$KEYWORD_ADD _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 53 NOTES$KEYWORD_BEGIN ________________________________________________________________ NOTES$KEYWORD_BEGIN Creates and initializes the keyword context for later calls to NOTES$KEYWORD_xxx routines. ____________________________________________________________ Format NOTES$KEYWORD_BEGIN (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that will receive keyword context information. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_NOTEFILE_CONTEXT is required. The other is optional. NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_CONTEXT 54 NOTES$KEYWORD_BEGIN output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_USER_AREA ____________________________________________________________ Description The NOTES$KEYWORD_BEGIN routine creates and initializes the keyword context for later calls to NOTES$KEYWORD_xxx routines. Note that this routine and all other keyword routines are used for markers as well as keywords. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 55 NOTES$KEYWORD_BEGIN _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 56 NOTES$KEYWORD_DELETE ________________________________________________________________ NOTES$KEYWORD_DELETE Deletes a keyword record if neither the entry name nor the note-ID is specified. If either the entry name or the note-ID is specified, this routine deletes the keyword reference; and if the entry name is not specified and the note-ID is specified, it also deletes the keyword reference from the note. ____________________________________________________________ Format NOTES$KEYWORD_DELETE (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the keyword context returned by NOTES$KEYWORD_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_KEYWORD_NAME is required. All the others are optional. NOTES$K_ENTRY_NAME 57 NOTES$KEYWORD_DELETE NOTES$K_KEYWORD_NAME NOTES$K_NOSIGNAL NOTES$K_NOTE_ID NOTES$K_NOTE_UID output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_USER_AREA ____________________________________________________________ Description The NOTES$KEYWORD_DELETE routine deletes a keyword record if neither the entry name nor the note-ID is specified. If either the entry name or the note-ID is specified, this routine deletes the keyword reference; and if the entry name is not specified and the note-ID is specified, it also deletes the keyword reference from the note. Note that this routine and all other keyword routines are used for markers as well as keywords. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? 58 NOTES$KEYWORD_DELETE _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 59 NOTES$KEYWORD_END ________________________________________________________________ NOTES$KEYWORD_END Deletes or deallocates the keyword context. ____________________________________________________________ Format NOTES$KEYWORD_END (context[,input-item-list] [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the keyword context returned by NOTES$KEYWORD_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of the following, optional item code: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 60 NOTES$KEYWORD_END An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_USER_AREA ____________________________________________________________ Description The NOTES$KEYWORD_END routine deletes or deallocates the keyword context. The context longword is zeroed. Note that this routine and all other keyword routines are used for markers as well as keywords. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 61 NOTES$KEYWORD_END _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_?_____________________________________________________ 62 NOTES$KEYWORD_GET ________________________________________________________________ NOTES$KEYWORD_GET Gets information about keywords or markers. ____________________________________________________________ Format NOTES$KEYWORD_GET (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the keyword context returned by NOTES$KEYWORD_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_KEYWORD_NAME is required. All the others are optional. NOTES$K_CONTINUE NOTES$K_ENTRY_NAME NOTES$K_KEYWORD_HINT_GET_NOTE NOTES$K_KEYWORD_NAME NOTES$K_NOSIGNAL 63 NOTES$KEYWORD_GET output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_USER_AREA ____________________________________________________________ Description The NOTES$KEYWORD_GET routine gets information about keywords or markers. Note that this routine and all other keyword routines are used for markers as well as keywords. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 64 NOTES$KEYWORD_GET _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 65 NOTES$KEYWORD_GET_NOTE ________________________________________________________________ NOTES$KEYWORD_GET_NOTE Gets information about notes referenced by a keyword (the keyword specified by the most recent NOTES$KEYWORD_GET call for this context) or by a marker. ____________________________________________________________ Format NOTES$KEYWORD_GET_NOTE (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the keyword context returned by NOTES$KEYWORD_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. Both are optional. NOTES$K_CONTINUE NOTES$K_NOSIGNAL 66 NOTES$KEYWORD_GET_NOTE output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_NAME NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_USER_AREA NOTES$K_NOTE_ID NOTES$K_NOTE_UID ____________________________________________________________ Description The NOTES$KEYWORD_GET_NOTE routine gets information about notes referenced by a keyword (the keyword specified by the most recent NOTES$KEYWORD_GET call for this context) or by a marker. Note that this routine and all other keyword routines are used for markers as well as keywords. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 67 NOTES$KEYWORD_GET_NOTE _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 68 NOTES$KEYWORD_MODIFY ________________________________________________________________ NOTES$KEYWORD_MODIFY Changes a keyword name. ____________________________________________________________ Format NOTES$KEYWORD_MODIFY (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the keyword context returned by NOTES$KEYWORD_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_KEYWORD_NAME is required. All the others are optional. NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_NEW_NAME NOTES$K_KEYWORD_USER_AREA NOTES$K_NOSIGNAL 69 NOTES$KEYWORD_MODIFY output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. Both are optional. NOTES$K_KEYWORD_NAME NOTES$K_KEYWORD_USER_AREA ____________________________________________________________ Description The NOTES$KEYWORD_MODIFY routine changes a keyword name. References are created and deleted by calls to the NOTES$KEYWORD_ ADD and NOTES$KEYWORD_DELETE routines. If the keyword_new_name does not exist, NOTES$KEYWORD_MODIFY udates the keyword record. Otherwise, the routine effectively uses NOTES$KEYWORD_GET, NOTES$KEYWORD_ADD, and NOTES$KEYWORD_ DELETE to copy all references from the keyword_name to the keyword_new_name, and then deletes the keyword_name record. Note that this routine and all other keyword routines are used for markers as well as keywords. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? 70 NOTES$KEYWORD_MODIFY _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 71 NOTES$NOTEFILE_BEGIN ________________________________________________________________ NOTES$NOTEFILE_BEGIN Initiates access to a notefile (conference or Notebook). ____________________________________________________________ Format NOTES$NOTEFILE_BEGIN (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that will receive notefile context information (as described in the Description section). input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_NOTEFILE_FILE_NAME is required. All the others are optional. NOTES$K_ENTRY_OBJECT_NAME NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_CREATE NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_MODERATE 72 NOTES$NOTEFILE_BEGIN NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_RELATED_NAME NOTES$K_NOTEFILE_REPLY_ONLY NOTES$K_SEEN_MAP NOTES$K_USER_CREATE_KEYWORD The following item codes are allowed as input items when NOTES$K_NOTEFILE_CREATE is passed to the NOTES$NOTEFILE_BEGIN routine. NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_RESTRICTED NOTES$K_NOTEFILE_TITLE NOTES$K_NOTEFILE_USER_AREA NOTES$K_NOTEFILE_WRITELOCK NOTES$K_USER_MODERATE output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_OBJECT_SPEC NOTES$K_NOTEFILE_CREATE_TIME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FORMAT NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_REPLY_ONLY NOTES$K_NOTEFILE_RESTRICTED NOTES$K_NOTEFILE_RESULT_SPEC NOTES$K_NOTEFILE_TITLE NOTES$K_NOTEFILE_USER_AREA NOTES$K_NOTEFILE_WRITELOCK 73 NOTES$NOTEFILE_BEGIN NOTES$K_SEEN_MAP NOTES$K_SERVER_MAX_ITEM NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MODERATE ____________________________________________________________ Description The NOTES$NOTEFILE_BEGIN routine initiates access to a note- file. It creates the notefile if so directed, and opens the file for access by other routines. It creates and initializes the notefile context for later calls to NOTES$NOTEFILE_xxx routines, as follows: The context argument is the address of a longword that will receive context information. Before the call, you must set the value of this longword to zero. The routine then stores a nonzero context value in the longword. This value can be passed to other operations. The longword must not be modified by the caller. A call to the NOTES$NOTEFILE_END routine releases the context and resets the longword to zero. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_ ?? Invalid entry name Error NOTES$_FAILGETVM Failure to get Error virtual memory NOTES$_MISREQITM Required input item Error missing NOTES$_WRONGCTX Context argument Error with nonzero value MORE_TBS_____________________________________________________ 74 NOTES$NOTEFILE_BEGIN Example 1: ________________________________________________________________ IF NOT notebook_open_flag THEN inp_index = inp_initial CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len) CALL ITEM_LIST (inp_index,notes$k_notefile_file_name,notebook_name,default_len) CALL ITEM_LIST (inp_index,notes$k_notefile_default_name,notebook_default & ,default_len) ret_status = NOTES$NOTEFILE_BEGIN (notebook_l_ctx,inp_list,no_list) GOTO 2005 UNLESS (ret_status AND ss$_normal) ! Prepare for getting notebook entry info CALL ITEM_LIST (minus_1,notes$k_notefile_context,notebook_ctx,default_len) ret_status = NOTES$ENTRY_BEGIN (entry_l_ctx,one_list,no_list) notebook_open_flag = minus_1 END IF ________________________________________________________________ This excerpt from a program in BASIC shows a call to NOTES$NOTEFILE_BEGIN in preparation for getting information on a Notebook entry. 75 NOTES$NOTEFILE_END ________________________________________________________________ NOTES$NOTEFILE_END Deletes or deallocates notefile context. ____________________________________________________________ Format NOTES$NOTEFILE_END (context[,input-item-list] [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that that contains the notefile context returned by NOTES$NOTEFILE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of a single, optional item: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 76 NOTES$NOTEFILE_END An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_OBJECT_SPEC NOTES$K_NOTEFILE_CREATE_TIME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FORMAT NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_REPLY_ONLY NOTES$K_NOTEFILE_RESTRICTED NOTES$K_NOTEFILE_RESULT_SPEC NOTES$K_NOTEFILE_TITLE NOTES$K_NOTEFILE_USER_AREA NOTES$K_NOTEFILE_WRITELOCK NOTES$K_SEEN_MAP NOTES$K_SERVER_MAX_ITEM NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MODERATE ____________________________________________________________ Description The NOTES$NOTEFILE_END routine deletes or deallocates a note- file context. This routine is used to terminate access to a notefile. All dynamic memory allocated by the NOTES$ routines when accessing the notefile (including CLASS, ENTRY, KEYWORD, PROFILE, and USER access) is deallocated. The context long- word is zeroed. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? 77 NOTES$NOTEFILE_END _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 78 NOTES$NOTEFILE_GET_INFO ________________________________________________________________ NOTES$NOTEFILE_GET_INFO Obtains information about a notefile. ____________________________________________________________ Format NOTES$NOTEFILE_GET_INFO (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the notefile context returned by NOTES$NOTEFILE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of a single, optional item code: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 79 NOTES$NOTEFILE_GET_INFO An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_OBJECT_SPEC NOTES$K_NOTEFILE_CREATE_TIME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FORMAT NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_REPLY_ONLY NOTES$K_NOTEFILE_RESTRICTED NOTES$K_NOTEFILE_RESULT_SPEC NOTES$K_NOTEFILE_TITLE NOTES$K_NOTEFILE_USER_AREA NOTES$K_NOTEFILE_WRITELOCK NOTES$K_SEEN_MAP NOTES$K_SERVER_MAX_ITEM NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MODERATE ____________________________________________________________ Description The NOTES$NOTEFILE_GET_INFO routine obtains information about a notefile. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? 80 NOTES$NOTEFILE_GET_INFO _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 81 NOTES$NOTEFILE_LIST ________________________________________________________________ NOTES$NOTEFILE_LIST Collects information on a selected group of notefiles. ____________________________________________________________ Format NOTES$NOTEFILE_LIST (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that that contains the notefile context returned by NOTES$NOTEFILE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of a single, optional item code: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 82 NOTES$NOTEFILE_LIST An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_OBJECT_SPEC NOTES$K_NOTEFILE_CREATE_TIME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FORMAT NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_REPLY_ONLY NOTES$K_NOTEFILE_RESTRICTED NOTES$K_NOTEFILE_RESULT_SPEC NOTES$K_NOTEFILE_TITLE NOTES$K_NOTEFILE_USER_AREA NOTES$K_NOTEFILE_WRITELOCK NOTES$K_SEEN_MAP NOTES$K_SERVER_MAX_ITEM NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MODERATE ____________________________________________________________ Description The NOTES$NOTEFILE_LIST routine collects information on a selected group of notefiles. The NOTES$NOTEFILE_LIST_ BEGIN routine must be called before the NOTES$NOTEFILE_LIST routine. You specify the filenames in the NOTES$NOTEFILE_ LIST_BEGIN routine, and collect the information on successive calls to NOTES$NOTEFILE_LIST until the status NOTES$_NMF is returned. Any output item codes specified in the call to the NOTES$NOTEFILE_ LIST routine must also be specified in the call to the NOTES$NOTEFILE_LIST_BEGIN routine for correct operation on remote conference directories. 83 NOTES$NOTEFILE_LIST _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 84 NOTES$NOTEFILE_LIST_BEGIN ________________________________________________________________ NOTES$NOTEFILE_LIST_BEGIN Initiates the process of collecting notefile names for a directory listing of conferences. ____________________________________________________________ Format NOTES$NOTEFILE_LIST_BEGIN (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the notefile context returned by NOTES$NOTEFILE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_NOTEFILE_FILE_NAME is required. All the others are optional. NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_DEFAULT_NAME NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_RELATED_NAME 85 NOTES$NOTEFILE_LIST_BEGIN output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_OBJECT_SPEC NOTES$K_NOTEFILE_CREATE_TIME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FORMAT NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_REPLY_ONLY NOTES$K_NOTEFILE_RESTRICTED NOTES$K_NOTEFILE_RESULT_SPEC NOTES$K_NOTEFILE_TITLE NOTES$K_NOTEFILE_USER_AREA NOTES$K_NOTEFILE_WRITELOCK NOTES$K_SEEN_MAP NOTES$K_SERVER_MAX_ITEM NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MODERATE ____________________________________________________________ Description The NOTES$NOTEFILE_LIST_BEGIN routine initiates the process of collecting notefile names, for a directory listing of conferences. You call the NOTES$NOTEFILE_LIST_BEGIN routine with the file specification, default file specification, and related file specification. It performs the initialization. After a successful call to NOTES$NOTEFILE_LIST_BEGIN you call NOTES$NOTEFILE_LIST until the status NOTES$_NMF is returned. 86 NOTES$NOTEFILE_LIST_BEGIN For server performance considerations, in the output item list for the NOTES$NOTEFILE_LIST_BEGIN routine you must specify all the items that you specify in the call to NOTES$NOTEFILE_LIST. However, the items are not returned on the call to the NOTES$NOTEFILE_LIST_BEGIN routine. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 87 NOTES$NOTEFILE_MODIFY ________________________________________________________________ NOTES$NOTEFILE_MODIFY Updates or changes notefile-level information, such as the title, notice of the day, and moderator. ____________________________________________________________ Format NOTES$NOTEFILE_MODIFY (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the notefile context returned by NOTES$NOTEFILE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_NOSIGNAL NOTES$K_NOTE_BEFORE_TIME NOTES$K_NOTE_MARK_SEEN NOTES$K_NOTE_SINCE_TIME NOTES$K_NOTEFILE_MODERATE NOTES$K_NOTEFILE_MODERATOR 88 NOTES$NOTEFILE_MODIFY NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_REPLY_ONLY NOTES$K_NOTEFILE_RESTRICTED NOTES$K_NOTEFILE_TITLE NOTES$K_NOTEFILE_USER_AREA NOTES$K_NOTEFILE_WRITELOCK NOTES$K_SEEN_MAP NOTES$K_USER_CREATE_KEYWORD output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_ENTRY_OBJECT_SPEC NOTES$K_NOTEFILE_CREATE_TIME NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FORMAT NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_MODERATOR NOTES$K_NOTEFILE_NOTICE NOTES$K_NOTEFILE_NUMNOTES NOTES$K_NOTEFILE_REPLY_ONLY NOTES$K_NOTEFILE_RESTRICTED NOTES$K_NOTEFILE_RESULT_SPEC NOTES$K_NOTEFILE_TITLE NOTES$K_NOTEFILE_USER_AREA NOTES$K_NOTEFILE_WRITELOCK NOTES$K_SEEN_MAP NOTES$K_SERVER_MAX_ITEM NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MODERATE 89 NOTES$NOTEFILE_MODIFY ____________________________________________________________ Description The NOTES$NOTEFILE_MODIFY routine updates or changes notefile-level information, such as the title, notice of the day, and moderator. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 90 NOTES$NOTE_ADD ________________________________________________________________ NOTES$NOTE_ADD Adds a new note to a notefile. ____________________________________________________________ Format NOTES$NOTE_ADD (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$NOTE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_NOSIGNAL NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_MARK_SEEN NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE 91 NOTES$NOTE_ADD NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_FILE_NAME output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP 92 NOTES$NOTE_ADD ____________________________________________________________ Description The NOTES$NOTE_ADD routine adds a new note (either topic or reply) to a notefile. Calls to the NOTES$NOTE_ADD_TEXT routine can then be used to write the text of the note. The BLINK (back-link) item codes, if present, indicate the note to which the reply is being written. If the BLINK item codes are not specified, the note is a topic rather than a reply. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 93 NOTES$NOTE_ADD_TEXT ________________________________________________________________ NOTES$NOTE_ADD_TEXT Adds a line of text to the note being written. After all the text has been added by calls to this routine, it should be called again, with the NOTES$K_TEXT_END item code specified. ____________________________________________________________ Format NOTES$NOTE_ADD_TEXT (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$NOTE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_CONTINUE NOTES$K_NOSIGNAL NOTES$K_TEXT_END NOTES$K_TEXT_STRING 94 NOTES$NOTE_ADD_TEXT NOTES$K_TEXT_TYPE output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP NOTES$K_TEXT_STRING NOTES$K_TEXT_TYPE 95 NOTES$NOTE_ADD_TEXT ____________________________________________________________ Description The NOTES$NOTE_ADD_TEXT routine adds a line of text to the note being written. After all the text has been added by calls to this routine, it should be called again, with the NOTES$K_TEXT_END item code specified. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 96 NOTES$NOTE_BEGIN ________________________________________________________________ NOTES$NOTE_BEGIN Initiates note-level access to a currently open notefile. ____________________________________________________________ Format NOTES$NOTE_BEGIN (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that will receive note context information. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_NOTEFILE_CONTEXT is required. The other is optional. NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_CONTEXT 97 NOTES$NOTE_BEGIN output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$NOTE_BEGIN routine initiates note-level access to a currently open notefile. It creates and initializes the note context for later calls to NOTES$NOTE_xxx routines. 98 NOTES$NOTE_BEGIN The NOTES_NOTE_BEGIN routine must be called before any of the other NOTES$NOTE_xxx routines and after the NOTES$NOTEFILE_ BEGIN routine has been called to open the notefile. It is possible to have more than one NOTE_BEGIN/END routine active in the same NOTEFILE_BEGIN/END block. Note that this routine and all other keyword routines are used for markers as well as keywords. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 99 NOTES$NOTE_DELETE ________________________________________________________________ NOTES$NOTE_DELETE Deletes the specified topic or reply. ____________________________________________________________ Format NOTES$NOTE_DELETE (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$NOTE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_NOSIGNAL NOTES$K_NOTE_ID NOTES$K_NOTE_UID 100 NOTES$NOTE_DELETE output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP 101 NOTES$NOTE_DELETE ____________________________________________________________ Description The NOTES$NOTE_DELETE routine deletes the specified topic or reply. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 102 NOTES$NOTE_END ________________________________________________________________ NOTES$NOTE_END Deletes or deallocates the note context. ____________________________________________________________ Format NOTES$NOTE_END (context[,input-item-list] [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$NOTE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of the following optional item code: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 103 NOTES$NOTE_END An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$NOTE_END routine deletes or deallocates the note context. The context longword is zeroed. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? 104 NOTES$NOTE_END _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 105 NOTES$NOTE_GET ________________________________________________________________ NOTES$NOTE_GET Retrieves information about a note or sequence of notes. ____________________________________________________________ Format NOTES$NOTE_GET (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$NOTE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_CONTINUE NOTES$K_KEYWORD_NAME NOTES$K_NOSIGNAL NOTES$K_NOTE_ALL_RESPONSES NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BACK_NOTE NOTES$K_NOTE_BACK_RESPONSE 106 NOTES$NOTE_GET NOTES$K_NOTE_BEFORE_TIME NOTES$K_NOTE_HINT_GET_KEYWORD NOTES$K_NOTE_HINT_GET_TEXT NOTES$K_NOTE_ID NOTES$K_NOTE_MARK_SEEN NOTES$K_NOTE_NEXT_NOTE NOTES$K_NOTE_NEXT_RESPONSE NOTES$K_NOTE_NEXT_UNSEEN NOTES$K_NOTE_SEARCH_STRING NOTES$K_NOTE_SINCE_TIME NOTES$K_NOTE_TITLE NOTES$K_NOTE_UID NOTES$K_NOTE_UNSEEN NOTES$K_NOTE_USER_AREA output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK 107 NOTES$NOTE_GET NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP ____________________________________________________________ Description The NOTES$NOTE_GET routine retrieves information about a note or sequence of notes. It must be called before any calls to the NOTES$NOTE_GET_KEYWORD or the NOTES$NOTE_GET_TEXT routines. The item codes NOTES$K_NOTE_BACK_NOTE, NOTES$K_NOTE_NEXT_ NOTE, NOTES$K_NOTE_BACK_RESPONSE, and NOTES$K_NOTE_NEXT_ RESPONSE conflict with each other and with all other item codes. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 108 NOTES$NOTE_GET _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 109 NOTES$NOTE_GET_KEYWORD ________________________________________________________________ NOTES$NOTE_GET_KEYWORD Gets the keywords associated with the current note (the note specified by the last call to the NOTES$NOTE_GET routine). Each call returns one keyword. ____________________________________________________________ Format NOTES$NOTE_GET_KEYWORD (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$NOTE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. Both are optional. NOTES$K_CONTINUE NOTES$K_NOSIGNAL 110 NOTES$NOTE_GET_KEYWORD output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_KEYWORD_NAME NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP 111 NOTES$NOTE_GET_KEYWORD ____________________________________________________________ Description The NOTES$NOTE_GET KEYWORD routine gets the keywords associ- ated with the current note (the note specified by the last call to the NOTES$NOTE_GET routine). Each call returns one keyword. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 112 NOTES$NOTE_GET_TEXT ________________________________________________________________ NOTES$NOTE_GET_TEXT Gets the text records associated with the current note (the note specified by the last call to the NOTES$NOTE_GET rou- tine). Each call returns one text record. ____________________________________________________________ Format NOTES$NOTE_GET_TEXT (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$NOTE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. Both are optional. NOTES$K_CONTINUE NOTES$K_NOSIGNAL 113 NOTES$NOTE_GET_TEXT output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TEXT_STRING NOTES$K_NOTE_TEXT_TYPE NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP 114 NOTES$NOTE_GET_TEXT ____________________________________________________________ Description The NOTES$NOTE_GET_TEXT routine gets the text records asso- ciated with the current note (the note specified by the last call to the NOTES$NOTE_GET routine). Each call returns one text record. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 115 NOTES$NOTE_MODIFY ________________________________________________________________ NOTES$NOTE_MODIFY Modifies the attributes of a note. ____________________________________________________________ Format NOTES$NOTE_MODIFY (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$NOTE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_NOSIGNAL NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NEW_ID NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_UID 116 NOTES$NOTE_MODIFY NOTES$K_NOTE_UNSEEN NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_FILE_NAME output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_NOTE_AUTHOR NOTES$K_NOTE_BLINK_ID NOTES$K_NOTE_BLINK_TITLE NOTES$K_NOTE_BLINK_UID NOTES$K_NOTE_CAN_REPLY NOTES$K_NOTE_CREATE_TIME NOTES$K_NOTE_HIDDEN NOTES$K_NOTE_ID NOTES$K_NOTE_NUMRECORDS NOTES$K_NOTE_NUMRESPONSES NOTES$K_NOTE_PEN_NAME NOTES$K_NOTE_TITLE NOTES$K_NOTE_TYPE NOTES$K_NOTE_UID NOTES$K_NOTE_USER_AREA NOTES$K_NOTE_WRITELOCK NOTES$K_NOTEFILE_ENTRYTOTAL NOTES$K_NOTEFILE_FILE_NAME NOTES$K_NOTEFILE_HIGH_UID NOTES$K_NOTEFILE_LASTREV NOTES$K_NOTEFILE_NUMNOTES NOTES$K_SEEN_MAP 117 NOTES$NOTE_MODIFY ____________________________________________________________ Description The NOTES$NOTE_MODIFY routine modifies the attributes of a note. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 118 NOTES$PROFILE_BEGIN ________________________________________________________________ NOTES$PROFILE_BEGIN Creates and initializes the profile context for later calls to NOTES$PROFILE_xxx routines. ____________________________________________________________ Format NOTES$PROFILE_BEGIN (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that will receive profile context information. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_NOTEFILE_CONTEXT is required. The other is optional. NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_CONTEXT 119 NOTES$PROFILE_BEGIN output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_PROFILE_AUTO_DIR NOTES$K_PROFILE_AUTO_UNSEEN NOTES$K_PROFILE_CLASS_NAME NOTES$K_PROFILE_EDITOR NOTES$K_PROFILE_EDITOR_SPAWN NOTES$K_PROFILE_PEN_NAME NOTES$K_PROFILE_PRINT ____________________________________________________________ Description The NOTES$PROFILE_BEGIN routine creates and initializes the profile context for later calls to NOTES$PROFILE_xxx routines. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 120 NOTES$PROFILE_BEGIN _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 121 NOTES$PROFILE_END ________________________________________________________________ NOTES$PROFILE_END Deletes or deallocates the profile context. ____________________________________________________________ Format NOTES$PROFILE_END (context[,input-item-list] [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the profile context returned by NOTES$PROFILE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of the following, optional item code: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 122 NOTES$PROFILE_END An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_PROFILE_AUTO_DIR NOTES$K_PROFILE_AUTO_UNSEEN NOTES$K_PROFILE_CLASS_NAME NOTES$K_PROFILE_EDITOR NOTES$K_PROFILE_EDITOR_SPAWN NOTES$K_PROFILE_PEN_NAME NOTES$K_PROFILE_PRINT ____________________________________________________________ Description The NOTES$PROFILE_END routine deletes or deallocates the profile context. The context longword is zeroed. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 123 NOTES$PROFILE_END _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 124 NOTES$PROFILE_GET ________________________________________________________________ NOTES$PROFILE_GET Gets the current settings of the personal profile informa- tion. ____________________________________________________________ Format NOTES$PROFILE_GET (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the profile context returned by NOTES$PROFILE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. Both are optional. NOTES$K_NOSIGNAL NOTES$K_PROFILE_TEMPORARY 125 NOTES$PROFILE_GET output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_PROFILE_AUTO_DIR NOTES$K_PROFILE_AUTO_UNSEEN NOTES$K_PROFILE_CLASS_NAME NOTES$K_PROFILE_EDITOR NOTES$K_PROFILE_EDITOR_SPAWN NOTES$K_PROFILE_PEN_NAME NOTES$K_PROFILE_PRINT ____________________________________________________________ Description The NOTES$PROFILE_GET routine gets the current settings of the personal profile information. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 126 NOTES$PROFILE_GET _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 127 NOTES$PROFILE_MODIFY ________________________________________________________________ NOTES$PROFILE_MODIFY Sets or changes personal profile information. ____________________________________________________________ Format NOTES$PROFILE_MODIFY (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the profile context returned by NOTES$PROFILE_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. All are optional. NOTES$K_NOSIGNAL NOTES$K_PROFILE_AUTO_DIR NOTES$K_PROFILE_AUTO_UNSEEN NOTES$K_PROFILE_CLASS_NAME NOTES$K_PROFILE_EDITOR NOTES$K_PROFILE_EDITOR_SPAWN NOTES$K_PROFILE_PEN_NAME 128 NOTES$PROFILE_MODIFY NOTES$K_PROFILE_PRINT NOTES$K_PROFILE_TEMPORARY output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_PROFILE_AUTO_DIR NOTES$K_PROFILE_AUTO_UNSEEN NOTES$K_PROFILE_CLASS_NAME NOTES$K_PROFILE_EDITOR NOTES$K_PROFILE_EDITOR_SPAWN NOTES$K_PROFILE_PEN_NAME NOTES$K_PROFILE_PRINT ____________________________________________________________ Description _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 129 NOTES$PROFILE_MODIFY _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 130 NOTES$USER_ADD ________________________________________________________________ NOTES$USER_ADD Verifies that there is no existing user with the specified user name and node names, and creates a member record for the user. ____________________________________________________________ Format NOTES$USER_ADD (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$USER_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_USER_NAME is required. All the others are optional. NOTES$K_NOSIGNAL NOTES$K_USER_ACCESS_LIST NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MAIL_ADDR 131 NOTES$USER_ADD NOTES$K_USER_MODERATE NOTES$K_USER_NAME NOTES$K_USER_NODENAME NOTES$K_USER_WRITE_BYPASS output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_USER_ACCESS_LIST NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MAIL_ADDR NOTES$K_USER_MODERATE NOTES$K_USER_NAME NOTES$K_USER_NODENAME NOTES$K_USER_WRITE_BYPASS ____________________________________________________________ Description The NOTES$USER_ADD routine verifies that there is no existing user with the specified user name and node names, and creates a member record for the user. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? 132 NOTES$USER_ADD _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 133 NOTES$USER_BEGIN ________________________________________________________________ NOTES$USER_BEGIN Creates and initializes the user context for later calls to NOTES$USER_xxx routines. ____________________________________________________________ Format NOTES$USER_BEGIN (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that will receive user context information. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_NOTEFILE_CONTEXT is required. The other is optional. NOTES$K_NOSIGNAL NOTES$K_NOTEFILE_CONTEXT 134 NOTES$USER_BEGIN output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_USER_ACCESS_LIST NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MAIL_ADDR NOTES$K_USER_MODERATE NOTES$K_USER_NAME NOTES$K_USER_NODENAME NOTES$K_USER_WRITE_BYPASS ____________________________________________________________ Description The NOTES$USER_BEGIN routine creates and initializes the user context for later calls to NOTES$USER_xxx routines. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 135 NOTES$USER_BEGIN _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 136 NOTES$USER_DELETE ________________________________________________________________ NOTES$USER_DELETE Verifies that the specified user exists, and deletes the member record for that user. ____________________________________________________________ Format NOTES$USER_DELETE (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$USER_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_USER_NAME is required. All the others are optional. NOTES$K_NOSIGNAL NOTES$K_USER_ACCESS_LIST NOTES$K_USER_NAME NOTES$K_USER_NODENAME 137 NOTES$USER_DELETE output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_USER_ACCESS_LIST NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MAIL_ADDR NOTES$K_USER_MODERATE NOTES$K_USER_NAME NOTES$K_USER_NODENAME NOTES$K_USER_WRITE_BYPASS ____________________________________________________________ Description The NOTES$USER_DELETE routine verifies that the specified user exists, and deletes the member record for that user. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 138 NOTES$USER_DELETE _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 139 NOTES$USER_END ________________________________________________________________ NOTES$USER_END Deletes or deallocates the user context. ____________________________________________________________ Format NOTES$USER_END (context[,input-item-list] [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$USER_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of the following optional item code: NOTES$K_NOSIGNAL output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference 140 NOTES$USER_END An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_USER_ACCESS_LIST NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MAIL_ADDR NOTES$K_USER_MODERATE NOTES$K_USER_NAME NOTES$K_USER_NODENAME NOTES$K_USER_WRITE_BYPASS ____________________________________________________________ Description The NOTES$USER_END routine deletes or deallocates the user context. The context longword is zeroed. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 141 NOTES$USER_END _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 142 NOTES$USER_GET ________________________________________________________________ NOTES$USER_GET Gets information about users. ____________________________________________________________ Format NOTES$USER_GET (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$USER_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_USER_NAME is required. All the others are optional. NOTES$K_CONTINUE NOTES$K_NOSIGNAL NOTES$K_USER_MODERATE NOTES$K_USER_NAME 143 NOTES$USER_GET output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_USER_ACCESS_LIST NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MAIL_ADDR NOTES$K_USER_MODERATE NOTES$K_USER_NAME NOTES$K_USER_NODENAME NOTES$K_USER_WRITE_BYPASS ____________________________________________________________ Description The NOTES$USER_GET routine gets information about users. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? 144 NOTES$USER_GET _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 145 NOTES$USER_MODIFY ________________________________________________________________ NOTES$USER_MODIFY Verifies that the specified user exists, and modifies the member record for that user. ____________________________________________________________ Format NOTES$USER_MODIFY (context,input-item-list [,output-item-list]) ____________________________________________________________ Arguments context VMS Usage: context Type: longword (unsigned) Access: modify Mechanism: by reference The address of a longword that contains the note context returned by NOTES$USER_BEGIN. input-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more item codes from the following list. NOTES$K_USER_NAME is required. All the others are optional. NOTES$K_NOSIGNAL NOTES$K_USER_ACCESS_LIST NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MAIL_ADDR NOTES$K_USER_MODERATE 146 NOTES$USER_MODIFY NOTES$K_USER_NAME NOTES$K_USER_NEW_NAME NOTES$K_USER_NEW_NODENAME NOTES$K_USER_NODENAME NOTES$K_USER_WRITE_BYPASS output-item-list VMS Usage: item_list_3 Type: longword (unsigned) Access: read only Mechanism: by reference An item list consisting of one or more output item codes from the following list. All are optional. NOTES$K_USER_ACCESS_LIST NOTES$K_USER_CREATE_KEYWORD NOTES$K_USER_MAIL_ADDR NOTES$K_USER_MODERATE NOTES$K_USER_NAME NOTES$K_USER_NODENAME NOTES$K_USER_WRITE_BYPASS ____________________________________________________________ Description The NOTES$USER_MODIFY routine verifies that the specified user exists, and modifies the member record for that user. _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? 147 NOTES$USER_MODIFY _____________________________________________________________ Return_Code___________Description___________Status___________ NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_? NOTES$_?_____________________________________________________ 148 Part III Appendixes ________________________________________________________________ Appendix A Item List Format and Contents ________________________________________________________________ Many of the VAX Notes routines accept input parameters by means of item lists rather than coding a multitude of parame- ters. The item list format is identical to that used by many of the VMS system services (for example, $GETJPI or $GETDVI). The items in the list may be specified in any order. Numeric values for the item codes are supplied with the software kit in files named NOTES$ITEMDEF.*; therefore, the numeric values are not defined in this document. The NOTES$ITEMDEF.* files also include values for error codes. ____________________________________________________________ A.1 Various Context Items These items are used to pass the address of a longword con- taining context information. Before calling a NOTES$xxx_BEGIN routine, the value of this longword should be set to zero; the routine will store a nonzero context value here, which can be passed to other operations. The longword must not be modified by the caller. A call to the associated NOTES$xxx_ END routine will release this context, and reset the longword to zero. o NOTES$K_CLASS_CONTEXT - Passes the CLASS context to other operations. o NOTES$K_ENTRY_CONTEXT - Passes the ENTRY context to other operations. o NOTES$K_KEYWORD_CONTEXT - Passes the KEYWORD context to other operations. Item List Format and Contents A-1 o NOTES$K_NOTE_CONTEXT - Passes the NOTE context to other operations. o NOTES$K_NOTEFILE_CONTEXT - Passes the NOTEFILE context to other operations. o NOTES$K_PROFILE_CONTEXT - Passes the PROFILE context to other operations. o NOTES$K_SERVER_CONTEXT - Passes the SERVER context to other operations. o NOTES$K_USER_CONTEXT - Passes the USER context to other operations. ____________________________________________________________ A.2 Item Codes The codes described in Table A-1 are specified as parame- ters to the NOTES$ callable routines. See the files named NOTES$ITEMDEF.*, supplied with the software kit, for the values assigned to these codes. Table A-1: Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_CLASS_HINT_GET_ Indicates that a NOTES$CLASS_ ENTRY GET_ENTRY will be performed next (improves server performance) NOTES$K_CLASS_NAME Class name string (wildcards may be allowed, depending on the context) NOTES$K_CLASS_NEW_NAME New class name string (renames the old class) NOTES$K_CLASS_USER_AREA String of user-programmable data _____________________________________________________________ (continued on next page) A-2 Item List Format and Contents Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_CONTINUE Keeps returning information NOTES$K_DELIF0 Delete class if empty, indicated by 1 NOTES$K_ENTRY_HINT_GET_ Indicates that a NOTES$ENTRY_ CLASS GET_CLASS will be performed next (improves server performance) NOTES$K_ENTRY_HINT_GET_ Indicates that a NOTES$ENTRY_ KEYWORD GET_KEYWORD will be performed next (improves server perfor- mance) ) NOTES$K_ENTRY_LAST_STATUS Longword value of the last update for the entry (update status longword) NOTES$K_ENTRY_NAME Entry name string (wildcards may be allowed, depending on the context) NOTES$K_ENTRY_NEW_NAME New entry name string (renames the old entry) NOTES$K_ENTRY_OBJECT_NAME DNS object name string for the entry _____________________________________________________________ (continued on next page) Item List Format and Contents A-3 Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_ENTRY_OBJECT_SPEC File specification string to which the DNS object name was translated NOTES$K_ENTRY_UNSEEN_EST Longword number of unseen notes NOTES$K_ENTRY_USER_AREA String of user-programmable data NOTES$K_KEYWORD_HINT_GET_ Indicates that a NOTES$KEYWORD_ NOTE GET_NOTE will be performed next (improves server performance) NOTES$K_KEYWORD_NAME Keyword name string (wildcards may be allowed, depending on the context) NOTES$K_KEYWORD_NEW_NAME New keyword name string (renames the old keyword) NOTES$K_KEYWORD_USER_AREA String of user-programmable data NOTES$K_NOSIGNAL Overrides default error sig- nalling NOTES$K_NOTE_ALL_RESPONSES Indicates replies should also be returned NOTES$K_NOTE_AUTHOR Author name string _____________________________________________________________ (continued on next page) A-4 Item List Format and Contents Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_NOTE_BACK_NOTE Selects the previous topic NOTES$K_NOTE_BACK_RESPONSE Selects the previous reply NOTES$K_NOTE_BEFORE_TIME Selects only notes before this quadword date/time NOTES$K_NOTE_BLINK_ID Note identifier string NOTES$K_NOTE_BLINK_TITLE Topic title string NOTES$K_NOTE_BLINK_UID Longword unique note identifier NOTES$K_NOTE_CAN_REPLY Longword indicating with a value of 1 that the caller can reply NOTES$K_NOTE_CREATE_TIME Quadword date/time of note creation NOTES$K_NOTE_HIDDEN Selects or modifies hidden notes. For selection, selects hidden notes = 1, selects unhid- den notes = 0; for modifying a note, hide note = 1, unhide note = 0 NOTES$K_NOTE_HINT_GET_ Value of 1 indicates that a call KEYWORD to NOTES$GET_KEYWORD is next NOTES$K_NOTE_HINT_GET_TEXT Value of 1 indicates that a call to the NOTES$GET_TEXT routine is next NOTES$K_NOTE_ID String of the note identifier or a range of notes _____________________________________________________________ (continued on next page) Item List Format and Contents A-5 Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_NOTE_MARK_SEEN Mark notes as seen, indicated by 1 NOTES$K_NOTE_NEW_ID String specifying the new note- ID to which the range of notes should be moved NOTES$K_NOTE_NEXT_NOTE Selects the next topic NOTES$K_NOTE_NEXT_RESPONSE Select the next reply NOTES$K_NOTE_NEXT_UNSEEN Select the next unseen note NOTES$K_NOTE_NUMRECORDS Longword number of text records in this note NOTES$K_NOTE_NUMRESPONSES Longword response number of last reply NOTES$K_NOTE_PEN_NAME Personal name string NOTES$K_NOTE_SEARCH_STRING Selects only notes containing this search string NOTES$K_NOTE_SINCE_TIME Selects only notes after this quadword date/time NOTES$K_NOTE_TITLE Title string NOTES$K_NOTE_TYPE Longword indicating the type of text in the note NOTES$K_NOTE_UID Longword unique note identifier _____________________________________________________________ (continued on next page) A-6 Item List Format and Contents Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_NOTE_UNSEEN Selects notes; select unseen notes = 1, select seen notes = 0 NOTES$K_NOTE_USER_AREA String of user-programmable data NOTES$K_NOTE_WRITELOCK Modifies locking of notes; writelock note = 1, remove writelock on note = 0 NOTES$K_NOTEFILE_CREATE Creates the specified notefile NOTES$K_NOTEFILE_CREATE_ Quadword date/time of the note- TIME file creation NOTES$K_NOTEFILE_DEFAULT_ Default notefile name string NAME NOTES$K_NOTEFILE_ENTRYTOTAL Total number of topics and replies NOTES$K_NOTEFILE_FILE_NAME Notefile name string NOTES$K_NOTEFILE_FORMAT Longword indicating notefile format NOTES$K_NOTEFILE_HIGH_UID Longword of highest used note UID NOTES$K_NOTEFILE_LASTREV Quadword date/time of the last notefile revision _____________________________________________________________ (continued on next page) Item List Format and Contents A-7 Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_NOTEFILE_MODERATE Changes moderator status for the notefile; attain moderator status = 1, cancel moderator status = 0 NOTES$K_NOTEFILE_MODERATOR Moderator name string NOTES$K_NOTEFILE_NOTICE Notice string NOTES$K_NOTEFILE_NUMNOTES Longword note number of the last topic in the notefile NOTES$K_NOTEFILE_RELATED_ Related name string for the NAME notefile NOTES$K_NOTEFILE_REPLY_ONLY Conference in which only autho- rized users may enter topics, indicated by 1 NOTES$K_NOTEFILE_RESTRICTED Modifies or determines whether user access is restricted; only authorized users may participate = 1, any user may participate = 0 NOTES$K_NOTEFILE_RESULT_ Resultant file name specifica- SPEC tion string of the notefile NOTES$K_NOTEFILE_TITLE Notefile title string NOTES$K_NOTEFILE_USER_AREA String of user-programmable data NOTES$K_NOTEFILE_WRITELOCK Notefile writelocked against new notes, indicated by 1 _____________________________________________________________ (continued on next page) A-8 Item List Format and Contents Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_PROFILE_AUTO_DIR Modifies or determines the automatic directory setting; automatic directory = 1, no automatic directory = 0 NOTES$K_PROFILE_AUTO_UNSEEN Modifies or determines the auto- matic unseen setting; automatic unseen = 1, no automatic unseen = 0 NOTES$K_PROFILE_CLASS_NAME String of default class name to use NOTES$K_PROFILE_EDITOR Editor name string NOTES$K_PROFILE_EDITOR_ Flag to indicate whether the SPAWN editor must be spawned; Spawn editor = 1, callable editor = 0 NOTES$K_PROFILE_PEN_NAME Personal name string NOTES$K_PROFILE_PRINT String of default print quali- fiers to apply; allows the user to define defaults for the PRINT command NOTES$K_PROFILE_TEMPORARY Indicates that the specified profile settings are temporary, and should not be stored _____________________________________________________________ (continued on next page) Item List Format and Contents A-9 Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_SEEN_MAP String indicating which notes have been seen. User programs may not interpret this byte string, except that a null string indicates that no notes have been seen NOTES$K_SERVER_MAX_ITEM Longword value of the high- est item code that the server supports NOTES$K_TEXT_END Indicates the end of the note text for a note being added NOTES$K_TEXT_STRING Text record string in a note NOTES$K_TEXT_TYPE Longword type of the text record NOTES$K_UNIENTRY Unique by entry (for markers) _____________________________________________________________ (continued on next page) A-10 Item List Format and Contents Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_USER_ACCESS_LIST String of node::user-name pairs for this user _____________________________________________________________ (continued on next page) Item List Format and Contents A-11 Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_USER_CREATE_KEYWORD For a conference, modifies or determines whether any user may create keywords: only users with CREATE_KEYWORDS privilege may create keywords = 1 (default), any user may create keywords = 0; for a member, determines whether the member has CREATE_ KEYWORDS privilege: may create keywords = 1, may not create keywords = 0 (default) NOTES$K_USER_MAIL_ADDR User's mailing address string NOTES$K_USER_MODERATE Modifies or determines whether user may moderate the note- file; may moderate = 1, may not moderate = 0 NOTES$K_USER_NAME User name string (wildcards may be allowed, depending on the context) NOTES$K_USER_NEW_NAME New user name string (renames the user) NOTES$K_USER_NEW_NODENAME Changes the node names string _____________________________________________________________ (continued on next page) A-12 Item List Format and Contents Table A-1 (Cont.): Item Codes _____________________________________________________________ Item_Code____________________Description_____________________ NOTES$K_USER_NODENAME Node names string (comma- separated), which, together with the user name, indicates which processes may access this (private) notefile NOTES$K_USER_WRITE_BYPASS User may write to write-locked conference, reply-only confer- _____________________________ence,_and_write-locked_topic____ Item List Format and Contents A-13 Appendix B Sample Program ________________________________________________________________ The BASIC program presented in this appendix extracts unseen notes from the notefile (or notefiles) specified interac- tively by the user, and writes the note headings and text to a VMS text file. Each specified notefile must be an entry in the user's Notebook. The entire notefile is checked for unseen notes; ranges of notes cannot be specified. There are five parts to this program: 1.ITEMDEF.BAS-Definitions used for creating item lists 2.NOTEDEF.BAS-Definitions of callable routine entrypoints 3.NOTES$ITEMDEF.BAS-Definitions of constants for callable routine 4.EXTRACT_NOTE.BAS-Main program to extract unseen notes 5.ITEM_LIST.BAS-Subprogram to enter items into item lists In ITEMDEF.BAS, separate item list formats are set up for an empty item list (no_list), an item list with only one item in it (one_list), an input item list (inp_list), and an output item list (out_list). This is required for specifying input and output item lists for the callable routines. The inp-list and out-list item lists allow a maximum of 15 entries to be passed. The no-list and one-list item lists are for those routines that do not require more than one parameter. The definition file NOTES$ITEMDEF.BAS, which is provided with the software kit, contains the definitions (numeric values) of the item codes. Definition files for other languages are also provided with the software kit; following is the complete list: Sample Program B-1 o NOTES$ITEMDEF.ADA o NOTES$ITEMDEF.BAS o NOTES$ITEMDEF.FOR o NOTES$ITEMDEF.H o NOTES$ITEMDEF.MAR o NOTES$ITEMDEF.PAS o NOTES$ITEMDEF.PLI o NOTES$ITEMDEF.R32 o NOTES$ITEMDEF.SDL Only the item codes used by the EXTRACT_NOTE.BAS program are included in the sample program. The part NOTEDEF.BAS contains definitions for the error codes used in the EXTRACT_NOTE.BAS program. A complete list of error codes and their values is provided in the file NOTES$ITEMDEF.BAS. In the main program EXTRACT_NOTE.BAS, it is important to note the order in which the VAX Notes routines are called. First, the NOTES$NOTEFILE_BEGIN routine is called to open the notefile specified by the entry name supplied by the user (or the first entry name matching the user's input if that input included a wildcard). As long as the notefile remains open, any work can be performed on the data in that notefile. In the program EXTRACT_NOTE.BAS, this work consists only of extracting unseen notes. The NOTES$NOTEFILE_BEGIN routine is called in the segment beginning with line 1104. In the segment beginning with line 1106, the NOTES$NOTE_GET routine is called to make sure there are unseen notes to get. If so, an output file (NOTES.TXT) is opened, and the conference heading information is formatted and written to the output file. A loop is set up within segments beginning with lines 1108 and 1109 to get all the text for all unseen notes in the currently open notefile. The NOTES$NOTE_GET routine returns only the note heading information. In the segment beginning with line 1109, the NOTES$NOTE_GET_TEXT is called repeatedly for each line of text for the note retrieved with NOTES$NOTE_ GET. (Note text is retrieved one record or line at a time.) B-2 Sample Program Once all the text for the note is extracted and written to the output file (NOTE.TXT), the program gets the next unseen note and repeats this process until all unseen notes in the file have been extracted. Finally, the notefile is closed (line 1202), and the program checks to see whether the user specified another notefile. If so, the loop starting at line 1104 is executed again. If not, the program ends. You must create a command procedure for linking as follows: $ LINK yourfile, SYS$INPUT:/OPTION SYS$LIBRARY:NOTES$SHARE/SHARE $ EXIT Example B-1: Sample BASIC Program ________________________________________________________________ -------------------------------------------------------------------------------- ITEMDEF.BAS -------------------------------------------------------------------------------- DECLARE BYTE CONSTANT max_item_index = 14 DECLARE BYTE CONSTANT max_item_entries = (max_item_index+1%)*3% ________________________________________________________________ (continued on next page) Sample Program B-3 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ !------------------------------------------------------------------! ! ! ! Common RECORD descriptor for an item list of 15 items ! ! ! !------------------------------------------------------------------! RECORD ITEM_LIST_DESCRIPTOR GROUP item (max_item_index) VARIANT CASE WORD buffer_length WORD item_code LONG buffer_address LONG return_length_address CASE LONG terminator END VARIANT END GROUP LONG FILL END RECORD !------------------------------------------------------------------! ! ! ! Common RECORD descriptor for a single item list ! ! ! !------------------------------------------------------------------! RECORD ONE_LIST_DESCRIPTOR WORD buffer_length WORD item_code LONG buffer_address LONG return_length_address LONG FILL END RECORD !------------------------------------------------------------------! ! ! ! MAP command for sharing of memory ! ! ! !------------------------------------------------------------------! ________________________________________________________________ (continued on next page) B-4 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ MAP (itemls) LONG no_list, & ONE_LIST_DESCRIPTOR one_list, & ITEM_LIST_DESCRIPTOR inp_list, & ITEM_LIST_DESCRIPTOR out_list ________________________________________________________________ (continued on next page) Sample Program B-5 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ -------------------------------------------------------------------------------- NOTEDEF.BAS -------------------------------------------------------------------------------- %INCLUDE "NOTEITEMS" DECLARE LONG CONSTANT & NOTES$_NO_SUCH_NOTE = 66830642, & NOTES$_NO_MORE_NOTES = 66822176, & NOTES$_NO_MORE_ENTRIES = 66822160, & NOTES$_NO_MORE_TEXT = 66822184 EXTERNAL LONG FUNCTION & NOTES$NOTEFILE_BEGIN, & NOTES$NOTEFILE_END, & & NOTES$ENTRY_BEGIN, & NOTES$ENTRY_GET, & NOTES$ENTRY_END, & & NOTES$NOTE_BEGIN, & NOTES$NOTE_GET, & NOTES$NOTE_GET_TEXT, & NOTES$NOTE_END -------------------------------------------------------------------------------- NOTEITEMS.BAS -------------------------------------------------------------------------------- ________________________________________________________________ (continued on next page) B-6 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ declare long constant NOTES$K_NOSIGNAL = 1 ! Setting this on a BEGIN operation disables signals ! -----------------------------*/ declare long constant NOTES$K_TEXT_STRING = 2 ! -----------------------------*/ declare long constant NOTES$K_NOTE_AUTHOR = 6 declare long constant NOTES$K_NOTE_BLINK_ID = 10 declare long constant NOTES$K_NOTE_CREATE_TIME = 12 declare long constant NOTES$K_NOTE_ID = 14 declare long constant NOTES$K_NOTE_NUMRECORDS = 17 declare long constant NOTES$K_NOTE_NUMRESPONSES = 18 declare long constant NOTES$K_NOTE_PEN_NAME = 19 declare long constant NOTES$K_NOTE_TITLE = 23 declare long constant NOTES$K_NOTE_UNSEEN = 25 ! -----------------------------*/ ________________________________________________________________ (continued on next page) Sample Program B-7 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ declare long constant NOTES$K_NOTEFILE_CONTEXT = 28 ! -----------------------------*/ declare long constant NOTES$K_CONTINUE = 38 ! -----------------------------*/ declare long constant NOTES$K_ENTRY_NAME = 39 ! -----------------------------*/ declare long constant NOTES$K_NOTEFILE_CREATE_TIME = 46 declare long constant NOTES$K_NOTEFILE_DEFAULT_NAME = 47 declare long constant NOTES$K_NOTEFILE_ENTRYTOTAL = 48 declare long constant NOTES$K_NOTEFILE_FILE_NAME = 49 declare long constant NOTES$K_NOTEFILE_LASTREV = 52 declare long constant NOTES$K_NOTEFILE_NOTICE = 55 declare long constant NOTES$K_NOTEFILE_NUMNOTES = 56 declare long constant NOTES$K_NOTEFILE_RESULT_SPEC = 59 declare long constant NOTES$K_NOTEFILE_TITLE = 60 ! -----------------------------*/ declare long constant NOTES$K_SEEN_MAP = 71 ! -----------------------------*/ declare long constant NOTES$K_NOTE_BLINK_TITLE = 79 declare long constant NOTES$K_NOTE_HINT_GET_TEXT = 82 ! -----------------------------*/ -------------------------------------------------------------------------------- EXTRACT_NOTE.BAS -------------------------------------------------------------------------------- 1 ! ! Sample program using the VAX Notes callable routines to ! extract all UNSEEN notes from an ENTRY in your NOTEBOOK. ! OPTION TYPE = EXPLICIT %INCLUDE "ITEMDEF" ! Item list RECORD definitions %INCLUDE "NOTEDEF" ! VAX Notes entry points and constants EXTERNAL LONG CONSTANT SS$_NORMAL EXTERNAL LONG FUNCTION SYS$ASCTIM, SYS$GETMSG MAP (cnstnt) STRING zero$0 = 4, & plus$1 = 4, & minus$1 = 4 ________________________________________________________________ (continued on next page) B-8 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ MAP (cnstnt) LONG zero, ! binary 0% & plus_1, ! binary 1% & minus_1 ! binary -1% MAP (contxt) STRING note_ctx = 4, & entry_ctx = 4, & notefile_ctx = 4, & notebook_ctx = 4 ________________________________________________________________ (continued on next page) Sample Program B-9 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ MAP (contxt) LONG note_l_ctx, & entry_l_ctx, & notefile_l_ctx, & notebook_l_ctx MAP (integr) STRING notefile_entrytotal = 4, & notefile_numnotes = 4, & note_numresponses = 4, & note_numrecords = 4, & note_type = 4 MAP (integr) LONG notefile_l_entrytotal, & notefile_l_numnotes, & note_l_numresponses, & note_l_numrecords, & note_l_type MAP (stryng) STRING notefile_create_time = 8, & notefile_lastrev_time = 8, & note_create_time = 8, & WORD notefile_result_spec_len, & STRING notefile_result_spec = 254, & WORD notefile_title_len, & STRING notefile_title = 80, & WORD notefile_notice_len, & STRING notefile_notice = 80, & WORD notefile_file_name_len, & STRING notefile_file_name = 254, & WORD notefile_seen_map_len, & STRING notefile_seen_map = 2048, & WORD note_author_len, & STRING note_author = 32, & WORD note_pen_name_len, & STRING note_pen_name = 64, & WORD note_title_len, & STRING note_title, = 80, & WORD note_blink_title_len, & STRING note_blink_title = 80, & WORD note_id_len, & STRING note_id = 16, & ________________________________________________________________ (continued on next page) B-10 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ WORD note_blink_id_len, & STRING note_blink_id = 16, & WORD note_text_len, & STRING note_text = 512 ________________________________________________________________ (continued on next page) Sample Program B-11 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ MAP (scrtch) LONG ret_status, junk_status, & WORD msg_text_len, & STRING msg_text = 256 DECLARE BYTE inp_index, out_index DECLARE WORD i, default_len DECLARE LONG notebook_open_flag, output_open_flag DECLARE STRING & last_note_id, & left_part, mid_part, right_part, & entry_name, note_range, & notebook_name, notebook_default, notefile_default DECLARE BYTE CONSTANT & line_len = 80, & inp_initial = 1, & out_initial = 16 DECLARE STRING CONSTANT & notes$notebook = "NOTES$NOTEBOOK", & notes$notebook_default = "SYS$LOGIN:.NOTE", & notes$notefile_default = "NOTES$LIBRARY:.NOTE" DECLARE LONG FUNCTION & fnREPORT_ERROR (LONG) DECLARE STRING FUNCTION & fnCENTER_LINE (STRING), & fnLEFT (STRING,STRING), & fnRIGHT (STRING,STRING), & fnMID (STRING,STRING,STRING), & fnUNQUOTE (STRING), & fnPLURAL (LONG,STRING,STRING,STRING), & fnASCII_DATE (STRING), & fnFORMAT_HEADING (STRING,STRING,STRING) ________________________________________________________________ (continued on next page) B-12 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ 1000 ! Initialize error handler and useful constants ON ERROR GOTO 19000 zero = 0% plus_1 = 1% minus_1 = -plus_1 notebook_name = notes$notebook notebook_default = notes$notebook_default notefile_default = notes$notefile_default note_range = "*.*" default_len = minus_1 1100 ! Main loop to request entry name(s) PRINT "Enter entry name"; LINPUT entry_name entry_name = fnUNQUOTE(entry_name) GOTO 19020 UNLESS LEN(entry_name) 1101 ! First open notebook to find which entry IF NOT notebook_open_flag THEN inp_index = inp_initial CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len) CALL ITEM_LIST (inp_index,notes$k_notefile_file_name,notebook_name,default_len) CALL ITEM_LIST (inp_index,notes$k_notefile_default_name,notebook_default & ,default_len) ret_status = NOTES$NOTEFILE_BEGIN (notebook_l_ctx,inp_list,no_list) GOTO 2005 UNLESS (ret_status AND ss$_normal) ! Prepare for getting notebook entry info CALL ITEM_LIST (minus_1,notes$k_notefile_context,notebook_ctx,default_len) ret_status = NOTES$ENTRY_BEGIN (entry_l_ctx,one_list,no_list) notebook_open_flag = minus_1 END IF ________________________________________________________________ (continued on next page) Sample Program B-13 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ 1103 ! Get notebook entry info inp_index = inp_initial CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len) CALL ITEM_LIST (inp_index,notes$k_entry_name,entry_name,default_len) out_index = out_initial CALL ITEM_LIST (out_index,notes$k_notefile_file_name & ,notefile_file_name,notefile_file_name_len) CALL ITEM_LIST (out_index,notes$k_seen_map,notefile_seen_map,notefile_seen_map_len) ret_status = NOTES$ENTRY_GET (entry_l_ctx,inp_list,out_list) ________________________________________________________________ (continued on next page) B-14 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ 1104 ! Opening entry notefile WHILE (ret_status AND ss$_normal) PRINT "Extracting UNSEEN notes from " & + LEFT$(notefile_file_name,notefile_file_name_len) inp_index = inp_initial CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len) CALL ITEM_LIST (inp_index,notes$k_notefile_default_name,notefile_default,default_len) CALL ITEM_LIST (inp_index,notes$k_notefile_file_name,notefile_file_name & ,notefile_file_name_len) CALL ITEM_LIST (inp_index,notes$k_seen_map,notefile_seen_map,notefile_seen_map_len) out_index = out_initial CALL ITEM_LIST (out_index,notes$k_notefile_create_time,notefile_create_time & ,default_len) CALL ITEM_LIST (out_index,notes$k_notefile_lastrev,notefile_lastrev_time,default_len) CALL ITEM_LIST (out_index,notes$k_notefile_entrytotal,notefile_entrytotal,default_len) CALL ITEM_LIST (out_index,notes$k_notefile_numnotes,notefile_numnotes,default_len) CALL ITEM_LIST (out_index,notes$k_notefile_result_spec,notefile_result_spec & ,notefile_result_spec_len) CALL ITEM_LIST (out_index,notes$k_notefile_title,notefile_title,notefile_title_len) CALL ITEM_LIST (out_index,notes$k_notefile_notice,notefile_notice,notefile_notice_len) ret_status = NOTES$NOTEFILE_BEGIN (notefile_l_ctx,inp_list,out_list) GOTO 2005 UNLESS (ret_status AND ss$_normal) 1105 ! Prepare for reading notes CALL ITEM_LIST (minus_1,notes$k_notefile_context,notefile_ctx,default_len) ret_status = NOTES$NOTE_BEGIN (note_l_ctx,one_list,no_list) GOTO 1202 UNLESS (ret_status AND ss$_normal) 1106 ! Now we can start getting notes inp_index = inp_initial CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len) CALL ITEM_LIST (inp_index,notes$k_note_id,note_range,default_len) CALL ITEM_LIST (inp_index,notes$k_note_unseen,plus$1,default_len) CALL ITEM_LIST (inp_index,notes$k_note_hint_get_text,plus$1,default_len) out_index = out_initial CALL ITEM_LIST (out_index,notes$k_note_id,note_id,note_id_len) CALL ITEM_LIST (out_index,notes$k_note_author,note_author,note_author_len) CALL ITEM_LIST (out_index,notes$k_note_pen_name,note_pen_name,note_pen_name_len) CALL ITEM_LIST (out_index,notes$k_note_title,note_title,note_title_len) CALL ITEM_LIST (out_index,notes$k_note_create_time,note_create_time,default_len) ________________________________________________________________ (continued on next page) Sample Program B-15 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ CALL ITEM_LIST (out_index,notes$k_note_numresponses,note_numresponses,default_len) CALL ITEM_LIST (out_index,notes$k_note_numrecords,note_numrecords,default_len) CALL ITEM_LIST (out_index,notes$k_note_blink_id,note_blink_id,note_blink_id_len) CALL ITEM_LIST (out_index,notes$k_note_blink_title,note_blink_title & ,note_blink_title_len) ret_status = NOTES$NOTE_GET (note_l_ctx,inp_list,out_list) GOTO 1201 if (ret_status = notes$_no_such_note) last_note_id = LEFT$(note_id,note_id_len) ________________________________________________________________ (continued on next page) B-16 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ 1107 ! Open output file for extracts (if not already opened) IF NOT output_open_flag THEN OPEN "NOTE.TXT" FOR OUTPUT AS FILE #3% & ,SEQUENTIAL VARIABLE & ,ALLOW NONE & ,ACCESS SCRATCH & ,RECORDSIZE 512% & ,DEFAULTNAME "SYS$LOGIN:NOTE.TXT" output_open_flag = minus_1 ELSE PRINT #3%, FF END IF ! format notefile header PRINT #3%, fnCENTER_LINE("<<< " & + LEFT$(notefile_result_spec,notefile_result_spec_len) + " >>>") PRINT #3%, fnCENTER_LINE("-< " + LEFT$(notefile_title,notefile_title_len) + ">-") PRINT #3%, fnFORMAT_HEADING("Created: " + fnASCII_DATE(notefile_create_time) & ,fnPLURAL(notefile_l_numnotes,"topic","s","") & ,"Updated: " + fnASCII_DATE(notefile_lastrev_time)) PRINT #3%, fnCENTER_LINE("-< " & + LEFT$(notefile_notice,notefile_notice_len) + " >-") & IF (notefile_notice_len) ________________________________________________________________ (continued on next page) Sample Program B-17 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ 1108 ! Continue reading notes until no more WHILE (ret_status <> notes$_no_more_notes) IF (fnLEFT(last_note_id,".") <> fnLEFT(note_id,".")) THEN PRINT #3%, FF ELSE PRINT #3% END IF last_note_id = LEFT$(note_id,note_id_len) ! Format note header PRINT #3%, STRING$(line_len,ASCII("=")) IF (POS(last_note_id,".0",1%) = zero) THEN right_part = fnRIGHT(last_note_id,".") + " of " & + NUM1$(note_l_numresponses) mid_part = LEFT$(note_blink_title,note_blink_title_len) ELSE mid_part = LEFT$(note_title,note_title_len) note_title_len = zero IF (note_l_numresponses = zero) THEN right_part = "No replies" ELSE right_part = fnPLURAL(note_l_numresponses,"repl","ies","y") END IF END IF PRINT #3%, fnFORMAT_HEADING("Note "+last_note_id,mid_part,right_part) left_part = LEFT$(note_author,note_author_len) left_part = left_part + ' "' + LEFT$(note_pen_name,note_pen_name_len) + '"' & IF (note_pen_name_len) PRINT #3%, fnFORMAT_HEADING(left_part,SP & ,fnPLURAL(note_l_numrecords,"line","s","") & + " " + fnASCII_DATE(note_create_time)) ________________________________________________________________ (continued on next page) B-18 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ PRINT #3%, STRING$(line_len,ASCII("-")) PRINT #3%, fnCENTER_LINE("-< " + LEFT$(note_title,note_title_len) + ">-") & IF (note_title_len) PRINT #3% inp_index = inp_initial CALL ITEM_LIST (inp_index,notes$k_continue,plus$1,default_len) CALL ITEM_LIST (zero,notes$k_text_string,note_text,note_text_len) ret_status = NOTES$NOTE_GET_TEXT (note_l_ctx,inp_list,one_list) 1109 ! Continue reading the text of the note until no more WHILE (ret_status <> notes$_no_more_text) PRINT #3%, LEFT$(note_text,note_text_len) ret_status = NOTES$NOTE_GET_TEXT (note_l_ctx,inp_list,one_list) NEXT ret_status = NOTES$NOTE_GET (note_l_ctx,inp_list,out_list) NEXT 1201 ! Finish with note context junk_status = NOTES$NOTE_END (note_l_ctx,no_list,no_list) 1202 ! Close the notefile junk_status = NOTES$NOTEFILE_END (notefile_l_ctx,no_list,no_list) 1203 ! Try for another wildcard entry junk_status = fnREPORT_ERROR(notes$_no_more_notes) CALL ITEM_LIST (minus_1,notes$k_continue,plus$1,default_len) out_index = out_initial CALL ITEM_LIST (out_index,notes$k_notefile_file_name & ,notefile_file_name,notefile_file_name_len) CALL ITEM_LIST (out_index,notes$k_seen_map,notefile_seen_map,notefile_seen_map_len) ret_status = NOTES$ENTRY_GET (entry_l_ctx,one_list,out_list) NEXT 2005 ! Output any unexpected error junk_status = fnREPORT_ERROR(notes$_no_more_entries) GOTO 1100 ________________________________________________________________ (continued on next page) Sample Program B-19 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ 15000 ! User defined functions DEF STRING fnCENTER_LINE (STRING x) fnCENTER_LINE = SPACE$((line_len-LEN(x)+1%)/2%) + x END DEF DEF STRING fnLEFT(STRING x, STRING y) fnLEFT = LEFT$(x,POS(x,y,1%)-1%) END DEF DEF STRING fnRIGHT(STRING x, STRING y) fnRIGHT = RIGHT$(x,POS(y+x,y,LEN(y)+1%)) END DEF DEF STRING fnMID (STRING x, STRING y, STRING z) fnMID = fnLEFT(fnRIGHT(x,y)+z,z) END DEF DEF STRING fnUNQUOTE (STRING x) x = EDIT$(x,4%+32%+8%+16%+128%+256%) IF (ASCII(x) = ASCII('"')) OR (ASCII(x) = ASCII("'")) THEN x = MID$(x,2%,LEN(x)-2%) IF (ASCII(x)=ASCII(MID$(x,LEN(x),1%))) END IF fnUNQUOTE = x END DEF DEF STRING fnPLURAL(LONG n, STRING x, STRING y, STRING z) y = z IF (n = 1%) ! singular fnPLURAL = NUM1$(n) + SP + x + y END DEF DEF STRING fnASCII_DATE(STRING x) DECLARE STRING time_string time_string = SPACE$(24%) junk_status = SYS$ASCTIM(,time_string,x BY REF,) fnASCII_DATE = LEFT$(time_string,17%) END DEF DEF STRING fnFORMAT_HEADING(STRING x, STRING y, STRING z) y = fnCENTER_LINE(y) x = x + MID$(y,LEN(x)+1%,LEN(y)) fnFORMAT_HEADING = x + SPACE$(line_len-LEN(x)-LEN(z)) + z END DEF ________________________________________________________________ (continued on next page) B-20 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ DEF LONG fnREPORT_ERROR (LONG e) IF (ret_status <> e) THEN junk_status = SYS$GETMSG(ret_status BY VALUE,msg_text_len,msg_text,15% BY VALUE,) PRINT LEFT$(msg_text,msg_text_len) IF (junk_status AND ss$_normal) END IF END DEF ________________________________________________________________ (continued on next page) Sample Program B-21 Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ 19000 ! Error recovery RESUME 19010 19010 PRINT ERR;ERL;'"' + ERT$(ERR) + '"' UNLESS (ERR = 11%) 19020 ! Finish with entry context junk_status = NOTES$ENTRY_END (entry_l_ctx,no_list,no_list) 19030 ! Close notebook junk_status = NOTES$NOTEFILE_END (notebook_l_ctx,no_list,no_list) 19040 ! Close output file CLOSE #3% 32767 END -------------------------------------------------------------------------------- ITEM_LIST.BAS -------------------------------------------------------------------------------- 1 SUB ITEM_LIST (BYTE indx, WORD code, STRING entry, WORD rlen) OPTION TYPE = EXPLICIT %INCLUDE "ITEMDEF" ! Item list RECORD definitions DECLARE BYTE lcl_indx DECLARE WORD buff_len DECLARE LONG buff_adr, rlen_loc, ret_status EXTERNAL LONG FUNCTION STR$ANALYZE_SDESC ret_status = STR$ANALYZE_SDESC (entry,buff_len,buff_adr) rlen_loc = LOC(rlen) IF (rlen <> -1%) ! -1 = don't care SELECT indx CASE -1% TO 0% ! -1 = input, 0 = output/input IF indx THEN rlen_loc = 0% buff_len = rlen IF (rlen < buff_len) IF (rlen>= 0%) ELSE rlen = 0% IF rlen_loc END IF one_list::item_code = code one_list::buffer_length = buff_len one_list::buffer_address = buff_adr one_list::return_length_address = rlen_loc ________________________________________________________________ (continued on next page) B-22 Sample Program Example B-1 (Cont.): Sample BASIC Program ________________________________________________________________ CASE 1% TO 15% ! input item list buff_len = rlen IF (rlen < buff_len) IF (rlen>= 0%) lcl_indx = indx - 1% inp_list::item(lcl_indx)::item_code = code inp_list::item(lcl_indx)::buffer_length = buff_len inp_list::item(lcl_indx)::buffer_address = buff_adr inp_list::item(lcl_indx)::return_length_address = 0% inp_list::item(lcl_indx+1%)::terminator = 0% & IF (lcl_indx < max_item_index) indx = indx + 1% CASE 16% TO 30% ! Output item list rlen = 0% IF rlen_loc lcl_indx = indx - 16% out_list::item(lcl_indx)::item_code = code out_list::item(lcl_indx)::buffer_length = buff_len out_list::item(lcl_indx)::buffer_address = buff_adr out_list::item(lcl_indx)::return_length_address = rlen_loc out_list::item(lcl_indx+1%)::terminator = 0% & IF (lcl_indx < max_item_index) indx = indx + 1% END SELECT 32767 END SUB ________________________________________________________________ Sample Program B-23 Appendix C Messages ________________________________________________________________ (TBS) Messages C-1 Index ________________________________________________________________ C___________________________ Entry routines (Cont.) Callable routines NOTES$ENTRY_GET_KEYWORD, calling sequence, 1-9 42 continuable operations, NOTES$ENTRY_MODIFY, 45 1-11 NOTES$ENTRY_UPDATE, 48 description, 1-8 Error reporting, 1-10 diagrams, 1-11 error reporting, 1-10 H___________________________ high-level interface, 1-1 High-level interface, 1-1 Calling sequence, 1-9 Class routines I NOTES$CLASS_ADD, 3 ____________________________ NOTES$CLASS_BEGIN, 6 Item codes, A-2 NOTES$CLASS_DELETE, 9 Item lists, 1-9 NOTES$CLASS_END, 12 NOTES$CLASS_GET, 15 K___________________________ NOTES$CLASS_GET_ENTRY, 18 Keyword routines, 5-1 NOTES$CLASS_MODIFY, 21 NOTES$KEYWORD_ADD, 51 Continuable operations, 1-11 NOTES$KEYWORD_BEGIN, 54 E___________________________ NOTES$KEYWORD_DELETE, 57 Entry routines NOTES$KEYWORD_END, 60 NOTES$ENTRY_ADD, 24 NOTES$KEYWORD_GET, 63 NOTES$ENTRY_BEGIN, 27 NOTES$KEYWORD_GET_NOTE, 66 NOTES$ENTRY_DELETE, 30 NOTES$KEYWORD_MODIFY, 69 NOTES$ENTRY_END, 33 M___________________________ NOTES$ENTRY_GET, 36 Marker routines NOTES$ENTRY_GET_CLASS, 39 Index-1 Marker routines (Cont.) NOTES$ENTRY_MODIFY, 4-7, 45 See Keyword routines NOTES$ENTRY_UPDATE, 4-8, 48 NOTES$KEYWORD_ADD, 5-2, 51 N___________________________ NOTES$KEYWORD_BEGIN, 5-2, 54 Notefile format, 1-3 NOTES$KEYWORD_DELETE, 5-3, Notefile routines 57 NOTES$NOTEFILE_BEGIN, 72 NOTES$KEYWORD_END, 5-2, 60 NOTES$NOTEFILE_END, 76 NOTES$KEYWORD_GET, 5-4, 63 NOTES$NOTEFILE_GET_INFO, NOTES$KEYWORD_GET_NOTE, 5-4, 79 66 NOTES$NOTEFILE_LIST, 82 NOTES$KEYWORD_MODIFY, 5-5, NOTES$NOTEFILE_LIST_BEGIN, 69 85 NOTES$NOTEFILE_BEGIN, 2-3, NOTES$NOTEFILE_MODIFY, 88 72 Note routines examples, 74 NOTES$NOTE_ADD, 91 NOTES$NOTEFILE_END, 2-5, 76 NOTES$NOTE_ADD_TEXT, 94 NOTES$NOTEFILE_GET_INFO, NOTES$NOTE_BEGIN, 97 2-5, 79 NOTES$NOTE_DELETE, 100 NOTES$NOTEFILE_LIST, 2-7, 82 NOTES$NOTE_END, 103 NOTES$NOTEFILE_LIST_BEGIN, NOTES$NOTE_GET, 106 2-6, 85 NOTES$NOTE_GET_KEYWORD, NOTES$NOTEFILE_MODIFY, 2-5, 110 88 NOTES$NOTE_GET_TEXT, 113 NOTES$NOTES procedure NOTES$NOTE_MODIFY, 116 argument attributes, 1-2 NOTES$CLASS_ADD, 3-2, 3 (table) NOTES$CLASS_BEGIN, 3-2, 6 condition values returned NOTES$CLASS_DELETE, 3-3, 9 by, 1-2 NOTES$CLASS_END, 3-2, 12 declaring, 1-2 NOTES$CLASS_GET, 3-3, 15 format, 1-2 NOTES$CLASS_GET_ENTRY, 3-4, NOTES$NOTE_ADD, 6-4, 91 18 NOTES$NOTE_ADD_TEXT, 6-5, 94 NOTES$CLASS_MODIFY, 3-4, 21 NOTES$NOTE_BEGIN, 6-3, 97 NOTES$ENTRY_ADD, 4-4, 24 NOTES$NOTE_DELETE, 6-5, 100 NOTES$ENTRY_BEGIN, 4-3, 27 NOTES$NOTE_END, 6-4, 103 NOTES$ENTRY_DELETE, 4-5, 30 NOTES$NOTE_GET, 6-6, 106 NOTES$ENTRY_END, 4-3, 33 NOTES$NOTE_GET_KEYWORD, 6-8, NOTES$ENTRY_GET, 4-5, 36 110 NOTES$ENTRY_GET_CLASS, 4-6, NOTES$NOTE_GET_TEXT, 6-8, 39 113 NOTES$ENTRY_GET_KEYWORD, NOTES$NOTE_MODIFY, 6-9, 116 4-7, 42 Index-2 NOTES$PROFILE_BEGIN, 7-2, User routines 119 NOTES$USER_ADD, 131 NOTES$PROFILE_END, 7-2, 122 NOTES$USER_BEGIN, 134 NOTES$PROFILE_GET, 7-3, 125 NOTES$USER_DELETE, 137 NOTES$PROFILE_MODIFY, 7-3, NOTES$USER_END, 140 128 NOTES$USER_GET, 143 NOTES$USER_ADD, 8-3, 131 NOTES$USER_MODIFY, 146 NOTES$USER_BEGIN, 8-2, 134 NOTES$USER_DELETE, 8-4, 137 NOTES$USER_END, 8-2, 140 NOTES$USER_GET, 8-4, 143 NOTES$USER_MODIFY, 8-5, 146 P___________________________ Profile routines NOTES$PROFILE_BEGIN, 119 NOTES$PROFILE_END, 122 NOTES$PROFILE_GET, 125 NOTES$PROFILE_MODIFY, 128 Program sample, B-1 R___________________________ Record access, 1-6 class, 1-7 conference header, 1-5 entry, 1-7 keyword, 1-6 member, 1-5 note header, 1-6 note text, 1-6 profile, 1-7 S___________________________ Sample program, B-1 Seen/unseen map, 1-8 U___________________________ UID key layout, 1-4 Unseen notes, extracting, B-1 Index-3