00001 /* 00002 * Funambol is a mobile platform developed by Funambol, Inc. 00003 * Copyright (C) 2003 - 2007 Funambol, Inc. 00004 * 00005 * This program is free software; you can redistribute it and/or modify it under 00006 * the terms of the GNU Affero General Public License version 3 as published by 00007 * the Free Software Foundation with the addition of the following permission 00008 * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED 00009 * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE 00010 * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. 00011 * 00012 * This program is distributed in the hope that it will be useful, but WITHOUT 00013 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00014 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 00015 * details. 00016 * 00017 * You should have received a copy of the GNU Affero General Public License 00018 * along with this program; if not, see http://www.gnu.org/licenses or write to 00019 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 00020 * MA 02110-1301 USA. 00021 * 00022 * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite 00023 * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com. 00024 * 00025 * The interactive user interfaces in modified source and object code versions 00026 * of this program must display Appropriate Legal Notices, as required under 00027 * Section 5 of the GNU Affero General Public License version 3. 00028 * 00029 * In accordance with Section 7(b) of the GNU Affero General Public License 00030 * version 3, these Appropriate Legal Notices must retain the display of the 00031 * "Powered by Funambol" logo. If the display of the logo is not reasonably 00032 * feasible for technical reasons, the Appropriate Legal Notices must display 00033 * the words "Powered by Funambol". 00034 */ 00035 00036 00037 #ifndef INCL_SYNC_HDR 00038 #define INCL_SYNC_HDR 00039 /** @cond DEV */ 00040 00041 #include "base/fscapi.h" 00042 #include "syncml/core/VerDTD.h" 00043 #include "syncml/core/VerProto.h" 00044 #include "syncml/core/SessionID.h" 00045 #include "syncml/core/Target.h" 00046 #include "syncml/core/Source.h" 00047 #include "syncml/core/Cred.h" 00048 #include "syncml/core/Meta.h" 00049 00050 #define SYNCHDR_COMMAND_NAME "SyncHdr" 00051 #include "base/globalsdef.h" 00052 00053 BEGIN_NAMESPACE 00054 00055 class SyncHdr { 00056 00057 // ------------------------------------------------------------ Private data 00058 private: 00059 char* COMMAND_NAME; 00060 VerDTD* verDTD ; 00061 VerProto* verProto ; 00062 SessionID* sessionID; 00063 char* msgID ; 00064 Target* target ; 00065 Source* source ; 00066 char* respURI ; 00067 bool noResp ; 00068 Cred* cred ; 00069 Meta* meta ; 00070 00071 // ---------------------------------------------------------- Public data 00072 public: 00073 00074 SyncHdr(); 00075 ~SyncHdr(); 00076 00077 /** 00078 * Creates a nee SyncHdr object 00079 * 00080 * @param verDTD SyncML DTD version - NOT NULL 00081 * @param verProto SyncML protocol version - NOT NULL 00082 * @param sessionID sync session identifier - NOT NULL 00083 * @param msgID message ID - NOT NULL 00084 * @param target target URI - NOT NULL 00085 * @param source source URI - NOT NULL 00086 * @param respURI may be null. 00087 * @param noResp true if no response is required 00088 * @param cred credentials. May be null. 00089 * @param meta may be null. 00090 * 00091 */ 00092 SyncHdr(VerDTD* verDTD, 00093 VerProto* verProto, 00094 SessionID* sessionID, 00095 char* msgID, 00096 Target* target, 00097 Source* source, 00098 char* respURI, 00099 bool noResp, 00100 Cred* cred, 00101 Meta* meta); 00102 00103 /** 00104 * Gets the DTD version 00105 * 00106 * @return verDTD the DTD version 00107 */ 00108 VerDTD* getVerDTD(); 00109 00110 /** 00111 * Sets the DTD version 00112 * 00113 * @param verDTD the DTD version 00114 * 00115 */ 00116 void setVerDTD(VerDTD* verDTD); 00117 00118 /** 00119 * Gets the protocol version 00120 * 00121 * @return verProto the protocol version 00122 */ 00123 VerProto* getVerProto(); 00124 00125 /** 00126 * Sets the protocol version 00127 * 00128 * @param verProto the protocol version 00129 */ 00130 void setVerProto(VerProto* verProto); 00131 00132 /** 00133 * Gets the session identifier 00134 * 00135 * @return sessionID the session identifier 00136 */ 00137 SessionID* getSessionID(); 00138 00139 /** 00140 * Sets the session identifier 00141 * 00142 * @param sessionID the session identifier 00143 * 00144 */ 00145 void setSessionID(SessionID* sessionID); 00146 00147 /** 00148 * Gets the message identifier 00149 * 00150 * @return msgID the message identifier 00151 */ 00152 const char* getMsgID(); 00153 00154 /** 00155 * Sets the message identifier 00156 * 00157 * @param msgID the message identifier 00158 */ 00159 void setMsgID(const char* msgID); 00160 00161 /** 00162 * Gets the Target object 00163 * 00164 * @return target the Target object 00165 */ 00166 Target* getTarget(); 00167 00168 /** 00169 * Sets the Target object 00170 * 00171 * @param target the Target object 00172 */ 00173 void setTarget(Target* target); 00174 00175 /** 00176 * Gets the Source object 00177 * 00178 * @return source the Source object 00179 */ 00180 Source* getSource(); 00181 00182 /** 00183 * Sets the Source object 00184 * 00185 * @param source the Source object 00186 */ 00187 void setSource(Source* source); 00188 00189 /** 00190 * Gets the response URI 00191 * 00192 * @return respURI the response URI 00193 */ 00194 const char* getRespURI(); 00195 00196 /** 00197 * Sets the response URI. 00198 * 00199 * @param uri the new response URI; NOT NULL 00200 */ 00201 void setRespURI(const char* uri); 00202 00203 /** 00204 * Gets the Boolean value of noResp 00205 * 00206 * @return true if the command doesn't require a response, null otherwise 00207 */ 00208 bool getNoResp(); 00209 00210 /** 00211 * Sets the noResponse property 00212 * 00213 * @param noResp the noResponse property 00214 */ 00215 void setNoResp(bool noResp); 00216 00217 /** 00218 * Gets the Credential property 00219 * 00220 * @return cred the Credential property 00221 */ 00222 Cred* getCred(); 00223 00224 /** 00225 * Sets the Credential property 00226 * 00227 * @param cred the Credential property 00228 */ 00229 void setCred(Cred* cred); 00230 00231 /** 00232 * Gets the Meta property 00233 * 00234 * @return meta the Meta property 00235 */ 00236 Meta* getMeta(); 00237 00238 /** 00239 * Sets the Meta property 00240 * 00241 * @param meta the Meta property 00242 */ 00243 void setMeta(Meta* meta); 00244 00245 const char* getName(); 00246 00247 SyncHdr* clone(); 00248 }; 00249 00250 00251 END_NAMESPACE 00252 00253 /** @endcond */ 00254 #endif