Commit | Line | Data |
---|---|---|
d44e3c4f | 1 | /****************************************************************************** |
2 | * Copyright (c) 2000-2016 Ericsson Telecom AB | |
3 | * All rights reserved. This program and the accompanying materials | |
4 | * are made available under the terms of the Eclipse Public License v1.0 | |
5 | * which accompanies this distribution, and is available at | |
6 | * http://www.eclipse.org/legal/epl-v10.html | |
7 | * | |
8 | * Contributors: | |
9 | * Balasko, Jeno | |
10 | * Raduly, Csaba | |
11 | * | |
12 | ******************************************************************************/ | |
970ed795 EL |
13 | #include "ReadXml.hh" |
14 | #include "XmlReader.hh" | |
15 | //#include "libxml/xmlreader.h" | |
16 | ||
17 | namespace ReadXml { | |
18 | ||
19 | static XmlReaderWrap *reader; | |
20 | ||
21 | INTEGER FromMemory(const OCTETSTRING& o) | |
22 | { | |
23 | if (reader != 0) { | |
24 | TTCN_warning("Dangling XML reader encountered"); | |
25 | delete reader; | |
26 | } | |
27 | TTCN_Buffer buf(o); | |
28 | reader = new XmlReaderWrap(buf); | |
29 | return 0; | |
30 | } | |
31 | ||
32 | void Cleanup() | |
33 | { | |
34 | if (reader == 0) TTCN_error("XML reader not created"); | |
35 | delete reader; | |
36 | reader = 0; | |
37 | } | |
38 | ||
39 | INTEGER XmlRead() | |
40 | { | |
41 | if (reader == 0) TTCN_error("XML reader not created"); | |
42 | return reader->Read(); | |
43 | } | |
44 | ||
45 | xmlReaderTypes NodeType() | |
46 | { | |
47 | if (reader == 0) TTCN_error("XML reader not created"); | |
48 | return reader->NodeType(); | |
49 | } | |
50 | ||
51 | INTEGER Depth() | |
52 | { | |
53 | if (reader == 0) TTCN_error("XML reader not created"); | |
54 | return reader->Depth(); | |
55 | } | |
56 | ||
57 | CHARSTRING Name() | |
58 | { | |
59 | if (reader == 0) TTCN_error("XML reader not created"); | |
60 | return (const char*)reader->Name(); | |
61 | } | |
62 | ||
63 | CHARSTRING Value() | |
64 | { | |
65 | if (reader == 0) TTCN_error("XML reader not created"); | |
66 | return (const char*)reader->Value(); | |
67 | } | |
68 | ||
69 | CHARSTRING NsUri() | |
70 | { | |
71 | if (reader == 0) TTCN_error("XML reader not created"); | |
72 | return (const char*)reader->NamespaceUri(); // NUL results in empty string | |
73 | } | |
74 | ||
75 | // attribute handling | |
76 | ||
77 | INTEGER FirstAttribute() | |
78 | { | |
79 | if (reader == 0) TTCN_error("XML reader not created"); | |
80 | return reader->MoveToFirstAttribute(); | |
81 | } | |
82 | ||
83 | INTEGER NextAttribute() | |
84 | { | |
85 | if (reader == 0) TTCN_error("XML reader not created"); | |
86 | return reader->MoveToNextAttribute(); | |
87 | } | |
88 | ||
89 | } |