summaryrefslogtreecommitdiffstats
path: root/lib/wsdl/param.rb
blob: b6836b7defb16a20cb5124bb8994fa52212b61d2 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# WSDL4R - WSDL param definition.
# Copyright (C) 2002, 2003  NAKAMURA, Hiroshi <nahi@ruby-lang.org>.

# This program is copyrighted free software by NAKAMURA, Hiroshi.  You can
# redistribute it and/or modify it under the same terms of Ruby's license;
# either the dual license version in 2003, or any later version.


require 'wsdl/info'


module WSDL


class Param < Info
  attr_reader :message	# required
  attr_reader :name	# optional but required for fault.
  attr_reader :soapbody
  attr_reader :soapheader
  attr_reader :soapfault

  def initialize
    super
    @message = nil
    @name = nil
    @soapbody = nil
    @soapheader = []
    @soapfault = nil
  end

  def targetnamespace
    parent.targetnamespace
  end

  def find_message
    root.message(@message) or raise RuntimeError.new("#{@message} not found")
  end

  def soapbody_use
    if @soapbody
      @soapbody.use || :literal
    else
      raise RuntimeError.new("soap:body not found")
    end
  end

  def parse_element(element)
    case element
    when SOAPBodyName
      o = WSDL::SOAP::Body.new
      @soapbody = o
      o
    when SOAPHeaderName
      o = WSDL::SOAP::Header.new
      @soapheader << o
      o
    when SOAPFaultName
      o = WSDL::SOAP::Fault.new
      @soap_fault = o
      o
    when DocumentationName
      o = Documentation.new
      o
    else
      nil
    end
  end

  def parse_attr(attr, value)
    case attr
    when MessageAttrName
      if value.namespace.nil?
        value = XSD::QName.new(targetnamespace, value.source)
      end
      @message = value
    when NameAttrName
      @name = XSD::QName.new(targetnamespace, value.source)
    else
      nil
    end
  end
end


end
lt;<6) #define TCR_EXCECM (1<<5) #define TCR_PAD_DIS2 (1<<4) #define TCR_CRC_DIS2 (1<<3) #define TCR_PAD_DIS1 (1<<2) #define TCR_CRC_DIS1 (1<<1) #define TCR_TXREQ (1<<0) #define TSR_TJTO (1<<7) #define TSR_LC (1<<6) #define TSR_NC (1<<5) #define TSR_LCOL (1<<4) #define TSR_COL (1<<3) #define TSR_EC (1<<2) #define RCR_WTDIS (1<<6) #define RCR_DIS_LONG (1<<5) #define RCR_DIS_CRC (1<<4) #define RCR_ALL (1<<3) #define RCR_RUNT (1<<2) #define RCR_PRMSC (1<<1) #define RCR_RXEN (1<<0) #define RSR_RF (1<<7) #define RSR_MF (1<<6) #define RSR_LCS (1<<5) #define RSR_RWTO (1<<4) #define RSR_PLE (1<<3) #define RSR_AE (1<<2) #define RSR_CE (1<<1) #define RSR_FOE (1<<0) #define EPCR_EPOS_PHY (1<<3) #define EPCR_EPOS_EE (0<<3) #define EPCR_ERPRR (1<<2) #define EPCR_ERPRW (1<<1) #define EPCR_ERRE (1<<0) #define FCTR_HWOT(ot) (( ot & 0xf ) << 4 ) #define FCTR_LWOT(ot) ( ot & 0xf ) #define BPTR_BPHW(x) ((x) << 4) #define BPTR_JPT_200US (0x07) #define BPTR_JPT_600US (0x0f) #define IMR_PAR (1<<7) #define IMR_ROOM (1<<3) #define IMR_ROM (1<<2) #define IMR_PTM (1<<1) #define IMR_PRM (1<<0) #define ISR_ROOS (1<<3) #define ISR_ROS (1<<2) #define ISR_PTS (1<<1) #define ISR_PRS (1<<0) #define GPCR_GPIO0_OUT (1<<0) #define GPR_PHY_PWROFF (1<<0) #endif