Ice Sheet System Model  4.18
Code documentation
KML_Folder.cpp
Go to the documentation of this file.
1 
5 /*Headers:*/
6 /*{{{*/
7 #ifdef HAVE_CONFIG_H
8  #include <config.h>
9 #else
10 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
11 #endif
12 
13 #include "./KML_Folder.h"
14 #include "./KMLFileReadUtils.h"
15 #include "../shared/shared.h"
16 /*}}}*/
17 
18 /*Constructors/destructor/copy*/
20 
21  ;
22 
23 }
24 /*}}}*/
26 
27  ;
28 
29 }
30 /*}}}*/
31 
32 /*Other*/
33 void KML_Folder::Echo(){/*{{{*/
34 
35  bool flag=true;
36 
37  if(flag) _printf0_("KML_Folder:\n");
39 
40  return;
41 }
42 /*}}}*/
43 void KML_Folder::DeepEcho(){/*{{{*/
44 
45  char indent[81]="";
46 
47  KML_Folder::DeepEcho(indent);
48 
49  return;
50 }
51 /*}}}*/
52 void KML_Folder::DeepEcho(const char* indent){/*{{{*/
53 
54  bool flag=true;
55 
56  if(flag) _printf0_(indent << "KML_Folder:\n");
58 
59  return;
60 }
61 /*}}}*/
62 void KML_Folder::Write(FILE* filout,const char* indent){/*{{{*/
63 
64  fprintf(filout,"%s<Folder",indent);
65  WriteAttrib(filout," ");
66  fprintf(filout,">\n");
67  WriteCommnt(filout,indent);
68 
69  KML_Container::Write(filout,indent);
70 
71  fprintf(filout,"%s</Folder>\n",indent);
72 
73  return;
74 }
75 /*}}}*/
76 void KML_Folder::Read(FILE* fid,char* kstr){/*{{{*/
77 
78  char* kstri;
79  int ncom=0;
80  char** pcom=NULL;
81 
82 /* get object attributes and check for solo tag */
83 
84  if (KMLFileTagAttrib(this,
85  kstr))
86  return;
87 
88 /* loop over and process fields within opening and closing tags */
89 
90  while((kstri=KMLFileToken(fid, &ncom,&pcom))){
91  if (!strncmp(kstri,"</Folder", 8)) {
92  xDelete<char>(kstri);
93  break;
94  }
95  else if (!strncmp(kstri,"</",2))
96  {_error_("KML_Folder::Read -- Unexpected closing tag " << kstri << ".\n");}
97  else if (strncmp(kstri,"<",1))
98  {_error_("KML_Folder::Read -- Unexpected field \"" << kstri << "\".\n");}
99 
100  else if (!strncmp(kstri,"<",1))
101  KML_Container::Read(fid,kstri);
102 
103  xDelete<char>(kstri);
104  }
105 
106  this->AddCommnt(ncom,pcom);
107 
108  for (ncom=ncom; ncom>0; ncom--) xDelete<char>(pcom[ncom-1]);
109  xDelete<char*>(pcom);
110 
111  return;
112 }
113 /*}}}*/
KML_Container::Echo
void Echo()
Definition: KML_Container.cpp:40
_printf0_
#define _printf0_(StreamArgs)
Definition: Print.h:29
KML_Object::WriteAttrib
virtual void WriteAttrib(FILE *fid, const char *indent)
Definition: KML_Object.cpp:288
KMLFileReadUtils.h
: header file for kml file reading utilities.
KMLFileTagAttrib
int KMLFileTagAttrib(KML_Object *kobj, char *ktag)
Definition: KMLFileReadUtils.cpp:287
KML_Container::DeepEcho
void DeepEcho()
Definition: KML_Container.cpp:51
KML_Folder.h
: header file for kml_folder object
KML_Folder::Read
void Read(FILE *fid, char *kstr)
Definition: KML_Folder.cpp:76
KML_Folder::Echo
void Echo()
Definition: KML_Folder.cpp:33
KMLFileToken
char * KMLFileToken(FILE *fid, int *pncom=NULL, char ***ppcom=NULL)
Definition: KMLFileReadUtils.cpp:18
KML_Folder::~KML_Folder
~KML_Folder()
Definition: KML_Folder.cpp:25
KML_Folder::KML_Folder
KML_Folder()
Definition: KML_Folder.cpp:19
KML_Folder::Write
void Write(FILE *fid, const char *indent)
Definition: KML_Folder.cpp:62
KML_Container::Read
void Read(FILE *fid, char *kstr)
Definition: KML_Container.cpp:104
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
KML_Folder::DeepEcho
void DeepEcho()
Definition: KML_Folder.cpp:43
KML_Object::AddCommnt
virtual void AddCommnt(int ncom, char **pcom)
Definition: KML_Object.cpp:301
KML_Object::WriteCommnt
virtual void WriteCommnt(FILE *fid, const char *indent)
Definition: KML_Object.cpp:326
KML_Container::Write
void Write(FILE *fid, const char *indent)
Definition: KML_Container.cpp:85