// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This file was auto-generated by the vanadium vdl tool.
var vdl = require('vanadium').vdl;






module.exports = {};



// Types:
var _type1 = new vdl.Type();
_type1.kind = vdl.Kind.LIST;
_type1.name = "";
_type1.elem = vdl.Types.BYTE;
_type1.freeze();




// Consts:



// Errors:



// Services:

  
    
function Viewer(){}
module.exports.Viewer = Viewer

    
      
Viewer.prototype.pipe = function(ctx) {
  throw new Error('Method Pipe not implemented');
};
     

    
Viewer.prototype._serviceDescription = {
  name: 'Viewer',
  pkgPath: 'p2b/vdl',
  doc: "// Viewer allows clients to stream data to it and to request a\n// particular viewer to format and display the data.",
  embeds: [],
  methods: [
    
      
    {
    name: 'Pipe',
    doc: "// Pipe creates a bidirectional pipe between client and viewer\n// service, returns total number of bytes received by the service\n// after streaming ends",
    inArgs: [],
    outArgs: [{
      name: '',
      doc: "",
      type: vdl.Types.ANY
    },
    ],
    inStream: {
      name: '',
      doc: '',
      type: _type1
    },
    outStream: null,
    tags: []
  },
     
  ]
};

   
 


