FLImaging 6.6.27.1
DeviceSocketBase.h
1#pragma once
5
6#include "DeviceBase.h"
7#include "DeviceSocketDefinitions.h"
8
10namespace FLImaging
11{
13 namespace Devices
14 {
17
25 class FL_EXPORT CDeviceSocketBase : public CDeviceBase
26 {
27 public:
28
37
46
63
76
86 virtual bool IsSecured() const;
87
103 virtual const CResult SetConnectionIPAddress(const char* pU8Address, uint16_t u16Port);
104
120 virtual const CResult SetConnectionDNSAddress(const char* pDNSAddress, uint16_t u16Port);
121
131 const SOCKADDR_IN* GetSockAddrIn() const;
132
144 virtual const CResult Initialize();
145
157 virtual const CResult Terminate();
158
168 virtual bool IsInitialized() const;
169
179 virtual bool IsFLProtocol() const;
180
190 virtual bool IsBlockTransferMode() const;
191
201 virtual bool IsPassiveMode() const;
202
216 virtual const CResult SetBlockSize(int32_t i32BlockSize);
217
227 virtual int32_t GetBlockSize() const;
228
229
239 virtual int64_t GetSocket() const;
240
257
270
281
295 const CResult CreateKeyPair(uint32_t u32Bits);
296
314 const CResult GetPublicKey(Base::CFLData& fldModulus, Base::CFLData& fldPublicExponent) const;
315
335 const CResult GetPrivateKey(Base::CFLData& fldModulus, Base::CFLData& fldPublicExponent, Base::CFLData& fldPrivateExponent) const;
336
354 const CResult SetPublicKey(const Base::CFLData& fldModulus, const Base::CFLData& fldPublicExponent);
355
375 const CResult SetPrivateKey(const Base::CFLData& fldModulus, const Base::CFLData& fldPublicExponent, const Base::CFLData& fldPrivateExponent);
376
390 const CResult GetIPAddress(uint8_t arrU8IPAddr[4]) const;
391
401 uint16_t GetPort() const;
402
413
426
436 virtual void SetLogging(bool bLogging);
437
447 virtual bool IsLogging() const;
448
449
459 virtual void SetLoggingComm(bool bLoggingComm);
460
470 virtual bool IsLoggingComm() const;
471
485 const CResult AddSentBytes(int64_t i64SentBytes);
486
496 int64_t GetCumulativeSentBytes() const;
497
510
524 const CResult AddRecvBytes(int64_t i64RecvBytes);
525
535 int64_t GetCumulativeRecvBytes() const;
536
549
550
551 DeclareGetClassType();
552
553 protected:
554
555 virtual bool CheckDeviceLibraries() const override;
556
557 virtual void SetInitialized(bool bSet);
558
559
560 protected:
561 virtual void SendOnConnecting();
562 virtual void SendOnConnected();
563 virtual void SendOnDisconnecting();
564 virtual void SendOnDisconnected();
565 virtual void SendOnReceived(const CDeviceSocketPacket* pSocketPacket);
566 virtual void SendOnSending(const CDeviceSocketPacket* pSocketPacket);
567 virtual void SendOnSent(const CDeviceSocketPacket* pSocketPacket);
568
569 protected:
570 Base::CRSACryptography m_rsaCryptography;
571 Base::CFLData m_fldModulus;
572 Base::CFLData m_fldPublicExponent;
573 Base::CFLData m_fldPrivateExponent;
574
575 ESocketMode m_eSocketMode;
576 volatile bool m_bInitialized;
577 volatile int64_t m_i64Socket;
578 volatile bool m_bTrouble;
579 int32_t m_i32BlockSize;
580 Base::CFLString<char>& m_astrDNS;
581 CDeviceSocketBase* m_pParent;
582
583 bool m_bLogging;
584 bool m_bLoggingComm;
585
586 SOCKADDR_IN m_sockAddr;
587
588 static WSADATA m_wsaData;
589 volatile int64_t* m_pI64WsaInitCount;
590
591 void* m_pI64CumulativeSentBytes;
592 void* m_pI64CumulativeRecvBytes;
593
594 CDeviceSocketPacketDistinguisher* m_pSocketPacketDistinguisher;
595
596 friend class CDeviceSocketClientManager;
597 friend class CDeviceSocketClientASCIIManager;
598 friend class CDeviceSocketServerASCII;
599 friend class CDeviceSocketClientASCII;
600 };
601 }
602}
603
데이터 클래스
Definition FLData.h:30
Template type 의 문자열 클래스
Definition FLString.h:34
RSA 암호 클래스
Definition RSACryptography.h:30
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1596
CDeviceSocketBase * GetParent() const
부모(서버) 소켓의 포인터를 얻어 옵니다.
virtual bool IsBlockTransferMode() const
전송 모드가 블록 전송 모드인지 확인합니다.
int64_t GetCumulativeRecvBytes() const
누적 수신 바이트를 얻어 옵니다.
const CResult GetPrivateKey(Base::CFLData &fldModulus, Base::CFLData &fldPublicExponent, Base::CFLData &fldPrivateExponent) const
비밀 키를 얻어 옵니다.
virtual const CResult SetConnectionIPAddress(const char *pU8Address, uint16_t u16Port)
연결할 IP 주소를 설정합니다.
const SOCKADDR_IN * GetSockAddrIn() const
소켓 주소를 SOCKADDR_IN* 형태로 얻어 옵니다.
virtual bool IsLoggingComm() const
통신 로그 출력 여부를 얻어 옵니다.
virtual ESocketMode GetSocketMode()
소켓 모드를 반환합니다.
const CResult AddSentBytes(int64_t i64SentBytes)
송신한 바이트 값을 누적 송신 바이트에 추가 합니다.
virtual bool IsPassiveMode() const
연결이 수동 모드인지 확인합니다.
const CResult ResetCumulativeRecvBytes()
누적 수신 바이트를 초기화 합니다.
virtual int64_t GetSocket() const
int64_t 타입으로 소켓을 얻어 옵니다.
virtual bool IsFLProtocol() const
프로토콜이 FLProtocol인지 확인합니다.
virtual bool IsLogging() const
로그 출력 여부를 얻어 옵니다.
virtual void SetLogging(bool bLogging)
로그 출력 여부를 설정합니다.
const CResult SetPublicKey(const Base::CFLData &fldModulus, const Base::CFLData &fldPublicExponent)
공개 키를 설정합니다.
virtual const CResult Terminate()
소켓 종료를 수행합니다.
int64_t GetCumulativeSentBytes() const
누적 송신 바이트를 얻어 옵니다.
const CResult ResetCumulativeSentBytes()
누적 송신 바이트를 초기화 합니다.
const Base::CFLString< char > & GetDNS() const
SetConnectionDNSAddress 함수로 설정된 DNS를 얻어옵니다.
const CResult AddRecvBytes(int64_t i64RecvBytes)
수신한 바이트 값을 누적 수신 바이트에 추가 합니다.
virtual ~CDeviceSocketBase()
기본 소멸자
virtual const CResult SetConnectionDNSAddress(const char *pDNSAddress, uint16_t u16Port)
연결할 DNS 주소를 설정합니다.
virtual int32_t GetBlockSize() const
데이터 전송을 위한 현재 블록 크기를 가져옵니다.
const CResult GetIPAddress(uint8_t arrU8IPAddr[4]) const
IP 주소를 얻어 옵니다.
virtual CDeviceSocketPacketDistinguisher * GetSocketPacketDistinguisher() const
CDeviceSocketPacketDistinguisher 객체를 얻어 옵니다.
virtual const CResult SetSocketMode(ESocketMode eSocketMode=ESocketMode_FLProtocol_Passive_Plain)
소켓 모드를 설정 합니다.
virtual void SetLoggingComm(bool bLoggingComm)
통신 로그 출력 여부를 설정합니다.
virtual const CResult SetBlockSize(int32_t i32BlockSize)
데이터 전송을 위한 블록 크기를 설정합니다.
virtual bool IsInitialized() const
소켓 초기화 여부를 얻어 옵니다.
virtual const CResult AssignSocketPacketDistinguisher(CDeviceSocketPacketDistinguisher *pSocketPacketDistinguisher)
CDeviceSocketPacketDistinguisher 를 설정합니다.
const CResult SetPrivateKey(const Base::CFLData &fldModulus, const Base::CFLData &fldPublicExponent, const Base::CFLData &fldPrivateExponent)
비밀 키를 설정합니다.
const CResult GetPublicKey(Base::CFLData &fldModulus, Base::CFLData &fldPublicExponent) const
공개 키를 얻어 옵니다.
uint16_t GetPort() const
현재 사용 중인 포트 번호를 가져옵니다.
virtual void ClearSocketPacketDistinguisher()
CDeviceSocketPacketDistinguisher 객체를 제거합니다.
const CResult CreateKeyPair(uint32_t u32Bits)
보안에 사용될 Key 쌍을 생성합니다.
virtual const CResult Initialize()
소켓 초기화를 수행합니다. 소켓 모드 설정 및 연결 정보 설정을 먼저 수행해야 합니다.
virtual bool IsSecured() const
보안 전송 여부를 얻어 옵니다.
패킷을 구분하여 해당 패킷에 등록한 프로시저를 실행시키도록 하는 클래스
Definition DeviceSocketPacketDistinguisher.h:26
소켓 패킷 클래스
Definition DeviceSocketPacket.h:18
소켓 서버 클래스
Definition DeviceSocketServer.h:25
Definition AutoFileCleaner.h:17
ESocketMode
통신에 사용되는 소켓 모드의 정의
Definition DefinitionsDevices.h:29
@ ESocketMode_FLProtocol_Passive_Plain
FLProtocol Passive mode with Plain communication
Definition DefinitionsDevices.h:33