См. документацию.00001
00002
00003
00004
00005
00006
00007
00008 #include "WriteFile.h"
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 WriteFile::WriteFile(Node* parent,string from, string to, IQType type, string id):
00033 TagIQ(parent,from, to, type, id,WriteFile_xmlns) {
00034
00035 }
00036
00037 void WriteFile::setSubmite(){
00038 setType(TagIQ::Result);
00039 }
00040
00041 void WriteFile::getResult(unsigned int &packetid, size_t &size_for_read){
00042 Node* subNode=this->getKind(WriteFile_xmlns);
00043 Node* n=subNode->getKind(WriteFile_xmlnsResultPID);
00044 packetid=n->getXMLBodyInt();
00045 n=subNode->getKind(WriteFile_xmlnsResultSize);
00046 size_for_read=n->getXMLBodyInt();
00047 }
00048
00049 void WriteFile::setResult(unsigned int packetid, size_t size_for_read){
00050 setType(TagIQ::Get);
00051 Node* subNode=this->getKind(WriteFile_xmlns);
00052 Node* n=new Node("pct_id",subNode,WriteFile_xmlnsResultPID);
00053 n->setXMLBody(packetid);
00054 n=new Node("pct_sz",subNode,WriteFile_xmlnsResultSize);
00055 n->setXMLBody(size_for_read);
00056 }
00057
00058 void WriteFile::getFileData(string &path, size_t &offset, size_t &size, fuse_file_info &fi){
00059 memset(&fi,0,sizeof(fi));
00060 Node* subNode=this->getKind(WriteFile_xmlns);
00061 Node* args = subNode->getKind(WriteFileArgs_xmlns);
00062 path=args->getAttribute("path");
00063 offset=args->getAttributeInt("offset");
00064 size=args->getAttributeInt("size");
00065 FileInfoSubtag fis(*subNode->getKind(FileInfo_xmlns));
00066 fi=fis.getFileInfo();
00067 }
00068
00069 void WriteFile::setFileData(const string &path, size_t offset, size_t size, const fuse_file_info &fi){
00070 setType(TagIQ::Set);
00071 Node* subNode=this->getKind(WriteFile_xmlns);
00072 Node* args =new Node("readargs",subNode,WriteFileArgs_xmlns);
00073 args->setAttribute("path",path);
00074 args->setAttribute("offset",offset);
00075 args->setAttribute("size",size);
00076 FileInfoSubtag* fis= new FileInfoSubtag(subNode);
00077 fis->setFileInfo(fi);
00078 }
00079
00080 WriteFile::WriteFile(const Node &basedNode):TagIQ(basedNode) {
00081
00082 #ifdef debug_output
00083 cout<<"=======getattr constructor copy======"<<endl;
00084 #endif
00085 }
00086
00087 WriteFile::~WriteFile() {
00088
00089 }