Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __ABICOLLAB_SAVE_INTERCEPTOR__
00020 #define __ABICOLLAB_SAVE_INTERCEPTOR__
00021
00022 #include "ev_EditMethod.h"
00023 #include "RealmConnection.h"
00024
00025 class AV_View;
00026 class EV_EditMethodCallData;
00027 class EV_EditMethod;
00028 class PD_Document;
00029 class ServiceAccountHandler;
00030
00031 class AbiCollabSaveInterceptor
00032 {
00033 public:
00034 AbiCollabSaveInterceptor();
00035
00036 bool intercept(AV_View * v, EV_EditMethodCallData * d);
00037 bool save(PD_Document * pDoc);
00038
00039 private:
00040 bool _save(std::string uri, bool verify_webapp_host, std::string ssl_ca_file,
00041 soa::function_call_ptr fc_ptr, boost::shared_ptr<std::string> result_ptr);
00042 void _save_cb(bool success, ServiceAccountHandler* pAccount,
00043 AbiCollab* pSession, ConnectionPtr connection_ptr,
00044 soa::function_call_ptr fc_ptr, boost::shared_ptr<std::string> result_ptr);
00045 void _saveFailed(AbiCollab* pSession);
00046
00047 EV_EditMethod* m_pOldSaveEM;
00048 };
00049
00050 #endif