mirror of https://github.com/sipwise/kamailio.git
commit
5432ed5fd4
@ -1,301 +1,301 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:simpleType name="tPriority" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tProfilePartIndicator" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="1"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">REGISTERED</label>
|
||||
<definition xml:lang="en">iFC is part of the registered profile</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">UNREGISTERED</label>
|
||||
<definition xml:lang="en">iFC is part of the unregistered profile</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSharedIFCSetID" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tGroupID" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tRegistrationType" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="2"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">INITIAL_REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to initial registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">RE-REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to re-registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">DE-REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to de-registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tDefaultHandling" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="1"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">SESSION_CONTINUED</label>
|
||||
<definition xml:lang="en">Session Continued</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">SESSION_TERMINATED</label>
|
||||
<definition xml:lang="en">Session Terminated</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tDirectionOfRequest" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="3"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">ORIGINATING_SESSION</label>
|
||||
<definition xml:lang="en">Originating Session</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">TERMINATING_REGISTERED</label>
|
||||
<definition xml:lang="en">Terminating Session for registered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">TERMINATING_UNREGISTERED</label>
|
||||
<definition xml:lang="en">Terminating Session for unregistered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="3">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">ORIGINATING_UNREGISTERED</label>
|
||||
<definition xml:lang="en">Originating Session for an unregistered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tPrivateID" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSIP_URL" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tTEL_URL" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tIdentity" final="list restriction">
|
||||
<xs:union memberTypes="tSIP_URL tTEL_URL"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tIdentityType" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="2"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">PUBLIC_USER_IDENTITY</label>
|
||||
<definition xml:lang="en">Identity is a Public User Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">DISTINCT_PSI</label>
|
||||
<definition xml:lang="en">Identity is a distinct Public Service Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">WILDCARDED_PSI</label>
|
||||
<definition xml:lang="en">Identity matches a wildcarded Public Service Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="tPublicIdentityExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="IdentityType" type="tIdentityType" minOccurs="0"/>
|
||||
<xs:element name="WildcardedPSI" type="xs:anyURI" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="tServiceInfo" final="list restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tString" final="list restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tBool">
|
||||
<xs:restriction base="xs:boolean"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSubscribedMediaProfileId" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="tExtension">
|
||||
<xs:sequence>
|
||||
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tServiceProfileExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="SharedIFCSetID" type="tSharedIFCSetID" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSePoTriExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="RegistrationType" type="tRegistrationType" minOccurs="0" maxOccurs="2"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tIMSSubscription">
|
||||
<xs:sequence>
|
||||
<xs:element name="PrivateID" type="tPrivateID"/>
|
||||
<xs:element name="ServiceProfile" type="tServiceProfile" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tServiceProfile">
|
||||
<xs:sequence>
|
||||
<xs:element name="PublicIdentity" type="tPublicIdentity" maxOccurs="unbounded"/>
|
||||
<xs:element name="CoreNetworkServicesAuthorization" type="tCoreNetworkServicesAuthorization" minOccurs="0"/>
|
||||
<xs:element name="InitialFilterCriteria" type="tInitialFilterCriteria" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tServiceProfileExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tCoreNetworkServicesAuthorization">
|
||||
<xs:sequence>
|
||||
<xs:element name="SubscribedMediaProfileId" type="tSubscribedMediaProfileId" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tInitialFilterCriteria">
|
||||
<xs:sequence>
|
||||
<xs:element name="Priority" type="tPriority"/>
|
||||
<xs:element name="TriggerPoint" type="tTrigger" minOccurs="0"/>
|
||||
<xs:element name="ApplicationServer" type="tApplicationServer"/>
|
||||
<xs:element name="ProfilePartIndicator" type="tProfilePartIndicator" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tTrigger">
|
||||
<xs:sequence>
|
||||
<xs:element name="ConditionTypeCNF" type="tBool"/>
|
||||
<xs:element name="SPT" type="tSePoTri" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSePoTri">
|
||||
<xs:sequence>
|
||||
<xs:element name="ConditionNegated" type="tBool" default="0" minOccurs="0"/>
|
||||
<xs:element name="Group" type="tGroupID" maxOccurs="unbounded"/>
|
||||
<xs:choice>
|
||||
<xs:element name="RequestURI" type="tString"/>
|
||||
<xs:element name="Method" type="tString"/>
|
||||
<xs:element name="SIPHeader" type="tHeader"/>
|
||||
<xs:element name="SessionCase" type="tDirectionOfRequest"/>
|
||||
<xs:element name="SessionDescription" type="tSessionDescription"/>
|
||||
</xs:choice>
|
||||
<xs:element name="Extension" type="tSePoTriExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tHeader">
|
||||
<xs:sequence>
|
||||
<xs:element name="Header" type="tString"/>
|
||||
<xs:element name="Content" type="tString" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSessionDescription">
|
||||
<xs:sequence>
|
||||
<xs:element name="Line" type="tString"/>
|
||||
<xs:element name="Content" type="tString" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tApplicationServer">
|
||||
<xs:sequence>
|
||||
<xs:element name="ServerName" type="tSIP_URL"/>
|
||||
<xs:element name="DefaultHandling" type="tDefaultHandling" minOccurs="0"/>
|
||||
<xs:element name="ServiceInfo" type="tServiceInfo" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tPublicIdentity">
|
||||
<xs:sequence>
|
||||
<xs:element name="BarringIndication" type="tBool" default="0" minOccurs="0"/>
|
||||
<xs:element name="Identity" type="tIdentity"/>
|
||||
<xs:element name="Extension" type="tPublicIdentityExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="IMSSubscription" type="tIMSSubscription"/>
|
||||
</xs:schema>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:simpleType name="tPriority" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tProfilePartIndicator" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="1"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">REGISTERED</label>
|
||||
<definition xml:lang="en">iFC is part of the registered profile</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">UNREGISTERED</label>
|
||||
<definition xml:lang="en">iFC is part of the unregistered profile</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSharedIFCSetID" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tGroupID" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tRegistrationType" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="2"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">INITIAL_REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to initial registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">RE-REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to re-registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">DE-REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to de-registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tDefaultHandling" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="1"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">SESSION_CONTINUED</label>
|
||||
<definition xml:lang="en">Session Continued</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">SESSION_TERMINATED</label>
|
||||
<definition xml:lang="en">Session Terminated</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tDirectionOfRequest" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="3"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">ORIGINATING_SESSION</label>
|
||||
<definition xml:lang="en">Originating Session</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">TERMINATING_REGISTERED</label>
|
||||
<definition xml:lang="en">Terminating Session for registered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">TERMINATING_UNREGISTERED</label>
|
||||
<definition xml:lang="en">Terminating Session for unregistered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="3">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">ORIGINATING_UNREGISTERED</label>
|
||||
<definition xml:lang="en">Originating Session for an unregistered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tPrivateID" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSIP_URL" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tTEL_URL" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tIdentity" final="list restriction">
|
||||
<xs:union memberTypes="tSIP_URL tTEL_URL"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tIdentityType" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="2"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">PUBLIC_USER_IDENTITY</label>
|
||||
<definition xml:lang="en">Identity is a Public User Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">DISTINCT_PSI</label>
|
||||
<definition xml:lang="en">Identity is a distinct Public Service Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">WILDCARDED_PSI</label>
|
||||
<definition xml:lang="en">Identity matches a wildcarded Public Service Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="tPublicIdentityExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="IdentityType" type="tIdentityType" minOccurs="0"/>
|
||||
<xs:element name="WildcardedPSI" type="xs:anyURI" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="tServiceInfo" final="list restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tString" final="list restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tBool">
|
||||
<xs:restriction base="xs:boolean"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSubscribedMediaProfileId" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="tExtension">
|
||||
<xs:sequence>
|
||||
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tServiceProfileExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="SharedIFCSetID" type="tSharedIFCSetID" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSePoTriExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="RegistrationType" type="tRegistrationType" minOccurs="0" maxOccurs="2"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tIMSSubscription">
|
||||
<xs:sequence>
|
||||
<xs:element name="PrivateID" type="tPrivateID"/>
|
||||
<xs:element name="ServiceProfile" type="tServiceProfile" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tServiceProfile">
|
||||
<xs:sequence>
|
||||
<xs:element name="PublicIdentity" type="tPublicIdentity" maxOccurs="unbounded"/>
|
||||
<xs:element name="CoreNetworkServicesAuthorization" type="tCoreNetworkServicesAuthorization" minOccurs="0"/>
|
||||
<xs:element name="InitialFilterCriteria" type="tInitialFilterCriteria" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tServiceProfileExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tCoreNetworkServicesAuthorization">
|
||||
<xs:sequence>
|
||||
<xs:element name="SubscribedMediaProfileId" type="tSubscribedMediaProfileId" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tInitialFilterCriteria">
|
||||
<xs:sequence>
|
||||
<xs:element name="Priority" type="tPriority"/>
|
||||
<xs:element name="TriggerPoint" type="tTrigger" minOccurs="0"/>
|
||||
<xs:element name="ApplicationServer" type="tApplicationServer"/>
|
||||
<xs:element name="ProfilePartIndicator" type="tProfilePartIndicator" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tTrigger">
|
||||
<xs:sequence>
|
||||
<xs:element name="ConditionTypeCNF" type="tBool"/>
|
||||
<xs:element name="SPT" type="tSePoTri" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSePoTri">
|
||||
<xs:sequence>
|
||||
<xs:element name="ConditionNegated" type="tBool" default="0" minOccurs="0"/>
|
||||
<xs:element name="Group" type="tGroupID" maxOccurs="unbounded"/>
|
||||
<xs:choice>
|
||||
<xs:element name="RequestURI" type="tString"/>
|
||||
<xs:element name="Method" type="tString"/>
|
||||
<xs:element name="SIPHeader" type="tHeader"/>
|
||||
<xs:element name="SessionCase" type="tDirectionOfRequest"/>
|
||||
<xs:element name="SessionDescription" type="tSessionDescription"/>
|
||||
</xs:choice>
|
||||
<xs:element name="Extension" type="tSePoTriExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tHeader">
|
||||
<xs:sequence>
|
||||
<xs:element name="Header" type="tString"/>
|
||||
<xs:element name="Content" type="tString" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSessionDescription">
|
||||
<xs:sequence>
|
||||
<xs:element name="Line" type="tString"/>
|
||||
<xs:element name="Content" type="tString" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tApplicationServer">
|
||||
<xs:sequence>
|
||||
<xs:element name="ServerName" type="tSIP_URL"/>
|
||||
<xs:element name="DefaultHandling" type="tDefaultHandling" minOccurs="0"/>
|
||||
<xs:element name="ServiceInfo" type="tServiceInfo" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tPublicIdentity">
|
||||
<xs:sequence>
|
||||
<xs:element name="BarringIndication" type="tBool" default="0" minOccurs="0"/>
|
||||
<xs:element name="Identity" type="tIdentity"/>
|
||||
<xs:element name="Extension" type="tPublicIdentityExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="IMSSubscription" type="tIMSSubscription"/>
|
||||
</xs:schema>
|
||||
|
||||
@ -1,43 +1,43 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
|
||||
|
||||
<!-- This is a manifest file to start, stop or restart the server automatically at
|
||||
the Solaris 10 bootup. Setup and usage:
|
||||
cp kamailio-manifest.xml to /var/svc/manifest/network/kamailio.xml
|
||||
chmod 444 kamailio.xml
|
||||
svccg -v import kamailio.xml
|
||||
and finally enable the server to be a SMF service:
|
||||
svcadm enable kamailio -->
|
||||
|
||||
<service_bundle type='manifest' name='kamailio'>
|
||||
<service name='network/kamailio' type='service' version='1'>
|
||||
<create_default_instance enabled='false' />
|
||||
<single_instance/>
|
||||
|
||||
<dependency name='multi-user' grouping='require_all' restart_on='none' type='service'>
|
||||
<service_fmri value='svc:/milestone/multi-user' />
|
||||
</dependency>
|
||||
|
||||
<dependency name='multi-user-server' grouping='require_all' restart_on='none' type='service'>
|
||||
<service_fmri value='svc:/milestone/multi-user-server' />
|
||||
</dependency>
|
||||
|
||||
<dependency name='cswmysql5' grouping='require_all' restart_on='none' type='service'>
|
||||
<!-- adapt if you use another mysql version -->
|
||||
<service_fmri value='svc:/network/cswmysql5:default' />
|
||||
</dependency>
|
||||
|
||||
<exec_method type='method' name='start' exec='/sbin/kamctl start' timeout_seconds='30' />
|
||||
|
||||
<exec_method type='method' name='stop' exec='/sbin/kamctl stop' timeout_seconds='60' />
|
||||
|
||||
<exec_method type='method' name='restart' exec='/sbin/kamctl restart' timeout_seconds='-1' />
|
||||
|
||||
<stability value='Unstable' />
|
||||
<template>
|
||||
<common_name>
|
||||
<loctext xml:lang='C'> Kamailio </loctext>
|
||||
</common_name>
|
||||
</template>
|
||||
</service>
|
||||
</service_bundle>
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
|
||||
|
||||
<!-- This is a manifest file to start, stop or restart the server automatically at
|
||||
the Solaris 10 bootup. Setup and usage:
|
||||
cp kamailio-manifest.xml to /var/svc/manifest/network/kamailio.xml
|
||||
chmod 444 kamailio.xml
|
||||
svccg -v import kamailio.xml
|
||||
and finally enable the server to be a SMF service:
|
||||
svcadm enable kamailio -->
|
||||
|
||||
<service_bundle type='manifest' name='kamailio'>
|
||||
<service name='network/kamailio' type='service' version='1'>
|
||||
<create_default_instance enabled='false' />
|
||||
<single_instance/>
|
||||
|
||||
<dependency name='multi-user' grouping='require_all' restart_on='none' type='service'>
|
||||
<service_fmri value='svc:/milestone/multi-user' />
|
||||
</dependency>
|
||||
|
||||
<dependency name='multi-user-server' grouping='require_all' restart_on='none' type='service'>
|
||||
<service_fmri value='svc:/milestone/multi-user-server' />
|
||||
</dependency>
|
||||
|
||||
<dependency name='cswmysql5' grouping='require_all' restart_on='none' type='service'>
|
||||
<!-- adapt if you use another mysql version -->
|
||||
<service_fmri value='svc:/network/cswmysql5:default' />
|
||||
</dependency>
|
||||
|
||||
<exec_method type='method' name='start' exec='/sbin/kamctl start' timeout_seconds='30' />
|
||||
|
||||
<exec_method type='method' name='stop' exec='/sbin/kamctl stop' timeout_seconds='60' />
|
||||
|
||||
<exec_method type='method' name='restart' exec='/sbin/kamctl restart' timeout_seconds='-1' />
|
||||
|
||||
<stability value='Unstable' />
|
||||
<template>
|
||||
<common_name>
|
||||
<loctext xml:lang='C'> Kamailio </loctext>
|
||||
</common_name>
|
||||
</template>
|
||||
</service>
|
||||
</service_bundle>
|
||||
|
||||
@ -1,131 +1,131 @@
|
||||
# Microsoft Developer Studio Project File - Name="sqstdlib" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Static Library" 0x0104
|
||||
|
||||
CFG=sqstdlib - Win32 Release
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "sqstdlib.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "sqstdlib.mak" CFG="sqstdlib - Win32 Release"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "sqstdlib - Win32 Release" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "sqstdlib - Win32 Debug" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_LocalPath ".."
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "sqstdlib - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
||||
# ADD RSC /l 0x410 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib\sqstdlib.lib"
|
||||
|
||||
!ELSEIF "$(CFG)" == "sqstdlib - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
||||
# ADD RSC /l 0x410 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib\sqstdlib.lib"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "sqstdlib - Win32 Release"
|
||||
# Name "sqstdlib - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdblob.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdio.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdmath.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdrex.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdstream.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdstring.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdaux.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdsystem.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdblobimpl.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdstream.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
# Microsoft Developer Studio Project File - Name="sqstdlib" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Static Library" 0x0104
|
||||
|
||||
CFG=sqstdlib - Win32 Release
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "sqstdlib.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "sqstdlib.mak" CFG="sqstdlib - Win32 Release"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "sqstdlib - Win32 Release" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "sqstdlib - Win32 Debug" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_LocalPath ".."
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "sqstdlib - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
||||
# ADD RSC /l 0x410 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib\sqstdlib.lib"
|
||||
|
||||
!ELSEIF "$(CFG)" == "sqstdlib - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
||||
# ADD RSC /l 0x410 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib\sqstdlib.lib"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "sqstdlib - Win32 Release"
|
||||
# Name "sqstdlib - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdblob.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdio.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdmath.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdrex.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdstream.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdstring.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdaux.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdsystem.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdblobimpl.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstdstream.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
|
||||
@ -1,302 +1,302 @@
|
||||
# Microsoft Developer Studio Project File - Name="squirrel" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Static Library" 0x0104
|
||||
|
||||
CFG=squirrel - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "squirrel.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "squirrel.mak" CFG="squirrel - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "squirrel - Win32 Release" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "squirrel - Win32 Debug" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_LocalPath ".."
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "GARBAGE_COLLECTOR" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
||||
# ADD RSC /l 0x410 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib\squirrel.lib"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
||||
# ADD RSC /l 0x410 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib\squirrel.lib"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "squirrel - Win32 Release"
|
||||
# Name "squirrel - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqapi.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqbaselib.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqcompiler.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqdebug.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqfuncstate.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqlexer.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqmem.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqobject.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstate.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqtable.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqclass.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqvm.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqarray.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqclosure.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqcompiler.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqfuncproto.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqfuncstate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqlexer.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqobject.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqopcodes.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqpcheader.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstring.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqtable.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\squserdata.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\squtils.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqclass.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqvm.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
# Microsoft Developer Studio Project File - Name="squirrel" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Static Library" 0x0104
|
||||
|
||||
CFG=squirrel - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "squirrel.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "squirrel.mak" CFG="squirrel - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "squirrel - Win32 Release" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE "squirrel - Win32 Debug" (based on "Win32 (x86) Static Library")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_LocalPath ".."
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "GARBAGE_COLLECTOR" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x410 /d "NDEBUG"
|
||||
# ADD RSC /l 0x410 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib\squirrel.lib"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x410 /d "_DEBUG"
|
||||
# ADD RSC /l 0x410 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LIB32=link.exe -lib
|
||||
# ADD BASE LIB32 /nologo
|
||||
# ADD LIB32 /nologo /out:"..\lib\squirrel.lib"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "squirrel - Win32 Release"
|
||||
# Name "squirrel - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqapi.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqbaselib.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqcompiler.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqdebug.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqfuncstate.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqlexer.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqmem.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqobject.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstate.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqtable.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqclass.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqvm.cpp
|
||||
|
||||
!IF "$(CFG)" == "squirrel - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
|
||||
|
||||
# ADD CPP /YX"stdafx.h"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqarray.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqclosure.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqcompiler.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqfuncproto.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqfuncstate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqlexer.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqobject.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqopcodes.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqpcheader.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstate.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqstring.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqtable.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\squserdata.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\squtils.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqclass.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sqvm.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
|
||||
@ -1,301 +1,301 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:simpleType name="tPriority" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tProfilePartIndicator" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="1"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">REGISTERED</label>
|
||||
<definition xml:lang="en">iFC is part of the registered profile</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">UNREGISTERED</label>
|
||||
<definition xml:lang="en">iFC is part of the unregistered profile</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSharedIFCSetID" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tGroupID" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tRegistrationType" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="2"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">INITIAL_REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to initial registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">RE-REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to re-registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">DE-REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to de-registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tDefaultHandling" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="1"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">SESSION_CONTINUED</label>
|
||||
<definition xml:lang="en">Session Continued</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">SESSION_TERMINATED</label>
|
||||
<definition xml:lang="en">Session Terminated</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tDirectionOfRequest" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="3"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">ORIGINATING_SESSION</label>
|
||||
<definition xml:lang="en">Originating Session</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">TERMINATING_REGISTERED</label>
|
||||
<definition xml:lang="en">Terminating Session for registered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">TERMINATING_UNREGISTERED</label>
|
||||
<definition xml:lang="en">Terminating Session for unregistered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="3">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">ORIGINATING_UNREGISTERED</label>
|
||||
<definition xml:lang="en">Originating Session for an unregistered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tPrivateID" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSIP_URL" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tTEL_URL" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tIdentity" final="list restriction">
|
||||
<xs:union memberTypes="tSIP_URL tTEL_URL"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tIdentityType" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="2"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">PUBLIC_USER_IDENTITY</label>
|
||||
<definition xml:lang="en">Identity is a Public User Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">DISTINCT_PSI</label>
|
||||
<definition xml:lang="en">Identity is a distinct Public Service Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">WILDCARDED_PSI</label>
|
||||
<definition xml:lang="en">Identity matches a wildcarded Public Service Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="tPublicIdentityExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="IdentityType" type="tIdentityType" minOccurs="0"/>
|
||||
<xs:element name="WildcardedPSI" type="xs:anyURI" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="tServiceInfo" final="list restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tString" final="list restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tBool">
|
||||
<xs:restriction base="xs:boolean"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSubscribedMediaProfileId" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="tExtension">
|
||||
<xs:sequence>
|
||||
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tServiceProfileExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="SharedIFCSetID" type="tSharedIFCSetID" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSePoTriExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="RegistrationType" type="tRegistrationType" minOccurs="0" maxOccurs="2"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tIMSSubscription">
|
||||
<xs:sequence>
|
||||
<xs:element name="PrivateID" type="tPrivateID"/>
|
||||
<xs:element name="ServiceProfile" type="tServiceProfile" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tServiceProfile">
|
||||
<xs:sequence>
|
||||
<xs:element name="PublicIdentity" type="tPublicIdentity" maxOccurs="unbounded"/>
|
||||
<xs:element name="CoreNetworkServicesAuthorization" type="tCoreNetworkServicesAuthorization" minOccurs="0"/>
|
||||
<xs:element name="InitialFilterCriteria" type="tInitialFilterCriteria" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tServiceProfileExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tCoreNetworkServicesAuthorization">
|
||||
<xs:sequence>
|
||||
<xs:element name="SubscribedMediaProfileId" type="tSubscribedMediaProfileId" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tInitialFilterCriteria">
|
||||
<xs:sequence>
|
||||
<xs:element name="Priority" type="tPriority"/>
|
||||
<xs:element name="TriggerPoint" type="tTrigger" minOccurs="0"/>
|
||||
<xs:element name="ApplicationServer" type="tApplicationServer"/>
|
||||
<xs:element name="ProfilePartIndicator" type="tProfilePartIndicator" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tTrigger">
|
||||
<xs:sequence>
|
||||
<xs:element name="ConditionTypeCNF" type="tBool"/>
|
||||
<xs:element name="SPT" type="tSePoTri" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSePoTri">
|
||||
<xs:sequence>
|
||||
<xs:element name="ConditionNegated" type="tBool" default="0" minOccurs="0"/>
|
||||
<xs:element name="Group" type="tGroupID" maxOccurs="unbounded"/>
|
||||
<xs:choice>
|
||||
<xs:element name="RequestURI" type="tString"/>
|
||||
<xs:element name="Method" type="tString"/>
|
||||
<xs:element name="SIPHeader" type="tHeader"/>
|
||||
<xs:element name="SessionCase" type="tDirectionOfRequest"/>
|
||||
<xs:element name="SessionDescription" type="tSessionDescription"/>
|
||||
</xs:choice>
|
||||
<xs:element name="Extension" type="tSePoTriExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tHeader">
|
||||
<xs:sequence>
|
||||
<xs:element name="Header" type="tString"/>
|
||||
<xs:element name="Content" type="tString" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSessionDescription">
|
||||
<xs:sequence>
|
||||
<xs:element name="Line" type="tString"/>
|
||||
<xs:element name="Content" type="tString" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tApplicationServer">
|
||||
<xs:sequence>
|
||||
<xs:element name="ServerName" type="tSIP_URL"/>
|
||||
<xs:element name="DefaultHandling" type="tDefaultHandling" minOccurs="0"/>
|
||||
<xs:element name="ServiceInfo" type="tServiceInfo" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tPublicIdentity">
|
||||
<xs:sequence>
|
||||
<xs:element name="BarringIndication" type="tBool" default="0" minOccurs="0"/>
|
||||
<xs:element name="Identity" type="tIdentity"/>
|
||||
<xs:element name="Extension" type="tPublicIdentityExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="IMSSubscription" type="tIMSSubscription"/>
|
||||
</xs:schema>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
<xs:simpleType name="tPriority" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tProfilePartIndicator" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="1"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">REGISTERED</label>
|
||||
<definition xml:lang="en">iFC is part of the registered profile</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">UNREGISTERED</label>
|
||||
<definition xml:lang="en">iFC is part of the unregistered profile</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSharedIFCSetID" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tGroupID" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tRegistrationType" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="2"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">INITIAL_REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to initial registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">RE-REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to re-registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">DE-REGISTRATION</label>
|
||||
<definition xml:lang="en">Matches to REGISTER messages that are related to de-registration</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tDefaultHandling" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="1"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">SESSION_CONTINUED</label>
|
||||
<definition xml:lang="en">Session Continued</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">SESSION_TERMINATED</label>
|
||||
<definition xml:lang="en">Session Terminated</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tDirectionOfRequest" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:maxInclusive value="3"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">ORIGINATING_SESSION</label>
|
||||
<definition xml:lang="en">Originating Session</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">TERMINATING_REGISTERED</label>
|
||||
<definition xml:lang="en">Terminating Session for registered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">TERMINATING_UNREGISTERED</label>
|
||||
<definition xml:lang="en">Terminating Session for unregistered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="3">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">ORIGINATING_UNREGISTERED</label>
|
||||
<definition xml:lang="en">Originating Session for an unregistered user</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tPrivateID" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSIP_URL" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tTEL_URL" final="list restriction">
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tIdentity" final="list restriction">
|
||||
<xs:union memberTypes="tSIP_URL tTEL_URL"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tIdentityType" final="list restriction">
|
||||
<xs:restriction base="xs:unsignedByte">
|
||||
<xs:minInclusive value="0"/>
|
||||
<xs:maxInclusive value="2"/>
|
||||
<xs:enumeration value="0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">PUBLIC_USER_IDENTITY</label>
|
||||
<definition xml:lang="en">Identity is a Public User Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="1">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">DISTINCT_PSI</label>
|
||||
<definition xml:lang="en">Identity is a distinct Public Service Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
<xs:enumeration value="2">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<label xml:lang="en">WILDCARDED_PSI</label>
|
||||
<definition xml:lang="en">Identity matches a wildcarded Public Service Identity.</definition>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:enumeration>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="tPublicIdentityExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="IdentityType" type="tIdentityType" minOccurs="0"/>
|
||||
<xs:element name="WildcardedPSI" type="xs:anyURI" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="tServiceInfo" final="list restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tString" final="list restriction">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:minLength value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tBool">
|
||||
<xs:restriction base="xs:boolean"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="tSubscribedMediaProfileId" final="list restriction">
|
||||
<xs:restriction base="xs:int">
|
||||
<xs:minInclusive value="0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="tExtension">
|
||||
<xs:sequence>
|
||||
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tServiceProfileExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="SharedIFCSetID" type="tSharedIFCSetID" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSePoTriExtension">
|
||||
<xs:sequence>
|
||||
<xs:element name="RegistrationType" type="tRegistrationType" minOccurs="0" maxOccurs="2"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tIMSSubscription">
|
||||
<xs:sequence>
|
||||
<xs:element name="PrivateID" type="tPrivateID"/>
|
||||
<xs:element name="ServiceProfile" type="tServiceProfile" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tServiceProfile">
|
||||
<xs:sequence>
|
||||
<xs:element name="PublicIdentity" type="tPublicIdentity" maxOccurs="unbounded"/>
|
||||
<xs:element name="CoreNetworkServicesAuthorization" type="tCoreNetworkServicesAuthorization" minOccurs="0"/>
|
||||
<xs:element name="InitialFilterCriteria" type="tInitialFilterCriteria" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tServiceProfileExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tCoreNetworkServicesAuthorization">
|
||||
<xs:sequence>
|
||||
<xs:element name="SubscribedMediaProfileId" type="tSubscribedMediaProfileId" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tInitialFilterCriteria">
|
||||
<xs:sequence>
|
||||
<xs:element name="Priority" type="tPriority"/>
|
||||
<xs:element name="TriggerPoint" type="tTrigger" minOccurs="0"/>
|
||||
<xs:element name="ApplicationServer" type="tApplicationServer"/>
|
||||
<xs:element name="ProfilePartIndicator" type="tProfilePartIndicator" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tTrigger">
|
||||
<xs:sequence>
|
||||
<xs:element name="ConditionTypeCNF" type="tBool"/>
|
||||
<xs:element name="SPT" type="tSePoTri" maxOccurs="unbounded"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSePoTri">
|
||||
<xs:sequence>
|
||||
<xs:element name="ConditionNegated" type="tBool" default="0" minOccurs="0"/>
|
||||
<xs:element name="Group" type="tGroupID" maxOccurs="unbounded"/>
|
||||
<xs:choice>
|
||||
<xs:element name="RequestURI" type="tString"/>
|
||||
<xs:element name="Method" type="tString"/>
|
||||
<xs:element name="SIPHeader" type="tHeader"/>
|
||||
<xs:element name="SessionCase" type="tDirectionOfRequest"/>
|
||||
<xs:element name="SessionDescription" type="tSessionDescription"/>
|
||||
</xs:choice>
|
||||
<xs:element name="Extension" type="tSePoTriExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tHeader">
|
||||
<xs:sequence>
|
||||
<xs:element name="Header" type="tString"/>
|
||||
<xs:element name="Content" type="tString" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tSessionDescription">
|
||||
<xs:sequence>
|
||||
<xs:element name="Line" type="tString"/>
|
||||
<xs:element name="Content" type="tString" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tApplicationServer">
|
||||
<xs:sequence>
|
||||
<xs:element name="ServerName" type="tSIP_URL"/>
|
||||
<xs:element name="DefaultHandling" type="tDefaultHandling" minOccurs="0"/>
|
||||
<xs:element name="ServiceInfo" type="tServiceInfo" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="tPublicIdentity">
|
||||
<xs:sequence>
|
||||
<xs:element name="BarringIndication" type="tBool" default="0" minOccurs="0"/>
|
||||
<xs:element name="Identity" type="tIdentity"/>
|
||||
<xs:element name="Extension" type="tPublicIdentityExtension" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="IMSSubscription" type="tIMSSubscription"/>
|
||||
</xs:schema>
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
CC = gcc
|
||||
FILES = *.c ../netstring.c ../jsonrpc_global.c seatest/seatest.c
|
||||
OUT_EXE = test
|
||||
|
||||
build: $(FILES)
|
||||
$(CC) -std=gnu99 -pedantic -D TEST -o $(OUT_EXE) $(FILES) -lm -levent
|
||||
|
||||
clean:
|
||||
rm -f *.o core
|
||||
|
||||
rebuild: clean build
|
||||
CC = gcc
|
||||
FILES = *.c ../netstring.c ../jsonrpc_global.c seatest/seatest.c
|
||||
OUT_EXE = test
|
||||
|
||||
build: $(FILES)
|
||||
$(CC) -std=gnu99 -pedantic -D TEST -o $(OUT_EXE) $(FILES) -lm -levent
|
||||
|
||||
clean:
|
||||
rm -f *.o core
|
||||
|
||||
rebuild: clean build
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
Copyright (c) 2010 Keith Nicholas
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
Copyright (c) 2010 Keith Nicholas
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
@ -1,248 +1,248 @@
|
||||
#include "seatest.h"
|
||||
#include <string.h>
|
||||
#ifdef WIN32
|
||||
#include <conio.h>
|
||||
#include "windows.h"
|
||||
#else
|
||||
unsigned int GetTickCount() { return 0;}
|
||||
void _getch( void ) { }
|
||||
#endif
|
||||
|
||||
static int sea_tests_run = 0;
|
||||
static int sea_tests_passed = 0;
|
||||
static int sea_tests_failed = 0;
|
||||
static char* seatest_current_fixture;
|
||||
|
||||
static void (*seatest_suite_setup_func)( void ) = 0;
|
||||
static void (*seatest_suite_teardown_func)( void ) = 0;
|
||||
static void (*seatest_fixture_setup)( void ) = 0;
|
||||
static void (*seatest_fixture_teardown)( void ) = 0;
|
||||
|
||||
|
||||
|
||||
void suite_setup(void (*setup)( void ))
|
||||
{
|
||||
seatest_suite_setup_func = setup;
|
||||
}
|
||||
void suite_teardown(void (*teardown)( void ))
|
||||
{
|
||||
seatest_suite_teardown_func = teardown;
|
||||
}
|
||||
|
||||
void seatest_suite_setup( void )
|
||||
{
|
||||
if(seatest_suite_setup_func != 0) seatest_suite_setup_func();
|
||||
}
|
||||
|
||||
void seatest_suite_teardown( void )
|
||||
{
|
||||
if(seatest_suite_teardown_func != 0) seatest_suite_teardown_func();
|
||||
}
|
||||
|
||||
void fixture_setup(void (*setup)( void ))
|
||||
{
|
||||
seatest_fixture_setup = setup;
|
||||
}
|
||||
void fixture_teardown(void (*teardown)( void ))
|
||||
{
|
||||
seatest_fixture_teardown = teardown;
|
||||
}
|
||||
|
||||
void seatest_setup( void )
|
||||
{
|
||||
if(seatest_fixture_setup != 0) seatest_fixture_setup();
|
||||
}
|
||||
|
||||
void seatest_teardown( void )
|
||||
{
|
||||
if(seatest_fixture_teardown != 0) seatest_fixture_teardown();
|
||||
}
|
||||
|
||||
char* test_file_name(char* path)
|
||||
{
|
||||
char* file = path + strlen(path);
|
||||
while(file != path && *file!= '\\' ) file--;
|
||||
if(*file == '\\') file++;
|
||||
return file;
|
||||
}
|
||||
|
||||
static int seatest_fixture_tests_run;
|
||||
static int seatest_fixture_tests_failed;
|
||||
|
||||
void seatest_simple_test_result(int passed, char* reason, const char* function, unsigned int line)
|
||||
{
|
||||
if (!passed)
|
||||
{
|
||||
printf("%-20s Line %-5d %s\r\n", function, line, reason );
|
||||
sea_tests_failed++;
|
||||
}
|
||||
else
|
||||
{
|
||||
sea_tests_passed++;
|
||||
}
|
||||
}
|
||||
|
||||
void seatest_assert_true(int test, const char* function, unsigned int line)
|
||||
{
|
||||
seatest_simple_test_result(test, "Should of been true", function, line);
|
||||
|
||||
}
|
||||
|
||||
void seatest_assert_false(int test, const char* function, unsigned int line)
|
||||
{
|
||||
seatest_simple_test_result(!test, "Should of been false", function, line);
|
||||
}
|
||||
|
||||
|
||||
void seatest_assert_int_equal(int expected, int actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %d but was %d", expected, actual);
|
||||
seatest_simple_test_result(expected==actual, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_ulong_equal(unsigned long expected, unsigned long actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %lu but was %lu", expected, actual);
|
||||
seatest_simple_test_result(expected==actual, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_float_equal( float expected, float actual, float delta, const char* function, unsigned int line )
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
float result = expected-actual;
|
||||
sprintf(s, "Expected %f but was %f", expected, actual);
|
||||
if(result < 0.0) result = 0.0f - result;
|
||||
seatest_simple_test_result( result <= delta, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_double_equal( double expected, double actual, double delta, const char* function, unsigned int line )
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
double result = expected-actual;
|
||||
sprintf(s, "Expected %f but was %f", expected, actual);
|
||||
if(result < 0.0) result = 0.0 - result;
|
||||
seatest_simple_test_result( result <= delta, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_equal(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s but was %s", expected, actual);
|
||||
seatest_simple_test_result(strcmp(expected, actual)==0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_ends_with(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s to end with %s", actual, expected);
|
||||
seatest_simple_test_result(strcmp(expected, actual+(strlen(actual)-strlen(expected)))==0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_starts_with(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s to start with %s", actual, expected);
|
||||
seatest_simple_test_result(strncmp(expected, actual, strlen(expected))==0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_contains(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s to be in %s", expected, actual);
|
||||
seatest_simple_test_result(strstr(actual, expected)!=0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_doesnt_contain(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s not to have %s in it", actual, expected);
|
||||
seatest_simple_test_result(strstr(actual, expected)==0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_run_test(void)
|
||||
{
|
||||
sea_tests_run++;
|
||||
}
|
||||
|
||||
void seatest_header_printer(char* s, int length, char f)
|
||||
{
|
||||
int l = strlen(s);
|
||||
int d = (length- (l + 2)) / 2;
|
||||
int i;
|
||||
for(i = 0; i<d; i++) printf("%c",f);
|
||||
printf(" %s ", s);
|
||||
for(i = (d+l+2); i<length; i++) printf("%c",f);
|
||||
printf("\r\n");
|
||||
}
|
||||
|
||||
|
||||
void seatest_test_fixture_start(char* filepath)
|
||||
{
|
||||
seatest_current_fixture = test_file_name(filepath);
|
||||
seatest_header_printer(seatest_current_fixture, 50, '-');
|
||||
seatest_fixture_tests_failed = sea_tests_failed;
|
||||
seatest_fixture_tests_run = sea_tests_run;
|
||||
seatest_fixture_teardown = 0;
|
||||
seatest_fixture_setup = 0;
|
||||
}
|
||||
|
||||
void seatest_test_fixture_end()
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "%d run %d failed", sea_tests_run-seatest_fixture_tests_run, sea_tests_failed-seatest_fixture_tests_failed);
|
||||
seatest_header_printer(s, 50, ' ');
|
||||
printf("\r\n");
|
||||
}
|
||||
|
||||
static char* seatest_fixture_filter = 0;
|
||||
static char* seatest_test_filter = 0;
|
||||
|
||||
void fixture_filter(char* filter)
|
||||
{
|
||||
seatest_fixture_filter = filter;
|
||||
}
|
||||
|
||||
|
||||
void test_filter(char* filter)
|
||||
{
|
||||
seatest_test_filter = filter;
|
||||
}
|
||||
|
||||
|
||||
int seatest_should_run( char* fixture, char* test)
|
||||
{
|
||||
int run = 1;
|
||||
if(seatest_fixture_filter)
|
||||
{
|
||||
if(strncmp(seatest_fixture_filter, fixture, strlen(seatest_fixture_filter)) != 0) run = 0;
|
||||
}
|
||||
if(seatest_test_filter)
|
||||
{
|
||||
if(strncmp(seatest_test_filter, test, strlen(seatest_test_filter)) != 0) run = 0;
|
||||
}
|
||||
return run;
|
||||
}
|
||||
|
||||
int run_tests(void (*tests)(void))
|
||||
{
|
||||
unsigned long end;
|
||||
unsigned long start = GetTickCount();
|
||||
tests();
|
||||
end = GetTickCount();
|
||||
printf("\r\n\r\n==================SEATEST v%s====================\r\n\r\n", SEATEST_VERSION);
|
||||
if (sea_tests_failed > 0) {
|
||||
printf(" Failed\r\n");
|
||||
}
|
||||
else {
|
||||
printf(" ALL TESTS PASSED\r\n");
|
||||
}
|
||||
printf(" %d tests run\r\n", sea_tests_run);
|
||||
printf(" in %lu ms\r\n",end - start);
|
||||
printf("==================================================\r\n");
|
||||
|
||||
_getch();
|
||||
return sea_tests_failed == 0;
|
||||
}
|
||||
|
||||
#include "seatest.h"
|
||||
#include <string.h>
|
||||
#ifdef WIN32
|
||||
#include <conio.h>
|
||||
#include "windows.h"
|
||||
#else
|
||||
unsigned int GetTickCount() { return 0;}
|
||||
void _getch( void ) { }
|
||||
#endif
|
||||
|
||||
static int sea_tests_run = 0;
|
||||
static int sea_tests_passed = 0;
|
||||
static int sea_tests_failed = 0;
|
||||
static char* seatest_current_fixture;
|
||||
|
||||
static void (*seatest_suite_setup_func)( void ) = 0;
|
||||
static void (*seatest_suite_teardown_func)( void ) = 0;
|
||||
static void (*seatest_fixture_setup)( void ) = 0;
|
||||
static void (*seatest_fixture_teardown)( void ) = 0;
|
||||
|
||||
|
||||
|
||||
void suite_setup(void (*setup)( void ))
|
||||
{
|
||||
seatest_suite_setup_func = setup;
|
||||
}
|
||||
void suite_teardown(void (*teardown)( void ))
|
||||
{
|
||||
seatest_suite_teardown_func = teardown;
|
||||
}
|
||||
|
||||
void seatest_suite_setup( void )
|
||||
{
|
||||
if(seatest_suite_setup_func != 0) seatest_suite_setup_func();
|
||||
}
|
||||
|
||||
void seatest_suite_teardown( void )
|
||||
{
|
||||
if(seatest_suite_teardown_func != 0) seatest_suite_teardown_func();
|
||||
}
|
||||
|
||||
void fixture_setup(void (*setup)( void ))
|
||||
{
|
||||
seatest_fixture_setup = setup;
|
||||
}
|
||||
void fixture_teardown(void (*teardown)( void ))
|
||||
{
|
||||
seatest_fixture_teardown = teardown;
|
||||
}
|
||||
|
||||
void seatest_setup( void )
|
||||
{
|
||||
if(seatest_fixture_setup != 0) seatest_fixture_setup();
|
||||
}
|
||||
|
||||
void seatest_teardown( void )
|
||||
{
|
||||
if(seatest_fixture_teardown != 0) seatest_fixture_teardown();
|
||||
}
|
||||
|
||||
char* test_file_name(char* path)
|
||||
{
|
||||
char* file = path + strlen(path);
|
||||
while(file != path && *file!= '\\' ) file--;
|
||||
if(*file == '\\') file++;
|
||||
return file;
|
||||
}
|
||||
|
||||
static int seatest_fixture_tests_run;
|
||||
static int seatest_fixture_tests_failed;
|
||||
|
||||
void seatest_simple_test_result(int passed, char* reason, const char* function, unsigned int line)
|
||||
{
|
||||
if (!passed)
|
||||
{
|
||||
printf("%-20s Line %-5d %s\r\n", function, line, reason );
|
||||
sea_tests_failed++;
|
||||
}
|
||||
else
|
||||
{
|
||||
sea_tests_passed++;
|
||||
}
|
||||
}
|
||||
|
||||
void seatest_assert_true(int test, const char* function, unsigned int line)
|
||||
{
|
||||
seatest_simple_test_result(test, "Should of been true", function, line);
|
||||
|
||||
}
|
||||
|
||||
void seatest_assert_false(int test, const char* function, unsigned int line)
|
||||
{
|
||||
seatest_simple_test_result(!test, "Should of been false", function, line);
|
||||
}
|
||||
|
||||
|
||||
void seatest_assert_int_equal(int expected, int actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %d but was %d", expected, actual);
|
||||
seatest_simple_test_result(expected==actual, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_ulong_equal(unsigned long expected, unsigned long actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %lu but was %lu", expected, actual);
|
||||
seatest_simple_test_result(expected==actual, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_float_equal( float expected, float actual, float delta, const char* function, unsigned int line )
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
float result = expected-actual;
|
||||
sprintf(s, "Expected %f but was %f", expected, actual);
|
||||
if(result < 0.0) result = 0.0f - result;
|
||||
seatest_simple_test_result( result <= delta, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_double_equal( double expected, double actual, double delta, const char* function, unsigned int line )
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
double result = expected-actual;
|
||||
sprintf(s, "Expected %f but was %f", expected, actual);
|
||||
if(result < 0.0) result = 0.0 - result;
|
||||
seatest_simple_test_result( result <= delta, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_equal(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s but was %s", expected, actual);
|
||||
seatest_simple_test_result(strcmp(expected, actual)==0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_ends_with(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s to end with %s", actual, expected);
|
||||
seatest_simple_test_result(strcmp(expected, actual+(strlen(actual)-strlen(expected)))==0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_starts_with(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s to start with %s", actual, expected);
|
||||
seatest_simple_test_result(strncmp(expected, actual, strlen(expected))==0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_contains(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s to be in %s", expected, actual);
|
||||
seatest_simple_test_result(strstr(actual, expected)!=0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_assert_string_doesnt_contain(char* expected, char* actual, const char* function, unsigned int line)
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "Expected %s not to have %s in it", actual, expected);
|
||||
seatest_simple_test_result(strstr(actual, expected)==0, s, function, line);
|
||||
}
|
||||
|
||||
void seatest_run_test(void)
|
||||
{
|
||||
sea_tests_run++;
|
||||
}
|
||||
|
||||
void seatest_header_printer(char* s, int length, char f)
|
||||
{
|
||||
int l = strlen(s);
|
||||
int d = (length- (l + 2)) / 2;
|
||||
int i;
|
||||
for(i = 0; i<d; i++) printf("%c",f);
|
||||
printf(" %s ", s);
|
||||
for(i = (d+l+2); i<length; i++) printf("%c",f);
|
||||
printf("\r\n");
|
||||
}
|
||||
|
||||
|
||||
void seatest_test_fixture_start(char* filepath)
|
||||
{
|
||||
seatest_current_fixture = test_file_name(filepath);
|
||||
seatest_header_printer(seatest_current_fixture, 50, '-');
|
||||
seatest_fixture_tests_failed = sea_tests_failed;
|
||||
seatest_fixture_tests_run = sea_tests_run;
|
||||
seatest_fixture_teardown = 0;
|
||||
seatest_fixture_setup = 0;
|
||||
}
|
||||
|
||||
void seatest_test_fixture_end()
|
||||
{
|
||||
char s[SEATEST_PRINT_BUFFER_SIZE];
|
||||
sprintf(s, "%d run %d failed", sea_tests_run-seatest_fixture_tests_run, sea_tests_failed-seatest_fixture_tests_failed);
|
||||
seatest_header_printer(s, 50, ' ');
|
||||
printf("\r\n");
|
||||
}
|
||||
|
||||
static char* seatest_fixture_filter = 0;
|
||||
static char* seatest_test_filter = 0;
|
||||
|
||||
void fixture_filter(char* filter)
|
||||
{
|
||||
seatest_fixture_filter = filter;
|
||||
}
|
||||
|
||||
|
||||
void test_filter(char* filter)
|
||||
{
|
||||
seatest_test_filter = filter;
|
||||
}
|
||||
|
||||
|
||||
int seatest_should_run( char* fixture, char* test)
|
||||
{
|
||||
int run = 1;
|
||||
if(seatest_fixture_filter)
|
||||
{
|
||||
if(strncmp(seatest_fixture_filter, fixture, strlen(seatest_fixture_filter)) != 0) run = 0;
|
||||
}
|
||||
if(seatest_test_filter)
|
||||
{
|
||||
if(strncmp(seatest_test_filter, test, strlen(seatest_test_filter)) != 0) run = 0;
|
||||
}
|
||||
return run;
|
||||
}
|
||||
|
||||
int run_tests(void (*tests)(void))
|
||||
{
|
||||
unsigned long end;
|
||||
unsigned long start = GetTickCount();
|
||||
tests();
|
||||
end = GetTickCount();
|
||||
printf("\r\n\r\n==================SEATEST v%s====================\r\n\r\n", SEATEST_VERSION);
|
||||
if (sea_tests_failed > 0) {
|
||||
printf(" Failed\r\n");
|
||||
}
|
||||
else {
|
||||
printf(" ALL TESTS PASSED\r\n");
|
||||
}
|
||||
printf(" %d tests run\r\n", sea_tests_run);
|
||||
printf(" in %lu ms\r\n",end - start);
|
||||
printf("==================================================\r\n");
|
||||
|
||||
_getch();
|
||||
return sea_tests_failed == 0;
|
||||
}
|
||||
|
||||
|
||||
@ -1,74 +1,74 @@
|
||||
#ifndef SEATEST_H
|
||||
#define SEATEST_H
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
Defines
|
||||
*/
|
||||
|
||||
#define SEATEST_VERSION "0.5"
|
||||
#define SEATEST_PROJECT_HOME "http://code.google.com/p/seatest/"
|
||||
#define SEATEST_PRINT_BUFFER_SIZE 100000
|
||||
|
||||
/*
|
||||
Declarations
|
||||
*/
|
||||
|
||||
void seatest_test_fixture_start(char* filepath);
|
||||
void seatest_test_fixture_end( void );
|
||||
void seatest_simple_test_result(int passed, char* reason, const char* function, unsigned int line);
|
||||
void seatest_assert_true(int test, const char* function, unsigned int line);
|
||||
void seatest_assert_false(int test, const char* function, unsigned int line);
|
||||
void seatest_assert_int_equal(int expected, int actual, const char* function, unsigned int line);
|
||||
void seatest_assert_ulong_equal(unsigned long expected, unsigned long actual, const char* function, unsigned int line);
|
||||
void seatest_assert_float_equal(float expected, float actual, float delta, const char* function, unsigned int line);
|
||||
void seatest_assert_double_equal(double expected, double actual, double delta, const char* function, unsigned int line);
|
||||
void seatest_assert_string_equal(char* expected, char* actual, const char* function, unsigned int line);
|
||||
void seatest_assert_string_ends_with(char* expected, char* actual, const char* function, unsigned int line);
|
||||
void seatest_assert_string_starts_with(char* expected, char* actual, const char* function, unsigned int line);
|
||||
void seatest_assert_string_contains(char* expected, char* actual, const char* function, unsigned int line);
|
||||
void seatest_assert_string_doesnt_contain(char* expected, char* actual, const char* function, unsigned int line);
|
||||
int seatest_should_run( char* fixture, char* test);
|
||||
void seatest_run_test(void);
|
||||
void seatest_setup( void );
|
||||
void seatest_teardown( void );
|
||||
void seatest_suite_teardown( void );
|
||||
void seatest_suite_setup( void );
|
||||
|
||||
/*
|
||||
Assert Macros
|
||||
*/
|
||||
|
||||
#define assert_true(test) do { seatest_assert_true(test, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_false(test) do { seatest_assert_false(test, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_int_equal(expected, actual) do { seatest_assert_int_equal(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_ulong_equal(expected, actual) do { seatest_assert_ulong_equal(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_equal(expected, actual) do { seatest_assert_string_equal(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_n_array_equal(expected, actual, n) do { int seatest_count; for(seatest_count=0; seatest_count<n; seatest_count++) { char s_seatest[SEATEST_PRINT_BUFFER_SIZE]; sprintf(s_seatest,"Expected %d to be %d at position %d", actual[seatest_count], expected[seatest_count], seatest_count); seatest_simple_test_result((expected[seatest_count] == actual[seatest_count]), s_seatest, __FUNCTION__, __LINE__);} } while (0)
|
||||
#define assert_bit_set(bit_number, value) { seatest_simple_test_result(((1 << bit_number) & value), " Expected bit to be set" , __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_bit_not_set(bit_number, value) { seatest_simple_test_result(!((1 << bit_number) & value), " Expected bit not to to be set" , __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_bit_mask_matches(value, mask) { seatest_simple_test_result(((value & mask) == mask), " Expected all bits of mask to be set" , __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_fail(message) { seatest_simple_test_result(0, message, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_float_equal(expected, actual, delta) do { seatest_assert_float_equal(expected, actual, delta, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_double_equal(expected, actual, delta) do { seatest_assert_double_equal(expected, actual, delta, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_contains(expected, actual) do { seatest_assert_string_contains(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_doesnt_contain(expected, actual) do { seatest_assert_string_doesnt_contain(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_starts_with(expected, actual) do { seatest_assert_string_starts_with(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_ends_with(expected, actual) do { seatest_assert_string_ends_with(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
|
||||
/*
|
||||
Fixture / Test Management
|
||||
*/
|
||||
|
||||
void fixture_setup(void (*setup)( void ));
|
||||
void fixture_teardown(void (*teardown)( void ));
|
||||
#define run_test(test) do { if(seatest_should_run(__FILE__, #test)) {seatest_suite_setup(); seatest_setup(); test(); seatest_teardown(); seatest_suite_teardown(); seatest_run_test(); }} while (0)
|
||||
#define test_fixture_start() do { seatest_test_fixture_start(__FILE__); } while (0)
|
||||
#define test_fixture_end() do { seatest_test_fixture_end();} while (0)
|
||||
void fixture_filter(char* filter);
|
||||
void test_filter(char* filter);
|
||||
|
||||
int run_tests(void (*tests)(void));
|
||||
void suite_teardown(void (*teardown)( void ));
|
||||
void suite_setup(void (*setup)( void ));
|
||||
#endif
|
||||
#ifndef SEATEST_H
|
||||
#define SEATEST_H
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
Defines
|
||||
*/
|
||||
|
||||
#define SEATEST_VERSION "0.5"
|
||||
#define SEATEST_PROJECT_HOME "http://code.google.com/p/seatest/"
|
||||
#define SEATEST_PRINT_BUFFER_SIZE 100000
|
||||
|
||||
/*
|
||||
Declarations
|
||||
*/
|
||||
|
||||
void seatest_test_fixture_start(char* filepath);
|
||||
void seatest_test_fixture_end( void );
|
||||
void seatest_simple_test_result(int passed, char* reason, const char* function, unsigned int line);
|
||||
void seatest_assert_true(int test, const char* function, unsigned int line);
|
||||
void seatest_assert_false(int test, const char* function, unsigned int line);
|
||||
void seatest_assert_int_equal(int expected, int actual, const char* function, unsigned int line);
|
||||
void seatest_assert_ulong_equal(unsigned long expected, unsigned long actual, const char* function, unsigned int line);
|
||||
void seatest_assert_float_equal(float expected, float actual, float delta, const char* function, unsigned int line);
|
||||
void seatest_assert_double_equal(double expected, double actual, double delta, const char* function, unsigned int line);
|
||||
void seatest_assert_string_equal(char* expected, char* actual, const char* function, unsigned int line);
|
||||
void seatest_assert_string_ends_with(char* expected, char* actual, const char* function, unsigned int line);
|
||||
void seatest_assert_string_starts_with(char* expected, char* actual, const char* function, unsigned int line);
|
||||
void seatest_assert_string_contains(char* expected, char* actual, const char* function, unsigned int line);
|
||||
void seatest_assert_string_doesnt_contain(char* expected, char* actual, const char* function, unsigned int line);
|
||||
int seatest_should_run( char* fixture, char* test);
|
||||
void seatest_run_test(void);
|
||||
void seatest_setup( void );
|
||||
void seatest_teardown( void );
|
||||
void seatest_suite_teardown( void );
|
||||
void seatest_suite_setup( void );
|
||||
|
||||
/*
|
||||
Assert Macros
|
||||
*/
|
||||
|
||||
#define assert_true(test) do { seatest_assert_true(test, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_false(test) do { seatest_assert_false(test, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_int_equal(expected, actual) do { seatest_assert_int_equal(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_ulong_equal(expected, actual) do { seatest_assert_ulong_equal(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_equal(expected, actual) do { seatest_assert_string_equal(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_n_array_equal(expected, actual, n) do { int seatest_count; for(seatest_count=0; seatest_count<n; seatest_count++) { char s_seatest[SEATEST_PRINT_BUFFER_SIZE]; sprintf(s_seatest,"Expected %d to be %d at position %d", actual[seatest_count], expected[seatest_count], seatest_count); seatest_simple_test_result((expected[seatest_count] == actual[seatest_count]), s_seatest, __FUNCTION__, __LINE__);} } while (0)
|
||||
#define assert_bit_set(bit_number, value) { seatest_simple_test_result(((1 << bit_number) & value), " Expected bit to be set" , __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_bit_not_set(bit_number, value) { seatest_simple_test_result(!((1 << bit_number) & value), " Expected bit not to to be set" , __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_bit_mask_matches(value, mask) { seatest_simple_test_result(((value & mask) == mask), " Expected all bits of mask to be set" , __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_fail(message) { seatest_simple_test_result(0, message, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_float_equal(expected, actual, delta) do { seatest_assert_float_equal(expected, actual, delta, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_double_equal(expected, actual, delta) do { seatest_assert_double_equal(expected, actual, delta, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_contains(expected, actual) do { seatest_assert_string_contains(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_doesnt_contain(expected, actual) do { seatest_assert_string_doesnt_contain(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_starts_with(expected, actual) do { seatest_assert_string_starts_with(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
#define assert_string_ends_with(expected, actual) do { seatest_assert_string_ends_with(expected, actual, __FUNCTION__, __LINE__); } while (0)
|
||||
|
||||
/*
|
||||
Fixture / Test Management
|
||||
*/
|
||||
|
||||
void fixture_setup(void (*setup)( void ));
|
||||
void fixture_teardown(void (*teardown)( void ));
|
||||
#define run_test(test) do { if(seatest_should_run(__FILE__, #test)) {seatest_suite_setup(); seatest_setup(); test(); seatest_teardown(); seatest_suite_teardown(); seatest_run_test(); }} while (0)
|
||||
#define test_fixture_start() do { seatest_test_fixture_start(__FILE__); } while (0)
|
||||
#define test_fixture_end() do { seatest_test_fixture_end();} while (0)
|
||||
void fixture_filter(char* filter);
|
||||
void test_filter(char* filter);
|
||||
|
||||
int run_tests(void (*tests)(void));
|
||||
void suite_teardown(void (*teardown)( void ));
|
||||
void suite_setup(void (*setup)( void ));
|
||||
#endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue