科技报告详细信息
Serial Input Output
Waite, Anthony
SLAC National Accelerator Laboratory
关键词: Storage;    99 General And Miscellaneous//Mathematics, Computing, And Information Science;    Computers;    Accuracy;    Instrumentation,Comp, Hepex;   
DOI  :  10.2172/1024164
RP-ID  :  SLAC-R-971
RP-ID  :  AC02-76SF00515
RP-ID  :  1024164
美国|英语
来源: UNT Digital Library
PDF
【 摘 要 】

Serial Input/Output (SIO) is designed to be a long term storage format of a sophistication somewhere between simple ASCII files and the techniques provided by inter alia Objectivity and Root. The former tend to be low density, information lossy (floating point numbers lose precision) and inflexible. The latter require abstract descriptions of the data with all that that implies in terms of extra complexity. The basic building blocks of SIO are streams, records and blocks. Streams provide the connections between the program and files. The user can define an arbitrary list of streams as required. A given stream must be opened for either reading or writing. SIO does not support read/write streams. If a stream is closed during the execution of a program, it can be reopened in either read or write mode to the same or a different file. Records represent a coherent grouping of data. Records consist of a collection of blocks (see next paragraph). The user can define a variety of records (headers, events, error logs, etc.) and request that any of them be written to any stream. When SIO reads a file, it first decodes the record name and if that record has been defined and unpacking has been requested for it, SIO proceeds to unpack the blocks. Blocks are user provided objects which do the real work of reading/writing the data. The user is responsible for writing the code for these blocks and for identifying these blocks to SIO at run time. To write a collection of blocks, the user must first connect them to a record. The record can then be written to a stream as described above. Note that the same block can be connected to many different records. When SIO reads a record, it scans through the blocks written and calls the corresponding block object (if it has been defined) to decode it. Undefined blocks are skipped. Each of these categories (streams, records and blocks) have some characteristics in common. Every stream, record and block has a name with the condition that each stream, record or block name must be unique in its category (i.e. all streams must have different names, but a stream can have the same name as a record). Each category is an arbitrary length list which is handled by a 'manager' and there is one manager for each category.

【 预 览 】
附件列表
Files Size Format View
1024164.pdf 114KB PDF download
  文献评价指标  
  下载次数:8次 浏览次数:9次