1 /* c/zx-sec-dec.c - WARNING: This file was auto generated by xsd2sg.pl. DO NOT EDIT!
2  * $Id$ */
3 /* Code generation design Copyright (c) 2006 Sampo Kellomaki (sampo@iki.fi),
4  * All Rights Reserved. NO WARRANTY. See file COPYING for terms and conditions
5  * of use. Some aspects of code generation were driven by schema
6  * descriptions that were used as input and may be subject to their own copyright.
7  * Code generation uses a template, whose copyright statement follows. */
8 
9 /** dec-templ.c  -  XML decoder template, used in code generation
10  ** Copyright (c) 2010 Sampo Kellomaki (sampo@iki.fi), All Rights Reserved.
11  ** Copyright (c) 2006-2007 Symlabs (symlabs@symlabs.com), All Rights Reserved.
12  ** Author: Sampo Kellomaki (sampo@iki.fi)
13  ** This is confidential unpublished proprietary source code of the author.
14  ** NO WARRANTY, not even implied warranties. Contains trade secrets.
15  ** Distribution prohibited unless authorized in writing.
16  ** Licensed under Apache License 2.0, see file COPYING.
17  ** Id: dec-templ.c,v 1.30 2008-10-04 23:42:14 sampo Exp $
18  **
19  ** 28.5.2006, created, Sampo Kellomaki (sampo@iki.fi)
20  ** 8.8.2006,  reworked namespace handling --Sampo
21  ** 12.8.2006, added special scanning of xmlns to avoid backtracking elem recognition --Sampo
22  ** 23.9.2006, added collection of WO information --Sampo
23  ** 21.6.2007, improved handling of undeclared namespace prefixes --Sampo
24  ** 27.10.2010, CSE refactoring, re-engineered namespace handling --Sampo
25  ** 21.11.2010, re-engineered to extract most code to zx_DEC_elem, leaving just switches --Sampo
26  **
27  ** N.B: This template is meant to be processed by pd/xsd2sg.pl. Beware
28  ** of special markers that xsd2sg.pl expects to find and understand.
29  **/
30 
31 #include "errmac.h"
32 #include "zx.h"
33 #include "c/zx-const.h"
34 #include "c/zx-data.h"
35 #include "c/zx-sec-data.h"
36 #define TPF zx_
37 #include "zx_ext_pt.h"
38 
39 
40 
41 int zx_DEC_ATTR_sec_Token(struct zx_ctx* c, struct zx_sec_Token_s* x)
42 {
43   switch (x->gg.attr->g.tok) {
44     case zx_id_ATTR:  x->id = x->gg.attr; return 1;
45     case zx_ref_ATTR:  x->ref = x->gg.attr; return 1;
46     case zx_usage_ATTR:  x->usage = x->gg.attr; return 1;
47 
48   default: return 0;
49   }
50 }
51 
52 int zx_DEC_ELEM_sec_Token(struct zx_ctx* c, struct zx_sec_Token_s* x)
53 {
54   struct zx_elem_s* el = x->gg.kids;
55   switch (el->g.tok) {
56   case zx_sa_Assertion_ELEM:
57     if (!x->Assertion)
58       x->Assertion = (struct zx_sa_Assertion_s*)el;
59     return 1;
60   case zx_sa_EncryptedAssertion_ELEM:
61     if (!x->EncryptedAssertion)
62       x->EncryptedAssertion = (struct zx_sa_EncryptedAssertion_s*)el;
63     return 1;
64   case zx_sa11_Assertion_ELEM:
65     if (!x->sa11_Assertion)
66       x->sa11_Assertion = (struct zx_sa11_Assertion_s*)el;
67     return 1;
68   case zx_ff12_Assertion_ELEM:
69     if (!x->ff12_Assertion)
70       x->ff12_Assertion = (struct zx_ff12_Assertion_s*)el;
71     return 1;
72 
73   default: return 0;
74   }
75 }
76 
77 
78 
79 
80 int zx_DEC_ATTR_sec_TokenPolicy(struct zx_ctx* c, struct zx_sec_TokenPolicy_s* x)
81 {
82   switch (x->gg.attr->g.tok) {
83     case zx_issueTo_ATTR:  x->issueTo = x->gg.attr; return 1;
84     case zx_type_ATTR:  x->type = x->gg.attr; return 1;
85     case zx_validUntil_ATTR:  x->validUntil = x->gg.attr; return 1;
86     case zx_wantDSEPR_ATTR:  x->wantDSEPR = x->gg.attr; return 1;
87 
88   default: return 0;
89   }
90 }
91 
92 int zx_DEC_ELEM_sec_TokenPolicy(struct zx_ctx* c, struct zx_sec_TokenPolicy_s* x)
93 {
94   struct zx_elem_s* el = x->gg.kids;
95   switch (el->g.tok) {
96   case zx_sp_NameIDPolicy_ELEM:
97     if (!x->NameIDPolicy)
98       x->NameIDPolicy = (struct zx_sp_NameIDPolicy_s*)el;
99     return 1;
100 
101   default: return 0;
102   }
103 }
104 
105 
106 
107 
108 int zx_DEC_ATTR_sec_TransitedProvider(struct zx_ctx* c, struct zx_sec_TransitedProvider_s* x)
109 {
110   switch (x->gg.attr->g.tok) {
111     case zx_confirmationURI_ATTR:  x->confirmationURI = x->gg.attr; return 1;
112     case zx_timeStamp_ATTR:  x->timeStamp = x->gg.attr; return 1;
113 
114   default: return 0;
115   }
116 }
117 
118 int zx_DEC_ELEM_sec_TransitedProvider(struct zx_ctx* c, struct zx_sec_TransitedProvider_s* x)
119 {
120   struct zx_elem_s* el = x->gg.kids;
121   switch (el->g.tok) {
122 
123   default: return 0;
124   }
125 }
126 
127 
128 
129 
130 int zx_DEC_ATTR_sec_TransitedProviderPath(struct zx_ctx* c, struct zx_sec_TransitedProviderPath_s* x)
131 {
132   switch (x->gg.attr->g.tok) {
133 
134   default: return 0;
135   }
136 }
137 
138 int zx_DEC_ELEM_sec_TransitedProviderPath(struct zx_ctx* c, struct zx_sec_TransitedProviderPath_s* x)
139 {
140   struct zx_elem_s* el = x->gg.kids;
141   switch (el->g.tok) {
142   case zx_sec_TransitedProvider_ELEM:
143     if (!x->TransitedProvider)
144       x->TransitedProvider = (struct zx_sec_TransitedProvider_s*)el;
145     return 1;
146 
147   default: return 0;
148   }
149 }
150 
151 
152 /* EOF -- c/zx-sec-dec.c */
153