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 00038 #ifndef INCL_METINF 00039 #define INCL_METINF 00040 /** @cond DEV */ 00041 00042 #include "base/fscapi.h" 00043 #include "base/util/ArrayList.h" 00044 #include "syncml/core/Anchor.h" 00045 #include "syncml/core/NextNonce.h" 00046 #include "syncml/core/Mem.h" 00047 #include "syncml/core/EMI.h" 00048 #include "base/globalsdef.h" 00049 00050 BEGIN_NAMESPACE 00051 00052 00053 class MetInf { 00054 00055 // ------------------------------------------------------------ Private data 00056 private: 00057 char* format ; 00058 char* type ; 00059 char* mark ; 00060 Anchor* anchor ; 00061 char* version ; 00062 NextNonce* nextNonce ; 00063 long maxMsgSize; 00064 long maxObjSize; 00065 long size ; 00066 ArrayList* emi ; 00067 Mem* mem ; 00068 00069 /** 00070 * Sets all properties in once. 00071 * 00072 * @param format the encoding format 00073 * @param type usually a MIME type 00074 * @param mark the mark element 00075 * @param sizeInBytes the data size in bytes 00076 * @param anchor the Anchor 00077 * @param version the data version 00078 * @param nonce the next nonce value 00079 * @param maxMsgSize the maximum message size in bytes 00080 * @param emi experimental meta info 00081 * @param memoryInfo memory information 00082 * 00083 */ 00084 void set(const char* format, 00085 const char* type , 00086 const char* mark , 00087 long size , 00088 Anchor* anchor , 00089 const char* version, 00090 NextNonce* nonce , 00091 long maxMsgSize, 00092 long maxObjSize, 00093 ArrayList* emi , 00094 Mem* mem ); 00095 00096 // ---------------------------------------------------------- Protected data 00097 public: 00098 00099 MetInf(); 00100 00101 ~MetInf(); 00102 00103 /** 00104 * Creates a new MetInf object with the given info. 00105 * 00106 * @param format the encoding format 00107 * @param type usually a MIME type 00108 * @param mark the mark element 00109 * @param size the data size in bytes 00110 * @param anchor the Anchor 00111 * @param version the data version 00112 * @param nonce the next nonce value 00113 * @param maxMsgSize the maximum message size in bytes 00114 * @param maxObjSize the maximum object size in bytes 00115 * @param emi experimental meta info 00116 * @param mem the memory information 00117 * 00118 */ 00119 MetInf(const char* format , 00120 const char* type , 00121 const char* mark , 00122 long size , 00123 Anchor* anchor , 00124 const char* version , 00125 NextNonce* nonce , 00126 long maxMsgSize, 00127 long maxObjSize, 00128 ArrayList* emi , 00129 Mem* mem ); 00130 00131 00132 /** 00133 * Returns dateSize (in bytes) 00134 * 00135 * @return size 00136 */ 00137 long getSize(); 00138 00139 /** 00140 * Sets size 00141 * 00142 * @param size the new size value 00143 */ 00144 void setSize(long size); 00145 00146 /** 00147 * Returns format 00148 * 00149 * @return format 00150 */ 00151 const char* getFormat(); 00152 00153 /** 00154 * Sets format 00155 * 00156 * @param format the new format value 00157 */ 00158 void setFormat(const char* format); 00159 00160 /** 00161 * Returns type 00162 * 00163 * @return type 00164 */ 00165 const char* getType(); 00166 00167 /** 00168 * Sets type 00169 * 00170 * @param type the new type value 00171 */ 00172 void setType(const char* type); 00173 00174 /** 00175 * Returns mark 00176 * 00177 * @return mark 00178 */ 00179 const char* getMark() ; 00180 00181 /** 00182 * Sets mark 00183 * 00184 * @param mark the new mark value 00185 */ 00186 void setMark(const char* mark); 00187 00188 /** 00189 * Sets emi 00190 * 00191 * @param emi the new emi value 00192 */ 00193 void setEmi(ArrayList* emi); 00194 00195 /** 00196 * Returns anchor 00197 * 00198 * @return anchor 00199 */ 00200 Anchor* getAnchor(); 00201 /** 00202 * Sets anchor 00203 * 00204 * @param anchor the new anchor value 00205 */ 00206 void setAnchor(Anchor* anchor); 00207 00208 /** 00209 * Returns nextNonce 00210 * 00211 * @return nextNonce 00212 */ 00213 NextNonce* getNextNonce(); 00214 00215 /** 00216 * Sets nextNonce 00217 * 00218 * @param nextNonce the new nextNonce value 00219 */ 00220 void setNextNonce(NextNonce* nextNonce); 00221 00222 /** 00223 * Returns mem 00224 * 00225 * @return mem 00226 */ 00227 Mem* getMem(); 00228 00229 /** 00230 * Sets mem 00231 * 00232 * @param mem the new mem value 00233 */ 00234 void setMem(Mem* mem); 00235 00236 00237 /** 00238 * Returns maxMsgSize 00239 * 00240 * @return maxMsgSize 00241 */ 00242 long getMaxMsgSize(); 00243 00244 /** 00245 * Sets maxMsgSize 00246 * 00247 * @param maxMsgSize the new maxMsgSize value 00248 */ 00249 void setMaxMsgSize(long maxMsgSize); 00250 00251 /** 00252 * Returns maxObjSize 00253 * 00254 * @return maxObjSize 00255 */ 00256 long getMaxObjSize(); 00257 00258 /** 00259 * Sets maObjSize 00260 * 00261 * @param maxObjSize the new maxObjSize value 00262 */ 00263 void setMaxObjSize(long maxObjSize); 00264 00265 /** 00266 * Returns emi 00267 * 00268 * @return emi 00269 */ 00270 ArrayList* getEMI(); 00271 00272 /** 00273 * Sets emi 00274 * 00275 * @param emi the new emi value 00276 */ 00277 void setEMI(ArrayList* emi); 00278 00279 /** 00280 * Returns version 00281 * 00282 * @return version 00283 */ 00284 const char* getVersion(); 00285 00286 /** 00287 * Sets version 00288 * 00289 * @param version the new version value 00290 */ 00291 void setVersion(const char* version); 00292 00293 MetInf* clone(); 00294 00295 }; 00296 00297 00298 END_NAMESPACE 00299 00300 /** @endcond */ 00301 #endif