📄 id2.asn
字号:
--$Revision: 1000.3 $--********************************************************************---- Network Id server network access-- Vasilchenko 2003------*********************************************************************---- ID2.asn---- messages for id server network access----*********************************************************************NCBI-ID2Access DEFINITIONS ::=BEGINIMPORTS Seq-id, Seq-loc FROM NCBI-Seqloc ID2S-Chunk-Id, ID2S-Seq-annot-Info FROM NCBI-Seq-split;------------------------------------------------------------------------------ request types------------------------------------------------------------------------------ Requests are sent in packets to allow sending several requests at once-- to avoid network latency, without possiblity of deadlock with server.-- Server will not start sending replies until it will read the whole packet.ID2-Request-Packet ::= SEQUENCE OF ID2-RequestID2-Request ::= SEQUENCE { -- request's serial number, can be used in asynchronic clients -- server should copy it to corresponding field in reply serial-number INTEGER OPTIONAL, params ID2-Params OPTIONAL, request CHOICE { init NULL, get-packages ID2-Request-Get-Packages, get-seq-id ID2-Request-Get-Seq-id, get-blob-id ID2-Request-Get-Blob-Id, get-blob-info ID2-Request-Get-Blob-Info, reget-blob ID2-Request-ReGet-Blob, get-chunks ID2S-Request-Get-Chunks }}-- Request for set of params packages know by server.-- Packages can be used to abbreviate parameters of request.ID2-Request-Get-Packages ::= SEQUENCE { -- return known packages from this list -- if unset - return all known packages names SEQUENCE OF VisibleString OPTIONAL, -- return packages' names only no-contents NULL OPTIONAL}-- Requested sequence ID, can be any string or Seq-id.-- This request will be replied with one or more ID2-Reply-Get-Seq-id.ID2-Request-Get-Seq-id ::= SEQUENCE { seq-id ID2-Seq-id, seq-id-type INTEGER { any (0), -- return any one Seq-id gi (1), -- gi is preferred text (2), -- text Seq-id (accession etc) is preferred general (4), -- general Seq-id is preferred all (127) -- return all Seq-ids of the sequence } DEFAULT any}ID2-Seq-id ::= CHOICE { string VisibleString, seq-id Seq-id}-- Return blob-id with specified seq-id.-- This request with be replied with one or more ID2-Reply-Get-Blob-Id.ID2-Request-Get-Blob-Id ::= SEQUENCE { -- id can be supplied by inner request seq-id ID2-Request-Get-Seq-id, -- return id of blob with sequence sources SEQUENCE OF VisibleString OPTIONAL, -- return Blob-Ids with external features on this Seq-id external NULL OPTIONAL}-- Return some information related to the blob.-- This request with be replied with one or more of:-- ID2-Reply-Get-Blob-Seq-ids - if requested by get-seq-ids field-- ID2-Reply-Get-Blob - if requested by get-data field-- ID2S-Reply-Get-Split-Info-- ID2S-Reply-Get-Chunk-- Last two can be sent in addition to ID2-Reply-Get-Blob-- if the blob is split on the server.-- The replies are made separate to allow server to create replies easier-- from precalculated data. Each of these replies have ID2-Reply-Data field.ID2-Request-Get-Blob-Info ::= SEQUENCE { -- id can be supplied by inner request blob-id CHOICE { -- id can be supplied by inner request blob-id ID2-Blob-Id, -- generate blob-ids from request resolve SEQUENCE { request ID2-Request-Get-Blob-Id, -- server will not send blobs listed here exclude-blobs SEQUENCE OF ID2-Blob-Id OPTIONAL } }, -- return in addition list of Seq-ids also resolving to this blob get-seq-ids NULL OPTIONAL, -- level of details requested immediately -- server will send relevant chunks if blob is splitted get-data ID2-Get-Blob-Details OPTIONAL}-- This is similar to FTP reget command.-- It may be unsupported by server.-- It's defined only for plain blobs (returned in ID2-Reply-Get-Blob)-- as all split data comes in small chunks, so reget doesn't make sense.ID2-Request-ReGet-Blob ::= SEQUENCE { blob-id ID2-Blob-Id, -- blob split version to resend split-version INTEGER, -- start offset of data to get offset INTEGER}-- Request for specific chunks.-- Server will reply with one or more ID2S-Reply-Get-Chunk.ID2S-Request-Get-Chunks ::= SEQUENCE { blob-id ID2-Blob-Id, -- requests for specific chunks of splitted blob chunks SEQUENCE OF ID2S-Chunk-Id}-- The following structure describes what parts of blob are required-- immediately after ID2-Request-Get-Blob-Info in case blob is split.-- Seq-entry level will have probably the same values as Entry-complexities.ID2-Get-Blob-Details ::= SEQUENCE { -- reference location for details - can be only part of sequence location Seq-loc OPTIONAL, -- Seq-entry level for all data except descriptors (sequnence, annots) seq-class-level INTEGER DEFAULT 1, -- Seq-entry level for descriptors descr-level INTEGER DEFAULT 1, -- mask of descriptor types - see Seqdesc for variants' values descr-type-mask INTEGER DEFAULT 0, -- mask of annotation types - see Seq-annot.data for values annot-type-mask INTEGER DEFAULT 0, -- mask of feature types - see SeqFeatData for values feat-type-mask INTEGER DEFAULT 0, -- level of sequence data to load sequence-level ENUMERATED { none (0), -- not required seq-map (1), -- at least seq-map seq-data (2) -- include seq-data } DEFAULT none}------------------------------------------------------------------------------ reply types----------------------------------------------------------------------------ID2-Reply ::= SEQUENCE { -- request's serial number, copy from request serial-number INTEGER OPTIONAL, params ID2-Params OPTIONAL, error SEQUENCE OF ID2-Error OPTIONAL, -- true if this reply is the last one for the request -- false if more replies will follow end-of-reply NULL OPTIONAL, -- reply data moved at the end to make it easier to construct -- the reply data manually from precalculated data reply CHOICE { init NULL, empty NULL, get-package ID2-Reply-Get-Package, get-seq-id ID2-Reply-Get-Seq-id, get-blob-id ID2-Reply-Get-Blob-Id, get-blob-seq-ids ID2-Reply-Get-Blob-Seq-ids, get-blob ID2-Reply-Get-Blob, reget-blob ID2-Reply-ReGet-Blob, get-split-info ID2S-Reply-Get-Split-Info, get-chunk ID2S-Reply-Get-Chunk }, -- additional error flag if the reply is broken in the middle -- of transfer. -- 'last-octet-string', and 'nothing' mean that -- client may use ReGet request to get the remaining data. discard ENUMERATED { reply (0), -- whole reply should be discarded last-octet-string (1), -- all data in embedded ID2-Reply-Data -- except last OCTET STRING is correct nothing (2) -- all data in embedded ID2-Reply-Data -- is correct, but is incomplete } OPTIONAL}ID2-Error ::= SEQUENCE { severity ENUMERATED { -- nothing harmful happened warning (1) , -- command cannot be completed this time failed-command (2) , -- connection cannot be reused, reconnect is required failed-connection (3) , -- server cannot be used for a while failed-server (4) , -- resolve request gives no data -- probably temporarily (see retry-delay field) no-data (5) , -- data exists but client doesn't have permission to get it restricted-data (6) , -- this request type is not supported by server unsupported-command (7) , -- error in request packet, cannot retry invalid-arguments (8) }, -- client may retry the request after specified time in seconds retry-delay INTEGER OPTIONAL, message VisibleString OPTIONAL}-- Reply to ID2-Request-Get-Packages.ID2-Reply-Get-Package ::= SEQUENCE { name VisibleString, params ID2-Params OPTIONAL}-- Reply to ID2-Request-Get-Seq-id.ID2-Reply-Get-Seq-id ::= SEQUENCE { -- copy of request request ID2-Request-Get-Seq-id, -- resolved Seq-id -- not set if error occurred seq-id SEQUENCE OF Seq-id OPTIONAL, -- this Seq-id is the last one in the request end-of-reply NULL OPTIONAL}-- Reply to ID2-Request-Get-Blob-Id.ID2-Reply-Get-Blob-Id ::= SEQUENCE { -- requested Seq-id seq-id Seq-id, -- result blob-id ID2-Blob-Id, -- version of split data -- (0 for non split) split-version INTEGER DEFAULT 0, -- annotation types in this blob -- annotation are unknown if this field is omitted annot-info SEQUENCE OF ID2S-Seq-annot-Info OPTIONAL, -- this Blob-id is the last one in the request end-of-reply NULL OPTIONAL}-- Reply to ID2-Request-Get-Blob-Info.ID2-Reply-Get-Blob-Seq-ids ::= SEQUENCE { blob-id ID2-Blob-Id, -- list of Seq-id resolving to this Blob-Id -- in compressed format ids ID2-Reply-Data OPTIONAL}-- Reply to ID2-Request-Get-Blob-Info.ID2-Reply-Get-Blob ::= SEQUENCE { blob-id ID2-Blob-Id, -- version of split data -- (0 for non split) split-version INTEGER DEFAULT 0, -- whole blob or blob skeleton -- not set if error occurred data ID2-Reply-Data OPTIONAL}-- Reply to ID2-Request-Get-Blob-Info.ID2S-Reply-Get-Split-Info ::= SEQUENCE { blob-id ID2-Blob-Id, -- version of split data split-version INTEGER, -- blob split info -- not set if error occurred data ID2-Reply-Data OPTIONAL}-- Reply to ID2-Request-ReGet-Blob.ID2-Reply-ReGet-Blob ::= SEQUENCE { blob-id ID2-Blob-Id, -- version of data split split-version INTEGER, -- offset of data offset INTEGER, -- blob split info -- not set if error occurred data ID2-Reply-Data OPTIONAL}-- Reply to ID2S-Request-Get-Chunks.ID2S-Reply-Get-Chunk ::= SEQUENCE { blob-id ID2-Blob-Id, -- id of chunk to send chunk-id ID2S-Chunk-Id, -- chunk data -- not set if error occurred data ID2-Reply-Data OPTIONAL}-- Data packing.ID2-Reply-Data ::= SEQUENCE { -- index of negotiated types -- recommended types -- Seq-entry, -- ID2S-Split-Info, -- ID2S-Chunk data-type INTEGER { seq-entry (0), seq-annot (1), id2s-split-info (2), id2s-chunk (3) } DEFAULT seq-entry, -- serialization format (ASN.1 binary, ASN.1 text) -- index of negotiated formats data-format INTEGER { asn-binary (0), asn-text (1), xml (2) } DEFAULT asn-binary, -- post serialization compression (plain, gzip, etc.) -- index of negotiated compressions data-compression INTEGER { none (0), gzip (1), nlmzip (2), bzip2 (3) } DEFAULT none, -- data blob data SEQUENCE OF OCTET STRING}-- Data packed within ID2-Reply-Get-Blob-Seq-ids reply.ID2-Blob-Seq-ids ::= SEQUENCE OF ID2-Blob-Seq-idID2-Blob-Seq-id ::= SEQUENCE { seq-id Seq-id, -- this Seq-id is replaced by sequence in another blob replaced NULL OPTIONAL}------------------------------------------------------------------------------ utility types----------------------------------------------------------------------------ID2-Blob-Id ::= SEQUENCE { sat INTEGER, sub-sat INTEGER { main (0), snp (1), mgc (16) } DEFAULT main, sat-key INTEGER, -- version of blob, optional in some requests version INTEGER OPTIONAL}ID2-Params ::= SEQUENCE OF ID2-ParamID2-Param ::= SEQUENCE { name VisibleString, value SEQUENCE OF VisibleString OPTIONAL, type ENUMERATED { -- no response expected set-value (1), -- this option is for client only -- server replies with its value of param if known -- server omits this param in reply if unknown to server get-value (2), -- no direct response expected, -- but if the param or its value is not supported -- an error is reported and the request is not be completed force-value (3), -- use named package -- value should be unset use-package (4) } DEFAULT set-value}END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -