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_DEVINF 00038 #define INCL_DEVINF 00039 /** @cond DEV */ 00040 00041 #include "base/fscapi.h" 00042 #include "base/util/ArrayList.h" 00043 #include "syncml/core/VerDTD.h" 00044 #include "syncml/core/DataStore.h" 00045 #include "syncml/core/CTCap.h" 00046 #include "syncml/core/Ext.h" 00047 #include "base/globalsdef.h" 00048 00049 BEGIN_NAMESPACE 00050 00051 00052 class DevInf { 00053 00054 // ------------------------------------------------------------ Private data 00055 private: 00056 VerDTD* verDTD; 00057 char* man; 00058 char* mod; 00059 char* oem; 00060 char* fwV; 00061 char* swV; 00062 char* hwV; 00063 char* devID; 00064 char* devTyp; 00065 ArrayList* dataStores; //DataStore[] 00066 ArrayList* ctCap; // CTCap[] 00067 ArrayList* ext; // Ext[] 00068 bool utc; 00069 bool supportLargeObjs; 00070 bool supportNumberOfChanges; 00071 SyncCap* syncCap; 00072 00073 void initialize(); 00074 00075 // ---------------------------------------------------------- Public data 00076 public: 00077 00078 DevInf(); 00079 ~DevInf(); 00080 00081 /** 00082 * Creates a new DevInf object with the given parameter 00083 * 00084 * @param verDTD the DTD version - NOT NULL 00085 * @param man the device manufacturer 00086 * @param mod the device model name 00087 * @param oem the device OEM 00088 * @param fwV the device firmware version 00089 * @param swV the device software version 00090 * @param hwV the device hardware version 00091 * @param devID the device ID - NOT NULL 00092 * @param devTyp the device type - NOT NULL 00093 * @param dataStores the array of datastore - NOT NULL 00094 * @param ctCap the array of content type capability - NOT NULL 00095 * @param ext the array of extension element name - NOT NULL 00096 * @param utc is true if the device supports UTC based time 00097 * @param supportLargeObjs is true if the device supports handling of large objects 00098 * @param supportNumberOfChanges is true if the device supports number of changes 00099 * 00100 */ 00101 DevInf(VerDTD* verDTD, 00102 const char* man, 00103 const char* mod, 00104 const char* oem, 00105 const char* fwV, 00106 const char* swV, 00107 const char* hwV, 00108 const char* devID, 00109 const char* devTyp, 00110 ArrayList* dataStores, 00111 ArrayList* ctCap, 00112 ArrayList* ext, 00113 bool utc, 00114 bool supportLargeObjs, 00115 bool supportNumberOfChanges, 00116 SyncCap* syncCap); 00117 00118 // ---------------------------------------------------------- Public methods 00119 /** 00120 * Gets the DTD version property 00121 * 00122 * @return the DTD version property 00123 */ 00124 VerDTD* getVerDTD(); 00125 00126 /** 00127 * Sets the DTD version property 00128 * 00129 * @param verDTD the DTD version 00130 */ 00131 void setVerDTD(VerDTD* verDTD); 00132 00133 /** 00134 * Gets the device manufacturer property 00135 * 00136 * @return the device manufacturer property 00137 */ 00138 const char* getMan(); 00139 00140 /** 00141 * Sets the device manufacturer property 00142 * 00143 * @param man the device manufacturer property 00144 * 00145 */ 00146 void setMan(const char* man); 00147 00148 /** 00149 * Gets the model name of device 00150 * 00151 * @return the model name of device 00152 */ 00153 const char* getMod(); 00154 00155 /** 00156 * Sets the device model property 00157 * 00158 * @param mod the device model property 00159 * 00160 */ 00161 void setMod(const char* mod); 00162 00163 /** 00164 * Gets the Original Equipment Manufacturer of the device 00165 * 00166 * @return the OEM property 00167 */ 00168 const char* getOEM(); 00169 00170 /** 00171 * Sets the Original Equipment Manufacturer of the device 00172 * 00173 * @param oem the Original Equipment Manufacturer of the device 00174 * 00175 */ 00176 void setOEM(const char* oem); 00177 00178 /** 00179 * Gets the firmware version property 00180 * 00181 * @return the firmware version property 00182 */ 00183 const char* getFwV(); 00184 00185 /** 00186 * Sets the firmware version property 00187 * 00188 * @param fwV the firmware version property 00189 * 00190 */ 00191 void setFwV(const char* fwV); 00192 00193 /** 00194 * Gets the software version property 00195 * 00196 * @return the software version property 00197 */ 00198 const char* getSwV(); 00199 00200 /** 00201 * Sets the software version property 00202 * 00203 * @param swV the software version property 00204 * 00205 */ 00206 void setSwV(const char* swV); 00207 00208 /** 00209 * Gets the hardware version property 00210 * 00211 * @return the hardware version property 00212 */ 00213 const char* getHwV(); 00214 00215 /** 00216 * Sets the hardware version property 00217 * 00218 * @param hwV the hardware version property 00219 * 00220 */ 00221 void setHwV(const char* hwV); 00222 00223 /** 00224 * Gets the device identifier 00225 * 00226 * @return the device identifier 00227 */ 00228 const char* getDevID(); 00229 00230 /** 00231 * Sets the device identifier 00232 * 00233 * @param devID the device identifier 00234 * 00235 */ 00236 void setDevID(const char* devID); 00237 00238 /** 00239 * Gets the device type 00240 * 00241 * @return the device type 00242 */ 00243 const char* getDevTyp(); 00244 00245 /** 00246 * Sets the device type 00247 * 00248 * @param devTyp the device type 00249 * 00250 */ 00251 void setDevTyp(const char* devTyp); 00252 00253 /** 00254 * Gets the array of datastore 00255 * 00256 * @return the array of datastore 00257 */ 00258 ArrayList* getDataStore(); 00259 00260 /** 00261 * Sets an array of datastore 00262 * 00263 * @param dataStores an array of datastore 00264 * 00265 */ 00266 void setDataStore(ArrayList* dataStores); 00267 /** 00268 * Gets the array of content type capability 00269 * 00270 * @return the array of content type capability 00271 */ 00272 ArrayList* getCTCap(); 00273 00274 /** 00275 * Sets an array of content type capability 00276 * 00277 * @param ctCap an array of content type capability 00278 * 00279 */ 00280 void setCTCap(ArrayList* ctCap); 00281 00282 /** 00283 * Gets the array of extension 00284 * 00285 * @return the array of extension 00286 */ 00287 ArrayList* getExt(); 00288 00289 /** 00290 * Sets an array of extensions 00291 * 00292 * @param ext an array of extensions 00293 * 00294 */ 00295 void setExt(ArrayList* ext); 00296 00297 /** 00298 * Sets the UTC property 00299 * 00300 * @param utc is true if the device supports UTC based time 00301 */ 00302 void setUTC(bool utc); 00303 00304 /** 00305 * Gets the Boolean value of utc 00306 * 00307 * @return true if the device supports UTC based time 00308 */ 00309 bool getUTC(); 00310 00311 /** 00312 * Sets the supportLargeObjs property 00313 * 00314 * @param supportLargeObjs is true if the device supports handling of large objects 00315 * 00316 */ 00317 void setSupportLargeObjs(bool supportLargeObjs); 00318 00319 00320 /** 00321 * Gets the Boolean value of supportLargeObjs 00322 * 00323 * @return true if the device supports handling of large objects 00324 */ 00325 bool getSupportLargeObjs(); 00326 00327 /** 00328 * Sets the supportNumberOfChanges property 00329 * 00330 * @param supportNumberOfChanges is true if the device supports number of changes 00331 * 00332 */ 00333 void setSupportNumberOfChanges(bool supportNumberOfChanges); 00334 00335 /** 00336 * Gets the Boolean value of supportNumberOfChanges 00337 * 00338 * @return true if the device supports number of changes 00339 */ 00340 bool getSupportNumberOfChanges(); 00341 00342 void setSyncCap(SyncCap* syncCap); 00343 00344 SyncCap* getSyncCap(); 00345 00346 DevInf* clone(); 00347 00348 }; 00349 00350 00351 END_NAMESPACE 00352 00353 /** @endcond */ 00354 #endif