ReleaseFile.cpp

См. документацию.
00001 /* 
00002  * File:   ReleaseFile.cpp
00003  * Author: nick
00004  * 
00005  * Created on 5 Сентябрь 2011 г., 18:07
00006  */
00007 
00008 /*
00009  <iq id='идентификатор' type='get' to='ip сервера'>
00010         <query xmlns="release-file">
00011                 <dir xmlns="release-file#dir">путь к файлу или папке</dir>
00012                 <mode xmlns="release-file#mode">XXXX</mode>
00013         </query>
00014  </iq>
00015 
00016 //<desc xmlns="open-file#desc">XXXX</desc>
00017  *
00018  <iq from='ip сервера' to='ip клиента' type='result' id='идентификатор'>
00019         <query xmlns="open-file">
00020                 <result xmlns="open-file#result">XXXX</result>
00021         </query>
00022  </iq>
00023 */
00024 
00025 #include "ReleaseFile.h"
00026 #include "OpenFile.h"
00027 ReleaseFile::ReleaseFile(Node* parent,string from, string to, IQType type, string id):TagIQ(parent,from, to, type, id,ReleaseFile_xmlns) {
00028         // TODO Auto-generated constructor stub
00029 }
00030 
00031 ReleaseFile::ReleaseFile(const Node &basedNode):TagIQ(basedNode){
00032         cout<<"=======getattr constructor copy======"<<endl;
00033 }
00034 
00035 unsigned int ReleaseFile::getResult(){
00036         Node* subNode=this->getKind(ReleaseFile_xmlns);
00037         return subNode->getKind(ReleaseFile_xmlnsResult)->getXMLBodyInt();
00038 }
00039 
00040 void ReleaseFile::setResult(unsigned int res){
00041         Node* subNode=this->getKind(ReleaseFile_xmlns);
00042         Node* n=new Node("result",subNode,ReleaseFile_xmlnsResult);
00043         n->setXMLBody(res);
00044 }
00045 
00046 void ReleaseFile::getFile(string &dir, struct fuse_file_info& fi){
00047         memset(&fi,0,sizeof(fi));
00048         cout<<"GF:1"<<endl;
00049         Node* subNode=this->getKind(ReleaseFile_xmlns);
00050         cout<<"GF:2"<<endl;
00051         Node* n= subNode->getKind(ReleaseFile_xmlnsDir);
00052         cout<<"GF:3"<<endl;
00053         dir=n->getXMLBody();
00054         cout<<"GF:4"<<endl;
00055         FileInfoSubtag fif(*subNode->getKind(FileInfo_xmlns));
00056         cout<<"GF:5"<<endl;
00057         fi=fif.getFileInfo();
00058         cout<<"GF:6"<<endl;
00059 //      n=subNode->getKind(OpenFile_xmlnsFlags);
00060 //      fi.flags=n->getXMLBodyInt();
00061 }
00062 
00063 void ReleaseFile::setFile(string dir, const struct fuse_file_info& fi){
00064         Node* subNode=this->getKind(ReleaseFile_xmlns);
00065         Node* n;
00066         n=new Node("dir",subNode,ReleaseFile_xmlnsDir);
00067         n->setXMLBody(dir);
00068         FileInfoSubtag* fif = new FileInfoSubtag(subNode);
00069         fif->setFileInfo(fi);
00070 
00071         //n=new Node("flags",subNode,OpenFile_xmlnsFlags);
00072         //n->setXMLBody(fi.flags);
00073         //n=new Node("desc",subNode,OpenFile_xmlnsDir);
00074         //n->setXMLBody(fi.);
00075 }
00076 
00077 
00078 
00079 ReleaseFile::~ReleaseFile() {
00080         // TODO Auto-generated destructor stub
00081 }