src/include/common/push/CTPConfig.h

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 #ifndef INCL_CTP_CONFIG
00037 #define INCL_CTP_CONFIG
00038 
00040 #include "base/fscapi.h"
00041 #include "client/DMTClientConfig.h"
00042 #include "spdm/ManagementNode.h"
00043 #include "spdm/DMTreeFactory.h"
00044 #include "spdm/DMTree.h"
00045 #include "base/util/utils.h"
00046 #include "base/util/StringBuffer.h"
00047 #include "base/globalsdef.h"
00048 
00049 BEGIN_NAMESPACE
00050 
00052 #define APPLICATION_URI                 "Funambol"
00053 
00055 #define CONTEXT_PUSH_CTP                "/push/ctp"    
00056 
00057 
00058 class CTPConfig : public DMTClientConfig {
00059 
00060 private:
00061     
00070     int32_t push;
00071 
00076     int32_t polling;
00077     
00082     bool queuePush;
00083 
00088     int32_t ctpRetry;
00089 
00094     int32_t maxCtpRetry;
00095     
00100     int32_t ctpCmdTimeout;
00101     
00108     int32_t ctpConnTimeout;
00109 
00113     int32_t ctpPort;
00114 
00119     //char* ctpNonce;
00120 
00124     int32_t ctpReady;
00125 
00129     StringBuffer urlTo;
00130     
00135     StringBuffer urlFrom;
00136 
00142     int32_t notifyTimeout;
00143 
00144     StringBuffer checkPrefix(char* url);
00145 
00146 public:        
00147     
00151     CTPConfig(const char* application_uri);
00152     
00156     ~CTPConfig();
00157 
00161     void readCTPConfig();
00162     
00168     void saveCTPConfig();
00169     
00173     void setPush(int32_t v) { push = v; }
00174     int getPush()           { return push; }
00175 
00179     int32_t getPolling()       { return polling; }
00180     void setPolling(int32_t v) { polling = v; }
00181     
00185     bool getQueuePush()       { return queuePush; }
00186     void setQueuePush(bool v) { queuePush = v; }
00187     
00191     int32_t getCtpRetry()       { return ctpRetry; }
00192     void setCtpRetry(int32_t v) { ctpRetry = v; }
00193     
00197     int32_t getMaxCtpRetry()       { return maxCtpRetry; }
00198     void setMaxCtpRetry(int32_t v) { maxCtpRetry = v; }
00199     
00203     int32_t getCtpCmdTimeout()       { return ctpCmdTimeout; }
00204     void setCtpCmdTimeout(int32_t v) { ctpCmdTimeout = v; }
00205     
00209     int32_t getCtpConnTimeout()       { return ctpConnTimeout; }
00210     void setCtpConnTimeout(int32_t v) { ctpConnTimeout = v; }
00211     
00215     int32_t getCtpPort()       { return ctpPort; }
00216     void setCtpPort(int32_t v) { ctpPort = v; }
00217     
00221     int32_t getCtpReady()       { return ctpReady; }
00222     void setCtpReady(int32_t v) { ctpReady = v; }
00223     
00224 
00229     const char* getCtpNonce()       { return accessConfig.getClientNonce(); }
00230     void setCtpNonce(const char* v) { accessConfig.setClientNonce(v); }
00231 
00235     StringBuffer& getUrlTo()      { return urlTo; }
00236     void setUrlTo(StringBuffer v) { urlTo = v; }
00237 
00241     StringBuffer& getUrlFrom()      { return urlFrom; }
00242     void setUrlFrom(StringBuffer v) { urlFrom = v; }
00243 
00247     int getNotifyTimeout()       { return notifyTimeout; }
00248     void setNotifyTimeout(int v) { notifyTimeout = v; }
00249 
00250 
00254     StringBuffer getHostName(StringBuffer syncUrl);
00255     
00260     int getHostPort(StringBuffer syncUrl);
00261     
00262 private:
00263     char* decodePassword(const char* password);
00264     StringBuffer encodePassword(const char* password);
00265 };
00266 
00267 
00268 
00269 END_NAMESPACE
00270 
00272 #endif

Generated on Wed Jan 14 17:15:36 2009 for Funambol C++ Client Library by  doxygen 1.5.2