Added WebSocket support.
This commit is contained in:
224
src/app/Context.hpp
Normal file
224
src/app/Context.hpp
Normal file
@@ -0,0 +1,224 @@
|
||||
/*++
|
||||
|
||||
Module Name:
|
||||
|
||||
Client.hpp
|
||||
|
||||
Notices:
|
||||
|
||||
Dial Module
|
||||
|
||||
Author:
|
||||
|
||||
Copyright (c) Prepodobny Alen
|
||||
|
||||
mailto: alienufo@inbox.ru
|
||||
mailto: ufocomp@gmail.com
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef APOSTOL_DM_CONTEXT_HPP
|
||||
#define APOSTOL_DM_CONTEXT_HPP
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
#define BPS_DEFAULT_SYNC_PERIOD 30
|
||||
#define BPS_SERVER_PORT 4977
|
||||
#define BPS_SERVER_URL "http://localhost:4977"
|
||||
#define BPS_BM_SERVER_ADDRESS "BM-2cX8y9u9yEi3fdqQfndx9F6NdR5Hv79add"
|
||||
#define BPS_BM_DEBUG_ADDRESS "BM-2cXtL92m3CavBKx8qsV2LbZtAU3eQxW2rB"
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C++" {
|
||||
#endif // __cplusplus
|
||||
|
||||
namespace Apostol {
|
||||
|
||||
namespace Context {
|
||||
|
||||
struct CKeyContext {
|
||||
|
||||
CString Name;
|
||||
CString Key;
|
||||
|
||||
enum CKeyStatus {
|
||||
ksUnknown = -1,
|
||||
ksFetching,
|
||||
ksSuccess,
|
||||
ksError,
|
||||
} Status;
|
||||
|
||||
CDateTime StatusTime;
|
||||
CDateTime RunTime;
|
||||
|
||||
CKeyContext(): Status(ksUnknown), StatusTime(0), RunTime(0) {
|
||||
Name = "PUBLIC";
|
||||
}
|
||||
|
||||
CKeyContext(const CString &Name, const CString &Key): CKeyContext() {
|
||||
this->Name = Name;
|
||||
this->Key = Key;
|
||||
}
|
||||
|
||||
CKeyContext(const CKeyContext &KeyContext): CKeyContext() {
|
||||
Assign(KeyContext);
|
||||
}
|
||||
|
||||
void Assign(const CKeyContext &KeyContext) {
|
||||
this->Name = KeyContext.Name;
|
||||
this->Key = KeyContext.Key;
|
||||
this->Status = KeyContext.Status;
|
||||
this->StatusTime = KeyContext.StatusTime;
|
||||
this->RunTime = KeyContext.RunTime;
|
||||
}
|
||||
|
||||
void Clear() {
|
||||
Name.Clear();
|
||||
Key.Clear();
|
||||
Status = ksUnknown;
|
||||
StatusTime = 0;
|
||||
RunTime = 0;
|
||||
}
|
||||
|
||||
CKeyContext& operator= (const CKeyContext &KeyContext) {
|
||||
if (this != &KeyContext) {
|
||||
Assign(KeyContext);
|
||||
}
|
||||
return *this;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
|
||||
//-- CContext --------------------------------------------------------------------------------------------------
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
|
||||
enum CContextStatus { csInitialization = 0, csInitialized, csAuthorization, csAuthorized, csInProgress, csRunning };
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
|
||||
class CContext: public CObject {
|
||||
private:
|
||||
|
||||
CContextStatus m_Status = csInitialization;
|
||||
|
||||
CDateTime m_CheckDate = 0;
|
||||
CDateTime m_FixedDate = 0;
|
||||
|
||||
CString m_Name {};
|
||||
|
||||
CLocation m_URL {};
|
||||
|
||||
CString m_Session {};
|
||||
CString m_Secret {};
|
||||
|
||||
CKeyContext m_PGP {};
|
||||
CKeyContext m_BTC {};
|
||||
|
||||
CStringList m_BTCKeys {};
|
||||
CStringList m_Tokens {};
|
||||
|
||||
CProviders m_Providers {};
|
||||
|
||||
public:
|
||||
|
||||
CContext() = default;
|
||||
|
||||
CContext(const CContext &Context): CContext() {
|
||||
Assign(Context);
|
||||
}
|
||||
|
||||
explicit CContext(const CLocation &URL): CContext() {
|
||||
m_URL = URL;
|
||||
}
|
||||
|
||||
void Assign(const CContext &Context) {
|
||||
m_Status = Context.m_Status;
|
||||
m_CheckDate = Context.m_CheckDate;
|
||||
m_FixedDate = Context.m_FixedDate;
|
||||
|
||||
m_Name = Context.m_Name;
|
||||
m_URL = Context.m_URL;
|
||||
m_Session = Context.m_Session;
|
||||
m_Secret = Context.m_Secret;
|
||||
m_PGP = Context.m_PGP;
|
||||
m_BTC = Context.m_BTC;
|
||||
m_BTCKeys = Context.m_BTCKeys;
|
||||
m_Tokens = Context.m_Tokens;
|
||||
m_Providers = Context.m_Providers;
|
||||
}
|
||||
|
||||
virtual void Clear() {
|
||||
m_Status = csInitialization;
|
||||
m_CheckDate = 0;
|
||||
m_FixedDate = 0;
|
||||
|
||||
m_Name.Clear();
|
||||
m_URL.Clear();
|
||||
m_Session.Clear();
|
||||
m_Secret.Clear();
|
||||
m_PGP.Clear();
|
||||
m_BTC.Clear();
|
||||
m_BTCKeys.Clear();
|
||||
m_Tokens.Clear();
|
||||
m_Providers.Clear();
|
||||
};
|
||||
|
||||
const CLocation& URL() const { return m_URL; }
|
||||
|
||||
CContextStatus Status() const { return m_Status; }
|
||||
void SetStatus(CContextStatus Status) { m_Status = Status; }
|
||||
|
||||
CDateTime CheckDate() const { return m_CheckDate; }
|
||||
void SetCheckDate(CDateTime Value) { m_CheckDate = Value; }
|
||||
|
||||
CDateTime FixedDate() const { return m_FixedDate; }
|
||||
void SetFixedDate(CDateTime Value) { m_FixedDate = Value; }
|
||||
|
||||
CString& Name() { return m_Name; }
|
||||
const CString& Name() const { return m_Name; }
|
||||
|
||||
CString& Session() { return m_Session; }
|
||||
const CString& Session() const { return m_Session; }
|
||||
|
||||
CString& Secret() { return m_Secret; }
|
||||
const CString& Secret() const { return m_Secret; }
|
||||
|
||||
CKeyContext& PGP() { return m_PGP; }
|
||||
const CKeyContext& PGP() const { return m_PGP; }
|
||||
|
||||
CKeyContext& BTC() { return m_BTC; }
|
||||
const CKeyContext& BTC() const { return m_BTC; }
|
||||
|
||||
CStringList& BTCKeys() { return m_BTCKeys; }
|
||||
const CStringList& BTCKeys() const { return m_BTCKeys; }
|
||||
|
||||
CStringList& Tokens() { return m_Tokens; }
|
||||
const CStringList& Tokens() const { return m_Tokens; }
|
||||
|
||||
CProviders& Providers() { return m_Providers; }
|
||||
const CProviders& Providers() const { return m_Providers; }
|
||||
|
||||
CContext& operator= (const CContext &Context) {
|
||||
if (this != &Context) {
|
||||
Assign(Context);
|
||||
}
|
||||
return *this;
|
||||
};
|
||||
|
||||
};
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
|
||||
typedef TPair<CContext> CContextPair;
|
||||
typedef TPairs<CContext> CContextList;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
using namespace Apostol::Context;
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif // __cplusplus
|
||||
|
||||
#endif //APOSTOL_DM_CONTEXT_HPP
|
||||
Reference in New Issue
Block a user