--- /dev/null
+package SL::mebil::ERiC;
+
+#####################################################
+# Abhängigkeit: libinline-perl
+#
+#####################################################
+use File::Copy qw(copy);
+use strict;
+use Inline C => Config => BUILD_NOISY => 1, MYEXTLIB => '/home/mebil/workspace_cpp/mERiC/Debug/libmERiC.so';
+use Inline C => <<'C_END';
+
+int validate (char*, char*);
+int senddata (char*, char*, char*, char*);
+
+int c_validate(char* datenart, char* xml_file) {
+ int r = validate(datenart, xml_file);
+ return r;
+}
+int c_submit(char* datenart, char* xml_file, char* certificate_path, char* PIN) {
+ int r = senddata(datenart, xml_file, certificate_path, PIN);
+ return r;
+}
+
+C_END
+
+sub new {
+ # parameter: 1) type of data: xmlfile must be named: <datatype>.xml
+ # 2) xml file name
+ # 3) path to certificate
+ # 4) password
+ my $my_data = {
+ datatype => $_[1],
+ xml_file => $_[2],
+ certificate_path => $_[3],
+ PIN => $_[4]};
+ bless $my_data;
+ return $my_data;
+}
+
+sub validate {
+ my $self = shift;
+
+ # open xml file for reading
+ open (FILE, "$self->{xml_file}") or die "cannot open $self->{xml_file}";
+
+ # check encoding
+ my $encod = <FILE>;
+ if ($encod =~ /UTF-8/) {
+ open (OUT, ">:encoding(iso-8859-1)", "data.xml");
+ print OUT "<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\n";
+ my $line;
+ while ($line = <FILE>) {
+ print OUT $line;
+ }
+ close (OUT);
+ close (FILE);
+
+ }
+ elsif ($encod =~ /8859-15/) {
+ close (FILE);
+ copy "$self->{xml_file}", "data.xml";
+ }
+ else {
+ die "unknown encoding $encod";
+ }
+
+ # call ERiC lib
+ return c_validate($self->{datatype}, "data.xml");
+}
+
+sub submit {
+ my $self = shift;
+
+ # call ERiC lib
+ return c_submit($self->{datatype}, "data.xml", $self->{certificate_path}, $self->{PIN});
+}
+
+1;