- Removed exceptions from t_RsGenericIdType<>::t_RsGenericIdType

- Added rsids.h to libretroshare.pro

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7331 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2014-05-05 17:21:10 +00:00
parent 3675b1fd0f
commit d7b7e4d976
2 changed files with 24 additions and 26 deletions

View file

@ -89,6 +89,7 @@ PUBLIC_HEADERS = retroshare/rsdisc.h \
retroshare/rsexpr.h \ retroshare/rsexpr.h \
retroshare/rsfiles.h \ retroshare/rsfiles.h \
retroshare/rshistory.h \ retroshare/rshistory.h \
retroshare/rsids.h \
retroshare/rsiface.h \ retroshare/rsiface.h \
retroshare/rsinit.h \ retroshare/rsinit.h \
retroshare/rsplugin.h \ retroshare/rsplugin.h \

View file

@ -160,38 +160,35 @@ template<uint32_t ID_SIZE_IN_BYTES,bool UPPER_CASE,uint32_t UNIQUE_IDENTIFIER> s
template<uint32_t ID_SIZE_IN_BYTES,bool UPPER_CASE,uint32_t UNIQUE_IDENTIFIER> t_RsGenericIdType<ID_SIZE_IN_BYTES,UPPER_CASE,UNIQUE_IDENTIFIER>::t_RsGenericIdType(const std::string& s) template<uint32_t ID_SIZE_IN_BYTES,bool UPPER_CASE,uint32_t UNIQUE_IDENTIFIER> t_RsGenericIdType<ID_SIZE_IN_BYTES,UPPER_CASE,UNIQUE_IDENTIFIER>::t_RsGenericIdType(const std::string& s)
{ {
try int n=0;
if(s.length() != ID_SIZE_IN_BYTES*2)
{ {
int n=0; std::cerr << "t_RsGenericIdType<>::t_RsGenericIdType(std::string&): supplied string in constructor has wrong size." << std::endl;
if(s.length() != ID_SIZE_IN_BYTES*2) clear();
return;
}
for(uint32_t i = 0; i < ID_SIZE_IN_BYTES; ++i)
{
bytes[i] = 0 ;
for(int k=0;k<2;++k)
{ {
throw std::runtime_error("t_RsGenericIdType<>::t_RsGenericIdType(std::string&): supplied string in constructor has wrong size.") ; char b = s[n++] ;
}
for(uint32_t i = 0; i < ID_SIZE_IN_BYTES; ++i) if(b >= 'A' && b <= 'F')
{ bytes[i] += (b-'A'+10) << 4*(1-k) ;
bytes[i] = 0 ; else if(b >= 'a' && b <= 'f')
bytes[i] += (b-'a'+10) << 4*(1-k) ;
for(int k=0;k<2;++k) else if(b >= '0' && b <= '9')
{ bytes[i] += (b-'0') << 4*(1-k) ;
char b = s[n++] ; else {
std::cerr << "t_RsGenericIdType<>::t_RsGenericIdType(std::string&): supplied string is not purely hexadecimal" << std::endl;
if(b >= 'A' && b <= 'F') clear();
bytes[i] += (b-'A'+10) << 4*(1-k) ; return;
else if(b >= 'a' && b <= 'f')
bytes[i] += (b-'a'+10) << 4*(1-k) ;
else if(b >= '0' && b <= '9')
bytes[i] += (b-'0') << 4*(1-k) ;
else
throw std::runtime_error("t_RsGenericIdType<>::t_RsGenericIdType(std::string&): supplied string is not purely hexadecimal") ;
} }
} }
} }
catch(std::exception& e)
{
std::cerr << e.what() << std::endl;
clear() ;
}
} }
template<uint32_t ID_SIZE_IN_BYTES,bool UPPER_CASE,uint32_t UNIQUE_IDENTIFIER> t_RsGenericIdType<ID_SIZE_IN_BYTES,UPPER_CASE,UNIQUE_IDENTIFIER>::t_RsGenericIdType(const unsigned char *mem) template<uint32_t ID_SIZE_IN_BYTES,bool UPPER_CASE,uint32_t UNIQUE_IDENTIFIER> t_RsGenericIdType<ID_SIZE_IN_BYTES,UPPER_CASE,UNIQUE_IDENTIFIER>::t_RsGenericIdType(const unsigned char *mem)