summaryrefslogtreecommitdiff
path: root/TAO/examples/Content_Server/AMI_Observer/Push_Web_Server.idl
blob: 06d821c9b27baaf7400530b77ea52e302823b836 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// $Id$

module Web_Server
// = TITLE
//   IDL schema definition for Web server interface.
{
  typedef sequence<octet> Chunk_Type;

  interface Callback
    {
      // This operation is called back by the server to pass
      // the next <chunk> of the file starting.  If there are
      // no more chunks, <last_chunk> is true.
      void next_chunk (in Chunk_Type chunk,
                       in boolean last_chunk);
    };

  exception Error_Result 
    {
      // Status of the <register_callback> operation.  These
      // values should map onto the normal HTTP
      // status values, e.g., 200 means success, 404
      // means "file not found," etc.
      short status;
    };

  struct Metadata_Type
  {
    // Modification date.
    string modification_date;

    // Type of content.
    string content_type;
  };

  interface Iterator_Factory
    {
      // This registration method passes a <Callback> that
      // the Web server uses to ``push'' data associated with
      // <pathname> one ``chunk'' at a time.  The <metadata>
      // reports information about the <pathname>.
      Metadata_Type register_callback (in string pathname,
                                       in Callback client_callback)
        raises (Error_Result);
    };
};