PageRenderTime 20ms CodeModel.GetById 17ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/framework/vendor/zend/Zend/Server/Interface.php

http://zoop.googlecode.com/
PHP | 118 lines | 11 code | 7 blank | 100 comment | 0 complexity | 3a2f664fff432e77d66b01b7d434401a MD5 | raw file
  1<?php
  2/**
  3 * Zend Framework
  4 *
  5 * LICENSE
  6 *
  7 * This source file is subject to the new BSD license that is bundled
  8 * with this package in the file LICENSE.txt.
  9 * It is also available through the world-wide-web at this URL:
 10 * http://framework.zend.com/license/new-bsd
 11 * If you did not receive a copy of the license and are unable to
 12 * obtain it through the world-wide-web, please send an email
 13 * to license@zend.com so we can send you a copy immediately.
 14 *
 15 * @category   Zend
 16 * @package    Zend_Server
 17 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 18 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 19 */
 20
 21/**
 22 * Zend_Server_Interface
 23 *
 24 * @category Zend
 25 * @package  Zend_Server
 26 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 27 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 28 * @version $Id: Interface.php 20096 2010-01-06 02:05:09Z bkarwin $
 29 */
 30interface Zend_Server_Interface
 31{
 32    /**
 33     * Attach a function as a server method
 34     *
 35     * Namespacing is primarily for xmlrpc, but may be used with other
 36     * implementations to prevent naming collisions.
 37     *
 38     * @param string $function
 39     * @param string $namespace
 40     * @param null|array Optional array of arguments to pass to callbacks at
 41     * dispatch.
 42     * @return void
 43     */
 44    public function addFunction($function, $namespace = '');
 45
 46    /**
 47     * Attach a class to a server
 48     *
 49     * The individual implementations should probably allow passing a variable
 50     * number of arguments in, so that developers may define custom runtime
 51     * arguments to pass to server methods.
 52     *
 53     * Namespacing is primarily for xmlrpc, but could be used for other
 54     * implementations as well.
 55     *
 56     * @param mixed $class Class name or object instance to examine and attach
 57     * to the server.
 58     * @param string $namespace Optional namespace with which to prepend method
 59     * names in the dispatch table.
 60     * methods in the class will be valid callbacks.
 61     * @param null|array Optional array of arguments to pass to callbacks at
 62     * dispatch.
 63     * @return void
 64     */
 65    public function setClass($class, $namespace = '', $argv = null);
 66
 67    /**
 68     * Generate a server fault
 69     *
 70     * @param mixed $fault
 71     * @param int $code
 72     * @return mixed
 73     */
 74    public function fault($fault = null, $code = 404);
 75
 76    /**
 77     * Handle a request
 78     *
 79     * Requests may be passed in, or the server may automagically determine the
 80     * request based on defaults. Dispatches server request to appropriate
 81     * method and returns a response
 82     *
 83     * @param mixed $request
 84     * @return mixed
 85     */
 86    public function handle($request = false);
 87
 88    /**
 89     * Return a server definition array
 90     *
 91     * Returns a server definition array as created using
 92     * {@link * Zend_Server_Reflection}. Can be used for server introspection,
 93     * documentation, or persistence.
 94     *
 95     * @access public
 96     * @return array
 97     */
 98    public function getFunctions();
 99
100    /**
101     * Load server definition
102     *
103     * Used for persistence; loads a construct as returned by {@link getFunctions()}.
104     *
105     * @param array $array
106     * @return void
107     */
108    public function loadFunctions($definition);
109
110    /**
111     * Set server persistence
112     *
113     * @todo Determine how to implement this
114     * @param int $mode
115     * @return void
116     */
117    public function setPersistence($mode);
118}