예제 #1
0
int main(int argc, char** argv)
{
    try
    {
        nitf_Error e;

//        Foo<int>* foo = new Bar<int>();
//        delete foo;

        nitf_Field* cField = nitf_Field_construct(100, NITF_BCS_N, &e);
        nitf::Field field(cField);

        {
            nitf::Field field2(cField);
        }

        std::cout << field.isValid() << std::endl;


        nitf_BandInfo* cBandInfo = nitf_BandInfo_construct(&e);
        assert(cBandInfo);

        nitf::BandInfo info(cBandInfo);

        std::cout << (int)info.getNumLUTs() << std::endl;

        std::cout << "HERE!!!!!!!!!!!!!!!!!!!!" << std::endl;
        nitf::SubWindow sub;
        nitf::SubWindow sub2 = sub;
        sub.setNumRows(5);

        nitf::PixelSkip p(1, 1);
        sub.setDownSampler(p);
        sub.setDownSampler(p);
        sub.setDownSampler(p);
        sub.setDownSampler(p);

        nitf::PixelSkip p2(1, 1);
        sub.setDownSampler(p2);
        sub.setDownSampler(p);


        nitf_SubWindow* subw = nitf_SubWindow_construct(&e);
        nitf::SubWindow sub3(subw);
        std::cout << sub.getNumRows() <<  " == " << sub2.getNumRows() << std::endl;


        nitf::List list;
        nitf::List list2 = list;

        {
            nitf::FileHeader header;
            nitf::FileHeader header2(header.clone());
            //should be not equal
            std::cout << "Equal? " << (header == header2) << std::endl;
            nitf::FileHeader header3(header2);
            //these two should be equal
            std::cout << "Equal? " << (header3 == header2) << std::endl;
        }

        nitf::HashTable hash;

        nitf::Extensions extensions;
        {
            nitf::ImageSegment imageSeg;
            nitf::ImageSubheader imageSub;

            imageSeg.getSubheader().getImageId() = "Test Image";
            std::cout << imageSeg.getSubheader().getImageId().toString() << std::endl;
            nitf::Field f = imageSeg.getSubheader().getImageId();
            std::cout << f.toString() << std::endl;

            nitf::ImageSegment imageSeg2 = imageSeg.clone();
            nitf::ImageSubheader imageSub2(imageSub.clone());

            extensions = imageSub.getExtendedSection();
        }

        nitf::TextSegment tSeg;
        nitf::TextSubheader tSub;

        nitf::GraphicSegment gSeg;
        nitf::GraphicSubheader gSub;

        nitf::DESegment dSeg;
        nitf::DESubheader dSub;

        nitf::LabelSegment rSeg;
        nitf::LabelSubheader rSub;

        nitf::TRE tre("JITCID");
        //tre.print();
        std::cout << "HERE!!!!!" << std::endl;

        nitf::Reader reader;
        nitf::Writer writer;


        //open a file
        sys::OS os;
        std::vector< std::string > files;
        for (int i = 1; i < argc; ++i)
        {
            if (!os.exists(argv[i]))
                std::cout << "Error -> File does not exist: " << argv[i] << std::endl;
            else
                files.push_back(argv[i]);
        }

        for (std::vector< std::string >::iterator it = files.begin(); it != files.end(); ++it)
        {
            nitf::IOHandle handle(*it);
            nitf::Reader rdr;
            nitf::Record rec = rdr.read(handle);

            std::cout << "CODEWORDS: " << rec.getHeader().getSecurityGroup().getCodewords().toString() << std::endl;
            rec.getHeader().getSecurityGroup().getCodewords() = "TEST";
            std::cout << "CODEWORDS: " << rec.getHeader().getSecurityGroup().getCodewords().toString() << std::endl;
            nitf::FileSecurity security;
            rec.getHeader().setSecurityGroup(security);
            std::cout << "CODEWORDS: " << rec.getHeader().getSecurityGroup().getCodewords().toString() << std::endl;
            std::cout << "Num Images: " << rec.getImages().getSize() << std::endl;
        }

        nitf_SubWindow_destruct(&subw);
        nitf_Field_destruct(&cField);
        nitf_BandInfo_destruct(&cBandInfo);
    }
    catch(except::Exception& ex)
    {
        std::cerr << "ERROR: " << ex.getMessage() << std::endl;
        return 1;
    }

    return 0;
}
예제 #2
0
// Virtual functions
void NtpTest::Run( std::ostream & p_Trace )
{
	std::cout << "-------------------------------------------" << std::endl;
	std::cout << "Starting NTP test." << std::endl;

	// Open a ntp client
	Bit::Ntp ntp( 0, 123 );

	// Assert a ntp header
	Bit::Ntp::Header header1( Bit::Ntp::Header::NoWarning, 4, Bit::Ntp::Header::Client );
	TestAssert( header1.GetLeapIndicator( ) == Bit::Ntp::Header::NoWarning );
	TestAssert( header1.GetVersion( ) == 4 );
	TestAssert( header1.GetMode( ) == Bit::Ntp::Header::Client );

	// Assert the ntp set and get functions
	Bit::Ntp::Header header2;
	header2.SetLeapIndicator( Bit::Ntp::Header::Remove );
	header2.SetVersion( 5 );
	header2.SetMode( Bit::Ntp::Header::Server );
	TestAssert( header2.GetLeapIndicator( ) == Bit::Ntp::Header::Remove );
	TestAssert( header2.GetVersion( ) == 5 );
	TestAssert( header2.GetMode( ) == Bit::Ntp::Header::Server );

	// Send request to NTP server
	Bit::Address serverAddress( "0.europe.pool.ntp.org" );
	ntp.SendRequest( header1, serverAddress );
	std::cout << "Sent request." << std::endl;

	// Assert Receive response from NTP server
	Bit::Ntp::Header header3( Bit::Ntp::Header::NoWarning, 4, Bit::Ntp::Header::Client );
	TestAssert( ntp.ReceiveResponse( header3, serverAddress ) == true );
	std::cout << "Received response:" << std::endl;

	// Print the response
	std::cout << " Leap: "				<< (Bit::Uint32)header3.GetLeapIndicator( ) << std::endl;
	std::cout << " Version: "			<< (Bit::Uint32)header3.GetVersion( ) << std::endl;
	std::cout << " Mode: "				<< (Bit::Uint32)header3.GetMode( ) << std::endl;
	std::cout << " Stratum: "			<< (Bit::Uint32)header3.GetStratum( ) << std::endl;
	std::cout << " Polling interval: "	<< (Bit::Uint32)header3.GetPollInterval( ) << std::endl;
	std::cout << " Precision: "			<< (Bit::Uint32)header3.GetPrecision( ) << std::endl;
	std::cout << " Root delay: "		<< header3.GetRootDelay( ) << std::endl;
	std::cout << " Root dispersion: "	<< header3.GetRootDispersion( ) << std::endl;
	Bit::Address address( header3.GetReferenceClock( ) );
	std::cout << " Referense address: "	<< (int)address.GetA( ) << "."
								<< (int)address.GetB( ) << "."
								<< (int)address.GetC( ) << "."
								<< (int)address.GetD( ) << std::endl;
	std::cout << std::endl;
	std::cout	<< " Reference time       : " << header3.GetReferenceTimestamp( ).GetTimeString( )
				<< " ("	<< static_cast<Bit::Float64>( header3.GetReferenceTimestamp( ).GetFractions( ) ) / static_cast<Bit::Float64>( 0xFFFFFFFF ) <<  ")"  << std::endl;
	std::cout << " Reference local time : " << header3.GetTransmitTimestamp( ).GetLocalTimeString( )
				<< " ("	<< static_cast<Bit::Float64>( header3.GetReferenceTimestamp( ).GetFractions( ) ) / static_cast<Bit::Float64>( 0xFFFFFFFF ) <<  ")"  << std::endl;
	std::cout << std::endl;
	std::cout << " Origin time       : " << header3.GetOriginateTimestamp( ).GetTimeString( )
				<< " ("	<< static_cast<Bit::Float64>( header3.GetOriginateTimestamp( ).GetFractions( ) ) / static_cast<Bit::Float64>( 0xFFFFFFFF ) <<  ")"  << std::endl;
	std::cout << " Origin local time : " << header3.GetOriginateTimestamp( ).GetLocalTimeString( )
				<< " ("	<< static_cast<Bit::Float64>( header3.GetOriginateTimestamp( ).GetFractions( ) ) / static_cast<Bit::Float64>( 0xFFFFFFFF ) <<  ")"  << std::endl;
	std::cout << std::endl;
	std::cout << " Receive time       : " << header3.GetReceiveTimestamp( ).GetTimeString( )
				<< " ("	<< static_cast<Bit::Float64>( header3.GetReceiveTimestamp( ).GetFractions( ) ) / static_cast<Bit::Float64>( 0xFFFFFFFF ) <<  ")"  << std::endl;
	std::cout << " Receive local time : " << header3.GetReceiveTimestamp( ).GetLocalTimeString( )
				<< " ("	<< static_cast<Bit::Float64>( header3.GetReceiveTimestamp( ).GetFractions( ) ) / static_cast<Bit::Float64>( 0xFFFFFFFF ) <<  ")"  << std::endl;
	std::cout << std::endl;
	std::cout << " Transmit time       : " << header3.GetTransmitTimestamp( ).GetTimeString( )
				<< " ("	<< static_cast<Bit::Float64>( header3.GetTransmitTimestamp( ).GetFractions( ) ) / static_cast<Bit::Float64>( 0xFFFFFFFF ) <<  ")"  << std::endl;
	std::cout << " Transmit local time : " << header3.GetTransmitTimestamp( ).GetLocalTimeString( )
				<< " ("	<< static_cast<Bit::Float64>( header3.GetTransmitTimestamp( ).GetFractions( ) ) / static_cast<Bit::Float64>( 0xFFFFFFFF ) <<  ")"  << std::endl;
	std::cout << std::endl;
	

	// Close the ntp client
	ntp.Close( );
	
	// Print the finish text
	std::cout << "Finished NTP Test." << std::endl;
	std::cout << "-------------------------------------------" << std::endl;
	
}