ROOT logo
ROOT » NET » NET » THTTPMessage

class THTTPMessage: public TObject


THTTPMessage

A THTTPMessage object represents a generic HTTP request for the
Amazon S3 and the Google Storage services. It can easily be extended
to other API's. It assumes that each request is signed with the
client id and an encripted key, Base64(HMAC + SHA1 (HTTP Request))
which is based on a secret key provided in the constructor.
For more information about the authentication :
Google Storage:
http://code.google.com/apis/storage/docs/reference/v1/developer-guidev1.html#authentication
Amazon S3:
http://awsdocs.s3.amazonaws.com/S3/latest/s3-qrc.pdf
At the moment THTTPMessage is used for derived classes of TWebFile
(read only) files supporting HEAD and GET requests.


Function Members (Methods)

public:
THTTPMessage()
THTTPMessage(const THTTPMessage&)
THTTPMessage(EHTTP_Verb mverb, TString mpath, TString mbucket, TString mhost, TString maprefix, TString maid, TString maidkey)
THTTPMessage(EHTTP_Verb mverb, TString mpath, TString mbucket, TString mhost, TString maprefix, TString maid, TString maidkey, Long64_t offset, Long64_t* pos, Int_t* len, Int_t nbuf)
virtual~THTTPMessage()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
TStringCreateAuth() const
TStringCreateDate() const
TStringCreateHead() const
TStringCreateHost() const
TStringDatimeToTString() const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
TStringGetAccessId() const
TStringGetAccessIdKey() const
TStringGetAuthPrefix() const
TStringGetBucket() const
Int_tGetCurrentBuffer() const
TStringGetDatime() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TStringGetHost() const
EHTTP_VerbGetHTTPVerb() const
virtual const char*TObject::GetIconName() const
Long64_t*GetInitByte() const
Int_tGetLength() const
virtual const char*TObject::GetName() const
Int_tGetNumBuffers() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
Long64_tGetOffset() const
virtual Option_t*TObject::GetOption() const
TStringGetPath() const
Int_t*GetRangeLength() const
TStringGetRequest()
TStringGetSignature() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Bool_tHasRange() const
TStringHTTPVerbToTString() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
THTTPMessage&operator=(const THTTPMessage& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector& insp)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
TStringSign()

Data Members

private:
TStringfAccessIdUser id
TStringfAccessIdKeySecret key
TStringfAuthPrefixAuthentication prefix to distinguish between GT and AWS3
TStringfBucketBucket associated with the file
Int_tfCurrentBufFor requests > 8000 we need to generate several requests
TStringfDateDate
Bool_tfHasRangeGET request with range
TStringfHostServer name
Long64_t*fInitByteInit positions for the range
Int_t*fLenRange length
Int_tfLengthRequest length
Int_tfNumBufNumber of buffers
Long64_tfOffsetOffset
TStringfPathGiven path to be parsed
TStringfSignatureMessage signature
EHTTP_VerbfVerbHTTP Verb

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

THTTPMessage(EHTTP_Verb mverb, TString mpath, TString mbucket, TString mhost, TString maprefix, TString maid, TString maidkey)
 THTTPMessage for HTTP requests without the Range attribute.
THTTPMessage(EHTTP_Verb mverb, TString mpath, TString mbucket, TString mhost, TString maprefix, TString maid, TString maidkey, Long64_t offset, Long64_t* pos, Int_t* len, Int_t nbuf)
 THTTPMessage for HTTP Get Requests with Range.
THTTPMessage & operator=(const THTTPMessage& rhs)
 Copy ctor.
TString Sign()
 Message Signature according to:
    http://awsdocs.s3.amazonaws.com/S3/latest/s3-qrc.pdf
 and
    http://code.google.com/apis/storage/docs/reference/v1/developer-guidev1.html#authentication
TString HTTPVerbToTString() const
TString DatimeToTString() const
 Generates a Date TString according to:
   http://code.google.com/apis/storage/docs/reference-headers.html#date
TString CreateHead() const
TString CreateHost() const
TString CreateDate() const
TString CreateAuth() const
TString GetRequest()
 Generates a TString with the HTTP Request.
THTTPMessage(EHTTP_Verb mverb, TString mpath, TString mbucket, TString mhost, TString maprefix, TString maid, TString maidkey)
THTTPMessage()
{ }
virtual ~THTTPMessage()
{ }
EHTTP_Verb GetHTTPVerb() const
{ return fVerb; }
TString GetPath() const
{ return fPath; }
TString GetBucket() const
{ return fBucket; }
TString GetHost() const
{ return fHost; }
TString GetDatime() const
{ return fDate; }
TString GetAuthPrefix() const
{ return fAuthPrefix; }
TString GetAccessId() const
{ return fAccessId; }
TString GetAccessIdKey() const
{ return fAccessIdKey; }
Long64_t GetOffset() const
{ return fOffset; }
Long64_t* GetInitByte() const
{ return fInitByte; }
Int_t* GetRangeLength() const
{ return fLen; }
Int_t GetCurrentBuffer() const
{ return fCurrentBuf; }
Int_t GetNumBuffers() const
{ return fNumBuf; }
Int_t GetLength() const
{ return fLength; }
TString GetSignature() const
{ return fSignature; }
Bool_t HasRange() const
{ return fHasRange; }