Esempio n. 1
0
 virtual Binary::Container::Ptr OpenData(const String& path, const Parameters::Accessor& params, Log::ProgressCallback& cb) const
 {
   Dbg("Opening path '%1%'", path);
   if (Identifier::Ptr id = Resolve(path))
   {
     if (const DataProvider* provider = FindProvider(id->Scheme()))
     {
       Dbg(" Used provider '%1%'", provider->Id());
       return provider->Open(id->Path(), params, cb);
     }
   }
   Dbg(" No suitable provider found");
   throw Error(THIS_LINE, translate("Specified uri scheme is not supported."));
 }
Esempio n. 2
0
 virtual Binary::OutputStream::Ptr CreateStream(const String& path, const Parameters::Accessor& params, Log::ProgressCallback& cb) const
 {
   Dbg("Creating stream '%1%'", path);
   if (Identifier::Ptr id = Resolve(path))
   {
     if (const DataProvider* provider = FindProvider(id->Scheme()))
     {
       Dbg(" Used provider '%1%'", provider->Id());
       //pass nonchanged parameter to lower level
       return provider->Create(path, params, cb);
     }
   }
   Dbg(" No suitable provider found");
   throw Error(THIS_LINE, translate("Specified uri scheme is not supported."));
 }
Esempio n. 3
0
CQuotesProviders::TQuotesProviderPtr CQuotesProviders::GetContactProviderPtr(HANDLE hContact)const
{
	char* szProto = reinterpret_cast<char*>(CallService(MS_PROTO_GETCONTACTBASEPROTO,
											reinterpret_cast<WPARAM>(hContact),0));
	if(NULL == szProto || 0 != ::_stricmp(szProto,QUOTES_PROTOCOL_NAME))
	{
		return TQuotesProviderPtr();
	}

	tstring sProvider = Quotes_DBGetStringT(hContact,QUOTES_MODULE_NAME,DB_STR_QUOTE_PROVIDER);
	if(true == sProvider.empty())
	{
		return TQuotesProviderPtr();
	}

	return FindProvider(sProvider);
}