Jan Engelhardt dbba6e1bab provider: remove unnecessary braces for all-1-line blocks %!s(int64=7) %!d(string=hai) anos
..
ClientUtil.cpp 685580974e client: abolish goto statements (5/5) %!s(int64=7) %!d(string=hai) anos
ClientUtil.h 6b1d87e46b build: obsolete tstring.h %!s(int64=7) %!d(string=hai) anos
DLLGlobal.h 2a5437fbcc Initial commit %!s(int64=8) %!d(string=hai) anos
ECABContainer.cpp 6246879921 treewide: check return values of ECAllocateMore (2/2) %!s(int64=7) %!d(string=hai) anos
ECABContainer.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECABLogon.cpp 685580974e client: abolish goto statements (5/5) %!s(int64=7) %!d(string=hai) anos
ECABLogon.h 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
ECABProp.cpp 6246879921 treewide: check return values of ECAllocateMore (2/2) %!s(int64=7) %!d(string=hai) anos
ECABProp.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECABProvider.cpp b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECABProvider.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECABProviderSwitch.cpp b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECABProviderSwitch.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECArchiveAwareAttach.cpp b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECArchiveAwareAttach.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECArchiveAwareMessage.cpp b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECArchiveAwareMessage.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECArchiveAwareMsgStore.cpp b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECArchiveAwareMsgStore.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECAttach.cpp dbba6e1bab provider: remove unnecessary braces for all-1-line blocks %!s(int64=7) %!d(string=hai) anos
ECAttach.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECChangeAdvisor.cpp 3166997125 treewide: replace type repetitions by "auto" in casting statements %!s(int64=7) %!d(string=hai) anos
ECChangeAdvisor.h 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
ECDisplayTable.cpp 6465bee19c client: remove empty ECDisplayTable.h %!s(int64=8) %!d(string=hai) anos
ECDistList.cpp b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECDistList.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECExchangeExportChanges.cpp 685580974e client: abolish goto statements (5/5) %!s(int64=7) %!d(string=hai) anos
ECExchangeExportChanges.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECExchangeImportContentsChanges.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECExchangeImportContentsChanges.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECExchangeImportHierarchyChanges.cpp 685580974e client: abolish goto statements (5/5) %!s(int64=7) %!d(string=hai) anos
ECExchangeImportHierarchyChanges.h 6aba05950b misc: add override markers %!s(int64=8) %!d(string=hai) anos
ECExchangeModifyTable.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECExchangeModifyTable.h 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
ECExportAddressbookChanges.cpp 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
ECExportAddressbookChanges.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECGenericProp.cpp dbba6e1bab provider: remove unnecessary braces for all-1-line blocks %!s(int64=7) %!d(string=hai) anos
ECGenericProp.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECMAPIContainer.cpp 685580974e client: abolish goto statements (5/5) %!s(int64=7) %!d(string=hai) anos
ECMAPIContainer.h 1b08d97d15 build: work around gcc 4.7 dtor behavior %!s(int64=8) %!d(string=hai) anos
ECMAPIFolder.cpp dbba6e1bab provider: remove unnecessary braces for all-1-line blocks %!s(int64=7) %!d(string=hai) anos
ECMAPIFolder.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECMAPIFolderPublic.cpp cce193af64 client: abolish goto statements (4/5) %!s(int64=7) %!d(string=hai) anos
ECMAPIFolderPublic.h 732f2a49da mapi: make SetProps's SPropValue const %!s(int64=8) %!d(string=hai) anos
ECMAPIProp.cpp 685580974e client: abolish goto statements (5/5) %!s(int64=7) %!d(string=hai) anos
ECMAPIProp.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECMAPITable.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECMAPITable.h 6aba05950b misc: add override markers %!s(int64=8) %!d(string=hai) anos
ECMSProvider.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECMSProvider.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECMSProviderSwitch.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECMSProviderSwitch.h 6aba05950b misc: add override markers %!s(int64=8) %!d(string=hai) anos
ECMailUser.cpp b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECMailUser.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECMemTablePublic.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECMemTablePublic.h 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
ECMessage.cpp 61e1d7bcc3 client: abolish goto statements (2/5) %!s(int64=7) %!d(string=hai) anos
ECMessage.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECMessageStreamImporterIStreamAdapter.cpp 2e8744c8b6 hl: make object_ptr reset explicit %!s(int64=8) %!d(string=hai) anos
ECMessageStreamImporterIStreamAdapter.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECMsgStore.cpp dbba6e1bab provider: remove unnecessary braces for all-1-line blocks %!s(int64=7) %!d(string=hai) anos
ECMsgStore.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
ECMsgStorePublic.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECMsgStorePublic.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECNamedProp.cpp 72c9c4cc54 client: use memory_ptr for automatic deallocation (2/6) %!s(int64=7) %!d(string=hai) anos
ECNamedProp.h b794e0e875 treewide: drop FAR type qualifiers %!s(int64=8) %!d(string=hai) anos
ECNotifyClient.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECNotifyClient.h 6aba05950b misc: add override markers %!s(int64=8) %!d(string=hai) anos
ECNotifyMaster.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECNotifyMaster.h 3165e9462c treewide: add default initializers (1/n) %!s(int64=8) %!d(string=hai) anos
ECParentStorage.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECParentStorage.h 66387dc636 mapi: make DeleteProps's SPropTagArray const %!s(int64=8) %!d(string=hai) anos
ECPropertyEntry.cpp 6246879921 treewide: check return values of ECAllocateMore (2/2) %!s(int64=7) %!d(string=hai) anos
ECPropertyEntry.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
ECSessionGroupManager.cpp cc26b712e8 doc: fixup grammar of "IDs" %!s(int64=8) %!d(string=hai) anos
ECSessionGroupManager.h 631dab76cb treewide: switch from pthread to std::{mutex,condition_variable} (11/n) %!s(int64=8) %!d(string=hai) anos
ECXPLogon.cpp 72c9c4cc54 client: use memory_ptr for automatic deallocation (2/6) %!s(int64=7) %!d(string=hai) anos
ECXPLogon.h 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
ECXPProvider.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
ECXPProvider.h 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
EntryPoint.h 6b1d87e46b build: obsolete tstring.h %!s(int64=7) %!d(string=hai) anos
IECPropStorage.h 3069510ca2 client: drop unnecessary heap allocations in MAPIOBJECT %!s(int64=8) %!d(string=hai) anos
Mem.cpp 623a8a4d21 client: remove redundant assignments for MAPIOBJECTS %!s(int64=8) %!d(string=hai) anos
Mem.h 452e3c78dd client: use memory_ptr for automatic deallocation (1/6) %!s(int64=7) %!d(string=hai) anos
ProviderUtil.cpp 4837c0f86d treewide: remove dependency on boost filesystem library %!s(int64=8) %!d(string=hai) anos
ProviderUtil.h 9150f14f7a misc: move once-used decls to implementation file %!s(int64=8) %!d(string=hai) anos
README.md 09aa08f1ac Add basic README files %!s(int64=8) %!d(string=hai) anos
SessionGroupData.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
SessionGroupData.h 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
WSABPropStorage.cpp 394a67d0e8 provider: check return value of ECAllocateBuffer %!s(int64=7) %!d(string=hai) anos
WSABPropStorage.h 66387dc636 mapi: make DeleteProps's SPropTagArray const %!s(int64=8) %!d(string=hai) anos
WSABTableView.cpp 999a083af7 treewide: offer robust version of REGISTER_INTERFACE macro %!s(int64=8) %!d(string=hai) anos
WSABTableView.h 6aba05950b misc: add override markers %!s(int64=8) %!d(string=hai) anos
WSMAPIFolderOps.cpp 72c9c4cc54 client: use memory_ptr for automatic deallocation (2/6) %!s(int64=7) %!d(string=hai) anos
WSMAPIFolderOps.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
WSMAPIPropStorage.cpp 72c9c4cc54 client: use memory_ptr for automatic deallocation (2/6) %!s(int64=7) %!d(string=hai) anos
WSMAPIPropStorage.h 2e18d88fb5 client: use initialization and in-class defaults %!s(int64=8) %!d(string=hai) anos
WSMessageStreamExporter.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
WSMessageStreamExporter.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
WSMessageStreamImporter.cpp f160ba86a2 treewide: simplify small functions to be even smaller %!s(int64=7) %!d(string=hai) anos
WSMessageStreamImporter.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
WSSerializedMessage.cpp f160ba86a2 treewide: simplify small functions to be even smaller %!s(int64=7) %!d(string=hai) anos
WSSerializedMessage.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
WSStoreTableView.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
WSStoreTableView.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
WSTableView.cpp 2b50cdfe01 client: gracefully handle allocation failures %!s(int64=7) %!d(string=hai) anos
WSTableView.h f88f537775 treewide: drop redundant access control specifiers %!s(int64=8) %!d(string=hai) anos
WSTransport.cpp 685580974e client: abolish goto statements (5/5) %!s(int64=7) %!d(string=hai) anos
WSTransport.h b138071256 provider: condense repeated new-QueryInterface logic %!s(int64=7) %!d(string=hai) anos
WSUtil.cpp 2c00b03a08 client: abolish goto statements (3/5) %!s(int64=7) %!d(string=hai) anos
WSUtil.h 7e560f153f misc: add const qualifiers to variables and functions %!s(int64=8) %!d(string=hai) anos
epclient.cpp 2bc99518c5 misc: resolve 7 missing return value checks %!s(int64=7) %!d(string=hai) anos
ics_client.hpp 1f33f1ea2a src: dissolve pointless typedefs %!s(int64=8) %!d(string=hai) anos
kopano.inf 2a5437fbcc Initial commit %!s(int64=8) %!d(string=hai) anos
resource.h 2a5437fbcc Initial commit %!s(int64=8) %!d(string=hai) anos

README.md

Kopano basic tech. information

The Kopano Message store provider works with the following components (layered top-to-bottom):

Client side:

  • Full MAPI implementation to the client
  • Local client handling of data structures, formats, and anything needing caching or local processing
  • Abstract 'storage' classes for doing the actual transport of data to and from the server
  • Currently only the WS (WebService) Transport is implemented, using gSOAP for serialization

Network:

  • HTTP / SOAP network transport

Server side:

  • Server deserialisation and RPC with gSOAP (through either Apache or standalone server)
  • Storage layer for database communication
  • MySQL database storage