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_META 00039 #define INCL_META 00040 /** @cond DEV */ 00041 00042 #include "base/fscapi.h" 00043 #include "syncml/core/MetInf.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 class Meta { 00053 00054 // ------------------------------------------------------------ Private data 00055 private: 00056 MetInf* metInf; 00057 00058 void set(const char* format, 00059 const char* type , 00060 const char* mark , 00061 long size , 00062 Anchor* anchor , 00063 const char* version, 00064 NextNonce* nonce , 00065 long maxMsgSize, 00066 long maxObjSize, 00067 ArrayList* emi , 00068 Mem* mem ); 00069 00070 00071 // ---------------------------------------------------------- Public data 00072 public: 00073 00074 Meta(); 00075 00076 ~Meta(); 00077 00078 MetInf* getMetInf(); 00079 00080 void setMetInf(MetInf* metInf); 00081 00082 /** 00083 * This get method always returns null. This is a used in the JiBX mapping 00084 * in order to do not output the MetInf element. 00085 * 00086 * @return always null 00087 */ 00088 MetInf* getNullMetInf(); 00089 00090 /** 00091 * Returns dateSize (in bytes) 00092 * 00093 * @return size 00094 */ 00095 long getSize(); 00096 00097 /** 00098 * Sets size 00099 * 00100 * @param size the new size value 00101 */ 00102 void setSize(long size); 00103 00104 /** 00105 * Returns format 00106 * 00107 * @return format 00108 */ 00109 const char* getFormat(); 00110 00111 /** 00112 * Sets format 00113 * 00114 * @param format the new format value 00115 */ 00116 void setFormat(const char* format); 00117 00118 /** 00119 * Returns type 00120 * 00121 * @return type 00122 */ 00123 const char* getType(); 00124 00125 /** 00126 * Sets type 00127 * 00128 * @param type the new type value 00129 */ 00130 void setType(const char* type); 00131 00132 /** 00133 * Returns mark 00134 * 00135 * @return mark 00136 */ 00137 const char* getMark(); 00138 00139 /** 00140 * Sets mark 00141 * 00142 * @param mark the new mark value 00143 */ 00144 void setMark(const char* mark); 00145 00146 /** 00147 * Returns version 00148 * 00149 * @return version 00150 */ 00151 const char* getVersion(); 00152 00153 /** 00154 * Sets version 00155 * 00156 * @param version the new version value 00157 */ 00158 void setVersion(const char* version); 00159 00160 00161 /** 00162 * Returns anchor 00163 * 00164 * @return anchor 00165 */ 00166 Anchor* getAnchor(); 00167 00168 /** 00169 * Sets anchor 00170 * 00171 * @param anchor the new anchor value 00172 */ 00173 void setAnchor(Anchor* anchor); 00174 00175 /** 00176 * Returns nextNonce 00177 * 00178 * @return nextNonce 00179 */ 00180 NextNonce* getNextNonce(); 00181 00182 /** 00183 * Sets nextNonce 00184 * 00185 * @param nextNonce the new nextNonce value 00186 */ 00187 void setNextNonce(NextNonce* nextNonce); 00188 00189 /** 00190 * Returns maxMsgSize 00191 * 00192 * @return maxMsgSize 00193 */ 00194 long getMaxMsgSize(); 00195 00196 /** 00197 * Sets maxMsgSize 00198 * 00199 * @param maxMsgSize the new maxMsgSize value 00200 */ 00201 void setMaxMsgSize(long maxMsgSize); 00202 00203 /** 00204 * Returns maxObjSize 00205 * 00206 * @return maxObjSize 00207 */ 00208 long getMaxObjSize(); 00209 00210 /** 00211 * Sets maObjSize 00212 * 00213 * @param maxObjSize the new maxObjSize value 00214 */ 00215 void setMaxObjSize(long maxObjSize); 00216 00217 /** 00218 * Returns mem 00219 * 00220 * @return mem 00221 */ 00222 Mem* getMem(); 00223 00224 /** 00225 * Sets mem 00226 * 00227 * @param mem the new mem value 00228 */ 00229 void setMem(Mem* mem); 00230 00231 /** 00232 * Sets emi 00233 * 00234 * @param emi the new emi value 00235 */ 00236 void setEMI(ArrayList* emi); 00237 00238 /** 00239 * Gets emi 00240 * 00241 * @return emi 00242 */ 00243 ArrayList* getEMI(); 00244 00245 /** 00246 * clone meta 00247 * 00248 * @return meta 00249 */ 00250 Meta* clone(); 00251 }; 00252 00253 00254 END_NAMESPACE 00255 00256 /** @endcond */ 00257 #endif