ISocket



Describes platform socket.

You can find more information in comments below.

class ISocket
{
public:
    enum ERROR_TYPE // Error types
    {
        etInvalidHandle,
        etNotEnoughMemory,
        etInvalidParameter,
        etOperationAborted,
        etIOIncomplete,
        etIOPending,
        etInterruptedCall,
        etInvalidFileHandle,
        etPermissionDenied,
        etBadAddress,
        etInvalidArgument,
        etTooManyOpenedFiles,
        etOperationInProgress,
        etOperationOnNonSocket,
        etDestinationAddressRequird,
        etMessageTooLong,
        etWrongProtocolType,
        etBadProtocolOption,
        etProtocolNotSupported,
        etSocketTypeNotSupported,
        etOperationNotSupported,
        etProtocolFamilyNotSupported,
        etAddressfamilyNotSupported,
        etAddressInUse,
        etCannotAssignAddress,
        etNetworkDown,
        etNetworkUnreachable,
        etNetwordDropConnection,
        etSoftwareConnectionAbort,
        etConnectionResetByPeer,
        etNoBufferSpaceAvailable,
        etSocketAlreadyConnected,
        etSocketNotConnected,
        etCannotSendAfterShutdown,
        etTooManyReferences,
        etConnectionTimeout,
        etConnectionRefused,
        etCannotTranslateName,
        etNameTooLong,
        etHostDown,
        etNoRouteToHost,
        etDirectoryNotEmpty,
        etTooManyProcesses,
        etUserQuotaExceeded,
        etDiskQuotaExceeded,
        etStaleFileHandleReference,
        etItemIsRemote,
        etNetworkSubsystemUnavailable,
        etLibraryVersionOutOfRange,
        etNoStartup,
        etGracefulShutdownInProgress,
        etNoMoreResults,
        etCallcancelled,
        etProcedureCallTableInvalid,
        etServiceProviderInvalid,
        etServiceProviderFailedToInitialize,
        etSystemCallFailed,
        etServiceNotFound,
        etClassTypeNotFound,
        etCallCancelled,
        etDatabaseQueryRefused,
        etHostNotFound,
        etNonAuthoritativeHostNotFound,
        etNonRecoverableError,
        etNoDataRecord,
        etQoSReceivers,
        etQoSSenders,
        etNoQoSSenders,
        etNoQoSReceivers,
        etQoSRequestConfirmed,
        etQoSAdmissionError,
        etQoSPolicyFailed,
        etQoSBadStyle,
        etQoSBadObject,
        etQoSTrafficControlError,
        etQoSGenericError,
        etQoSServiceTypeError,
        etQoSFlowspecError,
        etInvalidQoSProviderBuffer,
        etInvalidQoSFilterStyle,
        etInvalidQoSFilterType,
        etIncorrectQoSFilterCount,
        etInvalidQoSObjectLength,
        etInvalidQoSFlowCount,
        etUnrecognizedQoSObject,
        etInvalidQoSPolicyObject,
        etInvalidQoSFlowDescriptor,
        etInvalidQoSProviderFlowSpec,
        etInvalidQoSProviderFilterSpec,
        etInvalidQoSShapeDiscardModeObject,
        etInvalidQoSShapingRateObject,
        etReservedPolicyQoSElementType,

        etUnknown
    };

    enum DATA_EXIST // Data availability
    {
        deError,
        deDisconnected,
        deExist,
        deNone
    };
public:
    virtual AnsiString getLocalIp() = 0; // Return local IP address
    virtual AnsiString getRemoteIp() = 0; // Return remote IP address
    virtual int getLocalPort() = 0; // Return local port
    virtual int getRemotePort() = 0; // Return remote port

    virtual void Release() = 0; // Close connection and destroy itself
};
Namespace: nitisa
Include: Nitisa/Interfaces/INetwork.h