⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perattacher.h

📁 asn格式文件的编译器
💻 H
字号:
/*
 * PERAttacher.h
 * 
 * Copyright (c) 2001 Institute for Information Industry, Taiwan, Republic of China 
 * (http://www.iii.org.tw/iiia/ewelcome.htm)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 1, or (at your option)
 * any later version.
 *
 * $Log: perattacher.h,v $ * Revision 1.1.1.1  2001/08/01 07:38:53  mangelo * Import to SourceForge *
 * Revision 1.1.1.1  2001/05/05 15:16:34  angelo
 * First CVS Version
 *
 *
 */

#ifndef PERATTACHER_H
#define PERATTACHER_H
#include <asn1.h>
#include <netmon.h>
#include <sstream>

class PERAttacher : public ASN1::Visitor
{
public:
    typedef ASN1::PERDecoder decoder_type;
	typedef decoder_type::memento_type memento_type;
    
    PERAttacher(ASN1::PERDecoder& coder, 
                 HFRAME			   hFrame,
	             HPROPERTY		   hProperty,
                 std::string       text,
                 int               level);
protected:
    bool attach(const char* startPosition);
private:
    bool do_visit(ASN1::AbstractData& value);
	bool do_visit(ASN1::Null& value);
	bool do_visit(ASN1::BOOLEAN& value);
	bool do_visit(ASN1::INTEGER& value);
	bool do_visit(ASN1::ENUMERATED& value);
	bool do_visit(ASN1::OBJECT_IDENTIFIER& value);
	bool do_visit(ASN1::BIT_STRING& value);
	bool do_visit(ASN1::OCTET_STRING& value);
	bool do_visit(ASN1::AbstractString& value);
	bool do_visit(ASN1::BMPString& value);
	bool do_visit(ASN1::GeneralizedTime& value);
	bool do_visit(ASN1::CHOICE& value);
	bool do_visit(ASN1::SEQUENCE_OF_Base& value);
	bool do_visit(ASN1::OpenData& value);
    bool do_revisit(ASN1::OpenData& value);
    bool do_visit(ASN1::TypeConstrainedOpenData& value);

	VISIT_SEQ_RESULT preVisitExtensionRoots(ASN1::SEQUENCE& value);
	VISIT_SEQ_RESULT visitExtensionRoot(ASN1::SEQUENCE& value, int index, int optional_id);
	VISIT_SEQ_RESULT preVisitExtensions(ASN1::SEQUENCE& value);
	VISIT_SEQ_RESULT visitKnownExtension(ASN1::SEQUENCE& value, int index, int optional_id);
	bool visitUnknownExtensions(ASN1::SEQUENCE& value);

    ASN1::PERDecoder& decoder;
    HFRAME				hFrame;
	HPROPERTY			hProperty;
	std::stringstream	strm;
	int					level;
	std::vector<decoder_type::memento_type> openDataPositions;
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -