################################################################################
use strict;
-use vars qw(%error @EXPORT);
+use vars qw(
+ %error
+ @EXPORT
+ $VERSION
+);
use Encode::Plain; $Encode::Plain::utf8 = 1;
use Encode::Posting;
-use Lock qw(
- :WRITE
- release_file
-);
+use Lock;
use Posting::_lib qw(
get_message_node
get_message_header
noParent => '4 could not find parent message'
);
+################################################################################
+#
+# Version check
+#
+$VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
################################################################################
#
# Export
);
save_file ($param -> {forumFile}, $forum) or return $error{forumWrite};
- release_file ($param -> {messagePath}.$tid.'.xml');
+ new Lock ($param -> {messagePath}.$tid.'.xml') -> release;
return (0, $thread, $mid, $tid);
}
my $mid = 'm'.($param -> {lastMessage} + 1);
my $tid = 't'.($param -> {thread});
- my $tfile = $param -> {messagePath}.$tid.'.xml';
+ my $tfile = new Lock ($param -> {messagePath}.$tid.'.xml');
- unless (write_lock_file ($tfile)) {
- violent_unlock_file ($tfile);
+ unless ($tfile->lock(LH_EXCL)) {
return $error{threadFile};
}
else {
- my $xml = parse_xml_file ($tfile);
+ my $xml = parse_xml_file ($tfile->filename);
unless ($xml) {
- violent_unlock_file ($tfile) unless (write_unlock_file ($tfile));
+ $tfile -> unlock;
return $error{threadFile};
}
my $mnode = get_message_node ($xml, $tid, 'm'.$param -> {parentMessage});
unless (defined $mnode) {
- violent_unlock_file ($tfile) unless (write_unlock_file ($tfile));
+ $tfile -> unlock;
return $error{noParent};
}
# save thread file
#
- unless (save_file ($tfile, \($xml -> toString))) {
- violent_unlock_file ($tfile) unless (write_unlock_file ($tfile));
+ unless (save_file ($tfile->filename, \($xml -> toString))) {
+ $tfile -> unlock;
return $error{threadWrite};
}
- violent_unlock_file ($tfile) unless (write_unlock_file ($tfile));
+ $tfile -> unlock;
$thread = $xml;